From 70b1241375162bee568f88f2aba6aec69707f265 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 2 Oct 2023 14:17:35 +0000 Subject: [PATCH 01/58] my experiments --- android/app/build.gradle | 1 + android/gradle.properties | 3 +- assets/images/zano_icon.png | Bin 0 -> 1882 bytes cw_core/lib/crypto_currency.dart | 2 + cw_core/lib/currency_for_wallet_type.dart | 5 +- cw_core/lib/get_height_by_date.dart | 15 +- cw_core/lib/node.dart | 4 + cw_core/lib/wallet_type.dart | 20 +- cw_haven/lib/api/wallet.dart | 67 +- cw_haven/lib/haven_wallet.dart | 4 +- cw_zano/.gitignore | 7 + cw_zano/.metadata | 10 + cw_zano/CHANGELOG.md | 3 + cw_zano/LICENSE | 1 + cw_zano/README.md | 15 + .../.cxx/abi_configuration_5ah5l6u6.json | 14 + .../.cxx/abi_configuration_5ah5l6u6_key.json | 18 + .../.cxx/cmake/debug/arm64-v8a/.ninja_deps | Bin 0 -> 22568 bytes .../.cxx/cmake/debug/arm64-v8a/.ninja_log | 3 + .../.cxx/cmake/debug/arm64-v8a/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 7280 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 7360 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../CMakeFiles/TargetDirectories.txt | 3 + .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 + .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 1195136 bytes .../arm64-v8a/CMakeFiles/feature_tests.bin | Bin 0 -> 9048 bytes .../arm64-v8a/CMakeFiles/feature_tests.c | 34 + .../arm64-v8a/CMakeFiles/feature_tests.cxx | 405 ++++ .../debug/arm64-v8a/android_gradle_build.json | 45 + ...gradle_build_cw_zano_arm64-v8a.command.txt | 7 + ..._gradle_build_cw_zano_arm64-v8a.stderr.txt | 0 ..._gradle_build_cw_zano_arm64-v8a.stdout.txt | 2 + .../arm64-v8a/android_gradle_build_mini.json | 22 + .../.cxx/cmake/debug/arm64-v8a/build.ninja | 127 ++ .../cmake/debug/arm64-v8a/build_command.txt | 21 + .../cmake/debug/arm64-v8a/build_model.json | 208 +++ .../cmake/debug/arm64-v8a/build_output.txt | 145 ++ .../cmake/debug/arm64-v8a/cmake_install.cmake | 49 + .../debug/arm64-v8a/cmake_server_log.txt | 686 +++++++ .../debug/arm64-v8a/compile_commands.json | 7 + .../arm64-v8a/json_generation_record.json | 38 + .../cmake/debug/arm64-v8a/prefab_config.json | 4 + .../.cxx/cmake/debug/arm64-v8a/rules.ninja | 64 + .../.cxx/cmake/debug/armeabi-v7a/.ninja_deps | Bin 0 -> 22160 bytes .../.cxx/cmake/debug/armeabi-v7a/.ninja_log | 3 + .../cmake/debug/armeabi-v7a/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5236 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5292 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../CMakeFiles/TargetDirectories.txt | 3 + .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 + .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 1023632 bytes .../armeabi-v7a/CMakeFiles/feature_tests.bin | Bin 0 -> 7064 bytes .../armeabi-v7a/CMakeFiles/feature_tests.c | 34 + .../armeabi-v7a/CMakeFiles/feature_tests.cxx | 405 ++++ .../armeabi-v7a/android_gradle_build.json | 45 + ...adle_build_cw_zano_armeabi-v7a.command.txt | 7 + ...radle_build_cw_zano_armeabi-v7a.stderr.txt | 0 ...radle_build_cw_zano_armeabi-v7a.stdout.txt | 2 + .../android_gradle_build_mini.json | 22 + .../.cxx/cmake/debug/armeabi-v7a/build.ninja | 127 ++ .../cmake/debug/armeabi-v7a/build_command.txt | 21 + .../cmake/debug/armeabi-v7a/build_model.json | 208 +++ .../cmake/debug/armeabi-v7a/build_output.txt | 145 ++ .../debug/armeabi-v7a/cmake_install.cmake | 49 + .../debug/armeabi-v7a/cmake_server_log.txt | 686 +++++++ .../debug/armeabi-v7a/compile_commands.json | 7 + .../armeabi-v7a/json_generation_record.json | 38 + .../debug/armeabi-v7a/prefab_config.json | 4 + .../.cxx/cmake/debug/armeabi-v7a/rules.ninja | 64 + .../android/.cxx/cmake/debug/x86/.ninja_deps | Bin 0 -> 22420 bytes .../android/.cxx/cmake/debug/x86/.ninja_log | 3 + .../.cxx/cmake/debug/x86/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5204 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5256 bytes .../x86/CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../x86/CMakeFiles/TargetDirectories.txt | 3 + .../debug/x86/CMakeFiles/cmake.check_cache | 1 + .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 914588 bytes .../debug/x86/CMakeFiles/feature_tests.bin | Bin 0 -> 7016 bytes .../debug/x86/CMakeFiles/feature_tests.c | 34 + .../debug/x86/CMakeFiles/feature_tests.cxx | 405 ++++ .../cmake/debug/x86/android_gradle_build.json | 45 + ...droid_gradle_build_cw_zano_x86.command.txt | 7 + ...ndroid_gradle_build_cw_zano_x86.stderr.txt | 0 ...ndroid_gradle_build_cw_zano_x86.stdout.txt | 2 + .../debug/x86/android_gradle_build_mini.json | 22 + .../android/.cxx/cmake/debug/x86/build.ninja | 127 ++ .../.cxx/cmake/debug/x86/build_command.txt | 21 + .../.cxx/cmake/debug/x86/build_model.json | 208 +++ .../.cxx/cmake/debug/x86/build_output.txt | 145 ++ .../.cxx/cmake/debug/x86/cmake_install.cmake | 49 + .../.cxx/cmake/debug/x86/cmake_server_log.txt | 686 +++++++ .../cmake/debug/x86/compile_commands.json | 7 + .../debug/x86/json_generation_record.json | 38 + .../.cxx/cmake/debug/x86/prefab_config.json | 4 + .../android/.cxx/cmake/debug/x86/rules.ninja | 64 + .../.cxx/cmake/debug/x86_64/.ninja_deps | Bin 0 -> 22440 bytes .../.cxx/cmake/debug/x86_64/.ninja_log | 3 + .../.cxx/cmake/debug/x86_64/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 6392 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 6472 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../x86_64/CMakeFiles/TargetDirectories.txt | 3 + .../debug/x86_64/CMakeFiles/cmake.check_cache | 1 + .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 1174136 bytes .../debug/x86_64/CMakeFiles/feature_tests.bin | Bin 0 -> 8208 bytes .../debug/x86_64/CMakeFiles/feature_tests.c | 34 + .../debug/x86_64/CMakeFiles/feature_tests.cxx | 405 ++++ .../debug/x86_64/android_gradle_build.json | 45 + ...id_gradle_build_cw_zano_x86_64.command.txt | 7 + ...oid_gradle_build_cw_zano_x86_64.stderr.txt | 0 ...oid_gradle_build_cw_zano_x86_64.stdout.txt | 2 + .../x86_64/android_gradle_build_mini.json | 22 + .../.cxx/cmake/debug/x86_64/build.ninja | 127 ++ .../.cxx/cmake/debug/x86_64/build_command.txt | 21 + .../.cxx/cmake/debug/x86_64/build_model.json | 208 +++ .../.cxx/cmake/debug/x86_64/build_output.txt | 145 ++ .../cmake/debug/x86_64/cmake_install.cmake | 49 + .../cmake/debug/x86_64/cmake_server_log.txt | 686 +++++++ .../cmake/debug/x86_64/compile_commands.json | 7 + .../debug/x86_64/json_generation_record.json | 38 + .../cmake/debug/x86_64/prefab_config.json | 4 + .../.cxx/cmake/debug/x86_64/rules.ninja | 64 + .../.cxx/cmake/release/arm64-v8a/.ninja_deps | Bin 0 -> 24984 bytes .../.cxx/cmake/release/arm64-v8a/.ninja_log | 9 + .../cmake/release/arm64-v8a/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 7280 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 7360 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../CMakeFiles/TargetDirectories.txt | 3 + .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 + .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 0 -> 1007056 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 1007048 bytes .../arm64-v8a/CMakeFiles/feature_tests.bin | Bin 0 -> 9056 bytes .../arm64-v8a/CMakeFiles/feature_tests.c | 34 + .../arm64-v8a/CMakeFiles/feature_tests.cxx | 405 ++++ .../arm64-v8a/android_gradle_build.json | 45 + ...radle_build_cw_haven_arm64-v8a.command.txt | 7 + ...gradle_build_cw_haven_arm64-v8a.stderr.txt | 0 ...gradle_build_cw_haven_arm64-v8a.stdout.txt | 7 + ...gradle_build_cw_zano_arm64-v8a.command.txt | 7 + ..._gradle_build_cw_zano_arm64-v8a.stderr.txt | 0 ..._gradle_build_cw_zano_arm64-v8a.stdout.txt | 2 + .../arm64-v8a/android_gradle_build_mini.json | 22 + .../.cxx/cmake/release/arm64-v8a/build.ninja | 127 ++ .../cmake/release/arm64-v8a/build_command.txt | 21 + .../cmake/release/arm64-v8a/build_model.json | 208 +++ .../cmake/release/arm64-v8a/build_output.txt | 12 + .../release/arm64-v8a/cmake_install.cmake | 49 + .../release/arm64-v8a/cmake_server_log.txt | 170 ++ .../release/arm64-v8a/compile_commands.json | 7 + .../arm64-v8a/json_generation_record.json | 38 + .../release/arm64-v8a/prefab_config.json | 4 + .../.cxx/cmake/release/arm64-v8a/rules.ninja | 64 + .../cmake/release/armeabi-v7a/.ninja_deps | Bin 0 -> 24540 bytes .../.cxx/cmake/release/armeabi-v7a/.ninja_log | 9 + .../cmake/release/armeabi-v7a/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5240 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5296 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../CMakeFiles/TargetDirectories.txt | 3 + .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 + .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 0 -> 646848 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 646836 bytes .../armeabi-v7a/CMakeFiles/feature_tests.bin | Bin 0 -> 7076 bytes .../armeabi-v7a/CMakeFiles/feature_tests.c | 34 + .../armeabi-v7a/CMakeFiles/feature_tests.cxx | 405 ++++ .../armeabi-v7a/android_gradle_build.json | 45 + ...dle_build_cw_haven_armeabi-v7a.command.txt | 7 + ...adle_build_cw_haven_armeabi-v7a.stderr.txt | 0 ...adle_build_cw_haven_armeabi-v7a.stdout.txt | 7 + ...adle_build_cw_zano_armeabi-v7a.command.txt | 7 + ...radle_build_cw_zano_armeabi-v7a.stderr.txt | 0 ...radle_build_cw_zano_armeabi-v7a.stdout.txt | 2 + .../android_gradle_build_mini.json | 22 + .../cmake/release/armeabi-v7a/build.ninja | 127 ++ .../release/armeabi-v7a/build_command.txt | 21 + .../release/armeabi-v7a/build_model.json | 208 +++ .../release/armeabi-v7a/build_output.txt | 12 + .../release/armeabi-v7a/cmake_install.cmake | 49 + .../release/armeabi-v7a/cmake_server_log.txt | 170 ++ .../release/armeabi-v7a/compile_commands.json | 7 + .../armeabi-v7a/json_generation_record.json | 38 + .../release/armeabi-v7a/prefab_config.json | 4 + .../cmake/release/armeabi-v7a/rules.ninja | 64 + .../.cxx/cmake/release/x86/.ninja_deps | Bin 0 -> 24824 bytes .../android/.cxx/cmake/release/x86/.ninja_log | 9 + .../.cxx/cmake/release/x86/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 5208 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 5260 bytes .../x86/CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../x86/CMakeFiles/TargetDirectories.txt | 3 + .../release/x86/CMakeFiles/cmake.check_cache | 1 + .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 0 -> 633104 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 633096 bytes .../release/x86/CMakeFiles/feature_tests.bin | Bin 0 -> 7024 bytes .../release/x86/CMakeFiles/feature_tests.c | 34 + .../release/x86/CMakeFiles/feature_tests.cxx | 405 ++++ .../release/x86/android_gradle_build.json | 45 + ...roid_gradle_build_cw_haven_x86.command.txt | 7 + ...droid_gradle_build_cw_haven_x86.stderr.txt | 0 ...droid_gradle_build_cw_haven_x86.stdout.txt | 7 + ...droid_gradle_build_cw_zano_x86.command.txt | 7 + ...ndroid_gradle_build_cw_zano_x86.stderr.txt | 0 ...ndroid_gradle_build_cw_zano_x86.stdout.txt | 2 + .../x86/android_gradle_build_mini.json | 22 + .../.cxx/cmake/release/x86/build.ninja | 127 ++ .../.cxx/cmake/release/x86/build_command.txt | 21 + .../.cxx/cmake/release/x86/build_model.json | 208 +++ .../.cxx/cmake/release/x86/build_output.txt | 12 + .../cmake/release/x86/cmake_install.cmake | 49 + .../cmake/release/x86/cmake_server_log.txt | 170 ++ .../cmake/release/x86/compile_commands.json | 7 + .../release/x86/json_generation_record.json | 38 + .../.cxx/cmake/release/x86/prefab_config.json | 4 + .../.cxx/cmake/release/x86/rules.ninja | 64 + .../.cxx/cmake/release/x86_64/.ninja_deps | Bin 0 -> 24844 bytes .../.cxx/cmake/release/x86_64/.ninja_log | 9 + .../.cxx/cmake/release/x86_64/CMakeCache.txt | 362 ++++ .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 + .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 + .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 6392 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 6472 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 + .../x86_64/CMakeFiles/TargetDirectories.txt | 3 + .../x86_64/CMakeFiles/cmake.check_cache | 1 + .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 0 -> 950624 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 0 -> 950608 bytes .../x86_64/CMakeFiles/feature_tests.bin | Bin 0 -> 8216 bytes .../release/x86_64/CMakeFiles/feature_tests.c | 34 + .../x86_64/CMakeFiles/feature_tests.cxx | 405 ++++ .../release/x86_64/android_gradle_build.json | 45 + ...d_gradle_build_cw_haven_x86_64.command.txt | 7 + ...id_gradle_build_cw_haven_x86_64.stderr.txt | 0 ...id_gradle_build_cw_haven_x86_64.stdout.txt | 7 + ...id_gradle_build_cw_zano_x86_64.command.txt | 7 + ...oid_gradle_build_cw_zano_x86_64.stderr.txt | 0 ...oid_gradle_build_cw_zano_x86_64.stdout.txt | 2 + .../x86_64/android_gradle_build_mini.json | 22 + .../.cxx/cmake/release/x86_64/build.ninja | 127 ++ .../cmake/release/x86_64/build_command.txt | 21 + .../cmake/release/x86_64/build_model.json | 208 +++ .../cmake/release/x86_64/build_output.txt | 12 + .../cmake/release/x86_64/cmake_install.cmake | 49 + .../cmake/release/x86_64/cmake_server_log.txt | 170 ++ .../release/x86_64/compile_commands.json | 7 + .../x86_64/json_generation_record.json | 38 + .../cmake/release/x86_64/prefab_config.json | 4 + .../.cxx/cmake/release/x86_64/rules.ninja | 64 + .../.cxx/ndk_locator_record_713q3b26.json | 11 + .../.cxx/ndk_locator_record_713q3b26_key.json | 7 + cw_zano/android/.gitignore | 8 + cw_zano/android/CMakeLists.txt | 220 +++ cw_zano/android/build.gradle | 45 + cw_zano/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + cw_zano/android/settings.gradle | 1 + cw_zano/android/src/main/AndroidManifest.xml | 3 + .../com/cakewallet/cw_zano/CwZanoPlugin.kt | 36 + cw_zano/ios/.gitignore | 37 + cw_zano/ios/Assets/.gitkeep | 0 cw_zano/ios/Classes/CwHavenPlugin.h | 4 + cw_zano/ios/Classes/CwHavenPlugin.m | 15 + cw_zano/ios/Classes/SwiftCwHavenPlugin.swift | 14 + cw_zano/ios/Classes/zano_api.cpp | 942 ++++++++++ .../External/android/include/wallet2_api.h | 1333 ++++++++++++++ cw_zano/ios/cw_haven.podspec | 50 + cw_zano/lib/api/account_list.dart | 85 + cw_zano/lib/api/asset_types.dart | 23 + cw_zano/lib/api/balance_list.dart | 55 + cw_zano/lib/api/convert_utf8_to_string.dart | 8 + cw_zano/lib/api/cw_zano.dart | 13 + .../connection_to_node_exception.dart | 5 + .../creation_transaction_exception.dart | 8 + .../exceptions/setup_wallet_exception.dart | 5 + .../exceptions/wallet_creation_exception.dart | 8 + .../exceptions/wallet_opening_exception.dart | 8 + .../wallet_restore_from_keys_exception.dart | 5 + .../wallet_restore_from_seed_exception.dart | 5 + cw_zano/lib/api/monero_output.dart | 8 + cw_zano/lib/api/signatures.dart | 154 ++ cw_zano/lib/api/structs/account_row.dart | 12 + .../lib/api/structs/pending_transaction.dart | 27 + cw_zano/lib/api/structs/subaddress_row.dart | 15 + .../lib/api/structs/transaction_info_row.dart | 44 + cw_zano/lib/api/structs/ut8_box.dart | 8 + cw_zano/lib/api/structs/zano_balance_row.dart | 12 + cw_zano/lib/api/structs/zano_rate.dart | 12 + cw_zano/lib/api/subaddress_list.dart | 101 + cw_zano/lib/api/transaction_history.dart | 250 +++ cw_zano/lib/api/types.dart | 152 ++ cw_zano/lib/api/wallet.dart | 378 ++++ cw_zano/lib/api/wallet_manager.dart | 256 +++ cw_zano/lib/api/zano_api.dart | 6 + cw_zano/lib/mnemonics/chinese_simplified.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/dutch.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/english.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/french.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/german.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/italian.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/japanese.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/portuguese.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/russian.dart | 1630 +++++++++++++++++ cw_zano/lib/mnemonics/spanish.dart | 1630 +++++++++++++++++ cw_zano/lib/pending_zano_transaction.dart | 52 + cw_zano/lib/update_zano_rate.dart | 15 + cw_zano/lib/zano_account_list.dart | 84 + cw_zano/lib/zano_balance.dart | 35 + cw_zano/lib/zano_subaddress_list.dart | 88 + ...zano_transaction_creation_credentials.dart | 11 + .../zano_transaction_creation_exception.dart | 8 + cw_zano/lib/zano_transaction_history.dart | 27 + cw_zano/lib/zano_transaction_info.dart | 81 + cw_zano/lib/zano_wallet.dart | 432 +++++ cw_zano/lib/zano_wallet_addresses.dart | 87 + cw_zano/lib/zano_wallet_service.dart | 252 +++ cw_zano/pubspec.lock | 676 +++++++ cw_zano/pubspec.yaml | 78 + lib/core/seed_validator.dart | 6 +- lib/di.dart | 465 +++-- lib/entities/default_settings_migration.dart | 11 + lib/entities/preferences_key.dart | 4 +- lib/haven/cw_haven.dart | 54 +- .../dashboard/widgets/menu_widget.dart | 6 +- lib/store/settings_store.dart | 18 + lib/view_model/wallet_new_vm.dart | 4 + lib/zano/cw_zano.dart | 331 ++++ lib/zano/zano.dart | 159 ++ 344 files changed, 40301 insertions(+), 221 deletions(-) create mode 100644 assets/images/zano_icon.png create mode 100644 cw_zano/.gitignore create mode 100644 cw_zano/.metadata create mode 100644 cw_zano/CHANGELOG.md create mode 100644 cw_zano/LICENSE create mode 100644 cw_zano/README.md create mode 100644 cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json create mode 100644 cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/x86/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/release/x86/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/x86/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86/rules.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/.ninja_deps create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/.ninja_log create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeCache.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake create mode 100755 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin create mode 100755 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o create mode 100755 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.bin create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build.ninja create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build_model.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json create mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja create mode 100644 cw_zano/android/.cxx/ndk_locator_record_713q3b26.json create mode 100644 cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json create mode 100644 cw_zano/android/.gitignore create mode 100644 cw_zano/android/CMakeLists.txt create mode 100644 cw_zano/android/build.gradle create mode 100644 cw_zano/android/gradle.properties create mode 100644 cw_zano/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 cw_zano/android/settings.gradle create mode 100644 cw_zano/android/src/main/AndroidManifest.xml create mode 100644 cw_zano/android/src/main/kotlin/com/cakewallet/cw_zano/CwZanoPlugin.kt create mode 100644 cw_zano/ios/.gitignore create mode 100644 cw_zano/ios/Assets/.gitkeep create mode 100644 cw_zano/ios/Classes/CwHavenPlugin.h create mode 100644 cw_zano/ios/Classes/CwHavenPlugin.m create mode 100644 cw_zano/ios/Classes/SwiftCwHavenPlugin.swift create mode 100644 cw_zano/ios/Classes/zano_api.cpp create mode 100644 cw_zano/ios/External/android/include/wallet2_api.h create mode 100644 cw_zano/ios/cw_haven.podspec create mode 100644 cw_zano/lib/api/account_list.dart create mode 100644 cw_zano/lib/api/asset_types.dart create mode 100644 cw_zano/lib/api/balance_list.dart create mode 100644 cw_zano/lib/api/convert_utf8_to_string.dart create mode 100644 cw_zano/lib/api/cw_zano.dart create mode 100644 cw_zano/lib/api/exceptions/connection_to_node_exception.dart create mode 100644 cw_zano/lib/api/exceptions/creation_transaction_exception.dart create mode 100644 cw_zano/lib/api/exceptions/setup_wallet_exception.dart create mode 100644 cw_zano/lib/api/exceptions/wallet_creation_exception.dart create mode 100644 cw_zano/lib/api/exceptions/wallet_opening_exception.dart create mode 100644 cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart create mode 100644 cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart create mode 100644 cw_zano/lib/api/monero_output.dart create mode 100644 cw_zano/lib/api/signatures.dart create mode 100644 cw_zano/lib/api/structs/account_row.dart create mode 100644 cw_zano/lib/api/structs/pending_transaction.dart create mode 100644 cw_zano/lib/api/structs/subaddress_row.dart create mode 100644 cw_zano/lib/api/structs/transaction_info_row.dart create mode 100644 cw_zano/lib/api/structs/ut8_box.dart create mode 100644 cw_zano/lib/api/structs/zano_balance_row.dart create mode 100644 cw_zano/lib/api/structs/zano_rate.dart create mode 100644 cw_zano/lib/api/subaddress_list.dart create mode 100644 cw_zano/lib/api/transaction_history.dart create mode 100644 cw_zano/lib/api/types.dart create mode 100644 cw_zano/lib/api/wallet.dart create mode 100644 cw_zano/lib/api/wallet_manager.dart create mode 100644 cw_zano/lib/api/zano_api.dart create mode 100644 cw_zano/lib/mnemonics/chinese_simplified.dart create mode 100644 cw_zano/lib/mnemonics/dutch.dart create mode 100644 cw_zano/lib/mnemonics/english.dart create mode 100644 cw_zano/lib/mnemonics/french.dart create mode 100644 cw_zano/lib/mnemonics/german.dart create mode 100644 cw_zano/lib/mnemonics/italian.dart create mode 100644 cw_zano/lib/mnemonics/japanese.dart create mode 100644 cw_zano/lib/mnemonics/portuguese.dart create mode 100644 cw_zano/lib/mnemonics/russian.dart create mode 100644 cw_zano/lib/mnemonics/spanish.dart create mode 100644 cw_zano/lib/pending_zano_transaction.dart create mode 100644 cw_zano/lib/update_zano_rate.dart create mode 100644 cw_zano/lib/zano_account_list.dart create mode 100644 cw_zano/lib/zano_balance.dart create mode 100644 cw_zano/lib/zano_subaddress_list.dart create mode 100644 cw_zano/lib/zano_transaction_creation_credentials.dart create mode 100644 cw_zano/lib/zano_transaction_creation_exception.dart create mode 100644 cw_zano/lib/zano_transaction_history.dart create mode 100644 cw_zano/lib/zano_transaction_info.dart create mode 100644 cw_zano/lib/zano_wallet.dart create mode 100644 cw_zano/lib/zano_wallet_addresses.dart create mode 100644 cw_zano/lib/zano_wallet_service.dart create mode 100644 cw_zano/pubspec.lock create mode 100644 cw_zano/pubspec.yaml create mode 100644 lib/zano/cw_zano.dart create mode 100644 lib/zano/zano.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index 946c53697..d67e44d44 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -41,6 +41,7 @@ android { lintOptions { disable 'InvalidPackage' + checkReleaseBuilds false } defaultConfig { diff --git a/android/gradle.properties b/android/gradle.properties index a5965ab8d..588351ccf 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,5 @@ org.gradle.jvmargs=-Xmx1536M android.enableR8=true android.useAndroidX=true -android.enableJetifier=true \ No newline at end of file +android.enableJetifier=true +org.gradle.jvmargs = -Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M" --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED \ No newline at end of file diff --git a/assets/images/zano_icon.png b/assets/images/zano_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ff3cb023c0eb01faa1576e0f13495f1f766bed00 GIT binary patch literal 1882 zcmY*adpuO@8eUAcnXxgOo$JULv4y#~GY#2{TXLI*28F>mCdLdi;UFek8p`eDo@6&d zyV$8tI6{sh4nvxLOts}wNrNt~=Sb}}a&*qOe(!pp?_JOHyx;r%vvPdB-4x+kZ~y=l zJ={rTFr%aa{SJI{Qc{+|B*P)QIRQ;VkuJ=#l+GgS>beSGLtP;0mNhi2$^&)4VBD{jpGoK z?a^Bd0*Iw$92&Jn;l|jbsb0P)XI26oWsSvS@n{D)3WXvjL`D(FB-d>@xU)w`bGd8+ z4wsaagiW%*vJ(D+Gqba^!{N~ zrG>LjaP84(X``L>^_*Nr)VEG?ob9o|0ddkVI5R9Bx8n^;iP9>;CxJl+J4^i?%!pge z|Eq2HA>yRX|K~7YC*7)oqdLHexSeZrfNO?K$pe5K+=KKpg$lc<9vpqtg&Vc#Rcibw zVANDkJpL34zpUFm>J-E@i#hpYCOi|@z$e$P>&33ryBxSuT&{cIoU$*%FF5*%^)y85 z2h6@)RC6)YX539hYai1oWKH;?$|5Q1-NgJ%lj>_>#Zvmvplhz7+s1H4%RXHtIAR#4 zcT1(#v6bj?sYkO?)CzCTTGCeR4z^JKW928kX#4|SUe`kXPlgOwl^f`lg=5t49ZOY; zy{eeY&pKXr6jTIBqVNCWoHH5sg16Eow#Zl@X+|IeA4%wl&-oRN9bKX_)5A8OxU_}o zgSOe;&wHqphSQ<${<4K{&D1WZeGr|l7@EsFAIs?Ljp-B;!*24R!s77~p$rd84nMOT z+}XmmkUTinmSHx})3W(bjHkcsm8@Nf;__fWLToR)N_}_58(0q8SbntS_;ZS4Ig+2} zUq88O)3iV#+sis731}|zR`b*eV{@8Nq}#rBTmoy`%YvSM>JHgWCb!R^G+yS6URcn5 zY;8vC7rTnV7TA&pxvuG&iu0peb-K%%0mmAN~16X@B8~V#rlac zW5S5p2&IR1*3G}NPa=T#{F-=?rb$wyC5^aP_ypPL_=l4)bF2(i(fCBSG5uYqIM~Un zND#1CXdG@$Anz#{F9qgeMFc$(VEpMuZr#9SVfR?$=Vz^z?H4)UC-?I+>+kA1rP-0{ z$az;M%=Q01sw|jsZnEUNi0?sKyC@IUObi4%ZoYNvz{iS@YP)&kAq1|36@S#qc1_6L zlgj0%@&+qS8HWa5k4khhDCcR&D-PBT+GFjNkijygdVG4aHSUD%Ks~QG9+nlLa>uK) zbkn{r!>XLiyL7nEP#sByywR-GK_Je_wk@VOkDTo~nGkws>KU&M zORyncl>ebR5^2)S{?Qft@=pH|ZS8lT?=Blns11mVKRO+kPv|LID*xy=){9LEgrW2ujmXB`g+Yze`hL;e&FMrY#HU=2p~ww&tEYyZ?(n5&)I5X#`xf=m3k0cK_3=f zutBYmUT%l$&01*Whv$C3w^Y+S4?ifnFdU}l(CB-QlK$_xaHi$ZOt`+=(m^>NDkLu; z?jK9~HueQY7xbe9v3uKc^E1h&;fuP&4gcQFwf0=hDfY3@Phmp}lUGyy{-yqqqu+gm ub*(we<@&wul51bC?@uCC|JGMkyD4AJo!V4d2pp6CU_4yBNli{+nSTOlX9SD@ literal 0 HcmV?d00001 diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 86ea3f214..25ce1a564 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -90,6 +90,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.zrx, CryptoCurrency.dydx, CryptoCurrency.steth, + CryptoCurrency.zano, ]; static const havenCurrencies = [ @@ -198,6 +199,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const zrx = CryptoCurrency(title: 'ZRX', tag: 'ETH', fullName: '0x Protocol', raw: 83, name: 'zrx', iconPath: 'assets/images/zrx_icon.png'); static const dydx = CryptoCurrency(title: 'DYDX', tag: 'ETH', fullName: 'dYdX', raw: 84, name: 'dydx', iconPath: 'assets/images/dydx_icon.png'); static const steth = CryptoCurrency(title: 'STETH', tag: 'ETH', fullName: 'Lido Staked Ethereum', raw: 85, name: 'steth', iconPath: 'assets/images/steth_icon.png'); + static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 86, name: 'zano', iconPath: 'assets/images/zano_icon.png'); static final Map _rawCurrencyMap = diff --git a/cw_core/lib/currency_for_wallet_type.dart b/cw_core/lib/currency_for_wallet_type.dart index 8ac8c1fc6..b2f6d356f 100644 --- a/cw_core/lib/currency_for_wallet_type.dart +++ b/cw_core/lib/currency_for_wallet_type.dart @@ -13,7 +13,10 @@ CryptoCurrency currencyForWalletType(WalletType type) { return CryptoCurrency.xhv; case WalletType.ethereum: return CryptoCurrency.eth; + case WalletType.zano: + return CryptoCurrency.zano; default: - throw Exception('Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); + throw Exception( + 'Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); } } diff --git a/cw_core/lib/get_height_by_date.dart b/cw_core/lib/get_height_by_date.dart index 819990e0a..d4fe8c9b0 100644 --- a/cw_core/lib/get_height_by_date.dart +++ b/cw_core/lib/get_height_by_date.dart @@ -189,14 +189,15 @@ const havenDates = { DateTime formatMapKey(String key) => dateFormat.parse(key); int getHavenHeightByDate({required DateTime date}) { - String closestKey = - havenDates.keys.firstWhere((key) => formatMapKey(key).isBefore(date), orElse: () => ''); + String closestKey = havenDates.keys + .firstWhere((key) => formatMapKey(key).isBefore(date), orElse: () => ''); return havenDates[closestKey] ?? 0; } Future getHavenCurrentHeight() async { - final response = await http.get(Uri.parse('https://explorer.havenprotocol.org/api/networkinfo')); + final response = await http + .get(Uri.parse('https://explorer.havenprotocol.org/api/networkinfo')); if (response.statusCode == 200) { final info = jsonDecode(response.body); @@ -205,3 +206,11 @@ Future getHavenCurrentHeight() async { throw Exception('Failed to load current blockchain height'); } } + +int getZanoHeightByDate({required DateTime date}) { + return 0; +} + +Future getZanoCurrentHeight() async { + return 0; +} diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index 59a1450f6..eae8d64c8 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -76,6 +76,8 @@ class Node extends HiveObject with Keyable { return createUriFromElectrumAddress(uriRaw); case WalletType.haven: return Uri.http(uriRaw, ''); + case WalletType.zano: + return Uri.http(uriRaw, ''); case WalletType.ethereum: return Uri.https(uriRaw, ''); default: @@ -127,6 +129,8 @@ class Node extends HiveObject with Keyable { return requestElectrumServer(); case WalletType.haven: return requestMoneroNode(); + case WalletType.zano: + return requestMoneroNode(); case WalletType.ethereum: return requestElectrumServer(); default: diff --git a/cw_core/lib/wallet_type.dart b/cw_core/lib/wallet_type.dart index 62c2ad410..022b181b9 100644 --- a/cw_core/lib/wallet_type.dart +++ b/cw_core/lib/wallet_type.dart @@ -10,6 +10,7 @@ const walletTypes = [ WalletType.litecoin, WalletType.haven, WalletType.ethereum, + WalletType.zano, ]; @HiveType(typeId: WALLET_TYPE_TYPE_ID) @@ -31,6 +32,9 @@ enum WalletType { @HiveField(5) ethereum, + + @HiveField(6) + zano, } int serializeToInt(WalletType type) { @@ -45,6 +49,8 @@ int serializeToInt(WalletType type) { return 3; case WalletType.ethereum: return 4; + case WalletType.zano: + return 5; default: return -1; } @@ -62,8 +68,11 @@ WalletType deserializeFromInt(int raw) { return WalletType.haven; case 4: return WalletType.ethereum; + case 5: + return WalletType.zano; default: - throw Exception('Unexpected token: $raw for WalletType deserializeFromInt'); + throw Exception( + 'Unexpected token: $raw for WalletType deserializeFromInt'); } } @@ -79,6 +88,8 @@ String walletTypeToString(WalletType type) { return 'Haven'; case WalletType.ethereum: return 'Ethereum'; + case WalletType.zano: + return 'Zano'; default: return ''; } @@ -96,6 +107,8 @@ String walletTypeToDisplayName(WalletType type) { return 'Haven (XHV)'; case WalletType.ethereum: return 'Ethereum (ETH)'; + case WalletType.zano: + return 'Zano (ZANO)'; default: return ''; } @@ -111,9 +124,12 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.ltc; case WalletType.haven: return CryptoCurrency.xhv; + case WalletType.zano: + return CryptoCurrency.zano; case WalletType.ethereum: return CryptoCurrency.eth; default: - throw Exception('Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); + throw Exception( + 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); } } diff --git a/cw_haven/lib/api/wallet.dart b/cw_haven/lib/api/wallet.dart index e6b75c0cc..007dd27d5 100644 --- a/cw_haven/lib/api/wallet.dart +++ b/cw_haven/lib/api/wallet.dart @@ -124,18 +124,23 @@ final trustedDaemonNative = havenApi .lookup>('trusted_daemon') .asFunction(); -int getSyncingHeight() => getSyncingHeightNative(); +int getSyncingHeight() { + return getSyncingHeightNative(); +} bool isNeededToRefresh() => isNeededToRefreshNative() != 0; -bool isNewTransactionExist() => isNewTransactionExistNative() != 0; +bool isNewTransactionExist() { + return isNewTransactionExistNative() != 0; +} String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); String getSeed() => convertUTF8ToString(pointer: getSeedNative()); -String getAddress({int accountIndex = 0, int addressIndex = 0}) => - convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); +String getAddress({int accountIndex = 0, int addressIndex = 0}) { + return convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); +} int getFullBalance({int accountIndex = 0}) => getFullBalanceNative(accountIndex); @@ -143,11 +148,17 @@ int getFullBalance({int accountIndex = 0}) => int getUnlockedBalance({int accountIndex = 0}) => getUnlockedBalanceNative(accountIndex); -int getCurrentHeight() => getCurrentHeightNative(); +int getCurrentHeight() { + return getCurrentHeightNative(); +} -int getNodeHeightSync() => getNodeHeightNative(); +int getNodeHeightSync() { + return getNodeHeightNative(); +} -bool isConnectedSync() => isConnectedNative() != 0; +bool isConnectedSync() { + return isConnectedNative() != 0; +} bool setupNodeSync( {required String address, @@ -206,11 +217,13 @@ void startRefreshSync() => startRefreshNative(); Future connectToNode() async => connecToNodeNative() != 0; -void setRefreshFromBlockHeight({required int height}) => - setRefreshFromBlockHeightNative(height); +void setRefreshFromBlockHeight({required int height}) { + setRefreshFromBlockHeightNative(height); +} -void setRecoveringFromSeed({required bool isRecovery}) => - setRecoveringFromSeedNative(_boolToInt(isRecovery)); +void setRecoveringFromSeed({required bool isRecovery}) { + setRecoveringFromSeedNative(_boolToInt(isRecovery)); +} void storeSync() { final pathPointer = ''.toNativeUtf8(); @@ -235,17 +248,21 @@ void setPasswordSync(String password) { void closeCurrentWallet() => closeCurrentWalletNative(); -String getSecretViewKey() => - convertUTF8ToString(pointer: getSecretViewKeyNative()); +String getSecretViewKey() { + return convertUTF8ToString(pointer: getSecretViewKeyNative()); +} -String getPublicViewKey() => - convertUTF8ToString(pointer: getPublicViewKeyNative()); +String getPublicViewKey() { + return convertUTF8ToString(pointer: getPublicViewKeyNative()); +} -String getSecretSpendKey() => - convertUTF8ToString(pointer: getSecretSpendKeyNative()); +String getSecretSpendKey() { + return convertUTF8ToString(pointer: getSecretSpendKeyNative()); +} -String getPublicSpendKey() => - convertUTF8ToString(pointer: getPublicSpendKeyNative()); +String getPublicSpendKey() { + return convertUTF8ToString(pointer: getPublicSpendKeyNative()); +} class SyncListener { SyncListener(this.onNewBlock, this.onNewTransaction) @@ -320,7 +337,9 @@ SyncListener setListeners(void Function(int, int, double) onNewBlock, return listener; } -void onStartup() => onStartupNative(); +void onStartup() { + onStartupNative(); +} void _storeSync(Object _) => storeSync(); @@ -345,7 +364,9 @@ bool _isConnected(Object _) => isConnectedSync(); int _getNodeHeight(Object _) => getNodeHeightSync(); -void startRefresh() => startRefreshSync(); +void startRefresh() { + startRefreshSync(); +} Future setupNode( {required String address, @@ -369,7 +390,9 @@ Future isConnected() => compute(_isConnected, 0); Future getNodeHeight() => compute(_getNodeHeight, 0); -void rescanBlockchainAsync() => rescanBlockchainAsyncNative(); +void rescanBlockchainAsync() { + rescanBlockchainAsyncNative(); +} Future setTrustedDaemon(bool trusted) async => setTrustedDaemonNative(_boolToInt(trusted)); diff --git a/cw_haven/lib/haven_wallet.dart b/cw_haven/lib/haven_wallet.dart index e639be4b9..f392b4965 100644 --- a/cw_haven/lib/haven_wallet.dart +++ b/cw_haven/lib/haven_wallet.dart @@ -69,7 +69,9 @@ abstract class HavenWalletBase ObservableMap balance; @override - String get seed => haven_wallet.getSeed(); + String get seed { + return haven_wallet.getSeed(); + } @override MoneroWalletKeys get keys => MoneroWalletKeys( diff --git a/cw_zano/.gitignore b/cw_zano/.gitignore new file mode 100644 index 000000000..e9dc58d3d --- /dev/null +++ b/cw_zano/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +.dart_tool/ + +.packages +.pub/ + +build/ diff --git a/cw_zano/.metadata b/cw_zano/.metadata new file mode 100644 index 000000000..cb1a29e7c --- /dev/null +++ b/cw_zano/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 4d7946a68d26794349189cf21b3f68cc6fe61dcb + channel: stable + +project_type: plugin diff --git a/cw_zano/CHANGELOG.md b/cw_zano/CHANGELOG.md new file mode 100644 index 000000000..41cc7d819 --- /dev/null +++ b/cw_zano/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/cw_zano/LICENSE b/cw_zano/LICENSE new file mode 100644 index 000000000..ba75c69f7 --- /dev/null +++ b/cw_zano/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/cw_zano/README.md b/cw_zano/README.md new file mode 100644 index 000000000..4a297e8e3 --- /dev/null +++ b/cw_zano/README.md @@ -0,0 +1,15 @@ +# cw_zano + +A new flutter plugin project. + +## Getting Started + +This project is a starting point for a Flutter +[plug-in package](https://flutter.dev/developing-packages/), +a specialized package that includes platform-specific implementation code for +Android and/or iOS. + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. + diff --git a/cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json b/cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json new file mode 100644 index 000000000..e542dae10 --- /dev/null +++ b/cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json @@ -0,0 +1,14 @@ +{ + "allAbis": [ + "armeabi-v7a", + "arm64-v8a", + "x86", + "x86_64" + ], + "validAbis": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json b/cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json new file mode 100644 index 000000000..2b2c0ca1d --- /dev/null +++ b/cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json @@ -0,0 +1,18 @@ +{ + "ndkHandlerSupportedAbis": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkHandlerDefaultAbis": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "externalNativeBuildAbiFilters": [], + "ndkConfigAbiFilters": [], + "splitsFilterAbis": [], + "ideBuildOnlyTargetAbi": true +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..fd9090d618f41aa69a6241fcb4ec5c3a68053937 GIT binary patch literal 22568 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 Nh1=kExC8EldjQec=kEXj literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log new file mode 100644 index 000000000..a1d663ca2 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log @@ -0,0 +1,3 @@ +# ninja log v5 +0 872 1695988613 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 2adca8d6a6dce391 +872 1203 1695988614 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so 1a517b4bafb32570 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt new file mode 100644 index 000000000..53060fa6a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt @@ -0,0 +1,362 @@ +# This is the CMakeCache file. +# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a +# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//Archiver +CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON + +//No help, variable specified on the command line. +CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a + +//Path to a program. +CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android + +//Dependencies for the target +cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so; + +//Path to a library. +log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake new file mode 100644 index 000000000..45a931bec --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "14.0.6") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake new file mode 100644 index 000000000..a2eee9511 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake @@ -0,0 +1,75 @@ +set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "14.0.6") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") + +set(CMAKE_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ef38a88c40953c149a109faa9980d76b8426b96f GIT binary patch literal 7280 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 G7XAaHTW=Zw literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..eee467719c56b06f45f9a6bf0e0952e0474412a0 GIT binary patch literal 7360 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

rK%}8_u5`6-RdXrxS-+ba7 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..672f49de9f3d68a3a751eef864c5c5744a1453db GIT binary patch literal 9048 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 ev+qcc(= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json new file mode 100644 index 000000000..45ffe6a10 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "1": "--target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-arm64-v8a": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" cw_zano", + "buildType": "debug", + "toolchain": "520418125", + "abi": "arm64-v8a", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt new file mode 100644 index 000000000..01ef00738 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt new file mode 100644 index 000000000..06e48dae4 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 000000000..e37a4db44 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-arm64-v8a": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" cw_zano", + "abi": "arm64-v8a", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja new file mode 100644 index 000000000..32792ddb9 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt new file mode 100644 index 000000000..73a13a051 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab +-DCMAKE_BUILD_TYPE=Debug +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=arm64-v8a +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json new file mode 100644 index 000000000..5fc5ed5e5 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "ARM64_V8A", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/arm64-v8a", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Debug" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "arm64-v8a" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "arm64-v8a" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "info": { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": true, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", + "variantName": "debug", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt new file mode 100644 index 000000000..80fbb4a4d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt @@ -0,0 +1,145 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +Detecting C compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compiler ABI info - done +Detecting C compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compile features - done +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +Detecting CXX compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compiler ABI info - done +Detecting CXX compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compile features - done +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake new file mode 100644 index 000000000..1d1e1f76f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt new file mode 100644 index 000000000..b6a0d636b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt @@ -0,0 +1,686 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab", + "-DCMAKE_BUILD_TYPE\u003dDebug", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003darm64-v8a", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003darm64-v8a", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/arm64-v8a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json new file mode 100644 index 000000000..f1c73190e --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json new file mode 100644 index 000000000..55c73f8d9 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: arm64-v8a", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|arm64-v8a" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|arm64-v8a" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|arm64-v8a" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|arm64-v8a" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|arm64-v8a" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|arm64-v8a" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja new file mode 100644 index 000000000..19da49f08 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..9d6d8bd8713f45da138271c3affc1aa2ddcefac8 GIT binary patch literal 22160 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..1c2a2fec8b043579119bde47e88c51ddac5dca92 GIT binary patch literal 5292 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 P686jDkUb@hA-{hETHkS3 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake new file mode 100644 index 000000000..cac63c3a5 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "armv7-a") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 000000000..9b5dfbcce --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/edit_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/rebuild_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..61083d943b97e640ec7c31cb8d89f1ae902663da GIT binary patch literal 1023632 zcmeEv37izg^?!9w_e{^VJA1LqvcPi6A~Fl2f}$=63n=l#Ge(z72Q-3;if0fBqCuTq zFwTHijK|`UY+^K;Xh2Pj8V_RpMe~ctY7$A*#4FL&_zVBu{kWkqN}TG1=Z>1u4j9^Eid)7J@C=A=X=B!x}NA+zojZ$*na&`x@*%n#<@?b|By4eBYHtL-_u!OlF5oEEo=VZUm#hOKL> zXdAj|@U0EEbf~i`L8tBV9Px zc_$!wFSBw{O=lL^8d)lMae;Sp_q0ifXpHnsPgsqy?1=6}Hr}4#yUTaYspegBFp6w3#O7n5 z;G>o7(I#U1c5AelCd9PxA1!fU_%D{2SN&H@TyG7{+TtiNm+SIK6KWeiz zT@}#&%1mV@(&1!7?M}|lhBvvlQfZ-_)_S|uX6|KQ5Sa+L41r5K=Yd0_Z9%To7w8}9 z3FW=ItDH41nsM9htc~29O(D*iG?-F(s@5*@bCI8w3#!0XZ(EUVD z+m_mne(P%5tF!%}n~Rig_Ro)E$=Bsas1~SIn!0^kEvVwz>Rc>alS^a=-`?0trIzJl z8{_#GdYZdQV?Ai>`nh8GoVnKU>bVd0B)Um+M{OE$>riNJ676s5tSm#8n9NmX2XsbR zf1?{JS$_wy{tn8Gx_A4w0nAU^kM$Ev68U+#iE~L;zXV+^hptv+Q|;w^_xNs>w|$$g zl`L}zQ^=eLbXOX>`lUoU@|KudUIRjcicR*Rt3BCM-py0)?=5I17;acG~Rs_j-y zxypi#NJ38si54MR!abJQKl~3%EN@t4i=SG{ZnnieHZ(Z+SJ<9iAFg<-C8}Fhx9Q!o zO&8s>X!7F8i$2QSmpMhX>~3h;WoX%@TLyI0uj}7lmz}sM(sLoVY-M&}emqOCA)i() zJ0L$sw=t;7vvs*twtuc7Tc2-I@Ov{O)zb%=Vd|+eSDsI8e4%F=w|5Hdo$Nq+&qI69 z8+QBpxg&3%Gq>q>-S&@uzoKpYru402(E4SNsLVy?Doc?(NS-8zWx0OY!JP@#gv5q^ ztO-L|6NcuRp$W1@#i)JI3d#aO`f=nQ&rO_1y08$sP?g=IyCz%RK7{Y}e6Qkrg6}Th zb**$gbVzAQ{sp?ry{MfovbUv^Xa5@UVYy+B`nP+DKoGzhhZ zyKHfA_-wCPdQxrAq{%b}J2dVLX>U8E%^FhCR=26< z*6tY?S=3k|(?xReY(*!=6v#fjAgWf10bh*w5S{d8ekD2!*;iu?wUhcvV_Uh+qY33biIXcL}NGoQ{zK_vAYnvho3~h zt9%9?kd?qtvDR8HiPW8Bwx+9};zEv}Rx6E=2!boLjc_X$`bJ}&L5RbvNg&XN^bHy`elBa+Bjc{@|N zI6K1zCt>C!q4#48FUQhjudVO&}I~HBZm_LxOnh?!G zG&^&|gvo{dtdzd4%>3``>)l-&mF?NBy)i4tJ1LvS4J4UtbGnme6MAGE(>X9ZkZt46 z>UT7(($1ZuH&LqY@6j_oHDnu<=RxCtSza{GZ1dVQ_SJ2JvxC~-?56u4`TlZux^qBw z0O#DKen%l?Q|BnonS97(Zc9XrI(jQXsSNlE+Y-6@Y<5O%ow9R{l5 zox?a6=`C!DEX8bSIOjoglUS|}UQjK0Le2f)7h9P~drQX4)~Xu7JKYw|d+>f5w!|_s zGnKC=?4zc{+Ge6YGMDY!p5PiuF3#=N+-SdI<2EVT8u-v#1aT*4Wz|^$k7aykWmbBj zL)GsPlsL3=2=gq*&MlFx;91VN9AF)IY!&_(6#^s#KQ1M$G~O@+X|>u@`HGG8i@v;w zN~H0sJX@Zt-cYsCe*Gb9YR|5MTBRyyHIo-3^WMJg!EH1H8r(66`$$c9bxveUcx!3| zB0r}BBaq1Lj$Wa)q|ko~Mk28}V`FSqT|tdSJCAhE6Jx?FEzx$`8cV!pwZYMO#Xggs zLr%^SmpfrRuXi#*7vee4>aH?>&K1grz^7x3nN(*zhodbtm&jtY z%}`2;Sm@D?d~oTb6Mo7L@K#o|TRD-Z9LU?zImq$yLe5`gtS&?p@UN>&aK4xOwkg@+ zWh3n#=B1Gw+7!7!KXJG7p$#XsMmvvci*?quCE@ACJD~-@IKB>~n%%6PVCyNR75>9vG=ZmiY7oFedl_#Z#=Ce);zvl$<{$lXd5+b8poBHLdE*gogb)p0P zKW}ZA+Ge%c`3u_|zmJ7f-!=K;e0(m0{%z9eQi3{s+*o<_f5yt~{~0U)J;zGYc$(vP zrPj~*=_m61+DHZ!|CH~L5Hp3C=^QI& z8_`~}x3_n#YVAP;^rfDAUjE0l7kflET~GAfj%&`A>h`J*#ET|JdQM0Lb*jiNfIpFJ zSCL6S7FwOV9)4}L9}ykZIdoHkM}UMJF}f+@axLGl>aNNy1$C7l;UCdCcvGCIb%dmX zVyS-IKL(HEmpu!%Ab!+P+jGJg`z2ssz?!m zxBZBpXFtxfpP#4nUwhgl#N~YCbH8qi8K04Gv(gKe(kxT{BE?b5(Yh{kKL)L4h9G$XB#^%ojPQmv6vYj5b*X{T8F@Hd~Fd$LMiF_#cqPKeOFq|%d0x#*% zoiY;U0q#%abT&dGh5_bGOCvgd?Ns&79EwvD0sj)f;YFLk*kPCF*3wGiYB$$0{N z72i*>R=jmr=)1f8NyMLr?OMKQ;v#9k4*s2KzfOMniJmoEhO{?!3|@Cx&$&WcuWRr$ zFnbW!sxh~QG$B7*)%c*!*_&!vuC;8f?Ct^C`u5Xb9-Kq4;;rlo#IN%+6s`QNY3~PF z%jbT%n*0In`)BV|T2Y-HnxCeqkLcW=XQjk8 zcN{)<${jUxpJ{ur$LoF&aq5b;X`2qZH8-OYc~<5cvU_ovvSi7LqEznJ`#x3gRPIpJ zdp7EQ@XLq$^-dPldpzpBTT#6ya=kgGf_lq&wk%n4A~~$@qprpCa?QO=wWzxRBfupY zte%7CM2;dU)+lG|_HF%h_Nd{o1q~Qq9?a~_V}XqGP`~4-N`9=8#H2-I(ZeK`R%Jd& zSdDerk<5{V?$$kA$!H=pRoXJLSu>YW3By%B%NGsbH1~riVlB9S`DYQ|f{WIZKS}6Rd-OZDxFH1O zt)bN8j`&F^{InyU3E9s%VudsMMMtc0hiAkO+|-M%SRDr4+VFX%SqSXHhKkIg8Jfvh zL#)%Zg`jwW#dDceU2=CrG!tr$RL zVhE2nH0I!v{-Krk=1Q+nM_tJqlu=jm1Ou+W2Fz zt@kXF))hNAx?k$K?-kR&4u^fkN@{z3NB?z^o+p%dIF)sBU%rdRTIgSG?%vFrsVz@K zV^Pb=N@u5bPF5CCLePIQdnlazEpJaDb$Kq8-?M$M?7p3QDtd`+$T`go=ygtWe=fsn zuFXEWtzWjL{U6$TUKt+#z~a_9 z*a490{#9Fh+s^P_$HIG^x@p3#)3FvTFdc-q}`a#93vLV_D6cG6cv^BrxNyO zU-axMwm-w!{wO;E-JvzgNPZ_(=d%~>1p6bgWPk33{i(=KVVPC&J;8UE@7n9sHP%*4 z^0P0~$h;KGc+97XF{nTIO2IHjOSOJOHoqr zk9@ct*^y6z4}9_|8H=@*VsBCOFAx1o&LI({V-1dU7rrABt~})+PV>*o&r)*+>{uIO zo!-0LPbUYq%ei7de|^{P1^#e6*RsgTj)(7G=n+>f5?Gb(+b3>@PaMxpSw!RYC-;c^ z8y@j6!y_Kpt;bjzvE>Xw>pso)$XnKH(tUf&&p>T{ii^frS^}priT)|Sxt2EIjdfO8 zVmu<%3sPB2EL&kJ8{~`mRFeCOooUI4jaL5Y`ZZHXOAxo;5aAgTjXaoNg38KxnOTSy z(*8Xx!}0i6$t9X&=^)kj8Zp-ujff^@cj5hq)E}vhs7zXe-}<&C4#IYWHB+2lY0A28 z!jz-MsxtMNFK3Q!Ik?5!uLUw9eqshcL>I!&Fw*Bxo^@yQGVnq(qCIh8YXJYFv6;u- z{F=<8{z^eG_O9xx>BaAW?g|AXej`0m%!{HlF9IKW93>33R5T$FRS`pqc{v!Rx8O3y zQMEoG&Z89C3!pU%$sgv8%QQ6LZ)I0?0e>{Rt?$-zO39xM{%plx%;22(vzb4h6XVTF zQ2&?>zGzO_OGdetK6#s2g16OO15g_6J*BnC{;Fh>Qf&bjb-apZwIZ(E8e)4yt7~$9 zpVbcSBCW_rGc;Q{YDjhl?c<|0Gq*#oD@*%~wJz}7hKu%JOvFY1l&&YJ(f4%P#6H^L z1g^KO46_D#Sf3F?9%#F;&002P8C#6a)tp;k^RDhXOx0mP_7Hv|?O&Ox>+}$Z^VoLM zilJP6&y2 zBZ)J|)tTrdQ*jynf!22#*+z~1qa{vGVejcGD}~LcS6kH|T9^`a8OBQb&lapyOZ|#e zVLzd9g6IDkkr%IDh*d(p9%$)4=l6WQMkv#WyfcpKq(_aQ{WU&S0fpVVnAXj z&n&P;BJvM>rgf6lUE1Eb*>XeIZ0w=XJEv&8mSeeIlhkXl!8&0JbeL?Pxh6?{V6DF% zD(4s4;$h8^cI@W8PPsNp5v|aMQ0BK8+M&>U-ayf-zGe-_qTEAq6}4}I_m0_f#6&VU z>L2lRdDj57zb?5hn)TWv9d)X|A#x3_yj&<7$;Z^HtmMquxD|W3pYKU+=>~r>?iX7B zXoZ&eqxIQv)@_&AKm*Bk5Rbk1n+m~YV|kUbjv9F!fC^MrEPF&VK)L8^ztjwSNd zENzjAD?3Iu3-eLfu}KYxFS2EzofYxC-chK2wY}PamEQtuH7Ow}?3|O2wZ}G;!%j69 z*r^0|QY5lJ-d2`Pwh!&5yUTZ70`^%d%OqErF%Rr6hh>tyYR#ziEmIwIL*fFxsDq8E z#5F2tSF%g>(k@{paB>P8A6Hql^YNS5EUL)(=kwT|Qg-E{E;|eFr~`XVlvNS1Dj{Xf z$S1HlUU6wxKOV=T8QR~d{R694Z2IX;5S!N0__!!Erulq+qgOv6UlKU6zvm|`yXgDbhB@8u*jvL!4el}u-Nh~b7qBg6PI*f36##s+VCimF?w5=fUwW|wG!oYnJB z@@yi?vmw8Rc3& zgOUG5|5Q7rr9Kl(Od~Z+3pnH3JVl&Nw>Q#O; z-WT@i{olK7$Ybx_I%MX4+FRDX@A|Iss@$q9X*rdsqd=HVbH58ADk=3anp+{bb)eY} zPCST4xr35Ml98~3ZeG$^ty(sP(#5X+yt`pa&rqT9F07xMePJ8Lx@)@WE-~fZ9&De? zP0wQ~`a$ywk)w6O;+`QkQ~bl2$I{qc$v)>8taLASIxKO@VkIK}F>Ram`V^~pz98F0 z_gcATO6M51_H;Jd*bSMTVdW)n+)iva%r>&Yt3HR;qIfggi1OF*G{nC+Jw@kaZoOk* z*{%tC6v)a}lfF8gK9S=S=G3`(yBHE{$1IdI8t*bjO>@z*&Lqd9v)Jug#v1Oyw4Bu)o#Lg|T-pz9CjHdSQP>Gwt$~xjl*9t+01$rk?1IqXqRDuX3~< zoy?QtmM&9lejIXn7#D06|5JS>Db5k%9Oq_4QcqAA`J-&g$L>j!=S!&^%mGvm)GtWp za$kUMDOy8a(^#}SU~^qj8q@Zy?Zfuywxm+c_H3z_=gxGC2K}>ezpCuBAwMobebrNZ z=>AGN`^onL5+{Z8Swns}OEhztw#sCaKM#&~3Fav>MRoZ&47ni2355aY;%jy;D zB0eZToeS|sdFa$y7OT5>%}R~sR(l+hW6gr4j>=JheG`@fG_z=L>1OhgNbeezjFs*s zM70prUbASJpb+>8`l{6d*MCUGQp#1gsEidzdr~-_m4ZnfG}}=i=3UrMMDx$shbpa0 z3Zrh}*t*K!?=9CosdiSzW-EacQ2vhOQtO{2CeyB=&MK~3xCcXxNyZ#TC_jMqb(f+o z>>pAl)aIcM>~YFU|4^=7NKaip%bn=5?WnJ@PM|&np-G!=OPR*TC?-8MdsOT>#E`Mm zRW#BVMI*k|Y-QgrS_dgz4}nN_VcW}cKNlw3XCkQSK&V60OxRdy4KoWYr86Ul@<26AT4u5by1of)LYp#>|&<2CAuBu zQJB6jnXlscxojn!o90)xAM}%J6SM^3OXXJzM)lHsQw(61isrs}&7^d-N(`ca@W|LHS9iw5mx>cbb& zUoL_@6YYhutG?PymrXivy?&u}iTD`3?-w3gO7FiI-TP$vr~4}USe8T!`DFB$c101NN1Pbk zV_uYVdA3MT@(d65#M1NYQ*G;Y?C zPyD6zNksjrJlZ)+7EsG+b(e!tEtGY$B9nvs<=8IoGz-Fdqu&33a%G!P1cpX1ozJQ+ zDwWT?U_D2BpVEg7+rgq+|0H<{D}z;zRe`ZJADs$ zrIC#^LXX0MPRKEuEJR9&uNFKd|kqh`yiG3`Rqu`4(xx6Cx^$7Zgj~dBg$1ph>;b^I@$ZHJYq8i zB?qYnML&|?<*Dy?oYmY?^1D1zHfC%rIANgsp>8)mg&-}j+TEmi)N_R1`Xc*qX@8~f z@v3kCUg~Jyc$p{We*OtjV_uxov)#U7W*;!)4bhB+8F*mV`sQ7?tQwl)Z3P@#ql^{)0YKC zwZc0f@0fCMusV|(Pfypg7bh~b<4;FwKn<@V+#RB|w>HFpGLdX^_lRzpHk40|lPAhM zIZaDuCjUx{PGyl#qEjP|fpyo4Zdc`I=OWoy_x5c+Qk(=O(7GUy*uBy-B!L|ayel6XkxgJ{gj`PuBbwrJOd_01)jDL z`b}#pw4cj7c||dKBc4a=C}mB`yS}$WYr`E0DgKF8_qt;Ij{J0rqf#``Lf_!>{JD{q7V%%IJqyP&ocQ$lEsPjw8xY94kk60H zyV!f*5kFK$@Qsiy<+>!zL+@`?ifkzF7Jb)*_7Q8(mA*zso@?-ZN|I6w`bPs91N=kY z(r+EZl? zBM*8-tDCFjk%iXd>d+&wdmvkdwYC`bWURr`ntBwLOhQ7xLBD8>X60 z*5pE{oyB`es7$f>M%2mZ`@CL8^QaJJ0D)I0cOPOeoSI1&>ZWYdmR|cT<$MgsC~|db zKRB!t?QdfHN3%uPWTRine0r||$Uf8eybt^Eiu?rF+)k<=$qOYy8vIRC)I3<((5vdf zcWhc93v(S%@5!RC>Y|5dL}UBZiJPrP9oeEiS(=9ZB(Q7Q2zoxrA61ZFnN%(YZ=9WXXLN{ zQeV*PzeL}ct<+e_wg(KBo1F=Jua?UWv5&l&RUj zNj8_VF40->aEH6j%Q@JGY^kpV+1M{9bxQiwus0h*&?U#vrQ$fC%MJYR*i*7m98+4xpEZBF%-=dZ=ND-aFm z^WFSqI`P*1D>OwCBZc&c#i(QabaIz6~Fl zmiAo}uc;zl<&M+BJmpAP%xkKUSB!MBX5`P<_!6{y(@=P}82t+K#rO{EN3eib3p1jf z{n-I&E9)KmJmJy*upbT;M`q2lHobjMsUIr}d;5uET`#m%yL)$kWhXF6O}2shCj45gz^`f3ky^c1^0W0@ zs-+%@c5FvFP1Iul}Ob2J^=i7=H@;h+hw!Eu-~1{WbX@9wzrM%Q6I3 zB8dY&t%ZJD?DGPzEExSVWws2~R<2Lb_xaUIMfPuag2iNuZRSI=CMuC>M1P`Rk$oS( z+Is4JazUL-$L9jP&fT;LpG+6mb`4UxqrO{#wOBC}d*xcE^msetE8fjQd397%k&A7L zvX6v5q`f`(tRByDgH>DoEn)0e^0ko8T#z?~bwuTvErSmB_RH$k+$g$^PL$E;A#E6q z$X;iJOS&F%Lj*317+fduCC|C>E>`vhITpZ}KWx*zptoO0=ZuTX|DyNqebM>J@r&xL zJ@R7PB>Rxo2;F~zxdz#8)>`SK%V*y*7TbTRW4-+WT7Ue!V;aR3Xmpp{6xOGdJ(6~( z$fo;|hhjNUu38FaztFu*uFpyPL4BIJ!2Z3$G`;OhZ#?2tN@pYM+;;GX`8-a_(K;(@ zBU$7yYa_m4;YV@w-%yd?P^HpaO6ViLYxB8nyRL&8rF+RGz{^Nc5Ctui=@(&R*K}3- zvI;9%k%e(pB+|yJuf5S_xzWy$AnK*%B}Z?P*R+44yw-QU)N^COTy*x9vUdCh21HI` z;I<6svZEW~`IB1f+mg2?ZX>JjO2t%hKwGE@Fznqckxc{|9GU%({T&w;z)7FB&&9rPw1ODnwRY&Ez zYWy7=Dh+e5{D4l()bN~C-(#e;iL&g4sF7SNi(}>;%gV1M#!x$Xa#YU$=xgLtwi0DS zzMgA|8B)GKPTW(DUcR2|L^(!{93xo?CmLEs`%#9TmF$u8@^o^Fb_C&Iz|fXl#bu0AP@JDIwDk-pHHK%Shjy>YR_}7J)*Qv3Lis_5qf<+#Jvnr`2q{7Bjv%@ z2E^tGg>qN1%0l0fd;n?t3-|gHe{u{LJfo)>K1n5n)ma|b)!dS1*D4kUpIFT|p-;i8 zK`=g(Kis1H;+8)AVm((YoN)(Zm0YjD8o{WtXXFaCHOl*~-pNM1SQD-6yW7ZXw{l%? zZ{OE@z5t8Z>pL`;?dAK^{{9`eg`AhV9sE@WSZ-q4)a!8qeN4)! z*dLR1w{X53=W0~%lfH}Q)|7+qD@i{jXK$!jbm*d~h(>B^%||eo_$+gc-ageA*$+zf z_Z{ox7e6=sB77ey;~nddr0MN%2eyEEn6^4WzX@iKfnR%R*GOd-qVk)B7{w@c4*gN- zCA<$k0=oLtsA1o+&z3bu?@>UMoW}$!e`#iAn_e4$S35+;l_Z^=kMy_=XAh>b^j??Z z+1Gm5o!)z0NMAqO9;-t6AevaR?-ECtbsG@^t^XfyQ)FMV^RtAK0eYyn)a*x6Co!L2 zj&C+D)w3gN4>P_%Je1z|9rSJNp)avZ3%ttMSt{I696Kwlzpnj`^+Vdpz>=_Zq&KRh zx8w9uS1HveEAKyhQv*o_diUw(z@==V9EW{dFGq!(*34i$=&QXb{pzktdGgZ#Tb&qt2RaNfp}K!0vxB zK7%atUw6jDo2d6wN$>VwamIvXfE5(uytDqswDeDChtJ3EqweEeXJ0mW$2w5DZP#`+ z6vpoH&1tVwdJcM)C3pAWJ1T51>13CljYo3{>^J*#Ux*W%Plk8mc;uALOWy-ViLi?(>+NjnlB;G+Jb%{JKa4Gg`f0TSnJHhPP^A zCvIX~qFwH}EB?A1?V6*n%Td&!)Ys+2<{Wr0s#{VVC&Y2p`2Nyqdj=K6Q_$}|ng4SU zpF5V{1;e=!oZ6nkcd{tnM;_RnUcX@uT|Qt*Ova5=ACksM*Euc zh2m2ykvk9E9 zinY5Nqy|QEEtqM^SXqSUQLrD_&q@10=zJaYAQLv)9~zN~`0vInqm90%sH10k9nJRF z(JlwCz1Ok$dq+8GO=X`CZS0>ptj9@P>zs|wt|Ud0l_UEbo;-e%w6wce_CqDtoU`GO zjNH>r=Q3q#x@!+C@H2xmosvpqD1s}~P+H8T)tOG-J+LA8Mu9xnNvWu_`SYF8*rQwI zHy$#SItMb9=luv%IQ~<=nf}h<2S0$TxQ~CDv1Z9zq9s@l zm*+!@_v6CWej)pDW!vfRffQ@n$M1dA@(W@zg)-52j0er8#Ppm?%B451FB_!W*`Gha zo|W>KrQaZO)89Gb5VXf3z4x`Yh!w)=b6>0E%jw0lrt5R- z_`9HtC0`)G%GC!tr4!~eH!t)wcJKH+I?4I-^r4_lrf?iwYh|I{75eilQhlEt*Lv5N zeUW3hLn9*2VTW?~D>YM7Xl1pBIB#Xwpe5JvIUL#tOj6yx?N9!<%?fPn1gE8xjqR(i z1a+lcbxi~Plj%y^x6kXhdjB8#t=|7Rzm;a{|JQt0vT`Z>9U=OA2)*MS|8BnK+ArMK zlx-&cOnUz0KIUo|i(-2%#~7>|NPkQEg#Ym|)hf3>we$IX%+KOO?#N$U@>W~R=N;#? zfALw)uIRDj-_?KXdRrV%Cz9yzrLeb>+hUwX5}WnkODP=JzZk#mQvNm~ovWp}SxY@) zg;|^$hEI0=>kkS#Uuuo2P zLu@_|V@SdJ2A#dz2Y>gd`Ur6-e)T`H4?3%{r5lgcbKVN^xyxWNVbgq z%9D{)IzAOp{2gY*c8?V;6Lrhb-)Sw}_uE&0lYNEO^7Wn;{e{cIT`R$tfaKg^$N2^4 zWJ`UMt)%UQy{!90_EK6|!B$qD9;8}p8~;hywfg#A8huGk$GH1i*ZTkeJ87S8o+xcL zX=Y)%zH~&=|LfMSoc|+hS0DRr#xH2?>OXyk_6vSm{q@H(^=-jI-PgV|_8#?$69%|X zTjqcI%*U8x9{k5B5PwT(m_c;I4XO!B|?;b2WIM zJcB9rGs#w7if_izObF}2@G{(N(m`6>WU#DV0D){KL< z5HNv<8u+NX&ZX81`j!)YgYdKM0p(f2flHP(o_@yCrAtm*ws3)%d-BOk=FeTW5I-;c>J=)Q<@rgI%TKEh0EtJT)5!$#;?v@zUZrGd^JekNOYX*=emt= z{?d|D7M`}`NR+>D+3ZE9FI$LLap3L}JZ?fEVmkK~RigK~N-mvvJN^;I#znCsTb!Sw zclx&@oK<0sD64WqWvSW$Wfj)pwMaTagvw@B?c0CP_+D`v0ohQwm{lc&Gsz0!PdK?% z*1)RWfj8Etp2I;BkFXH}UL zu>fI$o{U`UQ#%S`>fpByZgj%XQ*ILMVca%dA{7LG<#N*?X zd>2(+S66pzAz(gOOZyUV0|_(-K%I0PwYe^BJjqvxU7PVk1x+ZVzu02o?p6g+Ohy^I z6P;AAJ=9|oe_6Onm})ag%7FyDr(c;kNkUd;FI(j{*-$qS@9mcjRgpTj&&4Y(?rQtu z0jY#&N%PN?GYZ}pQYiW!9fs>w`g3aE|jx>LZ& zEbeEh{r+ZlRUr=d(}E8njwmK0vnRxnBzOG%=s1@z z#L*K9N<5}G6{Y#IPs2GMO9fGtsF<(#B5{>MKqSZcBJrC|h~xXA@{|mJ!P++MEW|Ze zi(Ffd@o_S)^MYmzY>hfZSYXdKWkFr{94!G-G?XpGxwOJ~o-|BC zoUgJ|O(4Vts#qWJHC9q+CiTM=7V9ai?1k1?#BNDFLuE9!t+cdSa0^1?gt*9{Ar7Q^ zttzBMQAGQ7AG)CGl(HER>S{}Bs~kHoHt>77l46YkqZF4EmZx&Qv4H4Jyn-I^c-N736=5Ht zTpdnFxyFCWiEjbwAwoZ9Etgp{Z!&T8F<{;x?BhD?a8Pip2be|20*k*8YNsMTCjKO{ zj{l1D{~GYWCz_|MQFHLw8$0C{v+x$sM|=e&TbabNQ_*6Q`9NEkP!55eHE2dKwod(Ep1bs%QPWY)sbUrXE2>V~wxN4SvGQcJ_ z1M@s#f6dIv9237M$nm(IHK9>Jb|UC=1~k?T$PonnZxUpgpLg6r%g4F-qn85z9in-j zQ-ZEMp!*BeZ)Z}I=(C{NuMKps>YAhiI@#uj1AR7;yrD@dd=e487?|4#`;Nv|8rXY* zd6BR^8e3&x{|rp!Twwp9vDF542rvf`*0Gfu*BICnf%zF>6SmTnevCDg^%p?@iAXAR z2DMBg`@uWF)L@0k>Zh@F26iYgYY00`XWyT(e)jP)5;jRl-iV1f-9+>Y9B%1&rY4GzBvFm~P1z}q#@xUN4GZK3l zsImn>&mi=mV)RI$4kPqIgdQBA1O1OK2L1}7Ib7GJ(Wev9>wx(QVZUs@@35v1VJu5H zxi6$Kcp+K6%~shXAQNS;5^TGR%LLpCYh%T8WoTj1-%8j{?{O@`MRJcpH4)_0CON=7ijEg1A7cGXA^d@md4Ho z_99?zCG1ko!59PkV_^PF*fTYD7Xur;))o_SS?6o)SOa?qFc%Q^B8^QO*eii~gs_)t zY_oy=12Eooz-Bei;{t4=2AGM2?cff`9ZDox0qG*>I?hp!JBbGX*+$Uy61wdx7N+0Z z0U2^VpjUDZiLrS8CcS@?%TsA@0;J(vfL;|q<7Ajcq6uI|*bPW^wSnU9 z&OM#d%P}ia1uCYzrX(ek^XQg1ACwF(~d77t3x-DdO?FX8Q{P+iPV%EZE*uG>sC9kLL$`(karWnw-tbs04*i(?FHcF z0R4u*cbMSVO9Z+Z*Y~L_kLOlqXCzhzXft8%Cd{q@Cb~DEM-%2gmK(4W0&Hw9Fc%T_ z0ZO-9fQe=Sy_+yU*Xec-u(6*5^A2Gjr*wN581EKaOu%J5O_+&3CQhD=h#mmc8H9e$ zR<6w?CXs&8CBVE-*cU1Bo5flHnoM1g!xHF(jgg0=1-3c#z2ljUnL!4!1s+O<#C>HT*;kXy3P`xp+@-tlA&8)hu^{3L3C6NN z^tYsLwWo!|OSr5#I;;JItT-3G?T;Ag$7MC|^pLm;mo-mkb%39hi2e|m!OMVM6gqW2 zS8KM9<(x(I%`-#dn6p5#M9bw%MI^D4fxewc&J3Y_4h+yFDiPfb)S1hHK0l<~l!KUr zBpd%aiskx?=zV90#E5f1_jO&;!9iA1#=8N1Es?C%B!?7}dqh~$dU6|zc)`XnMc z2?U&*y>@IPKv9Hg;Fi5wGF0 z){zj7@GeUq;C z(E*9C4+`GApX53UR1~* zdr$Jl)gmh{Uw?C)dJ@qKk;5j+V#z}q|BKk*QP8tO4n;Ltv zkBzgjX8$UB9%%kZbnj@ouLg8}D0S)(izESfFF7TS2sla=!vNQ1@%2wcRm0gCrEkp$cXzrwlkTte! z1Aax>4fIxaEAF?M&21Nn9WE-z$mU8t&(WF$+uZZ{xKAmmDjzbru1o&n&Egt%C7 zS{`IsLD81GCQ~yWS#}bBMcH|{TVfa%y)UUr22VKf)sc!-2 z6ZQ&;0lVWyFV;*kU?QGb=Vm1uCga(fYI(=Zg?h-h{p4GmjFK2Q9R$~X9|@=Q8qQAi3*YrMr%S{2`FsCvwyR$ks8CF9XS% zomWWLKze6{#5i2m289e8$UT5qLddICnGpkd5fEL3yhdr7XCQwB#G8b?R(BW!DIkvV zxUB1RhcS>XKyYumQ6b|7@+2UCO(}0xCL+N|5+9og*s57r5OOBKw|A^(!cSucAO-$9 z%>{l<0w)4*J7qZ%lhwzzjC{{K82`@gGml<{1%yq8NqCcnk2r$;S57M$Lb2t0}rwe%ZZ!& zsSZTobuycm0Qh}E{6yD*k#{iiJ|O-;$jwS#Ap`j)5Vhw4xkVuz1K9`!Yt#d(8C(O| z3M6aPg9;fokc)u4lCphBAtMIzTR=QX$e+>_7gg~Ln1kiYn$RDm)BIq?Fe z|BtJb9su89Rcp(K{eeT$ZC(ctU>Kz!8@{CweXjuOnht6FUJh zg-b+i6VR-&VdBH}(IWZ_VAwiE^fFD@;Nx9j>u5sl=_SF4fgK7=2VtWc>-kvKtKGo^ zA(Z!jOF|iBg?|HTDV5hKT_a0{NW2ML@Am*@sSL4>R#IW?GR)USOduPU%1}xd^3%!C z3wPYuLeM;c%Nj;BP7zJur^S8^A{NPT7D*u?mad#VzKfyIN?3zy@jzmYJQ#1J z8diVoYDskClb?vJcS7Qv)H};sQQVs0lAK# z^(M3vkS7T`z@ls)=wu}F_uIrEYxW%)BtVB^IXudJg2ifeHs$wtth<3+Q|^* zxB^j*FA(Lf5ar;@k%ZQMtO-^_XmC!y?PiTK#JqbAXgA{FB5tLAlx{UW#cfdaQii) zaYiHT<5pY7K##2g$&HkCB0#^+68;lVgD60^iO|Uay$8f98mXmZTZsP7F35`9&^$!$ zyP@<_=!OOk^0QQg?;z7#dOgRMCWan%A0Et6u{k+2cN{xbOv)umcj|CDA^sNdk<6P z&DZ6HN|omqB@z$n6bnigVC22Wa92Eq%Q{o%?Uc&9s4n~(++^eYUT5{Sl7$x5s;H4g z^rR7rk*hQ#tUSd{>{qflgT!{7!L=oe_v>7oFnZBQSB%*SBDhPJ94;jSE}1Lgw{apm~Srp44<+Ku6h&=yssb9R-r-HA$37(uJMFuaSsm zK|P=eDgLNa#DWx)3X^eTMRx)921@a!qb6|iVm59Dnq9tk9OdIC{7gk`E3i{XBZI$D zpetFN_%NV;vH-TQM{`sbkn97FMD!exbW#p~*CDlXpF~9O1?JC${fEY;46L)WD|W?Y zSuWKF98?(C>A;*ySjQ!k1#G2(T>;D{!bWu3Dg%2LF#k>1m`egi+G+#)J75kQ18h=b zYkaI!EOvFcY3L@R$AkJ}N|Dkj`uQpFnG0Ydy8v6|DjC-@HfU-NsV3?`a|O}$bB~;@ zO(dl-R{ybEa4{f5PRDH@6g`yYi^DMc6|NJS0u6M|!1M64aT`Iy)Z52^y{AVy*Wowe zZnWzw!SL6Ctv`2fA?9MBt*_k|yO><;Kii`P=|?>i#zr6zxv$$+(+>c;8#wnSd(;)! zUd)I$Y^!P`UJl<6h>8%xlo9M=O}LTJ=vWg#hyd>FCh${rJ*XxT2;s4+2k~+iy(IAR zH@y6eUXlo4A%`F1J>hoSRX5_{mtfp|#THe!>6hQxPSu@wIf;_|-u6V()!^(VuUZqXmlFQ3Hp;i~!|5NOy1a+Xo&nLlgn!=_f^&O>P#@TqXd?^9=-)x&AdFiw?h(?~(05FmrB;6)z0O@C?U(&ecCXNM|ZW^J|oonKlz4U60JKw}zO=YK_ z(zpvu94V7X_rq5A2(f!bC_aYRWo2l(29t#|fO7A#(-&xxj?h>pku|yjBo|UG?zPju z2T7W8xzfxfy~|DtoHJ9V&jNTO_8GWWhrVW%c?&XpA1L?7cG^R0GRbwJ8;mk<2gw7J z@;*C#1xRXZ@qB}sOZqn&e3O|nJshf}5`d=oJFr zuT_t=m>aM8Pa63X6DgW^gUD9ma<>%1F9qyXfr)xfQEKE0n9}g|WqXcsw6iqinCEp;+*J-D-n(m3v zWlYB%fhs7PZUfyNM0bmweiq0{2${N1^~x{Zi1R;;+uAFSbOyLPak)>MiqEDi{S%FQ z!Nkc96Tx?9Io*pUPIj0BHLlyl$xe71aDT_;{@%pN^6YU6_m^T^V4OsHj;8v+q#~}Q z_|o6j1RoX?i1gbU_jeO#=*vFivF#t1`;UV5Pj>;vd^b9VLE<_!SMG{|7MDBBk%|zP zx_1&__Y!=Bf{XNncs-ArX`~Z0r${F!DDX~Bpba9814QBhq8?R1{cR0yDxm%gz<0x# zxf4tlrD*rrP2u)1anfd9rg3|jxWX|(q+ilh(@iQv>|=LVMYI+Zi1c|HH^amQVoyJ+ z363=hq{{3JzxzB~ZkvhY#IkZ1X@X@X2~6erwI)5I7pYN|krP#kXO^TA=`%FJS-l91 zN})xvRgw>p$ojUipy5-M{z91iNa13>k(!(lDTz`!fR6?EdxYBNRATtn)SChNF^%xAnLPT&MWpF43lsd+B=Ci+ zDnT33nCiWfR3d%5CV1Z@AUmvb=mEi!L15%VlfYnP)>K8{xP~-~8Odv^a7ikW{-Y*{ zm;?qRyJ1pw$zU)NGYJevuFwS4CP6VHf7Dd{N>Yh*%QRI^ok?IY@=Xx@tPzY1FbNDs z-qZvmOoC!YW=vPv>{OCUq_5QkO(ucC$h#o0hk}tYCV|1oA+3sFcaxx)k?&}#i6yB- zIyOUPv!_X5FtPvyhYkZHdz%CXBM)eT874t7BLiouY-W|D66xid-~f}rVC0t|m~MlS z16`W_tDa4ai1e^o3OC=xvGL%Wq&iDeE$ExdFaqf(H2oya5+&6V zO|`UdD%BSs1ZlqmP`$MrO;NU@c^E+F5%_XfIn?PZ@cI&g+D*#Dp8(o@Ho(`pcY#Ie zeJAz-grPUMdk~Z-VX3u%{*GvWR=%0*qi31K1;yPUJ8z$`?8v3R| zo3anZxqDphyOK?jI2>=c5JZH1O%SO&0SO%jXe=y+UDP*HF(8>BQA{9GM{8V}!g0pb zEkx>O;G%Poab53p!vH^vaHGw1K39R7%cf6V2--go{g_WeA7}MW{T&GoJ{*bmFcOK> z@c=zQ;Jpm6D(88?_dEi)eH4znX6itI7`&eWj-Q2bL!=(lxMNM+tBh+s5@R4Pcdo+G zFddh;M>TGNiIaKma})vvxZG0=oJf6FgU>X;ijC1nt0d=}I9b$9z=e-Nb{9&VNDaZ; zMFd%?s7dr<9BpHB=&1FL*b5mFy9~wlFL&3FHU8qGRhO0LoznZC=!mKekVi_(QBRSe zMbK#Js$4)u2oc1C0I}>g%a3rT)&fB@9($1$?~l^rgDAMgvA+8WJkLt}9KWy8^I~4v zir)k$jBg_G4!|`qvi8ZnP;~&4{k50!UWa&^GUprbut>}Wj^Y;fX}k{1D3QnlLQaak z%qmPE`ATd7?oWh2(`uy*`DWz$7vRXBv(GP$Zvc*~`*j1)dkv^o*k%Cy$&`MrbthcI zINd}O4ItQBChYlE;(YwxO3#;DEC{AZ{1A}e5i~2)$=u!q1UtWl-66#jWLZ86-~$M? zo)d_X?w?(>jk8~b+lHEMm#^aH92v2^1E@{XXW{i40v#VY9Db$c9ZnLMi$~FPFdiw= z>&%KY9gk;Okkj?o~f{P9T= zYjv1I_%8#S_#>YAeWW61~?YRNnrxSucbO9UIcXSC{iyCclyxu zd_W!{=&M|2DBzh3l_n>>GN!2hQksg5PkM1&h{tg`Ln2geh!e}w)6Z&LlfqFFg`1QR z;vQVi*a&e}kgi+f#w%Qqu8H)H)vP{@=BP*gEa$&M^`sW(L6nILar+)F=MSNgR9c?o z5GeGsq20Cs+eGR$4v8J?K&f=M0%V1&?cGTk?!$|yACJTj~cqm<*FpCq3ZOBL!H-0}9_rqSrRU<1^ zTtI=|@optV>GX@%zds6l>dPPoT2-mQ!%hRIK|DMClJ4mrrSMn*DefD+901E3L?c6b z7l0T%E!xH4VGP~~a1u>D4h&jO zbJVK8A6ego7k=1;2QEE6^d|H_y3q(VzntpvxX1ONmf3@hZw=}p+o+zN29L&_D(bxH ziBR>fcypfiyls$HoC*;V^o#=ioInZsh|(X3@->gD&eWpm4WwaX`J|V4T~oZ_krceY zv-ID_olWCYo|x$F4;ssP*qi8ng`a-zRl4UvsFw4t$09G_*wezPt6l_o_vpYZAhbf{y=Tx4d=gMvmGM3>q5S}%MH%lS6M76Fv?Szh|AA3j z4l^BE5%Qi)KZhS$5b|uxph!0WL~A*oTL3-*AX>}uyaMp;0MS~Gm$0bbs#59K0Vbcw zD=z?#sgomxS6KjF0x&I$cs1-@=uGYch?YgX{?>Ujw7}vl-Vu73_kNN72qd(k;WhLk zOVjt8D8%j!H*g}o5+I7Dd!q}$4+BKeEU($3R#AL3#{fE%z!NOpp44*9ZGd$Wd~zZD zZotTVc>8HMX^lv~4>-AW-a*z8Gj;aTtDs7$nrUCb+nSz)NF7D%yrV7hf+aspCTY_v zfh5-ye{VyE21upiL@Uw{YusWJ=NF`?64;l_IY{TWxCo{)OPr(W&nn23>`OYQapxD{ zbk&rD|DvY4sBbD&y%7VY5A9uQ3XH0!2u{=l9VP*Fb475ACdiuvem7NAuW71pm825s zF@t0{(7V+nFc>*Q6MWw!Fc`U86WnVO6f^Rnrh1?xl}PVBSjO?Z$4ml)k*hSp(efbZD3i^m)Tg0)vtHnqZ7c zU@+3933fFJiWw0Y{3tHz?NyRWh`nxrVc%=+NZcNy+e16yb~t>Dkxp3-2Mm)dL-jNr z|H(r5R`g{Y8tCi4{dIhs??gO^)pCPS)s(N|vtJl4lACaN-diKYc-Ioin?k!xqF-7n zAB&w>Vl2PX8aKVhcO_WUn>S!r2a#P8lK7`ge0*;vD*rYp;oc@MRe8RliDnQ!ePr6^ zQ8)Q+=nw!@0gRJ8xLBj$LXRMN35%OBSy1|KI-@ej$jC_4PbYfuOS%d&w}HJ7GE0f2 zrCctblX0ce2TxE;k2cF90wt+kbt0yh8BNkKs+=m}{V2rOq7Wi&?`E^}keu$UI*`T! z7JgF$WJnuNl3k(nZc`P>4CfXm`4)+#Y08b#!AO2Dlz#Leo85}!EHjt%!h;p~05fIU zKE!4hB6**N&^82CmcMex12Rj20rnEd+=GQ<%ZbtIXQ2NAUZ1yvfhncyg zoi8i!5oXHt4FHpilRTz?m8r+t?BgVlEdX}|OwLO3xPnYBgtte|O0um0+<2VLenxUW z?_gBSrZ)pjK1_0<^O8}A$502FDkr}aO4ly6d5W7n(IiRV3ov;o$wkhO0u9~FVyB*! z9fLN!IMhVl?d1zVw>p$Q;#8I9Bs0yUlqUT)aOBD)PcdHp1jhz z@D{CR@#nZkjThr@>tSA(ToXz^e72&?8;TSswUfl@XUWoD*lYNjjzIYqOj#NxuSQTcWT^4z4JWw>$Z4cFQn_}oz7XUa98$DcL#9K zO-8zJyQ>2YkaalZ3WdAb{RZO#J~6s%*w2!q3oR}4=t3uWd33q%Xf?Wgga_Jw%A?Ev z=psD2Jaue|(d7q-3>%{hy~gh)Sd)EWiP6Q!#~)&%p&;rtx-iibgioIvw)E&i9}}^> z04I$yjV=s(p6DfvMi(C@3rfGIGb(e8jEqDyx^SY|G`esVWNtLN6e47n5=)~?faOZ1 zGZ++TBAOg+mPPp*qYEcudYKW8E)1iJs}lUtg%BeB5%Q&}DMpu9=1{k1a8vriV04*T zp-5&p?%_nT(=kZdG-qWny1YCwf=C4EGH1wOz`ncfO8O;9nq9KjjNGB3L*7+qc- zphymO&Nj;I0Er%5why%Q=wjrOK6{V?A7Q3U{}o_0x)_y6pE}smql*cC17J0}7{#X- zH(GjhF~P3_OtV;jbYTId=M6z{T8=Jz9}&py1=K;0E?4c0_y>(NCprd6x*tXlHM+Dw z)~XSwv)HL;>CuI{n;u=R)@e?1j5G&PnsmQiEIqmyILsR0`=umMf#N8 z6t2cKaP%nBGj>oS~BxZh;$Uuxh{Sfukey7+nJOQn(R-tI?%bo_A~9MZNQ!jFCl+F1^w{ zp>bFCPInka7B#x$0}YUMcxzvUyV<>#ae)pt-M0|&&asY2-VkaYd?tRehLpVBvFgeG zqyUf&NpEqw;p?kzol6qTLvo2vHz zz0W!K-gDc>?YLLdr3_`*>e?rnxr)q0gQDS8<`N-^lv$zDBxFb>3W+F6lhUB#O@oRw zP?{tSnrQI?co0rH$GokbmJG%KTkA; zr@V;ncT!UI-E^hvQDUivZt{E@!9+R=YNVmwgi<$xi;ZB)i81pO_tipr;z~`b5Ft$` zDO~`A=#@*=iYW=oI@QK@LET||PNkv|IIHasw`C5(`Z7I#W(t>zdwETmbbl@UOvdBn zluRRY{aCy#cgqPNoWTyi5{9IE9Kb1?#RG9NO>uL5B5G$2T0gXY= zNTz^zVWxlz6P!qLbC=~+;zjO?yyQqpf!sZ=?z}OCQXlKg%3YZ^1%NOrQl;NO%3Y;p z(SN%Vdt*`sAI6LC?5CXqeCot0@Gzbk>9)2Y2;^ z4?uJKt*%3JxfJkU@zf@S!g5NYHCU1&m>RPTyLOg?qjsVTQHdqh6o{aH;ylY6>;uZh zK?SEJ-W8KXh0j#7%UG~8o|^lZa%>l55|>(ae$EKhY8QML4_dF#9A_l10EesW2=)Qy z=&GP$VvxXMh`hi!!YcSU9;`(uER7RGBa#DFqBg7oON+$7Ud$+E)rrXE6A1ql59%P? z!Rs>HSBZv=cGUT+V{?a;C@UXS`6g>^F6IASHj*V$m?^CE;UhA@rH!S_(g zN3P(U#0&shxzLoN3k?4~q4FM4Oeqg$J)sr#j4Dz>EmtFg%e9abw8Jg?qy>Ev*I#by zjsFH}0zDoDXD5P%>orTi#9U!fIX2;X)h8`zlL)%J4D+dFKvYZctAX)#>QFMcf1`Tk z6No>m1O98G`DkOc_d99+2E0&5 zj0f$jc+mGP&37dCJA>kW4B?&%Lfo1gh9Df{?)yan>ola?^fFF zufk*U4Ih&~M{`m?ApH1GT(8KXCZ%`@buMR7 z_;;gB+4(N`BA(g{zU>Ebz4C~>sqa9m@E7P$MCg(=p~CbDU|{oF@MeyROtL2ZDPS%X zE5KqzNt`@<>3M%^_}vJs7jBLGN7J@PX4r|)ZC~cI; z{RtY^j}`2S(46#B4hCw3zm34!j5}OS+ZUyY8UEX2@SUAKkb5L2_~`P4Qx$tu3nr*1 zN4i~fBeYx!O8pet&H8MB>rZZqj8~b!R@x)Q`2P>r4@UlUd##R%3PEh|E%nISZ!kSnf%0=<|YjBww3UqcXRTbd` zUayb&A;;6W%!P3k=EPFP2*rc3G4`5?&wESMk1?b-Bc!b)mF%GOC$YGSvgB*terj)p z`kB5}%9OO>ZR?bamM%)TNyJ2Rr*E4cBdilm#rPgQF=B-n511J@K z$As=SF-UF?>03`&f*D|u0r9`?4ludN&&V3oy;hAkDmZemxq`(?Woq!EVThMwkO~lV zN3VlRWh&%G8KhE4&Smz3fsIiG%;k%L-nWdJt7%3fnH;8=K3zCW`9Z8ZIMNPNcBA{_ zCjS8J{eVj>{lTRfrm(QgFl7MRS6RQ;C+`^aA+=0(Tsl5Z4Y9)%8n+MCk8AO^K}HW# zsMbv~dOgr+Im!-G%Fy&M1TSH9A=haO2;En*TE{0J3lX62_8l!Tqt~T%@ZB-t)rQ3KzAfpfz!7UyAp?Q~Tt> zR6PT~(jQ(M^T{v0wxuz@6Vg8EDZJ%Y#Qb_N>)YpXy)uR__pGswQ>Wm^m@S@S4|4O- z{xp3a7U9fME)W`l%Yxr<4vWuH{Ou;(9f(!RgKWW{v1C(7IF%~#?x4E!S`tcC10Le@Xc?mUP3$ z^y667KSANxxZtx`$_)}w-JC}5j!}`DtVVM(odHcGya$!EE+CIor_vq7zKaRuRCXRrLu=CTxzCYy+iWD^gIA zw!wh25S5$wJ}w#A2sgznxfZzauSDz|vn77uO25Oxhy{ZzVzpoph+Z(*1FYV$ROyo} zPn}sX$mown4r9TfJd)o(sje#nZ;wO}=VRCTd3DVp{M;1QTLY)p;OioF9lz9dHaw%Q z3vqqL>*{*(C9ZR7)0pr-iR-cL)b%yJU1#t4IKK^g#^QSXg>sFgJjbNu7KV!!-QvDT z07tB6$!L{#GFmOMAyE(2U9PDF@=BJ(G(SX+k=Mx73L=9aRKb%?pC^KkPK z{tLRq&ViiQ13!*$9H9kg$HFJ2Z7j7HoNVI?E{XLHx!DRzZ@gVBb?bO6tU{Cp17lZ{ zV;J?NP5{EztYAotO_)NZ7hmeZkoK|E&YKd>>al2=yT?Yga-HJKkllQZDCY%|e&Ix> z18uT-|4Qk%23pKFM;BbEX2x%iH%+|?PJ_M38)1 z`a2M_8aAfD$y|k$+lEbKn7*urEt9zxXLt=lc8S;tB_MV1Zyx(k|f!>z1$SoF$z$5Q#9i(bi)z36p1Q=Yx(RiI66kh;_((~)Yl zg;?~;s+uIp@$bN|6do469*ww#V_%ZBHhI5r%*3x06&Ae~=G3~KwFV1ZS+lb2i!N{_ zF|xq*Q7W1JMW7;+tlkFLoFo}_-u25G*=_a z0_i`HE_s55>(A9-CB%kv!9BXJFdbQCQFehe8M5ojHt2{J0v1RMqzd6wXx4RwNf(mi z?|_V{D}4>ez9e%Y`7LeoKf|xCE3NBZilppJN=j5ANCZp)jc;l0Qfb(1EKKLKK!oJ@?ADu#G;yY_NGzM=-;xIAuBk{}m8sDxS`ZHOT{&egREy zD4}Ipa_g38TKzml3+4O|kavIJ0Z*LD4J8L3U~!;-$gz#|534V<{lihnI`0hTLpUlk z{ln}HB@aQU%xuDB2uo+{&VG6}ffr^rp;k`&XJA7?CgS*KDGKFB|<#-z<5{2YRw zf~HsvXdVBJ;wA1HfIM_+4y_9+;+6+r7IcW8hM^@E7m3je@XLx@aAsV(W?V;9P#O=G zfwl3Ixb76cG{WwqQDDAc1?86KO5U7!;ROc)MVV>Lth!?u@u157y+vLVgY{n2aGB##77C4R48DEVw34 zS)FL>mT$oRe`_Q&d!WElkb%N=gQ5e4uVH33BO6O$oDgBGmGk2UmfH>gXSuDp9+pjt zmfQGvNylda-iC5}f(4{*XX{&UHzXW!wO>xQnepH{gi@|^|c|jN81MxSdT*Z)JzJVW!(~qz0)8$(4MO}c)vqWAt@al3R zttFW+#3hy9Gcd*R?S#rraYcSflRpx&E!T1JRCnaCl^PbNp6uNMR3Sq8nWS`g7{u;6r$5$f9a)e)Hst(;ynpO$CJ{5(tCgt#JK{~O&9{B|V&fN< z*UsbPP|Y{wJ0`=GIUCoVdQ0|GaByJ#Q(6GZUbCN4SZDh^^beCp4bhQoiNR~Gy!pqak_?sL>^ zYl|aJ?gt1zlOL==C@cexnlCI8&)IzssO@rzK}WH)O+4vevCs+siJ>|kCfv!q3FyY( z0AFwNg2p+SiNIKfiE##JmN+F#v7b7Tb5z!lOR|t+US%xF;E3wlFHt264#%Y5DU-cd zeh90ep#Y!I6UUfLj=J%x*MLAf3sUifTQUiE1xMr6aWr_nN{lj?3ru`A>G(+iqO^L# zUu5_hfjUSvbH+!?&slJSAxgUZ#V}J^1AIZdFlY7`e8$jiVK-g6En6TbzQsnlWc5y_ z%IBFSK8Hr8+d_V(fZY~)g3UhIf!nos(=y`Tx1wVR>YwSh{JAsiwn#J*p~RJ%_lfPc z5b#Qv6RC!u+HT7e77g|T)%#$nAs*T+k?L;C)s?@+-yZS}h&tasKY1Ip-Xk*GI zQ8_OjGKd1nGT}<^MXy{ywWL_VdaJCOaOuyxZF&$Y6r?39Ert}8P zugF-poHa7EjY!IUX4&L~Gi}NdV^#uX;xhx}Mmt$~(aB>EOFDTuJ8UQKGE_9L4r@*5 zp*V6UZytoobn>o*u)JjH5D}LUFTzgVUHkZw#juevON+yotPC4Rj>n@?yZ!_`8o?jm z+F|3@fZb$2+7qn&&JG)s;B%8#2|Qr09X38Ju;M=Hd+QQn&NCg)4Bp~ubjVlqKS<9*J1Ne%Ppr+m}UxyW1SyfE}yIqx5h@~DuE zOP^=dQCR$SGk&B4gmZyQZpBRnp0E284O6!~UzfKYxzMVBg{^dj6XVk-vKAhaH2j8N zrm{j&-2Ve!RoSFaF&=b~AnaZNFKk)3h$u}j7+j$~Z(F2%0XyjK+$BA?f#2s#L?e$qksv^th5 z=iq^Al=~W7>)vUw*y9Rp$LHEb(?KA==^z}9;xQeBOKWKHre(yv{3+DIwQr__&<^Va z%|RIwjYKGMr8a{m4&AGB33!cQhLh@uH4WOY@vcRKuYl?f0yW^AU}LjHsyhf%Yiq9k zVp%yZ)j{yF+E5>q!FY8;FR=%27@D7_XwptA+Cbkm9RymIC3iA1Svn8(^As(VLlG=J zg++j7j%~d(bDtm&SLdM!zKWlX?D9@$+QWsgM{ef2pA0qGDSeiLLKhn(c!ZdRY zi!!d$a1VO44X-~7)g)(JTWG)E(bqqpsHg4`JTY`zJqmE^|smuCmC< z8el3Yy9W5bU71SEL2zdjUwGl<`U6Z}@KGn%9CXw27CsHj7*Qu&IzDIJq~hVAo7-?L zuW1}~b7f~O(4NjDR45SNV%PZ5E-T~YYqYnQmS-xoiqozUm|Oz%fU@?c92Wd z4suD!8sv_m5lmz_$Q9@oLaDn^J{(_QkjuQ-BC{2S+n3ulWrYLDES!yK3D&-& z;VYw(!7cBq_XHNso)#8C=Cb$H?iN`%E7oP|y|11@SvV`HWX52F^ETHkoPB(OvDzC+ znqPqD!z`TLwq5fbjM(Kd6^c3dbBAU~PhtZDf8&f4RK3umQ7_TG-%oI<-_q21wHA1s{h@s(>9&KAzFbZXS%KxjOpmRmVJw`ruwJn`p}MAF;cQ5gzEpa04Q%o4 z0aLMXR%oofdg1K&lQj(sXG0o20Z#hHQ?OCKC*-hj*3#f6si|QsoVBnvqjxP$!@}8+ zCT5^dp?S$NUip?+qSXV^PzL`HDS2Hu-fw(w0FrD*yyF2 zoTt&Hv5iEx2>K3Cz1s6PC{w)tgLoaA)t<*AX1&_;IKY}?2`W9&l{ zpSM%gA26ghBcxp53 zPvc$~%xce&fjv+s7=f3#FqqYz!XUj<$+-+GFnckw+EXk#$f%Lb_I+UpJEW!~5_U-c z73==#Wjmx>(Pq2JB-^^3xO99j4>KK77MAId&b!=pNaN_YXqlsNiG%4NV>+ZX&U8qd zTwyz;RO==gz3x)JXK2Io%FuL&bST!E*$$})l21#g`;_UBG6hcNF~GJ%Dl$x8R)@4O zXXYc!9<27v;N3$9hd=P%tks^S!@$7Rp2tC{%zu(Ivf6VwZk^f}pgD5<7w~IVdy?O* z_WWmFxZ3kUyb#0Ho*VnSPBpIfG{qAxzKpE)?2S0oYEQD2UF}(g$+fFJdFNFplsXa0 zrKfQyb}E2mNJ6J})F37d%jrza*~{r3!laH~PM4v^X4Gg;t>AJxYYLXr^|(^KF0h=g zO~}pHj9E^Xz6#r{Cmb_InlUt7FUP#^ zGSRM=Yp@vovkI7lz5!TE7dNaH(S?lFkGsHQn*2_(u zg(44*o#3koJ_*sPbkRp7kIt~qq@FvQ)Y;&!HJxNClOboJe&aAyty=2I=} z<;dyXOD%Y+FSrru;Zx1Zm_5wwDG^B-UYMu4&M5m- z?+9hS5}ASEGfy=umwBppLPifWsn$(0di`A9I@%61%h2>w-QtGGQ!Rqz)6&0ym^I8~ z3Y^TMF_EWQWSG9Jry6zUr*X_5Eb3yJF@Nl$v(TyPHYG8#7H2RcuxoL67xk@TEsj8& z+CV7Pc`VE*K+&Z0S&%|<{Na$1+{B`;6JdgI6iS&UZ=`nrdi+Y>;nc!fIV0}Ub&PG0 zjD|V1kvgW-p(Qw#F2;;lLlY19AALlPr-IG4gU4|!K64+T6*_Bi4c*Iuhxy52R)eGpRK2eg8tO~+>oAXOhr zmdps1bAOA`bQ#y)A4a@s8F6oq=-^^I7F!hp=mL zWH;XxbD$>M&DRLR;&Nd-ATMlQ7&l+7oX#)81}<5$?F8Q@<(Diy4n4AD$+}#kOO{%q zC*=ga)+*;XmMnb^b~o99uzxmwSvR?4iLsa^OI6mPp?wl~r+5LHdc%GkUe2s-T(We} zv&svOB}?Z+3%&#{5p{b`!`$Fayltxf8gCGw_$dzBNhOO~kIn+a3Y+rI3Q zB_Xd7vR&GOB}=!w;F={%l+}s0OIu{g(#J?@w)34CA<$~kQT1AA?5@Z6=>FOQC79mrvA|}v(kqB5v(+ZGW4O+5W!Q0l{Twjl7aUE)+=qI z@Ea9lW~EKq+T!?3j9F>35?fDZ{sM&qjygtIB%ZTp6~*LWYP-@#MSm?$*48U+R6LT9 z%mv59!j(3XUQ+SJz+=?`V6xIiaApZRYg-PX@6A;->~GjrG}DnSvWkZ2|FMeZ4rcjG z$;ZB5>pp!tem?-5?O|!*DjLBUfnG&Z@{Jll$|@Qmip~CBSS~LpSw-{IpR6}%NokR^ zq`yN>Pm+<oP5=Nda5ZG3X7Mmh|OswRqFqY;mui=-7a|Wm?h!KZPx+ zL?aRsSE|X+wk0Ltt$-O$D*lUYNq?ttf(HA5>Pa$ch=(>yq`D>DdBC=$N90m1>07_r zmXz`87E#5s?l(>I^At^5L`7TlyKPBnS(e;mf7q5((L%Yj+dkoZf`6`}G4n^teontQ znUx(A&azIRa}|wc5CxKD!i5*WmHSzcXoJ}RN*jFVceV{)iA?t%We$b|fg`uU-SD!x0N^IS zq&>mX91XY04+Q>J;Jb2TrbGL9gnM+JhP&o(4Y@PDllnR2iW2JeexVj*%jAFA+r~-@ z8kg0fExSyF4B0C!)=^RRG7*6`$!K8j-@2c=H_7xQNpk$>@GCu8>_l1jkLK8yWYUsv z3CBzLm7c8ZM7b^&Q!7E3XIb`zgBGrD6rV$`iEI>t|O~I6u(Re7kjjW3&t$= zxUP|EK(N?jNrZhISorGVVvoO@;qwV=aa|)m4qDu#L>_EyuHjSSRYX#ZP>VelwTPL; z9#N5zr5dhRP6TzYLu2G!)|OB{ztSeZ5owca<-F6GnS{k2>|fYS;!XBqkI78ATKmDp z9=!F)6d7|nNrZLM|2T^3)pm>G8u#r#68YJ{L&}LDqT62bn-P6K|99kC+*mOF2|{-IjH}Qa@W8wgOq1D2F0Ar9X=REfAX|X@Q@r$JULl}t)iVfl=;F+f9fix+;U7>#b}yZQ&Y9&C5HI`^HV9P7sZrp zFaff31*bEy9f(%j9}#L`goa@qhgQ@$ibd1W%n*KH5>%|MqnM6$^6NU*Hqlr`DA;3Y z9ilXeJ#)#Xn0(19-Pb5(PJ8{9F}vG6g+s_ulIh)UW}{&oXc$F7Q2K^C{Wv{1_5mc_ zS*lr z@TivHT?1bml?>{?qmIK)kBrq_9>%!}3i+w_^tWzs^1GU4bnF~qQE@&67M^LE{>}|5 zzo(AIPTv^S65M3qaZ$D#j4 z!GO7#BYkI#g<`VyZNU8aditI$xWNbNeC_lseNKrgh&h1i8%xiLa%cVl%&)Ge?=!_I zPgth+hcWq-dU~$LonQ+fo`jm7AG_r-ldbxJ?1dV_W-YzT4eEZR`4+@jeU!P1FPIJ* z&(==gUrtBxt)VR}FV|r^-tm-sFe2v!%MH9FB7%>1@4z^c+{?4LuQBkdEbeyz^MfPl zb+MY5Wz$tOIQ?S{uaDIgSn@G56EHt5p5A0KOrDXdcL^JFx#~@0BO@?7tIfn4D4cdLG)f_CxrJmUxVCd2ehWt~O z0bi*8Ow;}?OA||-%-dl2y#&H8Iz#d*&tyK2IbX0w=4(imdS<4F_;V)9ASbfvi3jU)M=ehV-^c9^afSFxsB?~cjG4%5{Y;+?Qk+6Xi@>}I6* zxak+cQu_&EbpyCP`&idI&xUxeNd4##)SALemUC zfXFo$=_ZCMQS78g0e0euuTNa1gd1pOmMZ*V zA;+B=8fvPQu+?M6S(ZTnwlZIwa{EvfvH3CY&>G!v>joakWu} zT>_maoi9XorJn}1{_WuC5SPQLI8m+gOz4G)mq1LV$H$A7;euI_zBBF=t;7v8E`3)# zQM48}|Lz3k?s&2_`O_2P$@nKorevKYrP7DQZ&A2YB3$>zHCqzAPVfUbq$4paUI-vc zqpz#!{c9*QPGl-V#!O7|_^W-?jrFgSA)_ZIsn$(0dOfwc-Oz^Tm7(d0$;=A8 ztI#~jhaN?cd|LW;5VIyGnF1&C1z@|}KxCM{tcl5te^@BG-xe-vg8v&3SIsjqA{ylG4LX#HzlD zy9H04N2s^E zD3lBu0TQ^M`)J5rvV@#hx>~=w9i(qPs&y1L*kG##dy-<;7_rPo+{){HxPgMxHs}t= z2$vo3SW>L>;~30KXS}nUnFkhm*hd-V%nc_~3oig3oR}VC@O6wd^DuBO$V!hl_;bY5 zRbSTpQ(eg>kL>zo^Q@uGjMCK0=E99y-yBV&IxY93p)HKkM9%*OY^=xWZmt|)B*TMq zT)!G#kkYT|>iTD{(=S=9XsVS{ilf8abZb|wSSneJr!XBL5y#U02J3O#IT!jefGP|0 z7a)F4G<~{(FluXz8lncysJSw5?g_nm;LM8U)no#g#TYn)#}1rvZ3oWCVl!}l(}*|C z%@+3p(Qz57qZv3Ct=7*R2F?+|z9e%Y zd5&V*pf~kW+Fp!|6C+*k#u?2yn}Nbrsj-6hF%fkxSUW8H0Hm zQ1RxR;2*GXVzc72Ii(SnyTQUYYQ-rz!NqSWKWfE|Icdln2QXsfpwHeq%E*6+*7gfpY*~@!Lo~X`OF?RvRTy@#h?7xz58%lGBHBB%?hNSfOr1 zX1W#Y$81U2u4Bc7gTzUS8o*Wj57alG1>a2bsqntENbLO=eTBj*_MKPE z8pFxjrej}1Jn_mWeG_xOL7o(5oSJM{SW<to_VT{dD$k_^^en$zkQOHlv$xDg6X= zI-Cl7hpI~3|Ej@0p-{Ug0n*=A*iYp=?Qz;w|4n(@3j3=}Xg3=`>US7CK(SGS)9yGR z^gR_0jH0&z72c~9x`L(O&iO<04vL~9fPRVp!l8mX?S8<`da4|zfy@3>ZjQohm7Fs0 zLxYY8QBN6l;lY^mKK=`*C=x4-)9xFCP7P7DL8IN|Lt0>Zgv3sc)2`}YYWPridq{HH z%{S zyW%Y+v_(;xbXM^Z>=<5AZeb-g2xxy3+%D|(7aoTrfLRLdHvnO$zwmgCVC1lGFDIR& zog%*YBAuceUdA{$Sodw2PSN?)7}WZ%OsA-az;giWPSIY7<5MjHClQzK6s0y27VgX# zz_wFFPOmrFOX}WJwo^pYpJq$sBt21=)h!2jr1sL69OWOs_rW}MlbB7szg zqBe3>cZ!&pBuSAD1v*6!8jgKQrYqUOa+prhCME@)BF3#cMG}EBzWHP??li}O77X|I zHPiD|`~VJFIA0YK=7@G0R&Ks3n@Ov%^Hrp3%Q;^q%nyYa=c_EHWP_ke+{{-!2F?hBR>b)# z5sG!Q$~j+Uv1mFtUnPVMVXU05vY3wb2NP?XSR_^v3aXr_E$R@ZN$iMJL70eANKxQX-E3+qQ7N zs=r|w7Mm_CBIzFj3mZbtSG@=pHh-9}if9S;8Ti_$WKg+kT)x4F`Kpg2aUO<3GhcOw zVHq9!ClY7kgK)koSuHN#;KO`XL`%@vz~iEl!9c)zzABQ4U@l;O#UArjQTR>3dcG>-nk(cjkA%cD~A% zyOXI?BOcCI5qE;#fb@J-qt{JQdQ^t zt{6mV(9baJD#yU`&}vp0u7l;cD#`!!T)<|&N@7ia4rDTC zurOaG@^8MuDtQGO8;)=|UsbzK+|F0o_?>hwz-GQmbfxA1(eqU_U7j>mb<iH_s{tdG;byO1#H;OZVlwy)R$*%Me(04hQ*};63h!GZ=W>^6RGhZbP zEGF#=&TSgbSA{g`)TOTg&CFL>#ZG!5U^8FEk_~66!Ye2J8@SATm2gRgN@v)|NT~TL zRV}UoV&G23lcd=BD&mp(Dq-`91><3cp07FsKs*`Ja4zOtoHaiW zcGipU=!moW-$KW205DaCyz}HoB132StE1y;cFXk6!r86Y*yjsAEWnE&j}2zGs%+ug zdn=BBvs+AolX(fSo!t@{rZ0PT>&Mv% z=Q#Y!?3O8Zg9Va6flw$Q{mZ ziT-eQi?<%tMrOAJyFoBJyCq_oAEDgNZV43BK0$X+M!4**$C6^5KOgBgvs-<^VrRER zIdj9wECX(5w*()@NHf0zx3gP-@l z3!IlSPpwJ|-y%+?IcN`&&Uq=zK=(z2EB!iN%kr+kyp&;zyedLgPhJ(7j(D#;$9D_o zrH&+!9f6Wc9iD?v0^@z2*qJNucOw{4FR#8_J_xCOXbEx_fO}2Iy%Ctix5Zp+GZ(vY zaYRM%Mx1~uAd_5FFY8~Yp~|hsv=|OM%b<37zc91HHsQ#VT+cwL%p_L}2+JfF(;|~x zya*?`Rvd>f^3b2dm}QcS4}th|u6rNPNA1%wkaL2O$D&VH5$2qk{}o_2$>SNEV2y#> zmk0$1|Z_Kg^{hNjQiV zztVWa^-~*h>-jKdSn?R*@bGI~Kjr7cBmy%Z<|AumK8y*>GCn#VMq*?>tSV!%^I^P; zrUCO|0;x3IXDm$Tv+RTfrvzjq4VVwxWjG4+S&Yeg)b9KEl{Db~G!(+ht6w|Eh`4oZme2QG_ z`IP_e0DELU<>=l>cqRNeC;oey^3D`iXRkb-3`wO;N>pEZ6tRc;?R<(LXMKoQf&2(} zO}@>u=Tk(lill?m+bY!3DMUO`URtl7&WFy-hmh=)4g^Kbr#yj3h2qp??&|rJhYbDv zcSx6PsJRoDdOpQ8$(T?11gvU4B~(>fDbQf|P`=$c0NJy_e2OHbbSeNfpTbn@%zhal zoi2JlMU}wc0M&d-gtJ)&V?voviGbq(s`-=%_%c8>pYp&*Ho5JPb*%N6Phq{(^C^EB z)+^p3t4euiu(JANKBdv=${|wNJ5*IV)PQ|Lp?1pv>iHB~yiU8XfZoqc=&v%NU7h;q z^{V+4VWS48-5{WPJ|%)KH@sJ=!n}~B-|l$W~=2IfN z<{9+P5Y@VzMq1$R2ubN00Fs_h5nZh9PU#|`^m^#|6e-E}Uja1pDVA4tx7v5ZTguF* zgf!`7VYs&xFBO>^v27_|Vv)9V*2ic;gTbekX-og2F~M>Jo3_+p(FNZD)@^C-PByWM zyAI;gZD}2Wg*$U4VB40G(>sb3H*;XM$L_o zA-jRx2PE3K;Im2ssmA42xJz^c$;1dL(zu|3eBW^FOEO)_pJ|gcKc<1aj!D7X2;)|b zi$tJ|ua$UVI3AXw=iKm6GwwQ+PtYH`TkofCHN7;3(ML69Ms31z< zq=;B@FD6A)`jkZTa)hW@n=GnW5NtE4=on1}^*TY-0Xl`}Mro3ok{+NHU91&4!DYB* zt5eh~R_9aJb}0zI+E=RGDf-Y2W*L?%Vx5Jh4YNg9*z^>AaEDV{v!CH7}v?@A5 z58&JrQuKIPK___4&{pZhNzLym5jsP(+?uj-VzQGN4hD8iiq@K{npqBruiB#Dj17Ez zo!~3rtIq;{Ft!Kp3Z2hEoonENxEAnVF}^|!+#m1)zE1v$JsE+Q0LI!sr^t>v)B*+Nd;)!CP8rZ8eRRQQ3)x^uMJXR{_uzu6- zyP26I0DD*9(((DtS#jvlZ`wl-Ti`d{V`Tc|O$%l26&Ze;*7!|%Oro?k@SA!tMEgyt z7T>I3Jj(N#F|^@%WoX)O+7k@cZz_W1)6$bb%<`Ku1x{uuVCy#(8Ky7GZ;Cz6U70;N zgs|>+`Vhh%-$xE1td*G34{ab%lQ#J$Tkx~nz!^8-7$!7*a+>tPZ}mZh`ZVbW_kv(f zlRoJO-0(E%KRd+DY0{K*lc(dzL?>w0QNzb46x>MQv4Hhy(q{qC-2Q1l;eE3d8gZKR zQQb7lDT#~0k`%#IH=w6sUt>Y-L|>v3OKPS;{lt})H`oreQ5W!@mgtEWnX6RzZ0XtN z7VM0tjyqSq_i&o@wN{<~(|+~Z<7v|88;&y)qrjn+1a|=Dqlwd`CkiZvNTY8~lYYmr zG)~+Skt{k7Um02j$rg$I5vy`gTyj>=Px0V9u<@`p$If=ypqO|ZdY2jZMD(7j^7E{WDcZ{N*QAJ9KYyAr@ z*FyMe*7>SY$7$04?6LL6e-br;gUN!k6Tyt`nx$WYZM`YSM!%@>WI>xm(4~iJy>Xg! zL`!gsfv=281}_8V^M%u-$Am?YaeJ!wxSS@KzxtOY0{EPW{eZu2z=mcz<*8b zKo?Huz*nUCf1@PLY0~vC)_eyec6m&NC(OZW!;r{{DEd(%IcRA4Ibouduwoc>N!*+! z9br(k7Y(iU{}66|Y22J99f_G%d90T>AOj2=;X5xVjcQOd_cBd8GfI(wY5mI5B;ihG3m67th*&TPtE8nwntX%Y{FQcBLs+ladVn(o9%S zkJRj=MR1yQNRwe_`X10YQ_Rz(ZS7S9;`E<}hSQ`&nv96kz51%5EKifRG$*~nz&K6X z!rF}E(X4RvTY%G~Lz)`>7UtY@CR!z)d^-s(nH;0X<|%UW?PA(_dNO5wrTvz{d}}yO(Q4YUWz!>$+u)H zd-Cm6wz2l)Ti$uM6H0xBW>?;dhhnnp*XNyu68ayf+OiO2dVuHL%Je`X&cn#5-%d{t z*ss8|t0688b*k;CeJIZ0{^nu*+*#{pZH206V1pVuRP1zr@v?3S%{2a;7Vy94=#m~bz$LQlNULW11nf2sH( zT;hBVT$&CfYlHZ`(Sdx|$n?p3GnDy2WIh6)=|HkdnGWR9t!xL9YTYEG*ImGlhBiE} z3{7_+ZvlhtK#CywwDcwrvpSGWfs=_L<+cMUGE84q2NE@*0m@5e5m=i4!^7h?B{4FK z@ChTZvk1J4I(jgRAdqtO+(0u5;O$E1vxtS{_`4xvW)VI#9EJHT?d12=?thJ6$vfFq zvko23?C+F6jCY3AK6T#h*N{Z*Yj10xI`8&GR*+zufz5ZyYY3czQeFFcp%dsP6?Yp0 zcg>$5uyAL_0=Bh}oZe|t`@Wo}9cnzQNOoZH2zPO)3734QoDd(p%V3FQH_iW_*-c_3 zyYm^3&2HY6$!>vEc7K4!RA)ESloVON05T@KkB14uQ7Fkv7E!xT19f({K6$#Dv>~Sa zY7&7>gA6(_sm{K&Osc=!QP=H8x!Vz`*On%-UyaXMfkz%8Osbo{I49M83>(a(daRQc zZ(2s&tMVgtj6nC$Osek%uRIBuRF`NZLWwJt>8u}wt8)o>-I%h}aG-ipeUC+hcYx~C z{-_}y+ANXkN%e+ZG}nHytQ?oLc)>hy=}C3Qt0%`L_TXuB3HAdyEXY`3>jh z9``e!#b?CmC-KXQ%X4!X3mr`S)c4I`*XQQ8i?CP3OP*=uxw(hIqCfS$5n9}&im1f} z8txwFutULmBis$3=}&z}Mb;U(S2+=TZZ4I3n_-G-HKZ34`P8?N_X^n_#ENrs4?wg2 z)Hh{SqVbw|1-54&`o_e|p>Mkeshz3ntlXb3ViDl1-2bBpu0(H2&dRk#5Irk*6Z1Me zE0?$497s4aGBao8zJ=nJBAOe27DPAsA;tVH_?05US-G}|a8_=?g}R95$G?lPpJ<8* zXXVZVixklV@ml$<=9p8?> zBWL9bd4`Z}5#g-dN1$1MwVSdk(I}$xVPtj@@e^cHMEfE|)bLdd9-D9I#g7f|Mz2|p zLF9{&FMoL>%Jbx5JK^Yoai`(PLHJoT3^FrDio-VR~jAI8eP9TwBE#%JnS+eBj(p`fdwb%@d=_RLDq*1-(f+aXGs)80?NF}puP zcC)?ZS!B+=nvr`uLi2h8mhXB@lJM!=;8C^w#XAHbPmJ(R< zF_T!R)-T9eWRhX>jAVKm{4MibRD=}1&jZ}xL7xXS!_G)` zR}7*wc*`*CD#yU`&}zoSnLgecbi}ZkJ?d_2KPv<=x?(L9R(^mm8 zdpksa$stzBqJLHQihDb@g2kLgX5+`nWQ)VS9il5W3W(m@LDS_)Q&l&;86>l}Bch|` zl5lT_g;mnhQ$RC&J1osfzi(jd?Xa*CN!5PD?(JZaD7qvlHP(R!Ye1;b$PhAL%5_urI!FUdplIMI1I$> z?T9d5iq44H+Y!QWwLCnLJtEB2nO;gbSNE&ThkiKTx>_7`Tks(-PW7eOgYggIQbs43 zt4qRm8Lh(Aa{L4>(Q9Kwk$Mq zRFsm_gZStYzG(CIOAaOfJUnence4nDmr9{@Mrm6In~ z?@G3~H%4?Ehl*spD+4C$$`9{~L?aRsSLzMWr0!pxOTeqe3{9Op#d=p-TQpbzRC`yb zAs*T+k!tTs<(sW{<%nF8g~2>bJvjCjyJbPqD55M2?g342S)gTEa;GAb z^_B%i3*~&iX5_7cqqN>%m~a|C0B;z!ESRTOrG+mA9Hj-?$E0)1f@P2$1(JQjg+gtP zyb~V{0rAmHM5$;WO)d(+tIpgE--1W>(fk)eWqdS+5EdT|V;3I{FG3&98@Fl4DPxvZ z{j4YAIQF%!=5=6M*h zHNS~Jw_^y_yaq;74ZEXj(tPa-IuBNUtepo<@y-$F!QqrzP+z-h0hEQ#gY*F0hRy@t zddCp+DN)XOAoLeul;fX!w0>1bod=e#l!VTMkWf{$)39>RgKQ?P!a5H~jW`d4*$*)~ z4=ko+gCQ?l=fN4^j4(u;2O{)Lw)4PZ(R9#xAcXc|taKh&Ovif9M(aF?#419;PDASu zi_j$YOw(5)&I3`(oc2m`ncbDrx>bSmV7g(X^T3+w1p9z%=fOfqy2*=ZXmHl6)_E`< zx|E3HkFFFt51ueA!(xksMI`;PU@^{v+OJvXK}1V1)WFw9C4*-Gb6F*v2L~c?PJ%+? zJm~nkW*HqjHqTn?PX&u{9_$9oaaiMsgCQbXg1VbDJT593TnAVm3=v60@DgC{Jcz0-YnxhPz7-_U^b_49z?h^?*q2Z z16%G+rs`V}=K*mixE7E;7@}L!6s1RHj(-|zi1aVuJb1?NEr_xDD03BGa2Pc0JSeLp zXt!C@7M7R012pYC2<4n$yMdQPM4aH{E!KGuyHJr>qxkM%=6Z@~kGVP`o8 zQ5xiI)f#q{V_V;!E#*k&OLUac|gPm};Q&I6Wg=rRbeu=9FH=sXZEsZi;~fQ|D&Rg1rY80SHR@gj6ajPoFb;XIhV znq4h84@@s5bRL|8?g7TCtE}^&6klq_5nzD5j<|IE^KmJ|AUF?t<61gTa2_1@gmoSa z4`s%R%mDBi=fN;s8|Oh!$Y|#Q)w)SWuZRD$3~hK`8Jcz;d;kXPJP<+hY3UP?#4P6l zQ{ZHJ0JhEpkzxAEIu9zL_ae>%lRw3#7Z-IN@EKFigAu5K^0aB^fl#dT;NC*xJlOr5 zbslVkIkDsp8Wnc<;5=yfyk_a;ekLs6k|nqmuy!8&5=sWU4BXHCBjgU92ckc89`M$q z+KBT&FqcnBiFF=`Sf=p{5$AzG!E`{{dB9$1EGgFcw;}z;dGI+{?0E;GoVnp-TD=%? z9tfVxNHdQBx6T8>J>u!3HiXUt%dVfe8HNVuK}b_iT>7QZd0^FPxqA!^&V!I9a()-Y zYMcj6kwwx+hV$T3;L^Cmd9bNs)Oj%HX+A}89~`oD?gkE5{*bmT&c%E)6N3|-guUH zD)E$c9*nnWa3fIdJfMbnXtPABodpY-kS#l0CSvwCDEtK>5nla9Up*Rs>D^CT0^MJ+2v6o56thW zEQ2@?B>RL5qtF`2J8>Qm5a+=)C>8BII2#4vjiJ8qEqG+-!7~sl<2>jFVR0TXc5xo? zB6J>1#>+ugT`^{H9^WgL%L|OY?{swQYx6Xq_0PqN)bUlsT@fo}k; zod+G!y*J$N8n|oz)dCB5rY=md&I9W8wo(hSW$ZKBc|hZ`2Ipm+2V}^09!#gAZ0CVM zo5XqWF$!2a515`LNsfO9ex+f7^Wap(EgbujOj`1O;h2fv(0OnJaz&g6%(E=}qRs;n zBhG_IsmMAHco#Jj&I5szna>y_()r9tAvyjE$cUM69vlx7wDW*@np{Wi{%ZVM=fSNQ z>^1+3KXHt&n$N;d!~W=+)Jn8Y@yj4sbTAFC8}S=7K2iG(dYlA3q2J*0fw&F*2E6t9 z5%Vcg&Tk;}-(e3vBUtqaegjKaNoi}uL!PMhTwt7_N`2A2rq-z1cLHsYxw;;yqqs&!&!Fix*zd>0Y!2^c2u)N%U z(6rwmlyibJ|JLx5h=>#14OlNah;r{X@Tx5C`u|wJ!7BTpI>96Zua7+?u;gRreZclW zNy#vIMlz@Ut8w}b1Ygfw%S-`o{RS!{w*%6P4#L{(v3{uMEoggKGwh6&We}yo8pE)w z90SWktEuKBR6GaEamhm;ECPe}8!G5q9zk!Y4Nw-TR?17S^EA=1{?Khz5@)A>3H+>K!<2Q)t=$WHo94KjF zm9+Hppc%h`r8((zu7=?^u&@$IT?LvxP?ANW=#rq+tA^Ad&Js|zI2olLOV+_}q{9clLF4bO-=IWT8j~fM30V6LT7{Cq zPX_MiwhOsKzk%ov{RX`Cs5as^5bRvRtlvPyGF|sY{00IAj{?$u1NK5=NwLm<1?e|_ z11_<)egjd?+;B2OfZIg}f?vo;GdqA=zk%SF5Kp(+ANma}yME%{HZ=GRLYjKwdj1&t z4XipXx7*O*HwbAW=g&v1td=|{(e{zyH&_l_8h7{&4p)!*4KiQzDT3dCl|%dn-=TJC zzX7X+_bTfnGsp2+&E%2G@LP7abgtOR_Nd1zdX3 z0pr!wJCNvr9E%PF+9ZC1F?fo!-+<{6lH-308EIJHH+au*>`O9f$$g+X{ulU_ zW<(Ypv_SI3Z@@guvM=g4ATi=M_??QZ-+*^fGvPN7NSQeV86ak+^O=!C!g@!@h?(#k zY%?5%lBdZWW}WZgSIp$1gXS2?HGh^rpJ9~Nd>jT@4VR$D(tJTRd^$AIsxIp13Dqhe z_7l$Zn%LD_!>K~-gj#O$tU=JG?&_#JuPvby+k=67Z%^>M;XX>L(ucD3v~2sUa5tIA z=^8n48txt;QeS;!SK?^D3dm-nXBfWsaQ8crMq^=>Mr(FQbcs`eHgsybxXys%_*Nb2 z0J;gcsmg8+CPy6Sd;oG&>w zQTs{0y(^$2Ech3O1(o1KcG1Zn{Tksi3KNvk0zcpKfXt76#nmoRtK>Q?cpfx z0BM=&pz%3BX+4G{B13Vf#Jdjhz7SK7%%vA2i{;}sj^dFNpeQeasfm-WbBnL3<2rXB zL6HR3o&e0Lv?T*Yqp`-CYSrBab>}@FLN96Pbwa5fkP(AlbvFYLS;d{Y_;gL$5+R9H zdOJvxl=rnV$~vvOmM0-RgBz^y;ny0tR>g2;EnJ>i7e6f(R`k zwga2vPO9WGdaXLxW8h;nyoTJJW{pJr-?(BtD{CtiwMutk&dsQ1Wg4^lQHP~58*`cd z_#-b&V|GH$`X&%5exsO%QKR}uQnT(2RV^?6Z_I7h*W7H4xm||f=1&+?{7$TDm+Q>U zyRrN(W6jNb_$c|UxcP@{@5d(KZ*)yYz-Ws%ce%^Zw#5$PFR$5b0DPv3cObTh%+1G$ zZ8>fvwwh@#pa1Jxt$qXKf7faa zi(qNj8hz!iM!&Xl*Z&#`2F{V-s+S}f^sWR~e<8t;0}>2P459e2VhM&fmf+g+B)D#{ z1lLcMVDvHx#=I)QjawzS=@SXY{vyG+!xD_g_l}`+LM;gZnEtE;w|*$WZTlpc@s9*|77V4%yL<`mIa7jrFO*=`)e_9UM}j#^CAjYu3Fdt( z!Tf^^YBkLr#-N#GR;}hw_vKxSDgvIhT!L0>C1|}_g0pu^(Dn}r+7%9`K>HF2I<%Ca zQ#S^6?(2?cr)!U9`bn>&!p(A_n*G$BUwCorSjx?Sbub_h5n07A+I-;in{6 zyg`B`Z%Odz2NEpZCBd@qC0PEu1S{NYsq^ua1S^k|U{wtXR+mVyrilbko-M&sT_sp| zu>?;Km0GNg82zIJH=J}mwTx*d!HpM5aMKtG#?F;s+;R!VzbV0l&n1}nn*@_` zM^Suo6$z%)m*D1$B$zs0g6Z=lxNWTjGd_^uj;|%S^MC|*IisoN?uruJQ$vDTfdsSL zNie661ow@QVD5AY=FO5|;Uf|(S}noDuSoFd#}X{vC&99RBv@W>10rfL@DvHIY%0N3 zT_qUQSAwfYOE7qb1Va`{aLv;a4BaBZu-y_2|6PJ>y)o1|qM8KPHDu7JWhV*FyikI( zu8^SB)e^M6NrJOyNYG}X1Z`JI(C#G(+P^D7hc6`PctC1sU^WVjV0)M zjs)F$NpS8^3C^1!!TGZpG#T-z1lLLJX);n?3r(&UJDZG>3f5%wJHm3qHxi8bSArXh zZ=(234J89N#uOLYmRHkM%8ITB32 zQi5B@NpRbJ63lo~f;-=q;O_4vn3)(yE%z2nFsq>ivpY*LXMhCv-6X->dnB0mxCHax zkYK?V65Ri{1PhNHPh}5eBzUl!1P}F>VA1swJbb$ZiyxI>$wmnt`BZ{O|CC^9(FAH) zc7_DY+eq-(g%Ye7Cc)!(NwD$>307^E;EA6kc=DKu6o0Ck1Z)2vZSMgeRnh$q-@A7= zSxAThV+cvWP(l%;OHn{jRK$jegpMLNAOXddsv_7?uz(SqIhR3%5~yZ$kSR!R~)yal_jUxPEj+COwWl-3o{dkK8px zMOZq(IRJ~xt}r5}K+HJ#<0r61d@|~FJHP28`Y6I5e;A@jzWobVEN#$>5zaz`aL& zUxQ~s^-n@Ud{a9gAtfhIzkjknfs)O$k_%nyxc#5HRql8Cb4ZM^pD!}PHG5JHcO%Ayz?8&^`lr;jZ4ov zPd_DU&pTPJIk%M3+k9YYEwYs+=ax!4X+YGTcha&nxowu#K3i!ix%_v~00$4mjuU5` z+;Os9)P6pu#%p^dXwQ>gfr8$IM=$?l(kS;ZqWIw91J(K65r{yxZ+t zgM9$L(eY89vruFxda417&omB!VM8iR{m3WvdkI4dT>-+6)|m1;l5hY`N!f0VZv$-?zHm}53Uq2ru$W0^ zja$Bg5WyEBJX~``cs5o{+cHHuy&Cmq;R}(H^io*MVp^6da>-hp|KSV2W}7+I_;tVC zG_1lE!9&R5pkKj${OfpE(hK|9>3tU*1dtA*o&OMAEnsmSgxY0raq;=xJ@0fhNpao7 z^{F@NA6+us41Lew+uf_l=Pg1>?wL@M0^VK8q?0gPbzd(}WRI7w;t&P9 z^i{_X1n^A6x7!b#=D`=01;P(p5CHNnLQT2}vhZ35r}`D& zK=hFJqh4O2-#?h~hCbH0&}WsR~@<{lqF;9CZTFn>$t zp;#MoA)EL8UPQ-==y?!ZMbUqfqW`3c?nxJQ#{Rz`_T(06jL0)-t^dFv7`k?nX-Y?= z$wyId6uxM`uW?<;2^fOKOib(VH<_*fr`sysVwWkh+GyG6lc+ZzUkpmWrVsY7aIn92 zv}=j(T7LOVw+?w>+MWa8XpCbtOdO}6#*+#@xfLP!IUF`BU2s&opn}?}J;l@WA@mak zS8$n{Y}FOwU!pDtG1a`%pG!qD@dXYi@y(k@-lU{JDFMgLUx4}IZQ_q$sMf{|((iGD zG2!tVPr-Zg2hZy!!uSt+Fk>@PhXi+^HB;9|D zdeiaEyVdB?K|`QakjTiU&G!(P&)W&pZ;8Op+}f{4n0*~xH)-~*8D@)gKQa5y-=p64 zU68(l(s7Z#!b(S_(z8W+7Xq(~DSQbkm@}MujRYu*s!Wl8{*8La?2%~aGhQiTqMcwdlT4A%y_k2PFNYhGHm8ZKK;4V4 z*vowXPZ0AOMP--6w_>prv*{t2eBGbh4UYu-Q~09#$Dyi8!y49H#OgE2G;C2U=GDp) z!_q_!QjwdQyQ7zS?2zo3w;o@VQajzr2eT9=sZzAZ9A6{mRpHzH*z`qb64WK5g2^=^ zE~FREN5mH6om6&n)9j`eh?Q2!tBEh-YU%Lg6~tG4|G?qNONg)eevRSDYlv%o-)oh; z@c269S|zU%t|OGZOt_vplh+B~@cqc}ghXyeR2)UB@kwH8Kgj`De*dVq8A=eT=QG~`e*YJMD41~|a456Os zA(R9)gp#1{I(pXJ$F9Sf^Q&scyl?Tv(rOsC-pO90U@>v2c*aBgVa&HVF>gsOMBd(y zue*haoZJHJVKi_JWWd1~q9 zOGn*N=eGB$Z z2Z$fiM2sKoYiM29#R_BI5%}Uzh=0OkDQ3(knEY3yE3yjgeq9ma{dbNC!Q>5*uE>R8 zU!@{^PLLx)F!@|2SL7?OuPl=4&)0R1PI(P$Udm6q7dgriP4vt}obv+IT{Mz{u(VK(ioi2l0#HM-PA#Y%{hc`UbiS@zy(y#rj-|Twy zSgy=E2;v#P*wp7>c=n;Pp15^?&nvkD36CGLyLlxK)WX}SnC~9# zy$ty5Uh#ggN^Vfo%M7K0?&k~MtN$#R_|K^90TlD&r-Iw7zl|7_lRb!vEw&ag{0~|7 zFbC_EbII{K9v8n~mwK_+Uiyp_qY9AI29S&ni&#;Jium1eDku-}=6Ksce z5n~Yr{kUQ`1FIG}SXhL8ide*Bd-X>`o7-wn2=-!Nwbdx- z#}#`IuxgQmg+)(LuNLtkZ%K>z9L#-K^chGwq-R(}yjQ;r+FXmi6zp(d)glV|amC&YtXkw? zVbNGT#EPxPe~u?D;=?ueVNn;1;yI*eSVX*6|0z7?!nLToV1ETxEutXaEic&CC|NCX zu&`+RFKQ9*Nl#kDzwPY9qAPILltX%kMZ|mc8$p|E(Okif239SipdVN4y}+tP4%R#E zvi`W)Xa2#s)LR;MCE)pTXK$^hxU+X$v@c1ev>M>h!zFFh&Yv^^|ecBfzq-lCjCcgj(MztO7TZ z#!GMLI`9L#A=>D zCEAyy(o_BTIjQmlHPE26JVD`6tHL#fn(H3`LGk?HS%6*A>20WUsF=c9iIg|08?fT} z;Ynu*^)fN^jMy`W!|S7;K+2PPd>YTfPuvgh#>J1YF$SPY<{JM1Y{UnJGct@%FaDKuW}J65dGy!AhP(2g?aw0z&W{bH5_j_*KmLaewU7EwI7f1Z<8sZVOS_W2s9} zffv;84Q;!q{C7$+hd)*$M?$cXRI!(q2lYrGE;#i_B+Usj7YfLUE9^#Gor91&nmOXC zm;{et$r219j=9Rw$d%iw#y13$NO|liFit}fUP4fEOag)d6^5eg4pLdMkhze#KtL88 zyg+I%v{?8$bJx%;?(Re8%C`YmYlP?3>?O?=VYWs2pTN#%_OS97QPbJXmWMwA8}cs2 z@_I-v8VO`?dENXJX4^DA13%gE@=hSWP0W$yy^wu{+18Dp#ZN3AoB&Ma?So+#7eC=J zg3MJ3D9J?PCg2|DfHyjaGYLwLNtF=(whDq{=w@lOzbpqq0iDNkXuS zx!}1Fd^9N7Miv2?1b0>%Ey3R;2uQKuh_RkGKHyv20^Y3=mQxqFp~tyQA@y=nT1mLjU+G^EM<;_U^%H| z4k;EqO9FAh;_*n<5o9hDkZ-06*-1mb8l;lB;0NYN2zHZ7#{@pM4wVFhDY%Lg;Hl1D zC3B&GZ?mPE5XW3NemIgp6G)z&grqwO0v^MhP<^rtBq+K65DW=Q?qCF4IEf&0!Bqq= zA-IuzEGT3_RZ=c5-Gp5xgYO=)2*@Ph#w2`(xcsRA*DxnICc$CYScD%C$6S?wlI##1 zUe#B17?N-|!FHzsWD<%kKb{8#y!sc`!$P}Ka*{lHK5$DeMADuFg2CjO0JGrJ@Mz+g z3;HofLePE|l92=@_Yh=*vj{R53fPCXFbSDVcQ)g7#jt? z{Z0Y+Ji+PAt!3^u=H6jWs7$Ju1jnBM)4nG`a&0aG-$Eq89^wRK5)8N)g#EFAuY3!+ zpgwbgV-iqvxbYIOTyYta!$=kIf`I`05}b`(6_aoBXfe2gkTkO!Lnmk7;BrX`U0Lds4 zBu6d56$?Qn7?KdoB9*vc9c8a2$XqDk`Wuj=xxsxT5DZ!~d5R!&p@8w(z^x~ax$tf# z4=zG-)=fyhBtgI*nG@=vWci1n_V{Q1muojt|xQHGbdCgRZN0U+4DjYBv*PT_%22gOeao2 zCPA;eK)9N?XORmQF()`C0X2uu-wl>Y_ab?MQ~?{{GFZ5V;6cb$F$v!#D1=X#`@zXCA*LDF?lhCk&Zk)=j1_Q{n3a`_QVT>(NFamnX!ta!)E827P(=c9!7b1doJWwkP?8sy19vi#@Olyiyp=h@T};A* z1evQMH6%48HDEo$b);@)ZWD7I?n6#0IPpXjzMVMcs)TtL!TziQ9TBXhRXNy{S27ne zk$*(B#Q9XvI21-I45+$FR6qSJz#bHtu^PGQFCsaCpyVDSZWux4LIEieP9#opgP#L9 zlOS^e3E?+nxt=)Ys)TRI^T6Fp9CKAnf?Er0vYG?|c?25p_#)Uu9Kle)Z3LMMnG3Id z8-z*kAo-gFg2AMB0rGG+%*RPZC38VBb0h@qHi0Vos5$6B0&&4b&=MR$khxHj+usDP z4U%vu2?B=93GOr!CJ|(=iqw$Qkkp{(O91DSdKq)KFt?4ldzcd{lOS>u%y@=4=BkA7 zI>ENA44Fg8Q8u8KD$!D7Gr)x(BKe)nl6!Ltz!(lcDwzufBwtvMILX~lusK2I0usW` z#C0Q%xhmmX_C9d^h-0pbN$_YPlF`ITuJCh!vJ{&}oPb=O1-!jel5idg1Vc%d5ac_d z!)46zjo;x4=HlN$LO|xKmPjGlV${&3k4kb1#pKE$6WXyCVW$5c+byB29O}&2{UyM~1P778fu zM{wm=(845?GWbI8Fu-wETE)OgvYa^P%3ngR z-Gza7z-i@gBHNtVk>wvCTZC-EiRIgnjWb)fae$v#H2eve%DOCsFAfOq1Q-N3XsaX` z3Rs6Ab0Kr#5gwAh5hN{1AQv~NR=EP zsu=J5 zc$Ng>0zOeUSVxe#P?Br&fa5zB!fhl7_yco-<1=W(zX>u|MQTWDNNO+`H4lq%wpe)^ zb4{50o4MA^36)8}2Zsko5XW4V5KbmohPnl04kbs~fLf|V%iIEh)5#}JoZbLVl%(;2 z$Vsw@RLSvK69G?Cg9nHs7z+3dLFPi{LO#_be4!DNcS(?kobY)cA+Owp-w?-K@C$P! z1bhxiDEg>5sEM=HO5y@OXeg*hkhxHj*BSuFM^A?BNf59bbAscedBWoeGFL@vNNPxG zFc0+&&m{Fd=FVlV;{nLcU{0t^0zOYIm`5CQRYF)oa1iPikU5kbWdmxd5-n?J^IGzW z6AR1WL`gO_MDBAEm z7M@DSQYmLKr+Jv^UMl4BAO40!z@TtI^4_!N+UNq8S|%vA}FV8G{|gfEi7T$O-K0{+P& z{E!6ZssxneN8;w zxc@mHcZqsD@NHNS_s-b~pa&Ql7RKXV<2+`tF}{l?TNm3DG&#Al0C$^$QJbL7W)#vt(vtinTubFHf!URTyOJj zqa}-NzFoXzsm-^~Em>ys9r8;av-yq%B~RP@Aw?xG+I*+dlGkm%b6Lqd$kV~ix-=>I z7y#El}L$JRJmf1w) zFkpL$yW;1Nw-(Y$5vWPhP$4xIQgf0-DxajjRGuTGL|r0|aS#oOkei8Qw$hlChL&Q= z&x5W*!Bew)`DMtqWwvSKgYXlJlrI8i7%@G{mm+&Iv&|YGfuHP1IUhR`5_4=hA3c&_ z_V{v6(6g95sho4@HO%%e=LNl6nC)B6N0BUJ_Jr~efPI?Te&t*vtY!8T(fdBLr;4&| z%$_dUpP4;F^!~%_AkkYBPYS6yP?XhWc9dkxnH?>9J1{%Ae00M1j%W60SuXTqwp00e zz@E+b*RAxI%5mn5N6%CV^9W!nEZTMY-Z_6WOe0UbJsqw+9By##2p#MysGo{5o zBoFC;D6U1~$NcIx39?-c!bS91Py4M1>4Za5tNb!r&-8%zYL5lVXN7G1PTP@1e zR0-@A`HuFUY%;?R7DamQ0Tl=sngd2@g4bhNXcwXul$`! zzV|1PZ4Nsx_6vRov~CiWrR=vLv_`$h^8N!^$`0_#y~)0}KW=$w)44nc*;>dRaHfoW z|3bFlxI{6DRboXmFn9r<3X*6@>{%&n@8(3z&LN8~P7`g2(H2f(WsEg((V6sfk}4zu z&i4|B6RnFD5u?A(_og2W^jY|}J6R+oxRdS%eJW_Tl738zuA+&%fo^k^poy^sJxKK2 z^zw7~I1R7-0Hp7M+&=GuJy?{kL3YNcWN#(UM$=k~F5#c?HEC^>mMlVbP5%+JMm=Fz z`;=ix!wpX>&_|G`Ylm#HC3VFYy2oS0@oBQXdC)HNG8=Ovz4P3&dt3k9Uxt z0P!7>+F?oYrvD1W9wG-ioY_ZUpuxApPzPBGL<=HMbCB(T=s{%YAdd#(6e7nt$e}=t zB~rT$Dc6Za9pU4@G_+lXLBQn(yyy=et@jQ{&Ih?No@h*{fq>wV7 ze+1+qP0AVCUohKK&Y^cO+byw^Kg~sg&sy>l{}R!{L1Z5ZL@Ni8PedCBQICkW4x$ke z?Hoi)B6Qf%QaTdR!QtpmgihPaaWoN!I2>* zP9%uv%2IN)sPl<9)InTIM6VeEIoU(E-`H4Nhq~A5?M!@@s(W z+!9k8Z{?DyEsBr^p{sgKIw>~;m|z|uTK(ptpCVeLT6PsOS{aemq#Z3)Op0iSNUS4C z<33%?&^M9ZTSR3uVl;kC^s#%@_!UVfrAruPKa$i=JVZOZ#7-jGOTm&P6?%!kN$McH z-1V3dDCiBWHn^ChYHAXztuFPW8ZVJgY$vC*LL#(*9F?WS9+he~RoR5ti)3FS1)VVi z_69UE(UPPqP~_7q}(do)D$IgD6#Wp2v1_Q^Co(cv{<&LnWSS$x=oG|GD#Zqhq&KgZm`UvDOzaiJ z>RLz)m4t!mC9WlDnFOg6lOlCr1k#iE9y&K=fb5*RuLAZnQm#)?q=wzU0XF+6P!^{s zDzhK3ZArN!MNyf~zz!niz7$2`LM=QEq^_08Zj>WJiLu1W!wL=JY$9f6vP~g&UP`Z2 zPhu!BgQSPkU1fZG8A*?1NU1efll0VHNjH$RGDULga2rWu#5kd+%#=NB;$G5QOYCc( zd5DMy#5iKT#N$NhVMFCCc7ZCSm3-=6;#rcqib`3KNp6lX3H>F~<++_XQg{YaVjby2 zL`v2NVzjeP`zKk1y5jzt~xM=TxYUgA`JP$(2@+hiM~{@laTrqJ&5&u z9>~i>L`ICjLA>YFh4K)QHB^>_*LZKH!K=OZ6y|Y5|H!=fmb)XCeQ+@E-kD#J9QE53 z;L#(I8C`xN81u{jl)n*n6ic&w+Jpy_?C@S5io)ZvU<16>+d;U7FIRpp6Qc)6RqjW{ zkB8yix_jQ`eq=^|=Qc5qHyYuecDXOr!hOdb0yb)U{s+suLL_n30@eKrk{@T?1lgZj zsBGNIdb5SEj__r}b2~aJN0c1=XOMB+1<3goTj{tW>$opHaa@sg+*VHaYep3E|{^w>xM!==K%~HnJq@Na{!rI7vaZ{qu4}BW z(~1>I#kQhi?OX4?VjoDw{$$14*^2$96>Db=|5+=Rgm-8}B;oDetx;6ez=(*xtXC4u z?VkqbOZc?2Uf8N$XlK1pCSFiscwx_l5>6eg7d}ugbhKWW?MndluwM9Ey>PgCL8Cq@ zb*ys->Ue^!<7%zr30lXvk75Pg0%^fg4!60{mSQLMO~=*t9+o>(xHZGD-~<3)h^ zXQn{UwMcr#9G@Llm0b{F2YZ0ZuJbSF$P&z$<%_oKL>mT&wfily%L!la z^A1bEkNS%VFYtM5AK*>$pQ*xS@+3;Y8@%kcpg$n`0l(oD5q?k_YL0kzt{=?!&ASU~ zwxIJ9deDCe(3AIj0^R37X`neiI~TP4?5$#{H^>vi6dndJR_tsL|E&h=hF9)rq9wjXBKP2IHsr(>pqrD4BgxW8?A3=E^ z!ycjQ{9S;)z@SNJE{>HI8swpZN2so?-jgB1`wssE7Lp4>CnbFBU5cxwg?IV<0~oCN zz~dFw!n^$nFzROzL+}>lseY~0&lWvf>Sv3-RO&})j^9?*uhDWJmU8F#eH6P|3w=~# z2s1{vVz$a-{^_PnodwA3S3H7o?KuR=Ktup%fn1K$m1MkH4AcSdU2uIDyB%#t9_*9w zpo~nOUEujE_Ej|=9XNBPw0a2H;2B5Diu|=xr*rHrp!1b8xgj-W36^IjdgQMv{$Cjn! z=oUL1E3o{+9;q7&dU_@78l1`td&PT`UU+2u2#gwfZHIF>*0wc(P$!p){*i#^!_I^7 zoAen28;iF1!Hn}Gsge)T>LQTnaW&il$z{+m{65D@iDu=}n!X0E_&qp7H9;Z%kg#!w z*QMYnT$wSvuFM!-pUD_rpUoIvpUW6t-_00aH)Ra3o6Ycg8XUqg<9|B5P6K~xczxmj z)8X}%eGRW`|34gF*X?U~eKTWtee3`2@X9F%t}?^x`(}7Wzz}PO*DdM8>xaqV6~h2N zx&(fT0rI&l#a#3{qQ4fjhSQCZ@GCwf`g^-hDV2rW_okS6RXa)jQK)8)--MF+?N>DuuRT|jV-?#X_Tgx}D$r-kR;Jo9L!>+WUV;+ZEpaAaPtSfT9V5?Pz=wrjH` z{s^-FBWp3x7x*FJe+@iu&djq3*OUiinmGlx*uv~)*WzhEH7>;wTe2UU-A8;1L}Jqd zKJ&sXa&#IJ4-|?j3^VxP21jU$+zSVkM6MB(4iouAHRPkq^bW9w5g7-RrA(w+lcgzG z=FPl-CN@wIqj6fGI2gPIIB59*-iT~DF<9Mnv~vvC`tUlFq4BedXP z#%y193`c0m!Hi3NSwkh^S^i?GNy2~YIwT42_UD(3m#G*tQGy3VNmq;XNF!|-yoBe(N@Gj(fEX`4BaSqPcya925F zOx*e`WDJ*%^pAmS9k?Q&?42u5biEI*J>Z&T%9k||%Qw2Xfb%Q<0ax*TQSTSikg^0= ztyUI&N2k0hcg1O^-yuu%f#5G3XB+ZoZx`9dMR=POmh3xpF+9#T>~>EYG6{d_`FH@K z<;PZ$Pc;B24HwLN{6cBhD%-C4(ymoXMng(~R@rtfl6I|%n0B2VsX^UmN6hm7Z@+-> z#0dWvg67(w?LOVM`vzay{XE<5Z)m%pZ`*yXw)<5)cR=U)Lek;#p%wHF2 z!w_;s-Vl*4uQ?)A>xg`DS~3Q7H1ZeV{zTZa9TiB9Z0j@z;u@)UPzJ*vK3dDpknwvS zaX%hc?8Y~xOnm9EHXMAHfUDNanf26&`VAVfrUysi!sM7Foo``;VFaN~{+veoNFfBYEXKLG%*(T(^|5gxSyUhSPk`p?2Y$6t+t&>9_OH~y>i zsyY4#iflWKoWDi*e+lrkI*s7Y$lDAxyKB<5%d0T-!EC3^Hjzhrhc5QN14qrQ4soX< zTQtf%J|Q&!=E(D~*KEaf2UxPm_ePb25+uLM|1n8utGgw?CFlR+YtS>-WI;g}fk@$iV*_3D^64_Rw z>?$fqf~BG$+f`5|3U*OJE)_&YL9QrBGrr~nV5uEg;}=o!{_=+n)7Tng2i@d*U)FVE zY#YNteXm1aKXBBAvJnS3zS>SM?b2omd(#p>P!)-;AM9 zAkosyjTQ~i#bjwE0V>Cjt!%hyfVNTz9W`~G|0pHe1=_${rJU77b>__u z;~*x@+toI2^QTEY)HH9Iwq&U^Z#UDtT@+a)&D%r%t_M8@Z&C2@V3#(pwuA=iyEpsZ z*}I&!`kOrNV7Ln$HM4#fq%dw#5J*$OFo0NQI^LLh)yaid|xvP2VKN|P6 zDtUCWIcmALZR*(NzK$iMVM|NuU)H5J?J9gQzWNpf&7HW77x7YnyvB=OulWSx>5}Imhn@@u58K+(?fuZ;rJ!9(LV)6QPw^a7%h8Kjc=F`C!!h z79OJBr1#AEyoSXo;3zygxRTPIjt*mqIxb)pG+MN^&L_H`v^63#_Y)R-a*(6V5&w!{ zfBCyGhp-{3nRs4$OM4f4s73EQxf@c4Fys)hz+gUQGYHX^)vv2dgZOfe4%%_9ZADs35 zinl0uZooYS!n}!em&vxfbd*E>De`B3P|Nmb=~IPyjz1Qf*fXT}oM(E^EJZeNNX{97 zTw1i9L7OUiJ3GU;2b|_KOKsa3c49$~Yq1z?JzW=l2piQ+gT&@vY4a6M&f(|@@!q5to)jO6LedULn*!m^l@|cceh82K#xJ{(_=v@D zog#;$C)t%rH`;KL9ExavDiDX2K)Uc&i7;I;v=Vf4qL*R_pEvUe3NDrB^PAYzAUupL z_X=K{Oy{_qJACh$XPwxT6Mvj{;G?0^5gh(Vf5F3eWm`js@y#({ayLoCz*so&aqwMl z*4#2o$kJK)bW*!i_%`m9PfgRh-UGg~5#LEqQ4>8S-R}%uu>qt9C1=o6*xchIjd_N| zysPauXj`;TZDZ54ja6-QoM;6g`QEkyB^ejk!u@`CGo+TW9 z9oilRzgKM^qZ*at9dOj!2ZuKFZ{Vn9+E3z+?Z=VvXatNuN6tFU+9r;A`xWJP;@RIu zKz0Js;96)u;W!2yM;i{gJHg@5raluKqYa0wT}+|T<5=h|K3_Ou3au$B7en9*BOuXZ ztvruG;3nNxUV; zQp%yx*&7^p{_2dM2WIN11jpAH=aLg<6LRQypp(yBa2)?g)Vsv!5jVF07pFZwvN`XD zU=e6(E?Nbl1GYIGv6|X#;8+H=@8eMs$--N!T6q$5-uU1<(2QD*kAk~>@23AaYNb9^ zt9o0LTZ>~32V3!@I6*s7Sqr$r=%BjuN5bT2+ZyIQjJcyzpuC6iZVZ!>xgQx*cqh?1 z4_f~?R5gmbdD4ubIL?n<)m0^)cNMl||Pob@pR+86Wh@x6y2Q0piakT5+)1#+XiT>&kj7X;$VafRz}r-b7n zU}{7&{faZdHN*Hw0+~KaYsbsLF)h&mONEYWl_HR;NBgp{=r zeC65KUadURBIH33<)6bKdOfz}O7599Kn~8!okC>G>^! zmE%xwTr=C@5M$<3kvS^su|(dxBCi9(dj^*d6GP(i0P-LvMHV_DI*;BkQ}{Qqp+CV+71;&G9SjE?eN(Jv3D_ZPtSOeDB+Z${|5> z8adPgt@{YnjBiuH+Y!G$Lb7pWO$DX90!*)|Dc(j} zq0;h}vOunGQu-o<3EoxeNUI-~sC4vv(i>W7Pox{V?AjAny6k<0-Bd=6x%z(mz10mV z3A*s$LvSG(^|n{)J~L`|;?B3|*MYpsbhbm^1T{6>79N+`!oP##+Or+Mo}Fr8H8s13 zMiK9>izNIu1EBv3DMLGCk7ewT&pnBu^-HG(WdL?NphpI-`@aXPQnLMb=bM zUxQGRonAq8xZYw`{GjhOFa=1@x~&r*2}<{^-O#cd9!!L*VWfa5c_ zlCx8l)W*3D9Kj)u8|1c3Ek!5c)!_KToh}^?wc`tLOzgUM9U3^%hj8L=bVz7b)6o(U1t3*1TW>Qr5{ImUrwu{+7lCr3CH=R0m(wE#@Fn$9h6SJet%iXP!tJO(v8 zAJOVG;fh0c(AqV73da_3toQGE3a?>$T=`^0x+rCkn!Fo)D~%>;U}|E(&$@@L^A+O~K_@ zqoL8XYxKzaeno0*z!V&SIn7s-p?{fM3(;7-JSZdoN(@x_ zQ++-Ikpt!eg7*oSHm)7_q+{WjtTYS9WN}fMdL^zq9#%n4ruO}_r($Yntz>B2KijC# z>3#p~bQRjr>b?PwqLJ{($K>GkfSRsj&dTf_pc#MYP;(gsUNZs`iAKN(ynU9x#0LBqiipBXh*u0~oXAeR-T9zJjdUAXVoaN9uJ`l-bpomnBEdu14N`Og*xzA>{08bPyf`t<8q3M(No!-o$`<=1Oo} zV>qN&3Wr*z-hBid*FK8}Cz*wdY){^T9tqb?@z*f8rtN38LZHTTs3zPV4w+@e^>d zM?H)ti+&WRALT`C9dW|g%ZTd$a|^^zS{?Q7NI1>#g)1JdA%16~;%<+4AL1{Kcl^zE zPxJSm;F#bp0qM!KC0@f7T;k=t81?#%bTmo3=vakl#Ef(l_{y^fj#3^Ot4wIxJ=Yj8 z&cUOg(w2BF7_Vu=;#?@|XChpJqz!wGam-4Gn>`ob zznyyFwkx;3Dm7$d&oz;au5@jW-_CdR_Q*=p+av2PrP}4(a{x`v>LBM=R6gN*KmXU} zm<^5s6Q>eTj8kKQ*1c%P-u7I^5WD9}ui$l#V}3>f*mFIG=6q$S)0~t@3yeBXV%;`c zIm8ma$JTJ@aNQ9cN1mk|G7>TPlU|;b&4-}xeYn=aU=rkexUJ~4v-;}>aBOk?wS(T! zpkpuhE1m(zJF&MPcC4^B$gr*R+XwYPGhIrLn0|st>}6b@eb%WyZ@`AF^6Jgnf5oirKkx?6N6a&7Kk8LIXEv zPe61*;Vq!1zSP$s`y$3cO`J(Gw6hn{BoLOR7@q~ zKR`0~Ip4f(JNm1F^6G5rk(B@;t_0*|Z?>{JmrsT6bN}m5e-k(gT@IOdT!%dijx#Hr z7OJVX<@2q@wX!0NK(-LyWeAXO)in-pB5k}I@_mfFINZp~9d@+>5rBMD{;J?!wlInU2&CUICP~j92~cY zNEthz5h>+MH)9pC3$<&v4e(aK*qeF7a9=dyv{jtoTX{Sr1K7Ma!M80~R7`L~9+!#5 ze8u9Z!tWFz42OFHnZt<`97dc+nYX|EA!R={Vyelyx zut3?Lb+T&`sa&*EmMlWFKQ|EP{DcB$qQEW?OB&tW7%ju){z1*bVsy|MCFbp~mrkqr z@)K30LDl7XTwz-u_3qCctzb;Pth8b>S^$|;=^4f$2Qu05j$ToNMbOvSZ;|IQg zi(jUi(#K_dRUPP5m??UJBg-s?gu^U`v>7V(#96(kM7Vt9OcX&GcYx_c+_V z^k%lZ@wgVU3^D`X!hz0AZ918d+H2FFlMZ64b4jI2nrBgt949OUlG_Z?*4D z*?`B-%u=l~2zFMjc8fv{qQ>2#==ga!#5cba^)|ZV-O|Oy3Kp*7ZnIyEX2;I0NpxqH zIcO-82-s;Opj0AYr;UIjY4V*m0tyV676Ci|=MgYgT(AdqxY@Lx+yQS|uSm+CnQfv^ z3!9m3qAy>{o|&Ci_RQ>L^s%ygk3MyOZz+4`i@41AZq(Z_)M->xV9_z?H@UlfJ`@+x zUv@mfKYT9V0G19`kPEpUv2(Gw<3!;do{Oxfi~iP9#8)Vy!Q@!GO;PV3Q;N(1ECs$V z&21ksCFDv89U@=iz8jPfml8Te3elm!Sd`l_a#nN679d;Fy?VJlW})y7dKL2UOKFJq z5*=8_yo4}np#d+Oie88l!=XLxN^tDBP(302=;#!O&ZZB5<5$xGM8|O{4(-oxf+H{- zqJv$;l%hI*0>{-RUPTAv)o`ee+AsUwC&L{(oOOrRr2{yM+!KO+DIL1gI29ai42Rf} zYvuw*Ro<78FByF5946-Wogx(F}Jo#&EbpIOwQ8MMiZVI*#F}K2?{bT91AreWp0mT7R2{M)ccgGtG7?$HQ&)5V%1d-y>} zda#o#(hSu)%bxm*?>+Hx)azrST?SP~J6Cm5qi@(*iLcl%;T?MQ7(d#lBA(2QEOb|!>At!Ay( zr%0^5101KBf~7A>!OEdNdl?+RUhfn-G}Se9srD5(iZjhJc4#Ttui1HI>VB(3Fw5i9*pv}YyeA_VCi7ML9A2{e9>2n&LP{w(b%bg zi^-fnB{?{2BShEw-j4&E66BB2ZcsG^M{_7h_AcSj*<2f;seA4=G3#I~8;pZ>SRD%u z)7)WI&U~u)CPR(Qwo=*a!4~-%;{ot2Oa>92U806|p_6e>4PR`Yx~GN;ozrJ6{420@ zH9nWtmBQ8hxRm=b%*S95jkcF-r6|pl#Yp>XrzTp{_OIj4MPr^Qle4MW($Lyh27sfJ z8O5HILcrQFhv`ImKe%0}%LZJDxaY)Jh=mh!B?QQY~6T9KrhQ zT1zcbo49paI7;iARJDVAb7A8J{}xHDx4@W zky^lMuhvZxg0z<>L;yz&NqVKH$X^HfZr|Y^Fa&9`BVG(UC?o^Zsq)%KW4N02B7`1r z1+K_6d>c6aaXF~c=olmg$JYB^_tPB1ZJ(6+`p@W1Bc+Rp;dy^Xe`gnUN7Q2>-*^X3 z7B6xP=W`2^h8G7s6*2ql6;kL05UPsrHV0kJ-GeSE_7Yoc6FF48#2zZj)+g_hXa&}A z=-(aXJZiE%HEcT>-92wgoCi>#mdf$eRC|b6B!`I8dVaMWRt%ye(VRT+-0odUJvnje@dg#3+yzS6>dhskOevX1 zjjO@rSNsbD=f=m1f!Kd0?Ze>(7x;N=V#dc!+{46RM%(IViRvcpP&%j%eiNfTtV#y5 ztRppQ@}>Bh;P~zboXolN`8*AGd&}eJprwtYk3#4NBOpEbhEyo&6>wav^=-)82rw}EPQ zUUH5MaG%Q6la0jO9&h{JR)fWcrOIxqvYq*#*o-NSVgbxT(1T=Mrw*I9Fw~ z=eGjKU1koKs1Ob}D*A)twZHI0Qr8?4(z*s*9lQ@(TEUk<=(&9qtZ{QUIL2fKn$b}p zPJ0a;d#Wuj)Jr-AehZE#{_7N&v(fjSb+=ec*e$Nc*Yoa^Qrdvy$Qn0x(~y_do4GZi zNKR8nXD!029_xs**l0P_Fe^x%!*}$Qfz#d*wg87boF63odSuCM_m1zaF!htbGxgKwT%0BKGliCk zKu-ufZp=y(kjL^p6XUzr)7H_~bQdo~&o~4Jv}gMD)C=BN1sm|>%MI=&(7(hr*{QZ# z@DeyaJzT3T7Vrk-q+=&#o4-Bn^X8GryI4RR>A0=h?a58R(E&%+9Lgo`k3k8>N*xD| z2FH5iHaW*NZi`MpwPI6jSmYwhv#vCU~mV4SI$Gzo7`G-|cCeFCm&d+?I6AD!wfGu4s%FQPTXekRpd%tf2=VvO$`yX6K< zZ5LfM_5{bH{);H0j=4=sESFokv?0{oO7J!FV%`;4_9Y|e5e_X?S74WQR|X?fC##V)tJW5BWOmH)?f6 zcw>W%0_5Q+a3vP2xcifDPUbUJ6Vps1PxRVQav7-iDYjj}RcJI?Q8mB}_J ze_+=4Fc-R;^WY@EB8#sCmmRHax!rE~7BsJU%Be=R8)1J2#|vh95m#^`@G4`E;4k#F zIjr?Du60X}iH^jqfnU)Elm@Ywcb_p_2ECsl&c+ebW(9n5D%+ZO>gLZ1g#qhV6 zU7#_+?gH(4*IZrPrwQtHUH$d`#P<#~!6N~jcKh;7xl@`xGP}T}&eSeYV?+n~wo19(Gm`$Wf5KH+N z5%i-w;VBLzmlKQ%XeOMyL}AlUv1Rb5#be&4=TvDKC#Jt3h6@^{6syzwXOI9D&2^yy zZnNw3o{ZjWHc<)DI0+h81ho-xTn&kdCi>;pvHU}VjucU6^bwHUw?y_hPtKjzF>%dXN^iP@Ms{MUoIXLb% zYcUD-=-<$x24;yH>b11X$}R$Lhs3WnV%`ZaIzF!fDTKv7mQcgsmejJ6kgV+8sba$l zaiqQb#PlP3_er(?Je;`|w-}n%lZr{}xt^Z`j_K7nw6E(5;W2QG&xv_OFKI=jOXO)q z>ZqxmClpsQ%|T>Nidk0XoezSFX7BaByrg9MTxH zCapnF2gjDxYHv!1I`VkYu}jB9=`YdM_MaO0e0l>w)8ljb{Du@5=cAng_Fy}a<$`SJ zQrj;Oty@s;r>2uNVVAYzzykL4N*$VY=!lCz?iaWnF8=dFYN}L*{n9Aa&e0k?t5-Rd zaT-wv+J4~J?Q-m&a)>T565x3A1*ZYcSQ6*brq0}NFu9pd-COLs3;eD8ZAK#5@iE@y zio~^)SjeHI&b9oXTbjY2LHHUsrW|wXhr} zg!-`ASs>Kdj0FPKR$Cza1kLxq17%cx%o}73mjSpDOylHd76=cVCZJs)+>M@`Hc_|00u=0afnZjhc7b4)f_8yG zFC^Eot~1>Q!q>1WQak2NG*(Gu)2g&`2kXLjFAD@?f?XgO6YMeZK26ZjXey2gzrq!$ zH=K}9Tj9>kwkuq-KuGFLEfCxo(V6~P=-dTzG|C+nd}n8R`qr80n`w;LnVz7T zWN#58^S|aye-u2`I z7~7ft8$?6eOurB!L;RUA;y7c3ba)z(Hq$>1zMa7bWi^el7b=SHqYM`kPJ>9B|H=A38og3|y$^K4$VJaB*rTCsb`FAFGbCGr0+PJCj%2 zzjoM;zq(?CVWY~7CavRo_Ed1ZUX4R5qBHsV;Fwh>=5_o?^~g-#Q!8R;a>hJpGx;|VXl$G&0(6>b9&NxH-(nsx9O8Uhlh%MO!Lf6TQ*Y66ga5)J z+#`=~%R_T2a0|>L|9b)WKFB!lhg;kMOA03<K+z8>KpKxLK@oe_R%%ZTs6-^%Y`B$A^_Y8gR^ zeJvxJevieJ8_d~rvn7(5XiTcgkKAM;9I)~c6rd^ICtsqFj@ zj_`TAgIYm=9Ucu^AUo-=qvGeZjZ6%KQ*wBlsKc9l%ophD$1x;Zn60i`LFR;Kq#ua5!s*YSGFQCA5aU7e~}k zTE{M(RJ5nBvORrydQV@T-qVv{d>2>#%hP-M3a6)cf>qMfpZdS)=`StD4U=3}ykRq& zZ02)hOn=n|F8>ktw&m*0l`;s(<8?LIdWug@0LOa&DR`yse#$33?4(q$)oyY&_%1S< z#BbE}zdn~<1#OLLXn8WKi(Rv&(`k91f#c=uy>sYDo^>PQ#$m_U<^1O-d{OnOdOHo&{D1hN7MZr9pXC;9F4n|^CiUW_2bE* zMx42Re6CXMsq-9wX=CoU&_B(sh3MCjyRWoit)F@7Jj~c2D@yWkX<<&C`#~NZ)t)*N zG((b($?w*7EF6=SX5pBu{xGii$bAqaA#)t)(ERM=DJbQRjr>fp67{;yh& z`_53)?WuEj(2PGCNp1gxz^g_;BGCxgQ)d>1s_*mEx$7^ud&h0_v8fhSlZJw$LxI!g z6H*-7uV#Sb_fqAMekG3-cKg-c;8^dEEsS|59jJWLuM#Ou8iB8Y?`fk+YC}!`>wa~> zuULiGbDSx5x&5j$ICj_FJBRkG!QeQ@*ev~OYRYDf`18Tx?}I~Ybt^b>8at(2kkX+( zegPa`8xHAL7o|9~l+VF2!YxI7H($mG?N__YoT%-QwWd-)dtb%_O11s!Wq@h@s@H#T z9kYRBqv&`0RS1rI`~}7a=~v`&`qga6JN=4aTEEI^M(GsN1uS;=gzuF9ri~iO{mh>xm0j-SARI`Ua`yVSJ#5$@?Cr9(0=t8IQ}*^OTSv2vRNbk zU2x3Z2Zz>bCpd11I5B&BN{9Nm?(gWmf#c)5QXE=JS8#mmmLk4$`_<*16SY0EN=FN5 z`&B2U+J1E+z_fmK6Z9WeO~2c(R)OOl|G+)!E$LUZ!Rc4~L*D6E1k?J}4ZdUHm~;!r zWc_&t`W2rMU9Dd|3Aw%ZD^p3^uhLbx{c74SJRam9r=jmx(`~=oRI|kjbEmZYvn6j( zbpD{E$g48Vj)KT%Ss#p25!vw=5&1W9-bb;kAp&PML00aKQZMO(;x+fybl<{HIn`-NSKn&Z)R3tcpkL zRoshIO~HOR_#I=MCLJ*jR1yqt-yb+W$UN*r+{JeS*PpqC7a=!{IX=Z!UJn=W?UnNM z>M#dN14-86Vot!qG~$^+`<`PczpBOm-h zTlm!GU}Hn*`)Cw$1HVA7)2~P#{}~BA6n+Hea8+-B^_gsBLjMKv*+|w8h1k05k-K6c zk}(UATuaRaCj3K0(Bm8=yO}gWv<2%}_&v_1^mBe zFu55L{-G*7VHk3fJWFamE%1?q^@kwG|K$F@uZVK{5$@-JsnjB;0-m_nZcnkjW8Dijjnyai_jq?62hY`GB_*1i5r< z6_dwS1DyUMl8Fq_VMxNu7+2hvS90?o@cKfqiPR2M`sNmZ3qM3skBt{&av=5w!4HhO zbxf8r*@KN=u%Hf-jo1nW6%CMdV@%d#@(aVUbA2RlG(u7XGkov`2E1Saqw^dl$1-^d z({WINkt|q%!Ajmgdh2^UnlU*#IJx%ZUiR`_%_AYepc@T-w6!=f9mfB z{oC>V5nt3h`RR+?R(vz@{L(glEAi#W+MTbUH_7;AfPpb~ z%cqX{y};0m4E%wCqvm(4!DG0RPgC=2@&Bh^Ohxjse0+g2KYjE^o>tGSEx*{{bItE0 z^K0v4%<>|LpILhJTaso2`efSAz_FWd^qG z^@f3MJ^4C9eypCJ0;TGiXJE!9KYZ&QKh{qBd$giG`)lp6bX(8g44?Jabq2QOj5V;e z&*De#1J9V{r>*{Y7<}bp{bl`Z+u7P&>o-eZVDuhuel7k316zHA4BW{4ewo2wj2vvzgT_?+j3ePeVsD& zT7GM%g{|K$Y~y`|k+~B~K3g9PXO@!*+i{?$@xP^8Jr=g**|^;o-QsOME!@}W zxAxm#OSkpSEYH@@@>w}+&qSlw_RsbPw)MAsR?hy~{$lC&x6H^}*w!P{uK#Jf+w%6M zXJ7TQv-d4|8L$~c_%$v4f*m7;VW$Mj@dm20YWz@%( zYvb6Cr`E4lkG0?O+xlC*7H{pbbQ=#=k1fak+IF>iESxEqS^jKOk7?%DmS=x$dDg#e z4WEVM2DW_Gej8U7ws!7|&+-p2`g)pQi?_d4kNq8#!N0=5w%jjG9IVd3+xl5Q+xl3% z^`C{U-z>jfk6J!!Uq4fh#Wy#w{k3sn<3F=~tlhR;3)^xn-qzp#+VX5YGW~p?vBUCP zy5+Za*m{&1e#>X+nRsiTt(S$ZoP{SEeb&zQ2DW-_xt8DlX4*T*$XR;Z4A}O!Onp|) z^6!gpn$g$O{Mve0KUvuRT05-1Og>Aucv~L}_ci5Md+o24vwqDi&&tm-@|OR>47)Af z#-IJQcpFz1Z_BfOvV4~sy?2@4g!%3B|FHM=%Z=m6zM%fvxR2qDxG{0goI0mXe^*7_ zj;-!ePiv~W%4^r0xp#Iq7_>y&bV;IGqU`d-jgEbUeSm$QeXji_z6gLIMN-h0OEo{2e(~zy zCYr^AgLHf_Jvlu*zc?BE>p_1QjqeT~=v z^lli>()qL>|3^O^{g9>Uuzw#V;~$2@$I-t}rs+f6&kj!dXNSk}?ag7oA03{b#IKKz zFQVIvo0H)1tbcqM4F)GC!Nu*_zjl5|Cz-7Nhko=m4xggoFwTDHKZXB{#_119I{V@0 zVKke?vmfX|7)_G@=uak#zZ5|K@E`qe-+t(iQ1=gm_-20hLo^-5(M|I2kLOWmB--oz zmX70T+6f;g+4R5uox#va#u)o*BschwFm{HLodR76;IR31QergD?dD@?mc$!S5PD)+P4J!kDc%fyTk9KgNc*&qbvo*V}dAJf32Q_ z(9bddr}1nCO7Dov&Ll+#;%R3Z-^SB;+-C#1@OuzdKON7qP=3zuj7r=vTnK>T?t_Hc zq#Xldt@P!GM*~wvx!`aRtBOH4o&2@}9~YzOTS#*W7?zh}ZV|`P=c&=!`5>NU)08M0 z4Y5nvmvkz}=AC;$j)E}6GLZB`e3y*xLQL>cI_`bE3A){*!!XS5r|DD3r)(Hcr|A^X zxgMJxt66V4&%*RJoMO?TUdwv*$9U)f@NG7o#~`_IcArkOa1_nHc0$%i15d%37=~0a z*iYA?fxT`wA5~&DiVo-#8}DuEW0Z24v6-NVFgOvUD*66pzZ)E?XDQ8z{H_!JG(lg- z2=*HGZZW~`<1tbEAjz;yN5i+b(Qp>OI>2i4<_%v}-n>zt=X3Pn&p)#FQTFP9&so+( zcS+2_8}Qw?Y%U!I1caLW6T+gLl(t$bpH*S?`9; z$u8(Xeu2x!&SNy3TU@gI>;B^nrdc|Pr^K5Nn3TXOP^6yo+KO6+S|$JTue8dUu)d{= zUmfr{N`F=L`2?slGaI7ku-gTC^!28s4=BhnQMWL4xU83K?)}(dKTGsea{O-f@C#}O z$Kz{7JDQVUS2RY*Y&*4HgD=;bT=n`|tFGpVIQ9T$jwO4cd229Z^_H*42efnzQ>?dq zlL0FDIU4^IcSn=#`6p}%QH1jZT#&p^GFl9V zA0^WeqdLOlL3|s{hZ%&%1OjeEpz%-g2imUU=*V4BkB0w9U)_6sdSq>gh)As^`;_&f z`!PA}e!RgL;QlVom;`}elLxG|br-%&O3=H@h{0O6`9>gLvwyVS7buBVbPVaMgTq$` zf*0wFVO94{tbR-aU=wm*j!m7HE>)3}kW9o_9eZ^U$Q4BIPH*(Xj>?xXbudXk`4qX-bmq~G}n~Do~|9Fzl zI(qA!uuIV1#COR!grotvJ{n>tI1Pu%O!Bkf%zlAQ^oiIo(vKKYXSq{WH%6cRR+T)C z8I|B~0T8j7{KEuYXA7sgFV9xrI4){ge zPM!2QmC#SyI?kpN7Jh*ZCn=s|g(9)_q!kf6SF!oD3$<IGfFHphoJV27c8R6m|6_+#Xdnj7#CnRaxsU9x+Ve z(4P*8G~9_Np6Xo!b0&bxA+A_g>;9c<6hc$dRvNrkPudzKSo z0iTQ*mqcf={w1(ktZX@Cy6ZF47i_a$OPR?O-_YmZvQKD0a+$G}CYbNjPnlq}d{v*J z3iJcib>>vV_^BKN>Zc+f)hPW2&KagSy&we#qXpWtmuNd$4Yj)=I;&-e+0@+f^yE~p zv;sG;X-T@&^dz=|#LzQ3@Q>-XKwr|TYpo#C2a4Fh(oirzNq4TK&k4sK|%hh-y|RB%ei-37zk7Jn|b4)5@rpYnGNA6KFq|bs+2F^q5l*zw?0xqh3G5F01r4?pl35d+cZA1#ryFR8yGr(0LezdxY2B!WufU zI-)*><$9d&y`c+uX*Bfg83`$M<8ZZFs_ zR_zDb$`F~M*axVpM!6mIAR5_q`eE{_R#1TFp0A`vKPwwtk(2RbG))jvVFpoHza=az zsWc8Q;GRlHuOY%tAvg)0^0HR!hdwY4|Mg_X+{k%H__c>#z{i$(zbfvQ2~tps3%^!!=1aeW@K-S zW|o}>h-<=zf?1}>aS<-6%hr9OAqs{x%;-a54iCJb360PYGo(->29`u4%XS33LcuL! z@K6k=;!_{wg~n8eWMf9B#6vIGD`{-`Sr3+%&pf*ue2V()M_F^rcjTCN#O{Jm;EPQx z4K{cooYGS^8|cCZVKP%L3Oh#j8d&6E*d^{f)DD2jX`Y1=q`K+GbG06;^P)>V0*9w= zBIE|evO=7vF#ZOcY{Us;Xb@O%y!Ox&nlKbF?&cZiA@mQei3c8PCleA;8S1HFUd`hzWkj1uSm@Iqiq45AC#|VZ892N4P z*cKJvthPluY^aKWwlp8B=xur16zj=HzrmN8AGM703QNC5jp`q)9Rx%K^3rcmnAUGe zVa(&E_`*joOB*al_saWP-n1w3A}&HZ++l*VnV7Jw;%VgjUDrzw7(c=mPitE`|I83O z46&8?`l}!_-x~g8wOq*-#l=GGWr}D@-LfJy2d9uBuMwX4BjS$EBNlqpdO}~BVV#3h z$m+&NS0Adh1%WG$Szre;>mnMHQL6*ovso5pa~eE;;V2RWEHvvi>oE#ycaG9W0k7!q zSY5gl(p7wSm0VTz=*ZQhBS()IxK`y3ga+vPC72*Zr^BgSRnrZSDQk2zc!UPu$B#)r zzDy{vr>7QGm5wG~=S`xglY3@B5vtz7PkYy%7%n`)$_z1DO)rDhr1S7;keJ5fw zQz&9}=cxZ=5`l3NM>+^A(QH)uX5LXZgsqqT|1pWT@uJ`Fv_e#{ zyP>)qkY3y-2;LNpXrjqWN3r1OYy3R>B`>Sr7C}E@duK1S^9(C1{C9K1g37r-BbP#u z*59M7fB$(reD;Ge-fYLJyV%vEQ*i35_!eGe_rFZj(NBn9|Mk~6xx3H0&$LLp-#I#R zMAC)3GzO>iodYCVAg`bdK~yvdG6WULAKe=cj{V$G0j8o=0bi?JRq!{CN@&%*p5KTF z{U6ixYjht+P}Lx=k@HQlj^Grr@5TtW{Uv=LA&Ar%h_If}M;3p7EsC&g8tS_9Gp`D< zxv!a^5x!4m6>mjx!k43(F+8#%)U(LGw?sr4K@_UBS$}iV}!ug zK6>mJ_l_?RU<`R!$fguxF}v!7;5vwKKfOcTUi?Mm-m7>9w$wq4_GtPX-p?ssXh5NjW#>24 zZMs-bze_rei6^&Ob7W!PIMsnaK4LrhPai}Oi z1oG)wbD0h*>>^9B5v(j0nj!mQ5vLW0iPE_3@>CBOPypa`Z$t(z@^Wi{<6`?oc>SKy zP`ySfw6u~RPo=ldOHOlIMiCI-ZA)S%-T7e zbBEMbj#|APgpa;yI|&eD$xdR^%z*7BSni8(oDOJ5@t?@3$WlZi9VE6G>?!6U&zm=U zO9>ZQc*{$X9u;}N;@gb)Dl3mu5cZ9IZ*n?OSXC~oWi^vg6K|JG!{L-v-)Mo<&PWvo zQ$GmIln_#8eiWZu8o|;=OodJ{|K+2V|MC-3zeoj_uD*iqbU~&|fi0EklJ0-ZvuX0w zS`wuq$)&Yen4_Q&#WoH!Vr*=bttNI6$ld{DEr8P+t=gk=@aMWnrVywSnjAbh3EUt= z!B>o?uD2n}cC(|sON;`LF8YIYEV`u=CF==QqqG1ewO~sOZMmqad&yFCYEMW`H`|u9 ztH`rPD}0AR**~qy# zZ}j!qlg`~Ku*ew_egefa=0q1?fHTkn_DlpKyBj5ZND{Yzmhzc#>3&5eW&96@B3&5^QE#36w_Pmsp(hTF}6BlRL&o$RC?lk9aGGT*Fc zLeQf9j*@7zsqo=Hzd+STIW-y8)9yy_Tb2UWI$_#0?5|k*=CWnPnzANxHx2p$wobI< z)54}WvKz+0@BLBxS{L>1xtst|kYwGCGA$y5YkcxCWRlA=B+gw#29vJH zY*o&6&?KEo1eRcB?L>Xa656I4B7|`yN0Njt+N~Xe57!(7B^Is;0&U}LtYhnMe!;$d zRYYKI=HD&Y%&!WJnmhbeHLq>^L5HQ=e#MP!HkAu!=9~417WoQ+RZiPlRb^bJZ5r#2 z&6>U`;5e+

4s%9!C_%d!o@7=Hd#Pyf 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..0b696bdb428d203f0056a6d2a544527a46fccc46 GIT binary patch literal 7064 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 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json new file mode 100644 index 000000000..ccc57b88f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "1": "--target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-armeabi-v7a": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" cw_zano", + "buildType": "debug", + "toolchain": "520418125", + "abi": "armeabi-v7a", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt new file mode 100644 index 000000000..564409428 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt new file mode 100644 index 000000000..af8797b6d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json new file mode 100644 index 000000000..49d90e168 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-armeabi-v7a": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" cw_zano", + "abi": "armeabi-v7a", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja new file mode 100644 index 000000000..39f6c0cc9 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt new file mode 100644 index 000000000..9313eaee7 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a/prefab +-DCMAKE_BUILD_TYPE=Debug +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=armeabi-v7a +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json new file mode 100644 index 000000000..1d4c554ea --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "ARMEABI_V7A", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/armeabi-v7a", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Debug" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "armeabi-v7a" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "armeabi-v7a" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "info": { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": true, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", + "variantName": "debug", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt new file mode 100644 index 000000000..e910e9224 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt @@ -0,0 +1,145 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +Detecting C compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compiler ABI info - done +Detecting C compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compile features - done +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +Detecting CXX compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compiler ABI info - done +Detecting CXX compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compile features - done +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake new file mode 100644 index 000000000..fc3c68b59 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt new file mode 100644 index 000000000..2e973a507 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt @@ -0,0 +1,686 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a/prefab", + "-DCMAKE_BUILD_TYPE\u003dDebug", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003darmeabi-v7a", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi-v7a", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/armeabi-v7a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json new file mode 100644 index 000000000..183a7c22e --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json new file mode 100644 index 000000000..52daf2403 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: armeabi-v7a", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|armeabi-v7a" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|armeabi-v7a" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|armeabi-v7a" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|armeabi-v7a" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|armeabi-v7a" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|armeabi-v7a" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja new file mode 100644 index 000000000..bbd020f98 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/debug/x86/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/x86/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..197a9939b0635dd7e94788ff5df3ee01cd99951c GIT binary patch literal 22420 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/.ninja_log b/cw_zano/android/.cxx/cmake/debug/x86/.ninja_log new file mode 100644 index 000000000..bdfdda9d9 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/.ninja_log @@ -0,0 +1,3 @@ +# ninja log v5 +0 858 1695988614 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 891d6ef1f7997817 +858 1148 1695988615 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so 3cf90ba6ff1340f7 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt b/cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt new file mode 100644 index 000000000..d1f6a3926 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt @@ -0,0 +1,362 @@ +# This is the CMakeCache file. +# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 +# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=x86 + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86 + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//Archiver +CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON + +//No help, variable specified on the command line. +CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86 + +//Path to a program. +CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android + +//Dependencies for the target +cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so; + +//Path to a library. +log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake new file mode 100644 index 000000000..e459e1246 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "14.0.6") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "4") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/i386;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake new file mode 100644 index 000000000..4b157b2e1 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake @@ -0,0 +1,75 @@ +set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "14.0.6") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") + +set(CMAKE_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "4") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/i386;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..328a6987b5ea86951e2dbdca1566e13032c31f33 GIT binary patch literal 5204 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 Pjb9TsMXxl%S+f5IRFP*w literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..e55160eef6ff02ca94b9cce60c119b6459e8c2d0 GIT binary patch literal 5256 zcmd5=ZERE589u(Y6N8Nt2rU7+)~tq6E!Yk*!3kBt`2uSWgb*|!V|Ul~P3&U(y4Mb0 z+6P@|)htC~Dw?`!o2pSwt29lW)~QHCQ#LZewocR?`lH=I$~rc+T{WtD&vUPj zF=1#@wI6$v_r9O!J@5H?@45cUU~V>{r^aLAbWTMyeTG z+7<9u5bO%t5^q8#(oVn8w=0>&@kf^4&Tj@3*l6*7|!R4M|4vN5A>&joWFQ6V;Z@Pz|e%bc}oi9 zV?(T`Yin0e*T-(pd{+Xw<~w)q7hn5q@7~_ec-M5CKJjw@H(&k7=6`PAwKzD(AYlcV zWl{j8%vs_*IqdABRA7sBDO2qOYGqfdXhIPv*k?_Bvdw(YYF(uhG{*n~}^Lr06)YduUH@Id@Vw zCe%!+Vva|mhi#>n%8ldT9Y*eJo!d4dG0r0gG5|6HS^_PBa^JiF`Wh(bncz4%DjZ+* zIM(`Hu4iCl`v-up0Ed7g?)UWj1JlZ&KN$B1%6x9@^LNDk5o@1uLEZp9RQGMA@5;Ep zb)Vl8_cNCWkU3lhhJkj>x?jS-a@gNK;C}$|cgZ%);YA>G-3MfwreYZ%KN4l+AU`M$xGX@__G7S!0hbJYPC9(40>i~-?cg4?Cb|N*LsHf z=RSnAcl2>Fa{V`ma<&eL=aKRLw%m%>`qW%Ssa~C)_l#dU+i3qi?9&UbGt(!t)jYvOd%AU+`l_ ztAI(^d48Ay&(js`Ywkg|Wv$D==mn*nC-Ys%D5D|*{AX!jB5w?Q#p=3fWKVtcj;)M~vnegpFNfwejr*cglUL^`*| zIsz%JtY-p7FT@fvliAFnP6Wx!9q*d5^1Igq-tye7Ca>sgqo7?GcUA5M~+_3_atVD&=pJ?m# zZu2VbML!n8;YeVyTpHP4DyJXr2f0G%KSBWPo+7cRQazn`_{2xA6;)jPBS!3|FQ3XK+}eeBJYE zqvX2*ts>p2|PHRVW^_Z5= z>y>c&n0itx8g*MJef)ShU4Tb8qo<}O!^dOY;r?OBLpf}Hn;k2ZL;<@VJtJxM7|t36 zJ)GC;fi{&hM{04pLYTKod*=Mpn`;+}fTzl;R?KmZ;8gU*Gp#@N_(ma%Q^-8r#qmm=H>H|c73^HSyE zHupnQZhzCGZtqv!tD3TsUD}j$JDVO=T*w%W?u15-OZ>gcs(%XSjqh(ow1{?4-XEU_ zbwKlJ(2Mm(ir51Al?Hh`03L->p?QL;~pqjRr)yi2BvY%{I zf!@^fY;QBAJUTFqj8@S^NYAPhrdH6^YzBT(5+Phi;bpm&Oq~~1RWnWP1k=9FPe71* z#McVBG?FmT5)Zp|s$3R)VHK=#SqB@(Hf8EZF(e*y+=3?z$y?dlYJ7O;B7`AVv=nF- zCY!UVNSl?EKA9_q(n2j)G_#^wb%C>~)@D<+XVX$y!?if1sSAtKiy2YO98u+TlD8&Y zElw3u`0BaW8N5exk847i0a!+48sqPsX+BZ0+j>Y?ugD|Qi zql1aviLqLNrDl;h1i5at#(C!_g#G!TW-)M-FZGzIl}gCJ_En*(nX*wc-ubb$e25*=2~_rfuECFWmN@?({JvZB;~KEO z5}mR$=$I?vMIhDmJB5iPa(yL8zn7pOkM6Ac%->Ns4-ydGf(v-^T|ht9?F;wtn};3M z+VW#PpSy?ORroMB#w3jFwO zBSDViFHkTp<5|Bq!B5)gD|x<;*l&bN0DqtQvCUdf+KBJfsHMc?3=ZkDQfRPojp#37 zHIn$96hNh|rRFF5{WJV--xF*<`mU+@$q?VehuW{C&=79}{J2LYWO3-vLdSao-=iEa f=Q9Ky=S0E>J|T8MCqc5YMSd}CiapW@XUYB>HL8C= literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake new file mode 100644 index 000000000..0e5adefc8 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "i686") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt new file mode 100644 index 000000000..d61d7c934 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/edit_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/rebuild_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..2e1940b0ae986485db596ed367ac0e582c71e364 GIT binary patch literal 914588 zcmeEv3w+!~wg3F~k?bbhX4?cBAkak?NFg*SL>iz%DlG&^F-QwVDimm?ybBa80#Zl| zU6ukW2=Y)wMHCfOMDW>yQhZ!RL{S7Ss7RFS>v9#*zx{u|XCA-#{r0zMDCpIDn@{%f zn{(#OnKNh3oH_H@OJ)xq6a;~?e}PJ?@JXr1zgG}Yue^7v*^NF_sd<%O9y$Dr-w(e~ zdY%}^UiwfPAJzBpp<3npnqj_I+RBx|a;7q?oO}Ln8#iuTv-oevzV)GNuT9QhSx_!k zb-qkl@T*8!GiIvSx<5z1=<`?UC_n#3a8bqQI~+IU)8Xs-%)fLk>jSon)j7H9yj*oP zu__a)EBLvdZ)*7BoN8IQGro~a;supLdE>PM5LIPem3dbXuaX-n63Hcuo_+4C%RV%= z?7AVyp8TQy!@u~O$m*C&*GXGmNHxv@UOBsM^{n#Y?ioTKfUE}a*#n_g zHdF>OYpyC^%e-2Nn5#OcU?D3)$Oyi&H2^MZ@L+kV$rZxpmU~+6TUI{2nyRYGGnKQ8 zYnB1)?82IR%PWw-a&`{iq`b2;l?m%-wj)ukpVc$64iB<^Iat@{Ex_|AEpI$rvbTEVVS4zGh{41@Xfk&m<9-NgBDCa7+B1 zc!<$+JdK=SfYm{Y)^B;T8(4NFKbvl$LAer8XyHy;RjXHts_yeh%c>p_1aPNv&~o3} zHH%+54(3a^o`t*~%T==HJxhB+T{Z?&)k;WcWzc$kMtvwK-kwq42==@?qkf(`_Kz9$ zWIDewqduI?VFn|C!EzU?-w1BPTDO^6dG@kD#vVGp?eC`l*5}P? zmuAGamSdoY3``UTIB0&v zi18Cv#P|uj+W3{g0E}OUGkyb(O|c%!!$OCU5aC#gW13e~3irD9T=L%NAZ%YT1TXVQ9@tEsAK8NWvtITvAKb)oA2I z14Pe-piFgycQQ@$CQKU{4?-5&mcxRb4D&YKnYa5vh}~;Pd;&P#n70>?J6`v+A?VHm zzcQgc+fkjP)H$v1&!~3=t#@VAPlH46hXqUDn7TTvzLY%`6g~SeO8?_nb=_K1GJCk> z)NfvY{5?{hXR2{B;UuCzmaB6*tMj_5^Gelu9o2d5)p>2zdBy6y0-UwQ)vd(gxUS56 zQ2o=!B2--x3tQk@ta+;u4fS3!mg+pgN}w z%_jbgG`cR&qe>$!;2RUDR_DOVYw+qMFnV?MBJDjCE6-JymHTXWJiKf>;o&8Gld=!* zfEEo@4sXA5uzX zGlqIV(=nX zq*n`J7QDdOUFeW+53LBtCUB>%h;e81!-eF=LXPzx_VXXM!-KG3jm_p57ZO;rvMdsg znjjHyG)d$;idAwF8r>?rz1AvO38I(09bIxSXO*5uB|WRO*VwEQe5}`7AM5cfe5}@I zvg*m8^|x8|m!S2pS#@Kob#;SUmpc9W2K9L6x2fwI)q{=NPN6{g3;nI7WWuvGo$+Z5 zyE5i5t-!Ljr1Q$zMO5Sf_lySZgF^P<6NbvnVM1>c?a=95fI$q&Q9ICyA+O9q{s4}9 z8BPQW7!-%}d|;vIZa6C;yX$8bT~{pGuGlGqo+ZvQC1GJ`t-%%1Feo~|xOXFAOhwC2?hWv?gRsTycj|8xFk+#fFLI+0DQ9mUFn6s?<;l~AFAnVEr`BCIgy zw$8K_D-kQxX4@A&A{@U`Tz29%?+ND6xNX|UB~@_Hfr2=ND|vM-0;|J+c6A@8j#ujV z{QCp7dL~B>RO1^wcyot9(QV!)?&6}+&eEAZjCL7Cl`sl+dZS)D@XG$P9vLKlH%^_a z)VcY419j0U)?9Cny=D|fqOkw2_S(e9N*LH;J~HOxHt4sq+zvQexrbN@_0iBflc7=>fk|bAhO5khwlW90$~+7*t}-4r zDiel2zz{2~0h!DdmkJf0fl{DGR-(`(XLp?Ty5lnJ$v^}zZ)+6Z8r~!mHyfy&FqNK{` z=6c#T7gwJewWPS;+c%Bzm@5(q2kP^K`&PZD{a0-p18A)-=d3TtVBAuy`hu z@CFp>Cg9=P8Ch}VmneA~ZbIz3!u8xDU8p$)>?eqApWsjiun>Jv^n$tZH#T}RGh-!K zhn{$Ln8t&@if3|rH^!s*$dCO5!!K~XjsNit1f*~L$01(=m|-K}7V#ekbR(4XDyE5m zBercK2zqp9XzL;bakR5(($JL{<1VqswN;iD*L;?usw^#Fm6T!hL4>9T(eHJe+DuH@ z5Vmut=Xq*l-sQqn15|tVel$v#r}mvzRau_=#pRJ3URS8(!d(?k-tlk>RDmkkh8Lt# zaM2_YhxizwR_Yosek96?TDWCk$8yPIxnT7O>a61$mfcXF{?+)2_Ln;P7}v&n{e$rw zt)P|A&J^u;KThM?CqCPet{O2JvK)`aD8}%d{3&5C;%g@?w#DpbmN1-WA-XN8!b3Ue zv$wJ@Cf~KI7@QuopEEcJ8$vDHpy3h=v$YaVXw$qJYjs7ubG*7psf#Av6R7tDLrxj+ z#nt~`O&|W%`1zmK&sh01z8p|oYunMoUu^Z;x9D5rXx~We5C6dOsz#TohhjfplJNvR z&g_8!dw*;x&MyA3WrAYo8VC)l)7J=p=h^ z%i4Wivt_Y8$UOd|4VG6QSuM@{t3o&?8pq~>-|_}_4j3z#Ic3PTY@jFH|MVa z{W5nRbpHu2#C5Mk0x?3==;}PT8?=Wj6D7>9B0Fh8+D#YXX}S1M2`)uPWp-|jx3^$q zds7$?x#Cfd0H*+m2x>Q1znx#-&-vP94YBLoW;ZNL@E0+36=cm~g1Qwkk6VNMw*qxX z!2QRuKemVQPZ;!z33Uc`mR>o#{mMB>d+Htm{)%UU)q~}uMUY3ucf-uEqGT|1XpNi( z!7QX7Vv>m6{U8v|uV+A@4s>S-k{&vIaRK|;&q6AiXoj0WMK+Xb^A9k3I7!1X5Nqef zCz#nLn`zI;wk!&Pcr?Sn$YThMx`)r;Vff-A3g#3@7tE-gFu$7Fbilwbn2e(Yfz}o* z$>Dr!1{#hVg!|lv2=3pF5yfEE$Az**+z51Z%Y7G>j~f0}fUbcUa^-@K;pc+N+3ncA z%aSW+x8a+}RSq*OH(P`ln!w(m96vTb3cZ>h^6YI^h08Ay>VoK zJh-hYOJeIYGbA!*cbPIvv^Th5Fss~EncV?}4|lWvmnp_d9>C=l+df@TS|MoKD3Y_q z03jqYxMBq;X{&)+L}S1efLyH&epsRTi4~gfsb{o8E@I3I;Y0*0G~e-Tx;OP+^eO`6 z-af|&M1C+>-AM*#X+qunQey^Wy-s3mf!+m4b8s*yfq*@e;G(V6aiQg@8j^&RmjuoS zEz2xV&;G@3?5(bWWUmQYFHfoagJ**Gq}1oq2UN1^?o1Kif0D`HkyYQ%z5(Aq(U5<# zL4B^_DP-{GM-lt3BYD(vY-x(c48ettKgmpVEaQVU;VV%d_YPlQXYX)*ei-ku#);t( zJtRDi43I+tv5iP?rN49d-t7SxBFA-rQkL(Dx~Y zp;wc5gy%+NiaC!K=-<8!kH9UCdXNd+L?SJjP2(K=Hh{(&*q~5_lLA zQB_)*6$=QrXCD{3idDa)H(<=}0K;=p&3ns=n5Nt6b=5^U5VfKc$<hrWTQz!Kbj=ut*-poXoROPAkOzgdd-YI z??53#5*`jniWsAeYzDjkoz}EHwHor&>i1+N)^|i#m$O1KfTv6w67qRqPH$>**Hb35 zKZiZSS0>C)(A;ZD$thER6-M4urWNGUoU;p+iM)HtG^mwn$SIR>C(5*e)MLsdB5}&( z4&E(A(F159Iznijwagi99U&V{+E9xn&Q;*ZdG%7j-0}Q}`^N=R=c`0umc?s!v2Oa6-aU%BrzLUXt|*7AYKqyyUXr zKLT}ms_idX^@~(1zW*)thFcoc*VC<^Xi$GhH+-o<6aLpsdwjE zf7qnHl52RbNo~xX_@^fIZ1WJH-z)6#`Ely%@x=V#_`BEy-e01Bf#D$F+S0@QxgcDs zmt6F>H|=g?ksfD%a3H%qTnToLuB^n@+aluVkA1z#`bS*e0>{xE7mi;4^W;Bte{0vT zWx+5<3p&76Y`VGTrU58}UR2h{#SM@?FuIfvcYVG@!k% zC!##}i19Q$`+{zfgV)kl89-OacU_?ruX5fkcy>g-PKa$Y$br^b_API`kemvaGnNgt9cVV7W1 zrXz}Y2>O}xL?x9=?0D|0G-Lxk>4LI zwf}!2n}L!KPwQ_$Qe5t+Ci8-XK%@RYn^%%8XX8l0R^zd>DPb6?F!lfpiQGh5BDaBr zmLA>v0l(auBDvSHw3yV5dsgddJLhNtP8pw$`4rgEp3yxd<7UST;4b%9jdxTgf7&fN zy9{?49#9Ezct9Q6+YuHde)%Y=$dv?ADLH*CQWwWs^tIL(qIL~{ktHG*VI$s5>i+UZpHwwUGBVy~E*TGGx z&g&5WKxYX%7-qNTP)(s5~>)MBrpi02tlcs!Rx+@blvr#ti(&`NTLC_gDDDl91` znk1!oNf6JniuWuYlZ;h!)eR{1hM@JmX?1t7!-vx9ck=y;)I40ybxmef@N`DqmTmn) zUVSy&x<0RdlWllBuRhr@^bEc?&H?m^+#X+OQq|^Ge1CuQ??KM~Isako{)qOEUMYSl zHk2~7Dgjn*V=7b!G6;SatpH?)TXDajWw;ZJqP2)^f%3?sw4TKs*=cNeerQ!h;OhTx z#h;O##NX-Y`J#X#6(8;|1Yvwz{MlFAUSVUoRzgFJX@AuikJ~)bGCT=6^{AIAbLU@9d|^%wu`xSIQ9 zw0`LhYzw4KS;1_aT(8;+UoakYFae+K{2bwMDk`jOX+S)I$ zlEUg`TwWGdYv>J-9_B*qfXr6?3=&jz>+1QLX@8jZX#SCwmD||Nz$u`j#9Tov)>J>^ z8&8(-g5tW=6Rg8Vh?{)~h0_FOG#ItdmnrMS17aL)80}qq>@0=pk_t)N~i~ zX>Uf@crAS+EeB1V{Q!eH;{zR)(6ga#m+Ujw^u{aPj(0)+>w&r~(3doTOZx|TCfrAg z)ma&j^Z@8sN3YYpufpuZ>vEOcdIU`HXMzz_AB5DR`;YB>|61TlrwM~7Jv!=u@abv* zO^szi)E)X=j_P%pNdW5I10K3UhLC`6z*+L#*l{}VP9e;w&`)NOPsnE0e#p>*Z6MOe zNRJmDVpbRKC6RJCX~ZneYg8nd3nR$~9-#C4u^W~^1gO@$%?i)Qkvt(n-fs865e03G z$vtB*7Qk|&aT~WQDniI^v#23t0kwqMU5Vg`6G_e~J1`&Ro~*=Ub>M~dQ^H|{aD-(l z8$!yUI0GUX5^+XO-_6p2hFK#kbf7_R9Qq&{1NrpB>-`4~9>RaZUJ#~ZsnzX-fhmC# zyDEz;`l?vK*)SE;9qc+S6S;ASXZFHoHX$#4?wGTVE*1?eyWzkTx7?EBGvI^%b2yLK zQK5I8ar`wI_3L1dTQcgisXacHLFl#bzKpsz&COBxi`XwczT~GovhJmnvB)0Wc!U@! z<`mXFlL{UoiU)_!o_sz`{LzTN&2Z`?sJ{+c78nHboO@Ksos3Ji2Q~SNqvW^aO?Zzj z8Re?8u@a2?AkK;9*nxr@h(tQx_!{Bg+9L_E7CrHcIkL}gkTA52ytRGnkC~n}V|w5L zCfXgERnJ##gJQF*xVfxOU;xx6MkA;k6Cqf57-rX@KF3J;O8j$p)Av6ZzSvJXv^S?M z$wg4`@Nx*cG1kj=TV`x;2g^|SPQ$k2P_B9C0f(NZzp^VHFs_VKh=d$lz~uSl6P(0H zsUHHm@t}F1SH*U7$At|Fl5NJRJ&B`5SW`|;jwzrsc7%I`Y=zMrW34a)lu375bfDS% zJ1sg)7w1?yPAyhyaqFFdTCVF{r@uhq^)SwjKkjy;jYH;MDJQP*e9XU&e%k(v9xDEC z+&+!sFKk}_)bop_u@2hlI_T+6mL{wyw}C7~2Q7z=K_@zB?EEP#H4+D7j)B=)sn6IC zz%iJ?) zLc}q!SIv3jd8g>H1whyR#SYDTQ|dgmtmDvn zHELnpQptsOyXywRAZ0g2@p`<4mXx6~%YXLz>~`vHO1jL+2_rH-A;2-ntMi5d9lv{HVDf$s0Vz zFg|kB_}3U86XJz-&LTZ5#aYZ_f7E~JpqX%%NXAZj?XYn% z^Jom2cI*3K9_bX*Ja)l6&S)9Fk53qSk(Ki>v0we+Al)G<2kW(7^#fD7A#}u&+dq=&s_Hj~+@fXTjMxlLDOvEmAX}i=lvV<4?@D5J=EWrp=O4xE|wJWTDF~AG{i{&H)x_{v&Wj5U~BpyO8qAI z3WgK!&$Bo6#@9{RBlG(aD?l}-6FoX^?KI;em;}@omp#XJBVd+^Dt5`{3IpU(1-%== z0lnP_{85D%lsgE#y$Vt20B)C-GP%h?^l?daxaNG8!?oxS?_jq+sy@GO!Or<(0<|Sf z&{e4BD+9RC+FgwnWn-wLGJqSd1={CT;X$eW_tyPoa%HHmGBCrSm?cZJv5~>*fwBQH zhHYrC7TK*H*g4_@NTvtn7Ls0h@2j3ys5Vsldy!L{S8sUdG?I!q3)N!y!LL^AQCJMiau<+Gl>r@m@Tc~svi-J@0TklhF2_Q`Kvr!b zUXVc-(q0+pm991rAJ;EpS33nNDM%Rr9+&>iPHpcgH$zyS*+ zgQ%_FclBC3iiIz~tNLtO;Z^uiR(&;%x%($F`9EjX=Q0bFdRI1oU4yzQ8{h5}`s<}w z-+LA7H=7&}+QXTx8xM+p`ThuC*WDjn_wwX0AF3>Wp8W~u=l8>sZqzP@2WO2uh|8bs z|LYMRA}?ZZ4r8cd6>At6m4Ev~Ku;mN$w_?e@5Coa5r1cf=L>AY-&w)^dF+$s2E`uJ ziK5O=PuL}k(U4qW6hzKFOL0}7K~*0@m7t3lRm6pbE{oe_Z&>#Is2)#$i%|BG{|p-S z{Hm?g(MlcN`UJNA1^HhDIF0n)=-9&+bn=h8j~O>=l%&Tpw45_l(Kb1Q-cLu;*(#kN zqiMX(vPaK^K*Et!Un@v9+@Gg!-gx)`58%D;&wp`lua8gtyYz(>NbYMFspN! zELEn9enlK9t6~@-!9jm0a*eB70EIb&OMi)hf8#H$j<_ta#nxv!+4q^=Z1@5p@s|8d z)?*SU3FVyb}y<%KoR=S^|yra!W%N8+b;@WqgY9b&@%pOR)o|KVMrzuLY>iv(O5& z)@?|~lKWiRIr7oU|ODC?)}!s^l8KyPshGM^oU>*9d;>k1`2ciOBZY9Y2h&(ZxYI{+VP%8D9pz9 z*z$Flf0X`X8URw{m7xry*qZ5mPH2L9KbJ%LcD_|_Jw?N%v)P~cLwFbe6;@DILBny% z$uC-8$zZwiW#sS^>c>J@A)AjCta{Hr9kRkdsZWA_@Sp>^eC^=aY=U?`E?(3o0=!~_ z1-F+>z(uX@R}ZDU@IFJ!hGy3C>%$At69XZ?vGPn2K7CU^?VrZ|8{SVz&43BXpOqfjt-^I41H85K0Qcms%Zd7~pc zrfU@=d`(~5k2Ta^F&laB_^sc5QljfP$?ZoH@$XdU@ z$E{2B_0gv2__5?R`yAJgBkfMLFi@QV89#qyR^aq0-XEw=hBdHIgww(~0?)1$(k;Wh z=!Il4nitk*I1up>3*B6WDUAFOBe&+v>kswit?j3Drm^tj*V(5Zu}7omW4-*Wa)Lf2 z>ucDOzHDneNxv*g$<!IFHhf5PX`Ns6amNn+~sgr+G zD(1?M$=8~by80Z$_jS=VUS0hQ_19}dUto?zJ^nUX-q`uuls;?_IvF5m|%ZG+cRc+F!u5`rQiCvfi}@e_Iy+M6Y8V;zqN5P0Il1Q zTGO`Tm6%j*Q@dN|_%_wqi-C^rz)Mh2sawH;IiUKhB0ai|FvjAU}HZufcdUHhmqX{*L)Ewx8MW*&`vO za2^B~8b9iltIW{ha5NZyRNjB$^x1!AjG^tcZ!q{x&)Ekt_~1WFIKrZKMnKqI;Xfk~ zT9W8RShm=+gY?pR`49cL9qfFIkwk=p~T;d1;Yv@a&~arGM2|E$H1lrJvI z*yeA>m-okhPJ2`pdoS%;*rxmE@LD%Tb}BkreP3Jt;c0UB5|l+x=wtjw`uA%yo{d`H zxIRYbv--!RICsRZrc%qwIa)hqX6xpmP&rOhsdA;^buUVA&(2W^LwZ}~!J3Kb$Q@iK zz@(Xx8Z7JC4d70dITy&DQ@GKahT85F>RU`+uWr6*=2x4V4Cwxo=+A2Rbd>p7gx`AO zd;e=Uz9;nG*G`}RXUA74=PT;J7?0Pz6rM-6{#rDCrTarT`XGqMHg#);a^((etG*Ur z&s%JqMT{;MIuKytQkKFtAvRIT z5&g{l02Jdl`QGXG2El2^DPB8*KWE?K^@DRM2AE@LID{0@FWs{fvQW}*b?IR|v;L}# zYT7b{OHDF9(I9vxP|`Ru!^R-H#|O7TmV8vpiz`2&Ke0Yzm@nJ$@0E`~HKU&=-v~cO zw#oQ@`RhfhcJS5h<={+4ecdytdYG~Hh?Vb6m!Zg3vUtY5PIfjVu82ZSEsmUynak1VuJ{{!)Xg!#SkH^Po-&0A=%U%URZ8TO-|f3o(q z^G_o7N|!fA`<>{2jbdMtuQ#LBdzyMs=v)x(Wa0Si!nU9Jc1#f-a8v=Lx+=Xq zFvzQPSaWxEInN|V@Bx(C1aSa}&yeghz5wgzBH zEn*$s3c1!k^u)9c`8D6BBECXkhc4uyf3eSu!Kh|C)`mN9^XLBX6s>O>@&CvJwgh5} z1y?x1Of0P6;%S3g;2jdk*h%Z9WU}nDG!hX#?ik^9D`-i$j5zd6Td06g8uij$%DVuwjHP-!Z&AgNp4Mk^=i~?a?uVeK^1!k!YafMyg6cX=FC}G54Yx zUX8Ol!b313vyt`sr*R{KgSaC#14|{-g7jZaylW`df}Pr4aK#ss@i02$jKu&=kDDU! z$RqaP${hp{4bNio0J&S>Me7lPUB;Z#T!y~YgVi|j?)LZa3To|aM~_A_H*%K1`V3Iv zQ53f}jiZ*a>~dhWsqT!CMGragK)2M(qvI@x{N$?KQVsD(ECa}^!*ACH;mm|u z>dmi4@rM%kA0*j#Ery6;mwFVW7LH#%DPs+s+11SW{6y$$+db_Ys4-#yTvs|k9kEns=icc&l1k( z$XGUp_+uDvfxU~=PYf zSHN#5JH1)O>t#`PHd7uPqtT=_@lmdE-4gk=99Q4Ce}dYOh8xV#u=EkR zx5+wu+#U*tK+LOlJo(GSdP?tYmqISR{mI#GiI2%Z4Um>5bS1P(`0i{rV`N7cRtLdJ z_>B@BBlCNN<3Bz+Qy+c)`!)aV;J-QnPH$iJ5c<9DSRNSQKKfpGxP7*vB~4bIfY}pC zg{IeFV%Wu`fE0RSc9UEA#dn8AjdcW+*$Kz46aLRQRIJKv^zhh6_SX-+i0AjT3=;%P z)rCm>MtyfBSQXIa7DU;M&{rTHK1iyIvUg(dr?YJiF@<7x*MTrk=J?4Q>j&fLTQhwFihs@|&ulGjv%2q`bV=GAu1^q2Rj<|XsWrS{>bag&F2 zFE7%s*U38cI$3TF!U53@_E8~676ID5-qLOi9M=GHhfcg8Sg>c3d6WKFXT2RgGMsd< zz8B|sL_72*pzz$TP9(2nCc!xR%!HkElMCfeeno#a#L{6NtXJvnsvir!-zyxx)`xKY z-DuyX7Z=u_-O<=`IVFn<7T4%gUbbkYoHiT7sdnt#K1NrBqaSa7v2XPbQ}9@bH=^0u z_iK2P0_UXkIf}xWYBs0E=FjmPlQ(UFC-U0*Mf#KWk0cKwXxgJA~_$k_LRIgd?TU*hDy#+B5wUXN*4XDcgyj+x(xe888H zCq0~y$jU;*ely9B>&rZxAWpHv%=>K$S;JNwzpGgQU`u*RzC-uUL z_F6U1UibU`U(Y`x+&C-RLwUjtiCIxjZv7wyC!35|Mq>>OFtC?JE>>|SR({$e^2;fD zUyr8{lwb0B`!?8aG`iz+hFmLzP-S1lGjN5;v3HKD;SCQ7BPPpB9AD5|BmDtGRU|mX z15#ehMn^Csn=z^w!q@i~S-JH%xg?y#j~9+z|6}$f(U_o!n7-Hde>RU^eS4BX&x;A# z?ilBlgtPKY{HsZS8(@a=6F;;Fgtg2zCKZ2z#vsJ?+;+ z0KVV`;@*wK#SOm)J5TIyIPr?nDW1*zWEBC7)0sibNaRk$uJiENJ@#>h-hg(k4Ti{N8b_3oDwl(@K140Da# zX-f&sCo9%%lcNH37tgZrPF=W_M}i34&+QT&Ket4cz-eDQDga2gxZmJYC-S32y^+5guN?r?VY zGO@qsZ0>sfoj=PGpC9`E3PT`=7Xjt0KfxWJolJK^pIR zy`qHts3K0!}B>c z0Z*796qO@U%ybxd;UpzG7tvB9i&l=h4Gz6J_<7Q1J+QG!d9YJxafl=szRbxwlDWA^ zq6G~l$z)jvTWtq^^p9zCgaL>YB?b>pqC zie695|Dtb=rl6+K_Js2xbCg>`<_sc40yGTFg1*Q3Hy(U zziEC-f5P%l%gO-=1ggMDOG&INoWl4?NoPZ4b^x{J+EY}mrFZEQoICmyQF%M7K@2S6 z=%fow>GNyZ*}Hu_-VMgkp1yslZ%-oaW7-D#={S`6zpqKC3I3cs6a4G2ePa_T@sg7p z$kEgG&BX70U8$Y#_-i^Y|K|0FB!6*i@{90``GwK!QP%rWmZzi8v7{A$*S`O_^Xt05 zzjFS^z`ds*ar$URipcYk(bH;|fHtE&6Y5h>pL;jPmM@a*ErN%Ix+AjVFH%2UHyL@9 zHEnus?(1r#|LFXoJu;m~kKE>m%_I#GW@9W#e`FS@Sa*kT3+&zKhHKdl!SOeQ;>QR_ zzQt|wXatPlW{9lq-o8Afx%gAAj8rqDB9&ihD%P+h%R|q%rAvf{e)Rn(|Lp!d6dRuq zg`mLPbi1F@gDW?#i}!`Y1XRBS z15oCQCY*VU26{y#M!w47Pv+RnudfdkyDa%*_ixMk4XAmycFHZEE~@~6y27EVuKYxPoi%n@fbY(S(0aVUN_&5!(W@BS>4@p_ zH^V=n^$rJv&7v2pFKs2%zJ|qrQhmbxw(NXwtE z8HA;>;<8>RhBeHO;*0}qDvDYH&`=_OvJ`PGXHm5ZR7 z43hLwX|b9B&teva(0;6~RQFCih79Ch^r>DW34D_c@1SSEqq06QfQ zHDjjh48L}JW+9EXxEG(i?0vv0no#4#sx-j8iCe$9t0jUD8uS+;X~@qDTG=jcX71WS zZiqDP&>3lm1a~Oz4_mj_X|&PjOJBGRNwEfjgw2wZ_L=A=X*Mb=%hytR(qO%7t}3s< z69r}u^J>qf50KS>tXXLhqzRl$)Q5`B0FXF-?$zt=3I4P$K-B-hmQ`~Agkbwb;Gs9( zC-ajT+EQ_+RFBsReUM%ki1$=tTRBJ)3ke50_iaxds21wvMm(_PX#XWXL$*4D<)vsV zf?^dxhUI`P^)rRF*u7=d5%p>Tg-6EaKJ)%}R0MbUQax*HvO8+ByQ|4emVi}{s{V;h z*~QIA408-&!o0KB%o@pY=>+WRWcgutD*3FD-&s-cCtk40y|zq2d&Hu#10=Oa$xj9U zye*)XmgD;^AwBSpBIZMw3n7#FPRy8JgwZC`7N}~k?WS?9!*#UC&mLUcOr$)N+)R^O zRvlKqnJ`Flb5=X@FO1bt&kkxEXfhgTva9H!A#JxbCDY|quB|WxW6LpGP!{NCjVxdm zNF&yS+=wq-V)T|`lv_`=sRxEOGy(HGzM;(_L>jZAF)mk0ul9DanGL@z%h-6@3++z~ z#jHiAwgx52h}!1ODF!(dd5fO*m9LCUydBf6E%1}{1xJg4fLv;E#IF-7P& zD?i9q*q-f7m6J>0^OF~SgTPl3YeeL@o}6YLDYN>YD1d1{uxPP9cmxJ(hy>L@L2 z_gMYH_#L$a|FYC%eot7E!uq22BQlK1sL$Wi%Rz{43gzsaxlJenWbH@3$M zxCZw47k1>}l6X5{51~Xv@P6q>@M86G@=l%~IW=-ZjpYyJ0Rp5U%OF=x1HSZodAwTs zWi&tu?BTT=v2;7~W3V?8&9J6khQMVYL$%y_^Yw_n>$Vcvh3&(Q)EMcbR9yYy(?3)$ z5^s=LgG>eeSV942P_KT(MmJkZUHTX$pQkVyluR#qKFTA5#&}rq zjT(=sK}MMxtX4G>Lc?g&GNYEMjcYsJKcmC=*tm=zEhC&RHW$t+QqvV{K5>1SlmBNN-IM<8m& zyXFJ*UapPN6J6gQ9!ir!V$>?@aG0`N;b`^Ta(BWcymn`#nS3YPgU}ZK1MXYU@vH>> zadJ<(KW{XAT-W#avDr&@Q?FY(vu3R0CiR_XYaHg;QS;M~YTC|`a?p2_twF&)z~9BAnmNA!t9c*N%h1MO9f z8uR;^>^uOc46*hdwLN40R%q)YOo2ze0m7Ey+BcT}73f>Cd`53?HU*uLe|S^Nop(o1 zss_QCk#@EQ-PJ#CFaCM$tK}Dy|39<+>Yw-7ocne0d&pzGU)Q3J@qS%Fht_PlU)T2D zSLttH{x>tjJ95{(lr|%UZ~tD2y%BrCc#EC!FmNFE?}B#7?x_CWsP{pPef+WWZDFbI z_!sMMvZwuj_5HgqVd}|E3wrfdh9YipiyZlqVff$u{$1PtG@ra10gZ@npwp5u)6`y{Wm{wC0?*ME}t|G@)cZCyY^&Lc89;dVf>=5BHa zg`v|MxtU2H?Tr2Kq&@-~jUR*uKI^R>b-)4Y9bU_D7cX$*Qngl8=h(^KKCTgk=OI~C z7w*>R#2RFevpjmkf0zHPy*{i7HNPupc`{J91^nr3{*A@nC9m(r143BTlL?sL#Tanm zL<3a{`<+gFaQMN%D41{u`C9DA?~pSQn?|uIgG9I)g~xFqpgx}>i{Lg9eLbG*;#_(2r0>+#rF?k2&rprM0d6~^iHe1) z^?9kOx)MoeyrT60_r;NBU{6~sUxhO66M=L%H!fC!YJjNYnzlEu$y{5RnXABYMMA+O zaG}JRSh*$2nIj1ZM7GKM$LQHVw0(~|1g61b%^YtV~q zMI+R;A8;Rx&tI~+AO-zfCG&Kv>mZqH78^BV_oX_A(H}f`$MCpchU*kOVH#5^-HlOU zClC28hz0rU?76zS{KEc*zK#S-J;rcTTc|z^T|;zsROSP`9_Vn zwLM4}U+ejowfj{>cD2latIgoYjc@nQn>TMOH?rv}I(iBGTD|lc0luThuAMMH1pI#N zS-3=Cj(&W6hjEOI2UIB}!BeW)n&_4W|1tMvCEM>;6YtjB?Zz7NcDlwdPF}B8UlZDs z?r2up=IUq$N{?t7=0y-sIZg6YhSd42|_wm zm8lWWxc(YAh~OsJ7jbRD_2{OqrqsTA`lt7MMEWcCu<(v8H&xQtZ{Ust&ynD2pcqPE z!v5R4Cz*!t&ci5jZ(_v5&{Qoyb>gd#idgZ;PneY=KVe4c_`gf0Hxabk-zD>ZhfD;C zJ^yyt(x@F4)eo^!wB^(06!1G}7-(NfG*#s5^ogpp8T#Y$*Rj8e{Z9tFnHk?{iM6~m ze_i_{%}77edOH%Sy8qUVK1bBiqHgbRcZkhU+}2 z@whg^(^&D6lHzwCaNPnOtliew+(B?o;cDwES^caXzv*1?Z1*d(x3(m|VMf!Bdj7<} zQM`&~ZA-k$*UJCdcoo}YOT3DKEBT4-bWOy{^+#==!u^IAij0e*2Wvh+m>kn>zlJsW zUmCCS>ds2b(GY8CwU1}_%lWn~Vn6%0#EU}z?_VcglzG$-7U5~LBSoQqu_azazoH7q z-CBk%@uGkAc#-(O@yRn(+KmT^^U2yRXAVE+ACE%c`TLBjOn&wAPe*Um`9pks+Y%3{ z=g*H#p0W0pnXAm|#ZfStwOR2HYQ<>r5I7?1Hl$%{k|H8b9~1TWpA!$!G3~J_f5c7$xM{o<55Kl`wK;JsxtWJ%met4NDeB(|VQs{W zkV{1RpuS$rb z75RX)yimI<#Qt=e2|&UEb;2UK^Gzc>A?xCyax)6AXSLV33l}s{HuwgvBu**6kycbU zW8LfKVER*mdMw}(fA7!P_sDq8*zF^zs$PVNEQnK70LVPezb`0~ANEdXjV%dszqXzC zfoU#VoBh(}fD}Vk2+6v&?`X7G-+SOLc#HqGw-Zq99`!a)G;Vo%J1h$%7v@t*7s(GIn91 z8(KoH?L@hIAbC%@Wgi^+1241jm7JT}TpuAxt@PO6)UccDduZ%Bs3`9!hrK|NC_)>ZhYlB;m z#--VD&q}wXr@sj;uzCCGQ)AyxuTgzxM(bv{E+ktq#ZND^d{aq|pWbwTtviMHR+2*aNcZjKi z`QKuXx7gzs62^xu_Smy$asMDTAHmf{j9|%z=~Bx|bE#p%9tckIFmoARx5XZF%y9lp z#NKbQ$MiBiCzq4-$g}*at~K3T{9`xJJAF#9XIuPZ>2KCQ5|@4K{{0sJ827%>WNkT5 z%KLKGJ^QcfA8(d^oB0LiNca{F3}S~xIDvKcMf(Hcexs;AV5dqFt>IdMipLtw1Pk{O zqaVs48!yHvp1JIlON`#~!EUJkTzf?P z2V`VCWNhm_o1ri8PslOLz#OxtPQEB|kiQc_s7D_E$>kq@*0R#M=Pg}&);Y@-FH$F* ze)?G_ov`ezb7sulf8Tx0)8fu^PkG1U1m!GtF@uG7}XPmJ7lrzpd zBg|eRo-J|nKlkjJbJm%Q&pGR8l)re{;3?-WTZ~6__})5sT5lAXj#c(c#@`ken6_6L%oijBR=i&SXae^&z|z!j;;QZOfuwx0Q%`r!oY&e{(bN%53jS z0AcUEwIER+l-kAP6|KK(2Vi8bGc4zTZDwr4#+c&r0dco+K(tcbeNq6*d!rntDAg6s zyk|4B?_sK&wbh*(O*jdxbvp@ULkaYRi8kvrwz(~BPs&%Ry?XG$f_kI)R|F#5*SA6x zGf>9f#MA0E-F(HV+`d-jtIa-I4ixadt}@M(gs#kfDMM|Br*1%ggDV@VqIGQlD=rJ9 zs~vzZ$fZ<&w|va(Mvr}?F9eFl{{ z&jcffNIygE5B16I*-V0mk!__0YibYlIj&opT9W$VIYpIfM^n6MUw+N<>(D-^tEk-( zQ(>JZHuR%pYctsO-<(yccAKEok#Q{I%#9_YA<(LD-CbVrq0~`vG@3o7j;7p|n%^wt zD|Jk7q{O$xb1~1c4o4_2U_q=Bi+QUPN!BO?L~@)HiEB2cj^7%UXEvo4rhGdKah+gA zZY{^2%`~njhRqh*8Vx$BD0;qV7x`GsAJ=?afPSFV$vYxxI*2Y|e{XKyA74*-qoAFN z4xvulPZaKS7O9J)Ibm^UP<^E%AMU2&=G8$9&B9X4wbkykr|K#?bw9@@ zP*J6o&fN+uEVCJ1@_Abc@8?ei^zDAF*-4lC-3nzZbpf{++mlxsP)Y8 z2ScPQ1Fe;Mj9lfx_seRG%e^$_xFTAfp}abl%F-%9vkdB223kLL8C8$oepyny%B5)i zW8O6`Z4nK3v*zXMXsY4x8kb6H*SaT7{aubTLfzxkN#(SW~K@=pWo21oZyX&bflZ-J6qYgL9lSna58w0DKkbp) z3c%?|*!sKKG}F^F@s`;Esag59?JgM*_;k>)Gm;i}0@!#Ez6D%=(jEDhOpqK-ve?2cFhFeA?Zd3Y5oF8H-A;=za8+Wi1Xc`ZEir; zb8!})2l()}0_9Ob2~x#;9OYPmA0f*3EJ{-xJU*E`%0756I(${!p0H6bnxwMurcR_B&eSI<$nlPL^Y6*`e~Tb51N;u+JS91S*An7ANxVr%1<;1? z0%yO4z zpntc}HV?WDAO{ngNf|ZX%7Y#c$d?H%q>QF)El^Kc9|HIpqD-&^CJBn}2fqen+=+m0 zZK3TRbX!1H5W15kzl}g0`R11?L`q1%k%?x$sr)MB`)}s$vU#_4l)W4x-KOkGaP{yC z_DZ3VwhId(ee`93-bwI2DJB4=!_iVrHv;kyq5aIfeVADoY5Flh4T}IinBX1a;2i)u zjNmsBJUIl1`ky}$@GFQj&(@{n@KpW=K<*>-*wmjhqUk#dR3toZcSvK>V%V_YtHJoS zKvUy?O62i>!Fx(Ibpm!cUcmyE|2jw4i1B!Uh6#SFEqbSrc>Z00e2UQHQlB1_qRS4d z`)>ZrH>Whp@m6*_hbUAjgSY)HDYZXd!NOF_kwR)0ho|y~0CE9`r&$ZYOl9<)F)h zeio2l5_-Oc?%_d$_oq}3Ucto{I@N<70?7G<4qIrq2VDcmT0*b1&>j!^G$85&fL?2P zo)$t2;{fR)^xe_{r9-L0{z$o#sqYbrdfX{IfRvvx^*WvU{kH~~R{t3(+uVlK>xDvL z7ks~(&+nD;Ox|0O()K~5-VmlX(=e;Tjz|{JjUGt)PGL1bsoRn377rxdU3xn6>oKd) z3@pLCH4#(LWppc?2h0~q^Mks^LQZp%|BwOQ?tz4pmgNB5j#qGp)V=t5d|yHHa%ZY} zh*pPhs`vw&{4p;%v`wnG&xcd$CcJ`=r$Q^Fink$2eFVvOMUt~fTEgT{M3R>x>3dB6 zq@UdM1d{&3ydf{Azu=?0oofvn~nkGLPFOu z-|It2el=1*MaX)aZ|@M=^i@E9P3X6oZ@LFjA5Ez)yn@FF>2r`~dNL}1AV6mj{G*g{ zZT1lq?H64N$nOaKDKqaIW)>@+&)f-J#w&O>RYGe3Wxp_U{vbe3C-heqI>SM=32C|r z;9n5sKS}=$A$_sMx{yBt-tjTu{Fmqm@b-_AF|@jYb1U&)CanWvv^;|M0O>nKROun@ zsPsF6Dxdp!N=?Np$fnKsJJW;i56G7ZEm-Iq!-9T>?rCh}MmV#p8qzA5Xz>n=;;H;i z0CzM3r9DlJ2hX$OD0={W6H#`sD6>Np?K<8K@auCxDW^>n92BCEA(cNA;ERYd#Zoy~ zP_#pEBOrx5pgrkZj~6xuLIS!4zBn$e?i~-511!oRA&OL5y7WD`P$}$UB8cY2OcU9^ z`6pDjmUGhT3A}>2meipkDNTjG#i59OZi>`f&P}Up@Cr_}qz-eWRQ_&2CM^T>l=NFq zl4=b)s8CkT)LS3adI~0{a z;1g-J5U=3cbmL;F@R1($j!&i4!*~VnN^hs3b3N$GKS`?{p91vV=~Le(dFO@DrcaK` zsAusC-a{cAE?&WnX*M)ajusScK~4bVazbxq=J{b};;Q_60m^Iz z@JDR5j|ownKB)ZGz`2ZgciH~*7FURA&g%gF8&N)ENgbO=Dz|k;orza)za_OGPU;;1 zKSh)WEXrHsD8B@_G6^VOu%#UrD@{Bgslr3YKocH=u*@vwI^^5PykE5BkB^cMRbSUKa$?fiq@Z|_4}rqeZ9wJAw#X9_id6X-!1)yMzG6!|F##_uNaeo* z?A^CTj)yGelfoS01xWXI^9GgQ57_rI$JcBbi^3d9mEqjZi0)zJ+kHFa{gy3lvE+3V z6qTP2@Lfdtz9s**dgN99t3aIA0puqwy_2KJ@Pq;W8d09L^p-?X{MPyz5YO5k$iJ}2 zr$qS^?@7N&wP?llaA@OO)McC6erpr39Vhg3k@XGTUrA1fX*WZX|eF2-cFi9H37T+>~JgP|gz+sTq44)Ck}M z%Rm`tQO*ykNE1tAOV^Y)*X$~PBJ!c9&P>-v!9$2%TV|%RT7V0QohctrmKL z2mLD`lXnJmo6H9gp#$UZ5U5yYnWr8DXeRhwB*;BUpGa+WD?Go|fENQO(Z3UnyO{QXp8#;1CXhVIXimnF)mB3^Y*Gm*hY)R%k#yFh zF$BOx1THoOGX{m_z{688(_`@J_SI!8NemiepGZL?*VfF>`CAm zCTEie+!uh;2|RP}2PJ2-2mCw$BLtqcp9U5@;79>3FJvBEYN|3$fFkAgJpee4z{?>1 z@gZQ+8A!Z^fGZ5AEg{JXjJAAo2AlEd@h9O^jbDcMVEm;JjLeBUQ+m-xxscF z4|q3#(kE_Y3xI6K1O6C5(d_pbVAcbw^U`VxUcpTU*x&)X0XUh!TTGda9`Hf{?j-P5 zqiH!0_!$6xMd15whw*?f0k9iH5`4gR7!TM7fb^yh8(^~sJPE+>Fz3gOi6{t=;u8}A zTXhH)fHGb1?K8pS4d28JKnwimoD2Mr0w+Rlg~;^JNSw4UTJ{MmZ~?9o;N%O_>TtY* zA6)&* z+G-q*AZNBizD#gW!&|_EuESDt^JUh72)XNo%}bH^aRR<#>mb1Q3GiM3o+j|CMqX(T z_$vTfE&_0^0cJd4I{>0l>r69bJ>dQTibg$XfDIn-1OV5N>_Z0F=mFmcz{3Q7jZ<7y zCFcRZ4}jRpuX9uaFz*3V7pK*(cm)p|U2O7zdjN1Of$Oc(c)(KtxQ@U_46xtYQB?Z1kYp0&*pxc?-=ssOi<&$=gFHzxxS=vP01DJz#68Jj;9~kqS|AC8_ss zkt$NzF*wFZMW72YUsp{pJ!z!!I_68ed^+?Z9k=PNDC+BY1v?QZ6T=Dpw5IO>Nkmc> zkwg)(M=R5PcUpA@gV z$nA!jH8X$MaH{YI0N+N0ZA9$3ZdSi=Hd1b2>b8FBZAf{TsoMo4qj6RCf*l~)n-Q_d z1P25Sdp%_(dln<&Q(ENcN4vyHF3vCMD3j>Df2kRLE$3J5VI+^66G= z%Aynz>MRjz2=?T8E^tJivqhc`hoZb4h4%-$dZL^b5#^o{QSJp%PQDyjxb_qD1|8|i z*V?Do2c4dnrw6@lq#aBNau=YQF)=sq#ZV>RRN?bL6M^?>(Y}*XDf|klBJh3u)V8P7 zY8GC>z5!XtY1}s<I5oB*UXL_Cj(nFK`DbO+$y zCeDS#5tfA?y;#%q1Aty8cm=@?j)ZCgK{W-h;BrD5J;+{2J(&>v)E$Nh2Qefs2I$iS z;};JxNI0;{uSe=jgj^qdZ%4Fxs@UW~ubG%pkKh&DVxi3rDj_G;^en);v;qYeRiuiA z5d4Hl_!)qVoT|^P}^j71}Qqo?}NylgUpAh8yY&u53va6AoHnt z544%uzIj5%xS@Owa*q&k`%`S{>|sfj?At$#RNoC1T$Mfkbx@>}!F@4!bI>pyUqq26 z58@ja%7V8b7%=&0Jc(a@ESJoQ9vm6uo?&tNX|8^1W)`yqdp@vkCFW6q5W@Jx!g9|s zSN;w_zE9}UGN?dkK?qgZKas7!Pt8KVcg{3CHaV-=%0Gv1rMvBMRuZ1q4Y2INCaVTet>UB-_ly0yOQ7 zK&rkDw2!c~Q%SU?24MlxJ!SAI+=R?RU~Xb5l95H}?vS6jlR-bpmX}T{&lRN#H`pAD z5)1HX7s^@nVZ4I#E$vJa?O0vpF?`dF^MECFNn)YVTE!Y!<@hFrz=WNLhNg|Mvr4p_srF~4`za13jkjg_g_|zCup^lsG zbPRCT6Yo0~FBjsGyvjcg@K7gEp0X%;LHTvGbGRC*{9<7Lo;jYkIhw*8FGjOTW93s* zvg$0ng5PD#1g<&G#)SZj%lF5O@o@`|sA~EMpp$k3f&XTpYg{~YCqVacqsL2@qwyii zU%-*dzX>Q8lfqwZNUg=8sQlG{JV@x@Ewt!Ce+)=&cR+(I>jMrZc+hPDIf&3qmL?0( zi5_$wAnzo!(dKRSpjQHNH=#{g3K)6YJm~#^banwc&O*0xP_0PXY@P33!my?{B2 zHpkX3hsvJ}$Ww&2W{r#|2{deK38@zT6F7_Z0N&Qwd4twOGKaVNkKKZ&B4x*O@wPXL zejVqFJMD>Y*-UySG%#}pzL(F&+s+)OMz9Gm|JW{>8}M1k-kjR@??(peVnDaO@D12n zjELm6lMcWxrY!c-Pwz+m&Tr#)11?0ZvcE|MQ|?95rvSqyfzB(iZCC&=q=MG>;9=f@ z08B_DOt}$Hg=}Mbx27pbLIiO4YylswHzIu>CLui5`UO0^oeu>({3jm1&WCXbV1dGC zg~EnZ>n-^5JuseqHl%Cz2vhtrtl7pa_@atk=S73^m}mYSITrR4r&YPTy1 ze=&vf1AIvSPqHq50fw3oKi}t-AmA4Qh}O6sT2{B%H9rYe-Ub_bn74RWj%2+ zV6tl%0cENGR_TD39=7bU8Y$UH=^(cQyYy6f+}1oc@5Hnz6z-0VK>JWiqwi?p;uYw$ z*ZFBWqXz6^0n;a8bI@3Q7Z$TWueT`OhFjHp%y?+n*}Ow zUfwyiC?51}7WzqOvmv^~Pcv-15pn12X$GLWxkKS|Ogb~YV0Rdo+&e{*%V%SwUKz=^ zrMj=eXE(NKXP2h6+r$RYepdGr7Pj1ni2%EI+}Y&2(1!_o-S4!pi+$K?mfgMH!rtk_ zs7$JRJT|s(q#|6CZtfzxq6|}R#bn_OfU@_ey3e;L?@mt@6kVg+fpP(B@j$BkDWL4i zN?-3&>E3x)lYFC}v->P0zX$savbUr!@yh%t2>uSB>=#qr3au$9A4uQsmH7#vJiwe^ zN_AfWl$J^Oe!EYln~f~VAMtZ`cc8Y7%=xhhE2kiN4wF9-Nxm1!N0Ij35hAJGlzKmt zKNCql9LYbV3_q7<>88oM--qN&(OI*fk0d{bKz*-QNXp8bYSo@7B=kZpXPEfjwG7qkAD>cj1+N%vXFdUETLt z*wa2tcbJV9_ER6GJIq12t4?Tc@L{?Weh9Gt!Ylg=AEwKD*}{GshlR#Tbr0fPtWfxi zk43Ju__}Yl2rtJGRQHI5{ndwg`m#4}J$yG_*}q5Hzxz(4NvWlbXON^$JxzOIpv5b@ zQ$`zyX03ZCA??#l-`S+A?l0hR8JlUBOxT>NJKJlLcg=*_pt_Gh@&m-~j9}kvlcz+m zpF{GeV9c_;K8sqkd%xbmru#5$Ggn#Iem*QZCaCTwEY@rv%M<%9dz&H-iX*7*Wfpd@ z4-3WKz0M*m@Da4i>;%7i8D80iK1?#}%3Wv?mL($i%JUtIdR`5xSCt+5Oo`_wVyW&k zEW+Ds5WGr#(PAyngab!22MDbo-P`YD%6Uf(f=6bB#k!^jOAF{FAk5kq0(ws(H>&$k z00rUtI0e=HaSOX44iipQ_qhF(T8LNnrbOyyP+nrOK3pHmZ-_5j{7)w1d#%wj!!Yov z`lzaVp~bp88OsysJr?!TKB}~fylJi47Vfju`^(8#9*4sg^{e$!RrhZ!*1BXYkHa_b zZ_565GOBL(?*OX>j%)VO4D*^X|EzC_+R@xI^&|c z8)q7X7kvaLTvLgoEY_bAu~hemEyACD1lnOk;rBo|84>dA%RYj~$jmnygiO|xW}K0C zS*(UcEY-ciA~gC49wU2TQg!KMFw*2Bc#K?O5!!r&I3pV@*4Bwws=IHNDW}~>@EExo z2wyINk?nj0kC9(lgq?kaI3owlHe_~9#8TbwwFpyu1doy50O92w!AO^n;4yN@K?Y%O zA0f`j9TuxE5leNa4mM==^$|Qq769SUoxsQ&d<2h?2Q0$DK0=(4tp*I4LlUu6_fm^+ zn2+Ew@(m!ofxYJNET{jbXOj`tz1<-Oc9IVh;~{Sv>nw}4s6Liw1iHU&@z3<}Su@PT z4mBm7<-@`fHP*=%YiWHf(-*%0)bWR*dRIv_#n_6T?U1yL$yaC1B&+)hJU+psclnrw zXOJ{?5Xm3Neh@6`8ChX(q)6)RSSI1~@tsKeK9hgwCl{VYQs0}9{9~WS!ASWaQ=c}- z41lP@y+|52gyaobCYTDAkRqu+&t8XN+svD3*?!1rz{gXCcL3vY=6lZ1_q5CTt_i5sHjRn71 z)Vug!$S^PunWlT0RPkseJ;3Dsykt|(<4E80D8TkNFzK4bgODW22YSiPZ^yWyiVs@Y z0w4CA!1g~HBPCwh6AX;QbhC!7v#>=zOw-(ZJ^}@JWzY0rs`ycxe7=`#*m&JBCd zOc!-4V1LIed#Q%0;x=zV+zhYmWd@s~SJSwSEyJVMw_q=1TJ7=Y*%_7HD;?~4F7}RV z?U3_M-IGtwsORy@9<43Mwu}Uw0FBnJ%BeI$h#($}lpwV*a1qYpN&q-!v&PYeoQ#pkp9eyXf&HGc$7n7paNuaP_sMmBYN4XB7@+TYYt+3V1}9f`}E z?64>t0~q5LsdHoT`h6pG#ew3~vKW zs=LaA%U%Q43fl|-U&Q=Z1)qg$*vvOIg#*axOg$+mU`Lm_o!_qxL=b{ez-|MD{Shj4 zttx9Z1l1l0of~{bd$ylR2Ga zUgproDR04d#!E7TjomNea~m*|d0QjN>f&Xmfa=D2orawqhczD$T-9?Z5SB6XGQ)Q> zX_(xX0KlMBW_jacq0Abnp8JvXG?VYQd00O+h3&$?dgkCp$mgC0)H!=vYA-G);I0Hb z9*9@=m{clvHtF=v$K%aRdW%hh${#(BVr^@X5dMz=Eo{J>)Nk*GTl&$)E0DSQUVKwi zSgwe1n+6w^&TQQDlgSN*o<@^>pIG+h4MJo38+c723e{^0GH0*@Wn%Ub zBn1s^slBNT_u@fqyC*V#1>dCqJjg7J(~m3O~TZ|0nFb1EeUnue*C@*1yK|f!7M64#Q01YQOx2qAi;oQ&XH$Mh@v7G5fcVXeCON>U9*ed?~k4BIXBd; z&|Ovc-mYPiL9++LXQ3dT211Zhijk0J_l1R4_`eIUANDwc^e1rhB#dS+p*WthvgYCf zzqp|A2^5*)y7WPDw>2rQ09B^Aj01Paw{>XB{JJ$Qf7=WL)=F4NprLmR^dh0cQQ-QRoZrN(x^M^S z2au76#uaT2doapnja?PTKT^52^H2TFH~nt|Y12PPqloDx=?5*F{%TGCB`$0Z6NIBq zx+D(R^68(}^j~8<@pfs4I>pbrx!*-Mw`J6BH%P>9>7ZTx8!d2L5`jabpuLUz#V^*s z4}4GJL!$hKi}5A?D2$I}S^C>2`dcFFjn+Saff1;9$w^@GNt%0^fg~13wMNSd4-Z=R zfCk2n;-CBVLp#Q&ld=6?xMo}^UeMmoWAV$a&j-Q?QT(gN+xi8djLO8Te6$FJL7Dh3 zAKe=WLqhTD2fWg*#ZHG2q4+iR2L3Vf6Gx%Pp;`c9EGMq2fQJBLEGLdD;M)N)mJ=63 z*4tD{eGZswqIm5JxZV1Crikk*;1Pfs7Kzu9)rD1ZFCd0R;tj$xcd-qYNb|P0(|r7@ zS_u|LG~x}Luqhs*L>GJ9&Z7lt93cAA<4zUu6M*Q=ipwE;#n@4fT4D>2zqo5?`;$Fa zJ`mW=#J8)&X945mBkp5yj+#Jy51dQ7c#m-Z{#LzSRj^W~W_GO*zoE8-r;gsb_@I!h zU~P}EXbKGRrc|_Zb=+@{{FydW~Fx>efd4@#0r}2G5X7 zEyG(rgJ;M>%kZAh(Aba;ZB03g*T@y96Tt8|{^Bov2G5XJEW`IcgJ($n#zw=>K0{+e z4zpZ;u8|8N3oy`M80RDJrt%CaY+@J+K7(h-!Iq)kXJ~B5J(jE08o2`XCm852jNADP zo*{!l6oxH)2G5W?EyGqmLt{gJw_H8f$c1yCuET@9=RqCt@eDs6?TC-vvBv0-Z+0zS zFswa0*OJ@uc}HSx#glP3(YL&93Qivzfs5c=ogh@-wiI3@m)OS`}Oc^%(sG@GK_VZ6Tre{M(zDMb=bj?tTSr&@wKSG zEWE!jsjeFw$r7jb;0jZ=JtUGfPVFHT@CSgoSg9RSq2zR|_PAK7J-h;5e@GC7LEtsxj8jxtdSYz%RERK^)+Z*%G8ebX`)Y^cY>iEpMONkVoN8Q*5SlR z;%&7jjq(*JegHsawy4v$|>WR}0-!yL^B^-8|SuGf67;f?vy(ZNheTJdk+C*3w%4eKu z81Aq)hTK4^%UO}cu50V7vYS9k4b-;d4Q(BtMz%n8pI~U~Rp}mZ|`I{sJ3TE;`FN>=IhesJY{LatFpV(^xx3Q zk-XGcJJ#6e^=U}l-ziZrzbE9THkJF!(ynSMH{;wWcw;-r z-BxvOHUe}V23%@rcT`;@w9HP-E>ru2dUj!GS!Nf$!7H=NO$V9TP6WZCuhnE62vx`@}8rC+nvx^Te2FzWo zn_Z-V)WI9WIjv`xUi)Y5_A%;UXO~MihwFwj&4|3mqKcS3%~cD8 zWHTUCjSB7T(r|!-_3UyHXw2Ti>~iH4(qvffDmB`0a5lS4!%Kp~H!YtHq=a3Q2(vl| zIq<@8ldouBsb+2~L%X$!urQRrvkaVFv<19@)TFMVon0E08mObX8QMBk9*viQ>W$QV zW>nR#SEaj8bn3Qy+|pY5a#9n11mzi9huQ2RcR;!AHeoiqh%P=?0(Ap$hLkY7csA&A zTJ|us;Z@lPHvM-kXnbWJvr9I-46QYAGrKg=Im^-}H`Un{GmDvBn#etGX;(Fs+YK{| znO&x3BS6>TtKNooN7ao&%f?{(*pWf-S3^Fiy){=}c{0xHItAA=^I=Oqf0hBz9m#JA zKM=X7T749TSkgt_=Ho2X@qJ7_L9ZEr>3B}M(fb{D#hoO1YdU!ia<8MTFli-nkK$S` zp5_GwUc?35)VCZ9CI-1UZmB&Ba*cz=Kz(wI3vz9HFvt2iET|tYgLDEeZIEkkT-zX5 z-;qXUSoP>kW}L`e0zMn$>Vs<=bt`n!gZMbJ-**4{L6nrQ$b`rb@+#IdlYYM)s%GD3V|LZU^ ziiLc>zU9;)IAsjJ)aGOL$#pn;{Ca%BZ=pakjGG+@!_;+v1YY03iNL!}hYuEi#f|gp z05II?jwfNdyc6)Bxx$n9FD&iyoxu`|VBv(jf}q{q;OLm&hNzTM*b<1KX}*`^RZD>~ zIjFcr{!KASRHUpWmyE?lxx(f5XvcQ3oZrQ%ORG-Qvv%?8oZ5D#;n*ra5FDYlLoEf& z-Bqz$et&_*5P5)chgJMAr|!jnVc9xA*pnPG3-5W)2FrH&5kuHe+N#!Q<>rKc$f>sY z|0b_{=a0-J)7vn%dz}IJ=UnHHNbZN3jpZiPA82e>i;X1KAbh)7jC_el7-$J6ky(8X zrM%^eyXQ{_V3Z3@E855MkI$4J;A2|3x_FLJbfB+D3w5810uD1mf!ZElxh5?R%b#+X z8#n1o7zy-v6#L}W)$ies#GQOqk!`7FPT+HI4OF&gYwDmAmim-2#>_3Tn7K#p=iw?Y4?S+JDrW& zE-BCF20LPa)l+}dt()@XRVR9@EK@Te}X>8qf66d3QNtw!0EO4a+NMjnx^zFU?z$c zk&Gynlbf$J^)Caz>A@y(>$txS?E|02godEh{~w({R{YS=IC@R~*oLbOZIMsY`C~tT z#{9A3ryeaR%?z+nBm9*I8#B%g4Q;tk6Eo7+#^FbNmO}21DmC-4e6aHHd{CUI?;Kfn z(T%YES)g=z4)bOgPQYDc0@jVdSvnyld6jeP+qen}4a0CO;1N(XPny~3@%m0?_rk?s zdT%%wpOZ20|0$6 z%mowj!HS8E%=C(oOPsZ`95Zf<+RGznj4ZjhHf^)xao90qR~bs>(ttD-_b zQ0~QF?TyhDTpwJEkDxH$qIX6&5dE*98;?d*2!FNrMb+pR&70nb%lz>`uZ{}q;s0s8 zo*$(d$3wXMhv+p?p$w8SSC6D>iv^I&|p39zI?)k&B}!rC9htg*Q2Ic_W#s@7Sh^RqhgYtS$jl-ger z(0xh_lCOW5uZggzDPWNe@jv17U<%_`$f`CuLGL$e13B1S!(yd2Rn4;uxh4!U0MtON zI=Ex0ZRRt`ppup=F9C!2BN59N1Cw`HG_z?=Lp8Zgv1__)o3c=>`|)JAP5BJVpD_L$ zaPl24gLE-2?KXv-Ww$9qFuzLv-mvO*u!b};8{;xazXPA$rqDRMO<4dLvrVDeFlO;) zqtX3Tw@qn8GuxEgz~HtiB1k?X-2zpt*ru=sL3sjTw@ncl)~{llQdd>}FPmpjb<3Tw z$l3y5(lasgzs3bXuFW6DUNS7+5ViaXO3Qf83ug~pbUX*MNzidHp8r9|O^>DOi}5Mz z;RmCX{IY7hGfHMptvwqwxW#kKtQjsBLj zl6u?)Nb2!z)Ry%SSs|f=rlYOG;z?OO(w9(=bx?`o8Bx0NNV70LJxT|mr)2g&CrVF5 zk6iK)co0zNQ1uaXM?76PENRLM8+_UAsW2WD4!ia=HcCk(v1Y!~f4*+WtvAQYAa@W~} zK^9*`n<8OQZpqK@*Volx?~O_j=WW;LF@4P~{N)AYTLY)pU~#>^{{G-Fc<5n${SU4W zd_iAdhU-mxM8ba)u21f#uMZv?221wF`EAg146aYzPp(mw`&pG{by?D4*zyQefIHS5 zWVgz1vRkd=xweC0d?R++E*o4{PDF@gB3Ddgx9*hP7@O^Yd+th(vHnq57=SOYH)c=4?cp_Izo$mqU=uDIVvmxC+E20!O`v+H)lavjrWTRXHP(46^bm5hz=mfA=FoB z4urE=@wkXnm_}t4-z|Y5yF`UKXX5ntvoJO98=bsk7_{t<+VC-=ofoM3?vq##%*poo zE4{xh(3X61^u>jqX3|~or0Gx#wO2;zL^y{}Z-MKp*?j7pe{ViMW|}l#hpJyM!%$!n zC2t1tzVNvwNtAV{P|)!{eyaFllP%f1W-@>QvH!R$@W`@9X1)g>ZSn8m7Kusr1 zz?OU1r3M~UGf-gRE^h%7I44OGCG{qcQcJ_uIEEy@MU74HZen``YQp#^+VBD{k<*G+lUoc)=6p2T ziS2zWGpu?=Ci92Li~*mW*!X<46WhV(x`~Zy!82=`c+J9evf8?vV7#amQZy*Q8f6R3^Qi%yxUcFRJ2_UIluQP~pZ4 zP;1PENP6W^jY$g9arl(ZL(*$C$`+30F-L8DfpAQ~r*svPUhAqh`VU795?nd5D(v$U zTuBT}HZBreub?8A;L2~lnMiOINSnFP8c~vaM9ZevLPpF)g6kO<88hqTc8PDL_VfmP zikZL0JDqwu+B{z)HnQJ#)CJg)ztuFhG45?T8Rg!ln@;ZS?Xdz4I{wK|wdg8$Z_fr0 z#y_zjHRWmp_pNzT;NJu;Ujr6>Z=Z@^RD&oZR$-zY#)P${djLP zL7J(~k|6y#h;j!D*POXvCB%vI%Bg0oupSkC(Ktbx43%T$DVA9|Rs_Vr|0MX}UGcY+ka8qoOim1ZEZ?JJD;2NH?i zKw8XF+(6bM=UMN{b z;{;XxZw>4VCDf41Y?eaJ3nf2Ut`%Zg6E5*asOh)47fM*Jc`-zn)8}?WORF`FBF2Vq zKr=6t(6S1-Su+f+OSPtDa_PHhyYF#>=QrmIB|qN8?!fwxdmC9FZg8VpAD)V)OWLp< zvR#>7A6C9lG7UnFq6w2BEQ>8JLS(hT3mZ-7P}Tck*ibBcj(^TVvfJT}{MB3pZGOVX zAJ9|mfowqM`0t);SOr3nhfYnVb*kn*yhw__V*lJ0*jggFNQ^!opB%Ww-Z@#C(fv^D zl~cEXRo##4U2}sy_7sykM_X}+oVxM>c;z3&^`P7}&|(YP0+7J_=I9dEus-Em%?GXD zJct}vA+i@Bfrm5^*-5G~GAFf2K7}cIl^|QVt#X=ttRb%!@}ro+WDn6TSGWbs@a|~E z;^-V@O{JY%zAM-N+oGD48wK`)Y!pr!>2DMk!^}!XPL{$r(PQjT_2rZ7x6}X6e!K4! zSa!DGZxeD2J3a#NBJ|sIc98yhwfUNS28lpi?FW$UikvzY|D|82%a9(}BsBYrMtTBtgSjM`ImOwN}NJOE)3Jl2%B`;ErnK=NOX3)sd__CD?oT zdqMCkhCvZOp(lhNvjBaNYI*bbwV$)NfhDrhgYlN{<2Z~zyKMPkQMPQ6Vx&MRt1$H= zw`?JhY`~T%G<@uqEpr^Iz5x1E4Q%;B%FJapOQB}jGGnpfTCrv>y=)o&iCea?T(kU; z(pB3}-Lgf~Wci_KAAx3;Ewrpc?!nL8vPIJ}xzd}5=CWV3{oD%%<#mVT zgJt;3x2n!%45C1qOt?x<9%HtseKRd<+@WTw8%KJ|*W*p{d&i)pUz%kltyu}fSO2c5 zbmb(o*KJ~rY;8SB`CcABIUgK)&KgVB0*%TO5QDe#A`V_G^0>m1Mc&^SeRpwGF3TN) zftIx3sL4DOYhL6{UC4)Q#aqKiLs%ZNbco0zj~Ce@@BHO_$YR^bl4Zu>LsqtpCr`j# z*0IY(7@@xZ%559J03619(jIlk*KXSwgD;Ht6L`osxUPfTfSTI`*4*oUYv4gO&u84_ z*8w}15IK{>sHLIVv1mwc8#lvOnPq62Y#W7(aPq<9U_}dFunfh~#lU)0?7SLp8_7_) zZQPWKDz}XS=`GiuOWn4SRgXyuQWh>-F1Q$$TaM*1TOrhkoIVXHUc=1u37s*7(*a+xSPG zCr3Zw;N#jFf5~WVJj>R`O98g!yWxeNuvrpGfQ-hcjC;ulOX#P3+R~ZiEp%R3dWWi4 z*G7NT#yMH@9KRNlzs|x3mpZjL7r5bUe5vL6x*yRn{gvnI@@qma%qn2vEM40=cfll% z!Y`x_pW&0WtgX+bzrm|2vCZZ=)el};&fc|cau0j#gO1g6LT!tj>J5)8cM-Ll9OW$q`lE9zp&=|>we~ILN0?HU@@8>s5c=d4R=WHnX}n& zdHDH*^bgx`gS>_t2>a_y!wt#(=&>Jc8*Y!By0(RBxS_csbQy!xF6$Whh#b=}HEdSz zzk(($G^#>m#<~VRu89a5Zc79&DjSYIc4@fVy@u=Aw`Cag+<(ImBJX#i2o?w&ezHJ# zcVna~SK)^0-t2j})|2&Nal#DjAZ6~NT_BL(E)dp6_t=9n_SwXU_h=-Z)SN>d`%cLg z2-_o1P(qdPYe+Ftpp;d37Bq3_j%r3A*@T@?*bzAm#;@_FL)FJX%>scMa+%Fis97LP z=xDfBh-FQ<^a5dHWE+};GFYye=%sY^l%=KBnkMtKrX7}sc7Z_4D&$(Bk!A7FrCQT6 zIds9z?brpF<~Y~OH1`hL&`fiE&|FDt);&vvUGp?Ia8szMoaXj`uuOBje`K2Dg`MWQ zC1o_`M_AEz8@)q_T;5Z5h6dySTOVV`MUW4A9RQdSb&~^p5XS?(fAYcH;r1feO5`L5 zm!<3)ziIU9pG8rSmR#z8kfLB<5vsWyyRyon-A9B61`s~gcw45B$U zKrXm0g5)#OcYs(CgJ2DUayQi6#UMn6^{a?MAR(p20GuwuP44SxT3K@Nr8u|ACF(Z0 zq*QEjkDw8(WVXo_=mbKA3(!Ailgq}7g>?n@4nO|&R&ivm`j}9_IzxVm^i!oa+4@v z5@%nz0tA~l+xcpIVdCtpsi94rrDPc2I~XRabFVP)`gslCC-7lchBk5bF#v`;U3o2@ zV|PL$5@*l2+px6DzYCUF1PlA$6WYYtPl!q>h4M^;run6gS0(p`HgR^X3uuz4NLfpp zIQuDB_`VAgXID6N>BHCP$0-wM=gu-5TjhTShf$&?&kk+k?B4>5At{^ECe99?V_3G% zM~7sRUE!2BiL*C*RwYxj#M$`1&?e3nGRZY3&a&Ku`n|+i!I~4x5@#J>;t`lQD}+{L zR-d6<*$3~QZ!6_yv@CH}u=bg9CeAucD_8g5ZxkKqE7C$Pah5`XI_ClXrWO)sXJ6>X zO?t+(EOEB(8N)I>|CX@meq8JNEOGYZ*F$-k3yHIy7Ip6%20q%CRO8>&&j}>XZjp6C zdEdA6+bxnfE7p}eyshs+Nt~5hvSILoGw{Qn$GBOUzjwN|IvGk@TEzWf6K5BEVE9&f zb|tKZW>!BeGz|GFPthnTWZ{Q~R#TN#N(*a-zZQiyan@tdw51;zTE~A8ZnikIiL+kG ztU|(Zi8ru532ox6r(M&kKQ*-8O|)x69VB+h0uSxc49*aWZm9spC3I4d-cUXwU`>ZXQ< z#Mz9d6K79shZp4!gd7rQ9SuiDwl^>mXB}+JIH-f6A#paNi5Zw&8Tu|U+mkC3rpdaq z93S)v`3sb3 z-t=ZXj%~JQ2_>6s&-DNsjv2VL*`9;3{Nv-V_L=AzTVC>_sQ=cIUiL@}NXoK3#k?%r zQ-5{Yp8TqnW!avBiI$+-fqP>acnfUoQ1ux)NwPg%V{xjMY)^aeg~|5hS1;T1O)3z*`C56 zt5a#Yaz|8#tC(75dx}NNSTw5H`v@4q1*u(#WDC-7#JXRGxCQC!n6txpC9PY8OPtw( zOS>RtXW0em)Wh6@G>3JIky#s;IG7H6c0o$x?1Hp>xLc4?Z5Xq7v!r~*(#BRdqL~Hh zh@swsR0PRqq~l?Y7No2}P`(YYTabzj>sPTLt*g4|4mJ<6J1J z_O#uTC0}~ko+k+7&eek3b~bUIsd zWjft71a(Y0-G1ZOE8yCfhNL zS-iO~&pyp@)_xGK&;qivIarDK4-yhf@nXRE@gKj4{qZvK!{sM#h-V+j6Er zRO^e~7}I%MHwyd%U^B-0V2c&Tn)}&H3_PgjNP&gBe9fia7$awLC$*prYc4cxNSpq( z4N3Ica0-Q88}eJDHWWy=;lT4<8`98NWK&LDwhcR7;M$Nj$CpxjdLce-8`f1_g~K() zwZ|Q&xb}KnWyW3iW;a7Bd74&mw;80I0jz7!?ob)~yB$-Pb?tp`#d|aoPnL>~p4c?m z*kAqzGlJpTlVYSmDXZ`_XvVciAbFL>7f!v=x%Or{RPAF0)w*HLkt(H#^tf z8o6X0s8)l^xb|4CanVWX>b+YGEv?oxifGH!y|+5o9xbboyX7|L+S9a5E`1hlH}Osk zWJy`t?0R+w+rmC_3E04tB{xs-Y0@-h>0aoOlqKhK@l%#MVI>u){U6lMailDL0`@TON;p;c%F_1Gf?oocf_8b-!29O78P~9J zj^`iKUT~x=`65qSct{fwm$F3V$rUg~KkXZ*ED8BOA-mKTq%4hpJhUlGlr@!hsV$PS z^cJdG>3nBHi1U5UNZlQLx1mE-ynx+-Or-y#JGO&^K{AnCclen|eb`D_CKA6UqaYE8 z@4{vxEqlgv*RKo9?>1LS)=42AjN;j`*Yn@(#-Hq(ad z5o8*RNV5_|a91JIW;RT+@Dji#)5eFNY9854o4=ebIL;c9Hq+(~yn13XZNfucIejj! zkK|x#muaJmABmH-O{R@5M=Da@ZJj8~w2}IfieC&|S04bDXQqwdY!WWkp8Er9Z)VYO zz2UNGP6k!7Xo&tFSv2Fon@pfOHTVm&rZ43#0D!YS94*VD5sU?xESmOT>iwf+(Fjp& zPQQWWGU6qRX6El4Hwco^BAH27Ku%V7-J6j$xr8dCn>bFn>asJbtpR7!aaax6nRNbF zM!ZKO@uaipcoJjF&ZI+r$YxS0MhcX&3gsW&OiCcR7G?y6KY^Mc*{?KCP_^_YHQ*KA$QwvZYI^V zOs@1ElIZ5*XDpaSW8+8KeuiIy^5g;eVEnG2GmFMChyrOc;lcyp@D=Px%)y)hWez^? zYc~haLZc^Fum!V?z?$daf!{z)l{WjfGlXI z--2P&al2b_Kdbrq$Zncy0fh1Ev`5`sW#GOwO5k?{KED~>xT}NQfSP+f?lIK{9#r#s z#$7%rHuoV_KlA?Mr!K zlR4_DhFUt$ixoOAEWJb34%_1;LMD4~rQ`A#_@y%0V}CrGy<`u5O~@6fYrE-*0?8hy z+{STpI9b!d_+&+x?9mS{7@O>IYvi$QAh0R}!Ix1&gk5xU{l+SRnss0xvMGLoTyf3N`cCmzHaVSk{D#b3>pW92wai zANrE|Qmtv39J*k`BiRL*fjA|}3^em_ zoJU)Yc3GC=8}`XHtb3O6u;v+P&!JFLIRkA6VVQw=|Hur)3p)dKd-!BD=I-a=<0l+U z+9AIYRyKvwyZTHAK9gDobM+#u<6igiZaL<;C@6i8QyXRufkB<+>o4YOGM89N2@Z?W z;!x8=IN8ab`~qWw^lYqAIaEqZ3_a)5wGv%URR!Tu(atxN`M@fD9BQU!O_+>|F*LQk zp&H8@Eb}L9PpzP{k7-$T8f3XrFO{R`QLM4w6Y6S(Mk9~IDB9Y`{CaF_2@6>TUFuFg zW=cKd1ygEYzf=)YA6Z&|pC+Z3_kJ;wU$QD4VU@C_li_!c1u)N#DjgrqgD%tQ=}Yr<7`*gFsHVPVSjI#Pg+(OO zyC2nI@Y0u|I_7nKGt5CIi)3BTt z?Jg|3%m={2GfhihhpPT9ePVX$3}1^n$-?7(N%bCJo@rV-yTX)h-_|E)m!?#}(*g5L z)6)4BO2T*aiP@!#D&XOOnaokTG-9XNrhNhMIhzBXS^;nIu0CJ8bd@=$M0docfax16 zUE_0?e*w&2T`yg0yHoD4@A-iX$B9}bAWgfYU%pu+u}u=4w7Q2{fLqUAm!(4)v*}-PlxahY#?Kr`*k+T%c~X@C;7`Ki<6%`$%%% zUBP{ng=bfAzXbSia?gvJBg$rms7gOH@cd|9fu$YG7Xju^iv5rT1JzJ`0HFrj|bNMsvckukSat<41;JQ48td2V+Q;}^%P zZLE=GgIO|1V6x#dqqHzrDC3u!^VpwF5mo^7SJtTN(wU@K;hEEhwF2;j#y7k-}ooc3lRME;&9g^`s{i zD(nwfNL_OrE84cI*{thG+ zj|(C#+KKN(-xaHY#~`T7g-<*`MeT%L<}B7bROE`Az7B26b%X>kwnb2T0`2p4Ln z*GTEF`YVy#c_d(bu)*yDqijB5n zh@w!tzwG$jyGLRnB$_${XPUz=IP@<1BtF z3oTy{oC#T_2^Rk^@zQ!v8~*b`X{Lni=3#T6rCs6E^uuQNXN8&LPh0UG%__wcB{~klaI_oeWUjgAuyK}RL_*3cOa{$_QVArjSck$&pvD3G z8;uiGO}@`A?heTG4H-5d@wxCSg^q1$Zd8rTg3B3YN5*<`S0*TBsXYUCO?0K(!L zpxxpc;DvP!bg26NQMlIVoMy@5oaWA6oYTV}hHV`;o{vxU#C+$Reiv{UA3}Rn!z0c) z{hPo;1-=2WaZXQzxaF=zSppBLc~oHGE{_N7UU#J4WE8bDY<~e7kFPuOx34RIMpU@E zybD(QGoo`JVm;u;W<5B^y5yF|erz)2D}F|_Jy z?yv`mURFsTmg2HX_|2~aGIIpdb?Azp(H09!HS7=}AruT5sRJ@|W?GIq>6>_OYEO5^ zr_@0*bK1cTkZ*ogm9%m0^VHSSBsmSA?ZLk35FEljTn!E~|aQqak;VBl)Cs(On z_f%ZjHx#7UMfp7km*G@*~Q=qj$4>bR=icN0X zu!XerA63%O2?-oflhK%A^DdF=DYtZNzIEiDBF(!;X^81lYSb03;$NV?=f&{N^qc_i z%XaxC|3pEHx((e!vL#0hgS9=*dJ5&_TCMwK6nu#`sVfKVIkB*(>Nao1)tA6q=38;S zCD&czR$Oh(g=F1Ug$>{S7H(Jt(O4eGP-VK?s|MuuR+W8va4>Jp&*G+ z(4IHMV<6PE@Aaak_c)65G1S+q`*(WvRk!WQPN>%%7VJ6BarPBsw%2NRmM=SM!&q9N zkvIQq9zW^Nd6B_0a4?G>f3WA4v;GY2KQ>r^`k0)GpFF>2{p;6bdJ*P6R1M4>JHR5N( zdiXf9>Y85yRzAM!HtY2c=yW*M4b4>b>b=r{!!n_M_W-27t!}t(dD;{7+u#@NZL2#{ zH$uNl0OWs#!AEH}Y6$wR4TQd@x)DA)8L03cqtR>G`~7~myd!;d)NfI+2!D0Q3mWuW zhA(rea*P4?{aw2`>Q2yd+Q8Q=dSZqq+Nj-EMZv51t2;-NIADT)pIG#~4An1a^gH7Z zBXEI7;vy&Lx89$6`%w3vj1=^{!lIXEsL|E%ml3$!BWYbPg2aix?g~v3H%PB;e`~K& z-8I=j+U0J5+=bL#ZypQc7ZEkP^utq1Xt(+_S*&86{s$Z_VO>QSU!=SUjDB^?9TNIuCH1@%2)>n-dMcY%O+UV;>i=sXPUkcbP zioSt3eyT;_0A-m)QQ;ZF!d*TAuv-+7GufT&4XZD2yeOh+at4HO$)bo5YE)GR17%S} z;9u4iI(SZo%0-c4nU#wof%Jl+4IcbvQN+r`BzX%8EQ+qR9LrR1coRVU${2`^s7ugU4e zQc5(5R|$OvtP9e^Uo%@|KVIeNT8S=)@v4k4S+vuzCh@9DCZoc|t4KALGhQXk7iSpb zRSwg#s^f+^8?U+soF0Qw#CVkm1$#K-=USH2qQAW|^Y3Qys-SI7euEG3Do=}279Q_Qs>1-Ac$HTP zbva=Eiap|0KKwLb6R+}$S1SSY7hVys^5OOy=WM)+of5{nY4-zc;#EF;0bu@OpNm&% z?neNdc$LRpUIEy}t6aYa<+hvTvUnBoKph0g#H+f$V7oG*vLM|KBZSj@3Gu2amT!8* z;iJvfeCj^XOuVYG4)uwp-PlyFcGH}VS7ma6>Sf^>o=BiZ12*w0pZf+2&#vJ9A7B%& zdd}Ubf%?nB^P`sqmUb*}(Jq(8tE9o?9w`sAIOA1jPU(2UG zS{jru2ZM`ONyW-f19I^yX#*J@<)19hc$LGomE{f{b6LDfhOkNX@hWNm(&d0{ zyh=(fy$|G!gVDl>SBd<~FL6j7j>$&c$cR_9*(~ScRjz!vn*rN+mFOy53dF>#Xu8~K zdgzv31j)v$JRMc3ff28Au&!FEA80mS9 z#;b&Z-DF(B|5zI0RT)hdb)^G)WbrDeI4E5W*v6~avssiXy9!F*fy>6Lgi8igX)~-b zY`jVji=%+pc$LR^2NxqIUgg2ZUYQRb#-EEG6fR!HhI8?%k3Vk|uUY~ik*1TXxOf$DFJ2{VUlLRM!VD9y`Vl}b&S*hl;57W& z5B^G>bMFtpS^e{{aO;Whx*PZ{kq;>hi{+2k>luU7cmot+`zDsn?2l@aHAEwc!Fj zy&t8H&2Sl{)FcjbM7N&DHJ|u-M7LI2nPJs?W-^C}%q!rt(XDrIE$c}{w_3pv6WyZP zFlO;4KDC3Tjje7(GtsT1!Qi4>A}Ez?i@j{1rh-@z-C_-b^22~#bW3Ddzsl&=b64ks z<*2k+ZrKKP%UwUZ#fK3YqI5EDRe3C#=$24ibZgRE z;FIXqs`YX#7Bw2MiEizmNvgXoJUkqnac9vj z(Vs=P_%)$gFS;ezk%GDCmWY+VgmM?%5=gb#z${Nr47ps7VzDm09`%=0GeoxrgT+O+ zL^)d{DBl9yMYjYW$wJG^fxGCI;Kvg$b#H0-5#4g^=FxPMr6IbN(e$G!M&F4(M7Nwe zBR9s<5Z%gXBA3oVsT{{8M7P+hHoEmBa9IT*y7m4WS#+ze>dqFt?U2yPosGn${3u#+t~ZqP!8FEtla>;!6*iw-ZjerhjBYT3)I~f?psq0zA#P& z{tB@1=iDW*=I(&9j6dhqjJtd!VCT;vXR;Nw{QrVn!j%QN8dhTxu8fDV7UKHJSSKup zRy6iO>#)j*hq1~PuAj#7FfvrSe!c_J$n_(TcKv*Td&0PW*h(=;IEWRWGI_)G(*|Xm zco-Wj4q4OmH*i?jPt$mq6ky|F8?$NoraCKFVZ0v?Bhib8B`n3o!}!gw1L9!<={j6y zEiBcr?}QYjCCEq}5D)vna@5tZ8{?Kzhjs8Nb->S$48l<7&yUay?Y@!%bO-e82}eTD zOZd?jj)9&J<72!0+^usGPqDXLOP1I;p0YJO28^fJY2CzA1UB&$xi;~X|1AW&7f<;U zDw6<5g9NRA-9me3>Ne)8JQruAUgZWo(bsLW7FdN6v}a9BJmpwR@3A)N8&F@by8v<- zP`B+yPN>(H7VNpH8fx#IB5|h+Z2{ z5t)We%dWa4B8e#P)uFR#huzo?89C^67$`cPG6#j4W?<`@c*-Hr5V~U!lj9) z*eMzDly|^Nhf>`>nW|m|Wx#zi`F=YC^6Fg|#+~Js%*QE+(F$dtfC% z9Z&H%yOgmflz553vt-E@&u@dc;#WE=@e;XUlr{D`eF*-x{nO z{)ne^-cmb6>V{^jdX2E)uuQ1mEdWhC#dUAc?_;1>u@R2cjnJ=c7d)_ZJVn^3A?P;@ zsEMa|=&hFb7~PpWviJLaZh1%g=q6j`Y&=C;yWimeOgu#cHvr%^9Ptz>gAInTi$zb& z&_o+m#!KHOo+1JqFhRd@7Clc35H&H7C6;u7N76BnUAyT8E8;1huBjHiG((N9-!18K zkEC@C>8|G(#8X5UM|;rgI-vA=n0Six%^S_7U(y(LtA*`cx?JGT0GqkA*&0t(0wKS~aTBssngr>;^DO@s_5<+8Ct%D+Ef+X-SbBvCSkfCyd`~ZkQxx5p{ z0_n-+Y`9Cz1j)(>$(vj-LB47^mdC7D{4s5k>Bmlx1F%SA!U)UOlZzCfjqi|ua4bem z{i9)as2Sfnl%Jqq_cQZ8b&unM;2dbL#{q@u{!4JKss;eNqa&N}r&qRsI82HHHh z4VLM7r~bWAU2Itnk9HH5GMhzMIQ7)OAF3C@!U?B-n6E|sW8vYxr0PBbH}$&U9uZCV z%FM0Q5sdl|LiMd>85uq4l}Q%9aZ|rAR2`1i5sdodd@X8-g~#}k>Ked|VAP*fVai*8 z8NsMOr2(4Up&`1NRM*(vxt)CE0Ud*P|?KbXn zy@aTLCsZrJ!u@IeB%eiXIZ}Jb>o1F9)Yy!fZqn?pK^5o4`lmv7+E@LPq590qT;X*= z!VXJBQ0+6yD81QN%H!t(b%~|j-b7d!%BwBIo&Hb^)E>ubAA9}1jRgbsxTVcDm6MU* zR|@>y((Y?4Cng8wV~*1clllkkP%YmIh>zO(U#tzheFOC|@Vj;ZzA9RZXN75J)pj&| z2qyskGvXt}!iNIBl8=+Wqx(Jh2Ea%r4eG;Ob{{0#*!L|hm&3&?#sCnBtzv;f8u`v$=oE(nJAmwk)I=|@w zX4?Y4=|@&(SoQgt%#|X;-=-CZ#je$<`w2hzO>;2B_)V!6zgfX@wC8g(OB-9=h-Unz zdxF9FO+}D=MtU5G6@F9JASmAq*!fLGhV`rPo8lekL2MozLfGkRa|q!9-+G4-cF3PO z9CIK~leXgl50Lqn&l?cA9VhRBD>;nXTc^B%TAMae2GWkY0^Tt zh|KCgD3|e#;_ms&0Qj`*G-=_#DpStWq#dS}tCy^z1ARqW$ekulA^d9A-g;8UY0`f$ zb>k+zA0vUA$zq?pnzFB98J_1{Z~L+PPkKLD?3-78573i3PLuYusPPs)+Lu)G0rURC zY0~4eE-0@8%nhcTCN0*LyB(;X<8qp`)RGMos1t!7_B>cu<`-fKXIkJ*($c@sllC;} zP6rvjRi0f5Ymo@Ey2~=;t2{-Eq>vvit)?oglor+u#~+-tr%8JZnl{hUI{u6BR)cf) zG-!!?8syjzpHU^vE_}qBTFI-OVw8Do>N%c?kBw?}7WSs>8u% zB&4WxF*?qkCOz!1oIOpNnzZ6&)cFlQg7ic5sXa~l6Y!eTq}Rk-IP~zGJxw~JOVeZu zOSMDwv%L6nl`c%0rZf~V<1NJn29_JMG{?d?OKY-O**5=wzG60X!bN| zH+uDkxb%ai;WX)tCOhKN{zvGoEKiemw4ijmg>jm+gN+#_Oe@^|7IB(%M$^0Bx~dC% zV^-qHx1%wW$uWAIp1hN9Z^zf54!IQf?R_T<|XH~hE0SlG6wkKE|{w zPsKl?vjKP{Y={3s$zic$R&sXo?dC|}>;STyeA_uXj~e9&X15kDZWa{|0f+o}e3$5Q za$L_cg+rbpog%pwW7DW`6}YP>!o=>;407L1?!qfT<>cF*(QJppxQ(UNFUgF{PP=7$ z_nl-;yXC%qHF^K#R9kj}ga>%et%L{aa2`fgr+y|p;C=<3OAT>p=u>S^U5@TlSM_l& z4SlNZXEa)^-`BwQRNF5Eo(|Z!G`@#;7;EmfI~#aVO>-F3$k$TpHv|ejvWa zUx61zFuVIsP{jo#hhXIb@&Pg7KRdVu3ex{UMp_e5gx4%bo%DA6KDDQB;nPGB(2cXO;H>kH~RE>w>5mAs|6Oezf)cmI1i;}^bNrxFpM?#b`~B~Gf`mSE}sn8jXrWF>r+d^ z!{-}^8qX?{H?VkwyExQ@OMa)E5O2JFVTm+1&HvZtCedr|U)Uh7x%sV8a|@)K`+vAi zO>?tOvB;)>K*lzA2_^_fom4MgP3Rek(P<{RY zGq$@o`v8R|Te5Yyt`1UeT5M3=uEiNtPqA&VLG?eZc#lTn$%fxk$B9@T+MxQ9UCo_< zpt=+z1xi_k&2}?4!l-5hlAi3J!ZAQiP<^RG)k{FlPhwF+F0)w*H9_@;fre{^Sk{C~ zW;`_&TqdZ_a!qhtN>?i_Ev?oxifGH!{=2)NIxVY^d)LysRBKu$m-a{7J%>)v=jJ|( z7LkZC_mmPb-X6$ZI$}HwO_y|MJ7l}zHAjp`Q%&WGNuwbw5o6AvG9~aLix`)&RF`ve z-9*f%QqyyDmqCx5o9i~0{<*o=(K^)|I|IJ_hI4b*`;qtJ?PByz_~gLlxw$Nb4krH8 z_gP>!=jQhF*qh@a&(X$nbAJPi`Kj+&&=SVFpsxEEc;6hi9U3+-!i@!uKPrcFbA6Fn z79P?>#GRW<<;klsMb8?I&&?I`H$rv?vEtm^Z=u=z)Hh{yrSX_}6t-6$`o_x3p>Lm# z)NiKhvvR-QpIv~na{rGmI2x-dIV;z7fqz!+{cP*(tXzIgc=Tx?J2QJ$?lb6a>7r@5 zM?ehYXDF6Fj8EwzoR#ak2xsLs+s|~-^|`M-_SUwGa8~YAut*o(lv@BTVJwEIcP)HJ zj@v#Bn=V=(6_zf#yFz5Jh37UAacAX9wMJtp8KiFi?VXh?Jm2lO_a1n0cox~E@QqQh&P<{+Jqxo_cne>@ze!Y9QqwaUxl?j#MoO_HAK37Y4 zx8oqoH$CF;(dKGCbt`D*-HygO)VG#)V^g_q)3K7m%bqxkER#bMSa^mfg8XE_=G_jT zdxIMcJiCJXNWkXZj-S!6W{9de7M>sdF0iy?`7glkEHY^@xkt)--e~Yw?0xY!d#QXI zaQAM9ZpfbinRh#~(VTF6==)6_e3M~V6g6fLrRo{W@M#kU_J>ik`OQYnswP}=)2lnd zV9p|IR1V_1w;0+#O@wJ_P#y~g_il$&to%42_il%@jf{@+TDKaU?{+v`TUkB?L~d2& zEHWYTafu{7;1%z7Nc)#o1GevWNU5cvw`K2ki2RH{WRCd9BvIqtju*jV&mwc>2c?#` zXYY21uEOy^%)1>lUG6kJbW6{IWZ&)ZbhMt4z1!hnUA5AgpxJjj94#olYGJ(F;b1LN zXmf{qw}V}x=~AJ>$(GbL#~#qOUH&KQ`X_Eb?&EnD+5f<1-|Z0X5q=*jDBSa319#6+ zomNazBHBxx@66uq5HZ3+GYl7j!M@ue4D2T3VhiswG`!o9(PYC>Iu$f~7MW8Vl->qx z-|b+}W^Z(4S3#-Y-PyYx!X*Q$bOT`fZigNgzX7rDc6f~Ya4}M)&mzlU?9s2E#1#=- zEq0ZX#p*tlc<5^roU0|kvIRfn#ZX^?E0}Z{F0HF&C9Y++3Rerx8q@DZ46E*%$?PC9 ztH5VnEjiTJx?1*ujEU7zZ5Xq7<1CqKX=AG!(TuC*9WXdoiwKg>NVh~4D_kwCK~O#z zuyeJD4C`0vYUz+a9;+95Wx=+OTgCaWEY#y3V~Sanb`Nxul*}s&LUFGw91vl}C9f=O z@*nrg!U(iN6d#LEZ^4IG7EZG)L&CAbat2w{>wwKG3sW*l)$w8j4-YTQxU*LlM1S_m z0>36y8)%FNatU^&VD6O#5i3uGa`(!DKc?*XmyVBuI%JcbtO>aU7?0tX0sG(yesunoOfl7 zT+)PUD!7byh2szKGIb$n=9L9nRw1`38ri(EplO+0%Eyd6RdAHn zoj2x#wQhnp46iKMyH?kQ4+R{h1=?)Vd6br8kT(jX`GgCdx)s_^d^7~aM{_!Q#rSBN zp#zdywr2JeT(ghnc?dP~(bPd$d^9Xwd^Ehsd^As8#K$^LX<*5c)z5Jvj?9WD0_QkA5*6O@EpL#aazb{+-spMlZn__VBszw3D`MKsW%x$ zEohcI&!=(7zo&5(-q6PR_hhI{FWiudDvw?e=*7NJT?nDsq!+S2F-bwXF+OEtL3-i7 zmScI$s>NmD=zvd|MqZC$-`!{x@z%1`C;zwcApW^Vag4Zzi1M0%Z7gnQ)Hp0uzk4mTejj04+%S;#17TkyAZaV?WsQB<$OIo`Wq|&z9IWbsLDK zNzZ#{(s^*lhn#lcJZO)Vi8v2d7j!~>$2LVM%bW*)aaEH!5BN0+k79Y0XyQB&`V%lJ zNcUXZJgR-?fun0Bne!kcB%+;$HE|wPG8q-lc|fY?JP_t}s7#ka=YhkttUB^(=R9Zw zPLII|F$YqF=2bcm9Ol=9&I2KAm6b~8fx}Fx7e3>h2VSWnq~5l){*gzM(#u;u>p2fZ zDO);eXvXGlQ8Kd%oClLEBb^7%)Ico-e%B6|@{Wyegk%`+L_^g!&pGG81nANtL3&z? z%z1F9Wf>FQDl8(Io&^@`JZSU0a~^nF)Cdco;7h7GfSFba=fTfjnP)?xbsp^af?+u= zTDRI+o1O<2dyx4;u&j+7M;r{{X;GWJXyEa_q&gO`aUOV;P!9t(2SfO9^pbNPc*Uzd z02}9l4_^n^9AwT;u}!-auyG#vaF>@GIS+J4oCTQEDVzr$cllMo&UxVaJt(jDisw8a z9;lIk%)tC0!urVcl@8{Jdg&H zd!&4Y#pyf{e1Av<<)y%#^FTM`mamyj{RdGtniGx>eZQ$|EW@HE45C#1Z5cjo!odD8 zYKFgV%30NfOKy7g2^fs?pphYg+Tji7JZMA{OM~+5U~tX@saSahAm==gHjvR#?(wGQ zJaD+SvU~xE&Uqk2KAZyeF7OKHfwX^Vv$rzmfs|T0ABa5|LgbgM#UZ&TCL69*d64;X zuvq7TD<4N|znwV`L|5T5AjWw>)8!$ihi+*JNY;7a>Dcz2%z5BoUA59RpjqdEqro5x z!+GFfEmG+Iu5%u+*)?4%RJhQRy5=}mv~8~?tm`(o{jBrgQ?Oa*foLDh<}5t?o^u{h zomNazBHBwm-p`x|B1TwfhT%#uSm%K-u$#=5B>o_C9%M9GPnXUF%{mX9Vw{r#*g6l` zvzf~vy9!FXEXO`wogmDiu0WZyvMZj;6#i-x!a8MKq$_6aAlo!9xQy+IS-zKIZ^yPjmj2$ za2_-~W>|)VuL#RKWKm}WHqL{^nWXx_!o$PQGw#fJAo?@s0ly|x>p2eu`%W;haS zcQ_ATZ0dC=#6Gx*^=kYYqa$|~FjnsFWwNJgwmpPzcJ;gSIm|K%57TL7WHDe8PoYXiKz`I1dPj z^WZ4-ig6zFK?fv9QD62HT(k3F4ul#x5B7ktI1gC5I1hM{ISl)c6^hc>Y4e@d2lNL{EQ0iQ5!tsoCnVdJXhecfQ|ED0G9Wb`(+Ccsu?A)aF;iM z3C?*yy~(50f@V4SVdFfYaTS~M#?AvWR5}k%rlLycfj}>c^WZJqMaFr+`ots!={S7K z!~*BRrYKuDmdC7Ge1ULGz-Q(>7>iaB=K6`~=W3$)uXMX&NU0TnJvB~OoD3&H2 z^4k{p%OLO@oP@`X_zkvhZTtoYYy>@--(a^9_?r0*_%+#+SW1Z|egmQZ3VVX|{5EUw z8#uaFlKBlX!oi}QhBfgUR5BSA&Tl}f=Qj}M;TcB1fy1<{die+EHy900kHPaBh*1B% zoN^`|ILxmH{RTofJ1dob1BaPXoB!ne241Nmq=s5r|Hz|B>E#zdn*}rEKuJ-`mQIdb zm(4w}t(j0h3(Kv4HjMNeI8y_49&qC~cn^|cd^rtOO8}dsgNL9?iv;PMcA4Mc@Rcs< z;6q^%$@D?6SiiwCu$ZI+PmAjMi-AvwJV|v9VB0ycgFkGmZH;rR_*zX#=gfxDyw;(?k4$oLJ;Ti-ToLS;cZ z93zBJ5Bd%Mw0zSe4j*l<=2HXybbf=zI@C3mc4JeyFF-SXgG??^TmNO?8JE&yzj z4t(x~7M@+f-RW=VH@M#2sDT=1;rY?c0!urVUj^)v4y3{49x1o`$KdoE2tI?YRz4HB z^Bd@fd;^e4I><(I!ttT+H`QykVOSJ3W)P+7Zp-j#69)E&QL}!K*X68g!X-Dox(*D+ zZ_ucmKt-XU{nJF4mImeHz~KA_QnB(AfSlhz+CWA}xfB_kNe2$sR+dMA===sk#;NA3?Hy15d}ERR+d^k`C5YD?I?3^&2=^P>P!w7=8l>YmvfG(9D67 z>=I3v3Kbr+q^>#kfVQpKhOFxt+b`_MK z1eZNfQn+M5m0BfO{^sEhzz?A5VKEMf^&5DMivU}{K?cKb@X#k*Wx;P?S1Fm_;Cw6( z0`=m@&TnusRwH3N6>u^MmqB_lE@cOVgB7RaTGmbQ8x$8izrkIZ%!49x3;3+x;2vDd zN(%3H><<~^H=x=uX7Og{f1Ra`t!_j!euK}z;QR(6NIoOI1*%x#H((8rECks34Mc|Z zYwR}|hSiJs4Q%_gw5vGZZ@_y@`wi~F2$Z|c_zi^O{00j)0iPrtyz`Co8?239kKz{i z^cH;Z8>nxc-(Uk_*_15mBEZIP(2z;0uPi(~?2>V3egn~;`3?9rp<2&xAlP<-IlqC3 zmHRFC{00K4n*bTV0au|>EY_vZqW;!z@E2H|-$0bJHG=Yy-+6um!FOb#f&*=^Ud1!%RjE-jf(y;Pc#|4V)7^H)wX& zJvRs!kGU*5W+IS+=LUGzshYl1iBv*mcOz_-b5S)7e|2#Jcj#||gP6~Lo1+)oxFhR}@Tn0He5cdfeHps)^ zS2;HzLe33VqF0=AgK_A9n0Ki!Gz;GT+~6vNBF+t_LRiiXSi77Xun;;o7=+0|&J9?z zoEtDsuG^#9@2kUdA+RPu_bAyvWoBkWLr`pd!bb6kff;KpcsG)d;BCB6+TBQ7Z#iw>`@;cZW}G-uNJfPpAR}ht++bgjqoDZI{~NVexQJBD90H( z+7wh?K`}LmD&7PP{OxVA3XK5kq~soyt?J0O>0#iNjm{|LW7bU8>xFyHh@n~V-x-PhoI6nWK3>q`ilaJA*Ycn zsAdkTIJt_K1{WQh-25KEIw`pw6|_(&qxi#stfpYRm%2<<307HWYQvrqUz=%+$C~_F zs!?cgRj;wFtZ9_^7O&14Slnpk3ybx>>+{-Z)GiQ0v>LZ^L0TJ_1Gah#Xff-Q;2P~50;_A%7^p+^mw z>fPaD`M8atc%%jB%FZy=TO!*`e5AZ-JdFlv4J%btoE*XRN7KLE97*vo?g< z?w~dj6?+IWV(?CL6A&V+xMT0H;gI%eB$0|c2$D4Au%nE!Msq70223>5{(~0P;t#Cw z;n!;@t8Qp=1H~q{kfc>!6YLvRA=?yFqzRIwR3w#IQVnnH8-cc(#k;n36yj2!4x7Ct z-mS|TW`b%YlJ_~3l;e`_$q%;zRbrEoIuB@R;Kxs~eKU~6%%-);|A10rrzt3-ia;h_ zg%;vaI8PAw5~Zr;t>!d6zsX_Z@Kd)@Z6s)i@Z-1=@g}QxR98D4L>G3@OUT`3@JQ7E zgDJ){SevP;Rl5uN9PT0{BdL!?OTH^#uTzf&jk0-S9>bz-JBG<*SRCljh=+MGcDr5E*#1*YS$aUf2bNC+iIT$;AQ+L9Apb%7+Pm zrQl;I=c@uea zZ2p6iy)Z$t1@k0(@lDAV9+7O(cg)H*_+7Gw;;gcbR@g)~_6L|XeL=EjuSnK>lVmNv zknG;`lHK>OWG#z5N`Y1tC2P}&S@{>6vLDL7)Kj2^3AhG#D8HykS7wV(Vxs6!e#vN| zE!`>5vcDx;K3|Y4mPxkqHOW@JC)t`ElC9k**{jDSTX#;f^_L`j{kmjtSR+`&oB1W% zP)xFoWh8sMnq==Zl^MtRA)rb*VVn`Av6k*w#llJ#1`too3*B^&y!WW&VV>cc%FNedK} z?9mF6jc6p5`3lRkEC&l8rtk*_gbesAX(f$;LI8Z2SPp9)C)*2`@-C z@mmzm<}=CG9+&LZpCnuN zH?!IUlp(D^5j%_6C)Kjwihf3D@31;;ldtS0^iJtl+Wm>2|O6;tkBLP-_^j2XR zb6B#mKT9?)YCOfqmy+!9W|B?lCfUTtB%3r#vdK#&d*Xe`rW};)$?qk5>ZW8*=X;#W zrk0j$S_8?ZcadzyV9B0&QnF{4N;dm_$>toD?D;E_&5N2qE%QrB_Ch_$7Ic>E#X*w2 zG(ob3FG;rO9m!taFWKTBC0pW|NG(f~C0o`=vRCexY(i$x6R3vdnZ=1ckhvGOKr*C zzgMykdNONN=}!#U`>`H18sXo}xNEuB$iaVsDN*rVOrx`Bj{o;+K7y705-|495GY^W z^@Ce!XdoIc0N%C&7x;#jt^r^ZO@jmKg7>bxlVIy`L4r!Ki_}>5b+54y{{=dR+uSkS zW(B%7OW|&aDOH6;)ws8CZiD}*ig{12RLyT*(?{?+Doy0E0oRYZNb9$~#@G0d>g{>1 zN62FUa{wlmoa%@?05Ky?YT58E&iC=(_yLm+?t~gpD(TWreU!a?HoCP}H zJSC@1ECd(m5`U@#F2XHM-V<+9b1?qk&9MLzDJ30H(AO@52I9PvFE*0%&Ndyf{m0|j z-nvnXP+!cPbx7Vu$*92BCW)0e?<7ATXyAG0V7$&Kc;2}zDBd7KJmwqG5vUhB?@YQM zxARyP&O4Q9SxfEoD>l;i(rNkyB}ERymO6TJrOrF+KHv?Wcd}mR+)`?<_Ii+3AzIPo+)~lXbnynyJ84;%+~y#yX0)P(iL^d& zddv&-VCYR=w?E@-N;Tn8Hw416E#!;CB2x}fp;u(vjO zjSBep4)yY!g(B54QXMcc!*K}OSM5QkedLq&y#}v1?Q2pW?W_Je+edQ5NICM@n}P;%CT9~N5He63eBXk-$!2NOuf4@y6%QnAL6DU z{xL)HC0TTXGhx1;0g>Q_TNl{}_URvq$a#2I6Cs$$Byx^Dxx;HT|5(~GQO%NaRYF@j z158Zr>C6gceJlIGVSh@1kVoX#9{P%-<7SH^LEHZ$sd;x%5! ze~GbP9xA}NShfcsj~}$7B_)JYD+ra{=`|k4Ke(neFb%0&Z}DTG?ZZEuv=bF-Ehd=A zB(lZEr(WY}{6mC?Ynlkp#u8~;q)5zXULynl5IG!P3tO2;%OXX(?Zz1Z{^7`vud7;| z7}@hTM6P$$MVd%kcY(ds=U&6N?XKYEeIFbIkPf21z9hI^z{GzaFbyoOjKp!NhJh12 zBe4k7@JletKea_?0QzR*Kh?;~_bsxqX;2aZV?DK8Fk&>$5e=_E`b%oKmM2Vu3n~pk zFuUk@>c5s}ZzD7_IJ^@H@x96zv^@qPj#784H!;fX4|4JLM{IqNTH+m6se9#(?EVv5 zF@#yGdRZid7gN}~G*9CGv4$}ZK!xKUn#Q^;jI8B(3@%!X7sc!wd%g0N?&Mn;XmbJ@ znS6_b)#yqdyk`W#bLL{r##56NX5Ja6PZMcTs-JCHXIU>uv#jrTG)IMY3$qo7+g}k z>w~(D$B$sQd{m^J*a^-Z1l{95B~nqGu^sH~zQRbmV(B6PIV?g4pZY+Rh1YZ({+k(F zA)5CXo@Ggpg;!p_e>uTqm@{x0`VQFbT~s#!9nsy&K4@^so4 zceqG(z5R~(m#Cf~hPqcqb7hfidCqH0!GHcaRUgKN*<3dntcUaH72-6bB57R}|rme?M&faTum?!d$w(4sxbU@`o<@=9+ zc6`4%OfdgutEDFBfV%H{|Kj-m-EhHo!vz(HIkn6L#7k6?M;+a}lS2hg1G4%_@+kGn z2a7Lyje9PM4_Y{3n53+NMI?syfZzwF^S%=5X2#dk4uIj@P?izCby>A6zf{y)9O zhu0uIH6%SXTzZ;F_re@hV47!Au>GGv5M5Jn8oGvC#Y^z2EO4tl?JjUjw!npP_5n{&5}N<*cwI4ol_z6W4=8CLtr0 z$W5@9_($5+7-X$oZ7ISfRiwz5|KbktEs1u%;gupzv=fwhFp!+3HeHa$?`iz)7!mGco158yY~qX5pr)7eo4r^Q+Sy5 zxwi_B5_0bqenrT=S$K?c?%l%Uq`9{XPY`nN7k)#?yK2`N-7?bA^9PClOzo6l^eu7)zZ0+f+^ zyJ6_P%V&(iKZfC<@L|YG6Pbi+QFGn5U{8({k;~__mX^xPkEACui4>Ut_75mhF>jbi zMJ2*VU?W8i74R8%7ZeeGSWcVk2+FtTM5LfEs3DO_q{!c3zc*e)_$gMmQKj;RH%g1EkH8*N zSo{zsQc;NnKSHZdttY`=BthnU{sfP;ICDNh_cxKc$Xu|0r9}AjohCxieH>C3d7y~T zn2Ud0S@@P9O@yHPRwiBKeXu`URGL4bTUhhQ08C^O>9L_nKBGyph@1*{vPlspks?M3 zpRo%6=$Ejibg8_ulx89#1$}>B(IZEehon^CIx!eQ1$|}n`y$snT)@hDhgUmU@30VD z?=*U}iVsVyLA4-PAkHItEiCWUGPr_oG>!@OVYP?vI~4R4uS2d6%yM%uV!1N&3*vpV z+;TzG_g%#b)GV+W5A*pd#p88{(G6uiF(0Eb=_MpQe28vrB(2D27(8HzPW7fQ2R^!) zzcH+m$J5kJhGao^G6ioGe;Z8vT~u@zikbdq;5Le%0*1dhi|$6nL97oo^A}{%y)>+m z!X?KJY=ZBqU(C0|k4KVV98dOK<7Q!K-@&*qAR9w^gmJ_h#Ro;>$z092F9mxFSY;dq zO~1nO=F}L{BP=4`C_baQC(NRDf~{1;<5)yN z)32~!0IMw0u&^l4XUZZ@#jZvFK+zp6+JpHwhV%%Fh&PI#+!=1s0l_x;G-we8O~1mf z0#;e1VPVnsWPCCey~a7%wP+9Kt~*%tGG^Zx(jzP)-YEVcwCTO}ieSeAt9p%sre9%~ z0IMw0u(0U${>maA-nka>`*3%#s1&A~7}6swBHk#T4sE(cWd%DBSY;6fO~1lE1FW)0 z!@{BibCpGW#hYsp--3Aui}q&17}6swBHk!o6xwu)4hl8{SY;6fO~1lE53I6C!@{D6 z@d_*U8hi6|Q>bAMO3rkXg=@Hjsti`6 z_=^zaLzu~dx`1_3-*>2Ugz1Sh%#-(HHl%K&-zUIss|-rE%$=S%kD@jr)iHD~=-#Bh zQBNT6kIBJECMGG<^#45=Tng&1pqN`k^?jKP1En%HPcime11u{`8st_c)I3^c9jnqS zFEr?aZK+|lA(*_-^p66I;|W16a!|?>f?DjL#!*|}UKCs+7F?kPR1j>CDRp$n<@pD^ zZAePaF#Wwl^$Du0gHrVg3cq<0u71>9JRbzb^WBF6)=7QKQD;vvg{=}PqhD=c#q+&g zX9)FCG1MqM8d{@FdlhbU*mq&N$z-YYcffi~i-;6XLY;AXY*j6NFS2N_MHY*9L@e&= zt@|iO&=!z4_A*(rS+X*b^sm6ntK6|}8EuUsL%pVkk$DK+Y_CPh9*iHd*t1C>n8{OT zYYD+AAXsZz`W>axAK?n`HwSE~U>F0p0~=!uIz&|T0O}HyWmv`2q3s%#pQ9v8)` zunv(b_R@08hrrJy&dO+kB%UBkwt&1$+2x5Vh#iJqlO^J^m{_l4fnwc997~yn3N6of^jqwdpJQUF|i0*RA`H?XGvwlY?f@6ECE@u^%|+o5L@=UEX|@>+{@c6 zr5pgx_mE-aZ6@9IcW)Fcq1OX{#H6LUcgDrls&Ek_8cG3{1WEH^5I8z8rY=X9c6tSz3DkVwM2+o15-HN5f zEOlmS8}%`{$#Yz|VJp8?5a$vVLj3Dyl#=@{!0aRjYV0VFpGvSbT*fIWpDSQ?ou*+UUQ_Fp5A ze2|T#0to`vVo9hbS(+1+(tilvPf$u#5N!6t1X;2ehW2oRhsei@Y*v&d_3}oIU4JC_ z=8{D~CKk6L_G;qdasa-?lHizFjj)ZdcM``^mVlBR7u*=)kk~&Etnn~FCbrn}D{k^x zywhjD1Pi@5zLS$VK<&lDUJi<<32Q@}FyDJ11c6>xl4 zfOQE@Ln(`ieJ?>FbY!W+gCH=m9wNvOido!!*ux02lqH}flZm@Q923iU+F`a9k{}?( z>@~PwWbvkv{Wb{#e#nyGBq5l^lC^F&_*l7hmMj7?vF1GIXtDkxK|qRG)p18b61!ke z5D40mlp=VRU?r9=vQ&qq{Le#ziA|g}a2}ElBuI%`tf})sC1{gi4JDO0YY%0|5oF00 zaPJE!(OhdD2?VXGOjZzN$rjK*4Y*Cjv1G4evVH-QM_xj5kOTowvLw`oWci7plqydL zc%7h>1`v$y1&}4{6M_i@^RmQ>Y*v&d^^Rj5zaX(1kVQZyR^CM*v?p#MO4fs-fH)xx zAUOCLXklVY9krK$FCK~gB&kx8{EtY#}g7(?6#C|Ofj5*!nYn(dEPfhBtl zl2=F-utX<-ZxO7BQWg_?8$ls_&e9bUn3TS<)MI%4R;PF{T_EW>D8oxckjPTwI&lJW z`C;X}141lz&Y3LP*O<)Sgrp>K1g*@?0D0hQ*Cvi7D~%-*tWsM*r9PXQtp`aU&UzVI ztN{dBvL)HE5xD!2*b_+*a5_tZdxC@)39^($s!gg*s>OEL?~!_xrR^-$T8ol2@DV)V zU>zZjr7U4SPp~taKu1`+Y1K92ShAVOub)ceG|DP%3nLX;RGlTNw|oGwB6jVWk8ek5 z%nl?C2uf)KajgilWD7_MyBBd%>b@1=5P~dOB-lTYWg>AbWeH!8kAQogIF_=QSc~I> z$$An5k^D#kK`Z+(Kpy4VH;H4(ioyv+CJ9!J zBcO^tYPRksfjDb2v{+RMvSdrL^b6psA+cMMAmIHh3GQJM9wx|A7O6I=HmO$Aj{!~~ z^(mI7v2>oLxhx5liDh(z8LNq7DN6|N60FX~klB_JWi4vS5-oX-0-S#m$vHAh>5CHp zemyR7L{%2Q zf@>4BNw7|nN}RQf3VtETk}V)VT58L++1n2Uf>sG8g$S}_3)uA>aOH?&$^H)$eihPQ zeFaHV5(I3+l2E6Sr8_|>jXe)=5J4%uLokOROICpk0G}qz}2}&}QIF{^DEEW6% zgx1A^$qeEI%$Eq9Buj{6Ddi26Don79!VjlxL9rx@eNuL!7>8nfhm->-8Y~tmedBR_ z7Tjx}0w%KvE8#~1ES}q0mx&{23-~WVmTZ>n<_3~B9wbF@9G6MZ;)fb+-psHo5yz5M zhb0m$e!#&Nebj7qAb~iGUx=}K6J*Jjr1QTpgWn9aN0A`lB$fonZ>rd{39^($s!gg* zs+Ej(*sqh?m!(ZCZDVN%OG0I0@k3bFQQ}z262b+7=Wl^ZW?M>>wWuXav~=`BEN?P! zk|f})FH=f)7Y9y~<19&1n^YFmSAv1EPC5(yUH`C*GbYPS9)fjEmV6|#IdSj}X~mSk56;P{$Jy95aW zmS;(D(@3aCkfkhAZBlJgtvP6~ok8kXEcIcjc43sVSQ07|i| zJX9ynR^chn0&pf_q$Ygn^wUZp1|xP84m*f9fRO$;;vhZ`B91zUi$Ls0rzd=+5GmKu zFGcZ=ks=+2`MgD1CEWx=UYw;D!4_r!f5|LIs5l!eg>oDi^EQ?BaTJT?E$XuCf|MyG zCKg|^;<*bi6p?T^rYd?Q5eS}0Bs^s)Oy)Z9S&|gN61A}}vod^^P%P;{9{g~Ok(6Yl z6PHljzZ5mZ5Qpf^LAkMSCCKkbz zwn(nx{zl%0DP2*#$YPn&XOTsj7SG!4fs~RG6N{k5y9M?n5>%-?aD45DJ&!n+vY1!| zExzN#ew_rCvIJye@dp+5XC$zcC7>iHiJOT>yt0^N@}xME4<==Pf?mixhor;ZwVGhd znv!=YzWvnzzm6z6%okUx(C{Pmy#^0_OU3(*;gyu)t<8k6bfVeI78D`x`Dh#1M*9mIV^jG|@-(UyoDYH$$u6EW1)5pxys zUFI>D;%MF+A;>g86flg5+OdsbLw zN~-jeAVqrvbII`#_i~}y6vv~BNcx9OPG832zcJir7=hIQ%G8edQDyq;#6BRun=}F& z2~=`fjKCHmQUwvhj@SWg>B@m!%xa5oD?Wl6tZGOf%id3P6=h8JVFJ~h7M~!H%Aw`B z`YaJ+wch!Gi1AWYAF@fp8zyoKG-i%e^8!-Ur7n+=ewmUJLcjmi1Y)m(_7DD3idoV> zOpJip5E6e#*Dx^xQAAvo4q;-%#sX0o|0$I%zCI%+L<$rm?}vQ1MvSJR1hG3KdCL%c z%59~(n;WP|?AL-FF&t`m`%RIo9KfY(fbR1K8j$Ubu!-YHGXhPCJuQxj5Dv5^>8y}M zU=NiO#QhHxGpQiZnN0OXt8`uV!$dSt{gm<#SjGcUxUTFWhM*YVsj=@g^2+6^COwIq zqUEX?NzVk!)xAk`gXJ3jq=mt9&Df;n!E&v*q*sIG+VM#ng5^3zlePrQb(52J1k3eG zChb9)4lY-}OwtjQ>7{ZF${UY<1EAc)e2GWkI~LPrz^>r9W?}?>CH7uH><+N?{1JcP zDzRyTJtJ5a1Ai0SOx*Q{VE;mzDFU8GAoUc|U5`>tJkm^&@{`nt%438SxQmFE8lo5x z^5~FUtyD}(M@uy+1E8xWc=D#EJc?p@7R#2t2bs^4G6k3}#H6LnLa{ZAkRmh=W;dm%Gep@b7W+!^M;2|-dzHm*qSwXc>(!W{8wr&^TQg*hUNzxL!!Ys zJ3;@EJXz9XpOJ_D#@R2@oXa3pNCo+m5cy~F$oR-4XHE^!GsrV4#3L$ldI9?cDNlw| zlyqPQNR`!e=*~+HX%0yPWVlK1i@v~%#7+;#Is(f`S`mNKFp`JCXdVM}%KB|7r5)MCi|X7TCA&U+LLUFNYcu*hHbRp;~jc196W07o}$Q zrjhbdwrTtZWVJ@4eLo@ZQnid%ma<1dsET$E;PVHvlA z`Tm4#eA_@l5{HNtg+_7?;2S^!#fW_*giS9=#IzW)sKsfZ95JegU98NpPB&L0{ZUti zgz6Y0P>*PJg%dIQYmAYT2J`^@*SKFKB)DC7gFYOz`J}fD(UoXmG0@d!2%4B+MJtJ( z8D4+PpKM}^Im$G)fm}1cc>8q}$L%6}WqA*pYNhBB{&5FLtEOmf6-rmmG0@DWFsx?C zFxPO0CkFId2C3R`*HR;=IS@n1uMNf!IWU6!BLtygM-%&)AVjzHW?%xb zIU3s(BA$p8o<{655!jsBz`l?F8hxcjGAl_*5~(0(JLs3lGeVF9a-11QqCh-}ojAHB z@CTTxU3V>snG8B7 zfH*>ASB>*D5I+&wQ$zj+#J@y7tRbVC3=IS$=V>6GC-OOsa}f}0iF_r5lhA{tP{ zk?TZ6Lk-cLh-NM#hOfjj0yeSDSyqZtmW(rvM}e$Y4W~5qDkcp<`7Pk;Rl=o>k8;VS z&5Mu*p@H(43{q|eaDjP}XyrE@J(Fk^)v~LQ*~$@_PuhLbL{~%&h`>^kRNRM)IrLXa zPZv?yj5r!M5Z(H=8s8_WW4MH)>=Tk|h=*v05!gdSO{rKCSD_I&L{cr`<*vt>fsPZa zI$X?AYQ7;>^}4i=YOu8+wysv&FGQ#g(p3IN?7g9GQ!4)=cCzeCq@s?G!(NL<28?u& zrpswUh?Gi!Xi^r-HZ?>E+(qnMnZjMH8oYr7k`~I=G?G+;q$P5U5J@Ua(rP(Bh$K}b zsej0!q#J>{#EuHbI;)s8lKO^|jKICbW`|=Pf%YWH(}^)sxvHTHv2qfnV|x*+)VVW>fIEz&T}B|4Sa~s_gGeW0VkBEzV&{bPO7kR!0-Z^E zBVv50DtnOhW`vX?^&@H1ZAn8&+8iQjZFr2NfnuD{LuSezHZY#_suKHZ%sfHFYhoO+ zMqnBd>ad~nBo2WGk!JD@dx7UjY9K0QK_;afVG{ZR(&ZhUF;aO1Q(!6SJw!^@2V%F# z2iB0(NJt`j3|iHKOX;Vozy>l+2+7}!V4}|-{eVpM*p|Rf7BfPQS8I!X#J=xhF~J@t zrnxvpLMU*Wh|VsHGnsuy>=qY01}~MV?Q4vQ=Mo4L5(@D3n|OjS_=2?~OT7ktV;I-) zZ)W@qIN=1}wlMc@A4>H|nk)=uguz$_h8sjbA=t9Gp<`wgBGxc@9M7Mmb$tk@@P@Nkg8>bq^lO~Lg#VZW>kP$6@ zKOdesu4S=9Yx37t##16WO(eg75DNR*rW)aGsu8qWg@OyJP;kNc`OpAar-?=H zW}93vxm*}nQsSnDa)6cnqahxs5%fT1@qiMB2Yyfu!@e0s=!wu~#T*fq!?k8+N%(n_k5mHw z(Hu^Ap2=tV0AG}!L?x_~*G!UboF@G>Q4jcnaf$GH>8I)9*cqmkJ<}Wm^rsKu=MaF- znoj_F?^Q#fKAg^~fjBam3Q7gn7g`X5vshB(n9TZhhc2Kn4 zqKZ(rMqpnKF=(4)E~d7Z&3`dVcC$gi*%S$z%{NI{Dvj?p9fT?%Q0-0Q6Hq?ETu10F zb045{T@-DtdDMZr`7zy3P$pkD-sq3$e#P|vg-WV`&|MM!FvjCHX~IgAzwbh&R}9`l zO;}|X1f%-vhUJg(j8pYlgRTlzy-eB{tolW1AED`Hb*28as`m}4ce>e1VUMdy-;xkQ zrALg*P@1s8Om-?&b3Y#1M}Rzw0Wb$a(iI`#&i$pxNSh4fKH=H`uAhBN(P`v~<@KR# zh^M9S90kwczVCAJs5!H+@LU6r^}be9^^lee!jXiyx#WAetHwiX82W#s)_hss8a-f` zQi`Xu(1dmnX{{@*L#2vis&G64j$sH4*Z78!9M6H{?K^NZ6dfDE(PxEbRyuVkSDqJ+ zDdIX4Z0J$g=(rSHJt!QS-tmqlcTXO z9uHc?CZvTPA!uqOacuAcm(a|gPI^KMe@R50x|_qxH&(MhK%a6lcHijiR4@!&g`W>1 zcjJ|TjfGmQr#j-i1yury%O{ZNQ5u?yhKZ1z2o1g0Y95nlR$R&-tHAX&xE^wXLi{0N zqff6nt6}x#@ac7P#Ps@p#Ps?>#Pqr~VtPFsF})s%m|l-M)9b@%4JWAo>GaC+j@iJO zUbp=}onAk^)AYLg|Kaqy=T6h>7ZKCz{{O$z>vPIg&h&cBnO+eubf7c6o`{%UPrB2q zx-2&Ux0x}M0rIV^#B}shqQ4ik3a5$)b~EEmqJMGMDY9<+Mb+cUuC|BNUxn&i;|s_# za~tv3T`5^PUJtGxVheK=xL}-YKpfD@K4v5-vTRqZ?5~W{8tj>qEG8&+H2t7jEZ+z& z%r={~$o`Kk#6VwbHYEIS5Z+~^6V5B|ymT%o+<=)Gp4qs=nup)va|dy7!_gKZzR^}a zj(_E|W+EcZPY_kOir}x4ppUWjNuHU4!ny^@zay%Yyq8QK_$uX*NkFl*5f*C=SjvJW zyU_hKv8*ytvBW@^neky?T+%Cv7TLsA@^E5tJpZDwBvVU$5#>@%d|O}GIOU7)>U;WO za>9zYUT@aZK-HsWnj|shuIKQ0F%-=ltj%Zxof&Nqg^Ftx?~A5w4Oww>w_@q?=5EEZ zesaOM;nd-R@v;JO!J=bHZQ(ho)|bgs73eHC)#j;%v;j>jvp`XYvPqmu))8)rukp&r z_|fw=;Z`2*FhPIPI(L&`>$2(OU;ge}Cj_}Dcej;!C&RZ{}tFt{#*>ubFa$2nGRqf{8W-E*Sq+7;{m+sQ|K0rzK054heQ?N$JudL24NZ%OSxoEiYX< z#N%}7X3rU_9`13L{A)cw5e|6x;}7)IMMJuLOt8zZn9}8AgI)fkAzeN$*yR^gmp`St zd<{*LbLj9_D-h;`Vrw7(KekViBpoOB115O=SPW5K#fwRBHJWB45ImA2AMGTb^>d zUj^y2lzCPxQ{m^Ihc^f`E%GXEBk7?RwDYKL!H9=OMZyMEd zDN-D2kahq^iCi42Y0pYkCs@@184|F$pnyknSG53&(sL=&tJ(sN?zuSB1?jR>^*gKj z#-rk+mqJ147SJ8w0XIH0cYKd&(99^l4uTgw+^frEnLvO1>fz)5fRCun_hk>yQ#ofE zWk|mw{L{_ts0i4dY773m46EtpafRJ()FAI49{wx>?QdL%;8o8I23v5egx^@eh?ib4 zjrGx*nX}2G#z#rv_z)a5C-JQjy(XIAI2 zf(JxwFF;u`D2Wpyv56AVA&F>Lq7N0gV4Nt3))mwh1^cKVHl!d{6oeW74Ot3ULF0!~ zaUuC#hSS+9#{R+T=|U0B3rpw)<$E>hm3|55#ZdN8VU24=$XC5(z%+Ob)fKUv0dv-n z`ieEa8=>&7<4-3&p`Jez;-T=y9=Z|`%DZY0JsEIo_^ust*9tbyjqG~C z$d*{Hrv=l85(|Ck`En8q5-#QRa8VIDoGg`vMUF5lyYVIxm6e2=IMva?QHTo5-V2hx@>hH|kHFXDfKL2$=i_ls5J?NAEOE zSQI(|S*-ntVu?TL+40VgE0)G3^~50No+V*f(WId<`0O;xuarz$hxIfcPEA-|Ch6;7 zc|}UnXOI=1mE}V}##miBY3)eogk??j&}qxs+DQ#yOOdY7v#x$R?MhhhpZ_wVX0}Za zSU;gnDq!xl*bN&&TZgWA0=XM7^cDj~)*9<6Io<38@t$1huck*gmj7D7oyMyKH}4St zD#dD?$1FCDvrzmKT;wXI`v=h;tq_a6S zZe+FhTc0`o@jk)M^21nQ_pCjDU%|TG$j-Rp4 z_?bkcmA&2gldO+haw{=79#j{chEaK=2EV466y3#`k#vz}ya^+fpB4zb zi$+hiR7=$+zuHo~#|_+Wj0DewD z)Rf)@45!iNyOFz2Vl^D0axB`>S)RldpbZ`6L`01!wI8`ck1duMQ_BW*^8XLf%Q1~- z7b-%*SJcT;Wa)jr7><9 z2qt~6R2z&5U8jL>Vy>mP;#1Q}FX3B#TRvr4NqF7Nm;k<>2yoX^T#M6FG5~GftN|1! zCnfT-F6Z*Bq_;wP${nQ#g-H(*KkIe>4e8hJC_OApdYC4yTvmU%Y3$D}ovnV^I6~uB zJEKA1zZl8yv_^5v0EaJ^SCz%;8n_-D`6BxV0bwK|Ak1gv6w^@|C+__k0+k~L9F8Tz zaSI&xIUKUWkuF!2HW7|eEASLcBnM~hlC1P)lb;H4RO0XhecBlUQzI+o3|)}|E6rn( z0#hKc`gQ`m`E0%_XPnL$Qw!kD5ZH;>x}ggl;3)MbJ`1Ajxd1Mu8K*6c}VbR)pm1$hZZ7|nb z9wTF_jpN6ld{=${K?U8gwl`|xANW{)=fd}=Pky!MxKu^$0&02-5AecnSKB`j#}_ON z@0WhI#}QCtaW@2>*npFndo=;i-y#s_y`c-J8vcU7*AS?P5O-^chJe!|r8a3bK7SSI zqp*HV1;^+}E1lR?xAtTxKF!2XOSFSfG##w2ngXF_si^-Q9J8ir9AXS^1K>|x zN79zb7gOXjUid!XEW9Tw7|j6roy^dOF_oOU{h9c@lH>9s|3FU@8mH)K(2c|LrJCNf zaJ^|!KVwEhHS(Pne3{V$=CJNqx5hL|&eQBp2(?VjJo~`$(|nC1i5$uT)%J(bGJXdI zUp3^X40~Z|iegv;lcK{LsIHSry!Kkth^=6LzR_!Zj!DM#F(twRqbnHSo~3c{>pu=h zSMkMYa8%W8EeTs)FK0*d?Ov`ovZG~Lt6EY|&NISH>H_*x_zyln@h3DS zN6&c=Q|kpyk4(V&fJ|J+0r~Y05j^Z6XF&dXo&(bF2^)}=`>`%%vKo+mq39S`-C(H} zYLtqqDd0GLPU8?`>^1P7y`mnHWnjo8s2ZvU>E*gA064v3RPv*oG)~^{KQM|P!VG=* zM9C>9$N#Ji(z>2?V084VLHY~op#w#4TDaac`GP5^!9n^qn4Q)t?Hyk;jXzO?+uGWp z)~YUi6dWfmY8(whU8p$jLYrl(4;!Rm4NQs-Z=iB`cL~NXQ9%j4f;3d%x+XiCA1Za5 z;EXIKuY$SYdeit+?+&fQR3mGH;~Tw^Ekcb{GhtV7Saq~U%43$QmVj6}8XV{J%caKA zNH`XPBhcXXI#l3n1;>Ot=umAr1CICZz@ge=ypCVZw$N&66>5v>j(fndP`}8vCx@Mb zBOE=hDgb8OID=chimDoXRGO0oHCNx%Dv~|28k)}t#~g6%HOFo88m-^f_&SFSN*2Di z!M8b56Q=UmxPBIYgo9#Ss2CqA7LBuoA#8k_Z(y0SUaL>+QkE+hl?KP(>u%4{R4lp| z97A-Q9}L;7x@sUeZfw+aXdJ4R>EJlEN#p1h(xE!yHE?{pS>xy%;;1fmd;yMbx*g&> z)k|u0H+nbh5?tURZD^!L{qj!OCD;P9<15vQDsSTWNpFSdSJUQ7vEY7itTtyw+Q8xW z5GJa)9Fy-e;93F0=C!u(X%-HQ3bSxv6c?4DPuZ%LsrhgSQU9_OTjT^i)KFY-23CGT+}OUxe*kYd;sEeh?}d)o6>?c;O*U zY^>u|e#JHaecqnkFrBEn&~I2KE`Zo~5UM*&6PgI2x_mgMdUyQFwwaN|`vgjAf=GP< zskh$8E1VwHq@HxDa&|S&M~;KL8u?-|^~kPuVm$u(?0^CAS!K)^%~yUv~!6!=FMC?;+H90GH; zdX1}DngG9B=%`hFco|#=!8Kd=>+@`nvR2Iyh2J)fxgX*Q3f+${f{O!T3cAdD%1=Ma zC)6tA1hJVTu7a%##LH~=8n2AdOj)dpd-I6jnJ966uAL3>kB4fa?DsH#Zve-zNKb|> z@lJpvIr=P&=+sBkBt56*Dz)eO2Ye~fUHe7wu$|5lZy>^Ux>?c_w!|yUcy&ywEbdQ# z$22H#=@i6Lt?T)74h>wg@#{$*%qL1Hh&lT3d zr0DPl&Z376Wx`rifIZjKJ8(AHQ|l^9gayVPFn*e;aqtVY4hLr@GvgvST0Ek0F!-+?!j6>=`+oXW@X zDic@JDh8S}q>@Br4Ma|UjC-&jXr}YgYMRc6XA1o7`*90c?LmXF?Bu7yZ6;YvRNZgF z3NzzZC~D{LXlr#lb8#FW>CQh%K9dfu@l!c9Px9`B0KlRS=zPmO*#Y^Ta@>PBV$33U z7ypL77$^UNzaOV85z<*|`Z1i;UEqvp(eYZPM}|!Eq@1MW^NR2yyT# zB*wqzo6}wO{oXvV^*tZI>xETHvP=X=qQ!JicF{Lz;L+&*Xql`+XrJTa&!wXKH=D*x z|Bl$E zovseH&VpuS@jD4hKjw4z;4~!PfaHbIno-*w$&X=F>{iqHSa#el16a3XTMwLoPnbVTcXbHyRvS12o${b!_8+&KKoj0J4Yp@oRwm zD6ZphOhAy|4Ea`fl($5{mA6ElBd=zv>yY24&)ZxoIUH(XgU_TIy(6#U4o73Lp)oi% zb=TT(06KX0hHZ$c!zS?V4V$2#F#Tg8eM+CNFR_g(ju(smCEz%de_(yB1}<*d_wsCV z2N|Z0NGk~A1MCpln?D2df*bll5k{i#LEm6Cvg;ow_(lF+I5t9@*8ZB{{`~TYiYL4J z_XH0F!Sa_09?Z|RVj@3U)7J|FRd+J_%#4;>P2*muVy!Z%Ypd`C;m87qx20y+5jy-i z{NrT?!m-f&0d}Kx{_CjDvrrDN*w}x)7{UF^Ely`DW-M*x(*b3kW!l@a+yA0oi_;P>M9X)QYAbU)AD{NM2x zaP0mleEkp*+#a^in~oWQZIw-0U3X!^b&R)el&nP5c&;iHu1AGkP+@(DxkjINjF#E5 zkoBibW7*NMs4;&bb$>LAUo%mPW{IM!Q1mMly&5@NvGuai^T}+*))#~#uP<*>Mn#-XeE z?03iGlSO7AWGd~)sm?^LqDxNKIXkoR-Br9f_nVHRlM;!OshC|TJ2PcTnrQtHTH7AP zi>oGST7P%6I{OrA5HcqG#1^i_ayoz%A(qhzKPLc(Kj(VEczx!yV1wS z-ah)2`_=WU@eb2?Cso*W|b#T|F7&Cia@ix7>16l_GfEKwZQi!V{3ZCYN+KoI7CH})KJT_9|H=E zMPqAw9x1Q3+bAZb=B_s_<1t+6)vd@T-BET%iJDl;e2g%vpauL*#EHY9M%sPgxHv)c zgn7f|P*>AI;P_o108t?hwNIJ>4om0Y5OHczI@W{Z*~oZxIFye4;P@It+nph`b%(kP zT>(c?{g@yoWQRIlE%*ta^44@*mtJ+&TNgYR2BCM3^>r$dWI9`f8PYBa7 z6&y!(2j*)0tKc}OyN6@l(eaGL%U*DdiJa~je=;0K$*j(k$Htu1bJUVlwF5_oxF*Kz zG>!XjcX^?F{$f_HHEdG|v^<4lhH_eL#KE7el*^40AIicjbZ+G=Ca1u1!)Pb9J_RM~ zpd=9y>ULXUC_&^_FEP<{BDXw>MVbh8gP5U>Vr5`iA?LgjljYZhY5xg@bJ{hO zogsDu#U{6qq;Zfdq%&2k6x(bB8SUba# z;4Of=aXEH6NR6YR&>k~Ni!9lvsV>M6XUqb}i!&65ETiP!v~pLXaJ&N!^9()~ze3Z) zAHUKCe54>>qQ#FfITfpc^BshCP16K4wMn8j<}-X`7;2X;)VLCzu9W^CYHb9~QTu=h zHHOfcT-K`gqzcDF;CMJ!#fn4uY!Wzre_pFpyQ__bFT!#;I1(exa_msG>;%U(wAl@x zG91(Da;0jC2UY8t&w57mOw=xX##*mKG(06?S_r9`Q577kqN;p{`=*im8hW0wk-wcc zJJjXTBGw0Dqq}RS1)mpejzO4jy_ervgM8eJSTZ_bH#TZ5{xMeT-$%ALygr6UBALG% z=}yj5#XUPv!>?Ub4H7c)J7?u$#c>`S<)MJ?32`X*G!-3X)!|#LtVIJ+#jtE}9IU3* zl-+2BKCQ~ZPZmE-sA6-hsObc@WAIQX;N8C90VX|k`v+_IUGmU_HB_h_L95D_gQbD) zbE#aJug2ABn2*W8@Ya;48d#gOq-M0%5)}xSp)6WAPY$S*x71iEfP;*>`fOf-!K9k0 zbkqaKN8fvmmXW8huput|`5e`PK@fQ7N3YRMSIhHkS}IF5Zys?3+ppGI$|6;xH=YMX z0NeC%y^<*M?IB;_XFLdoAay%G6?U+ZGBIVycN`tV8;Z~b2)(8YG!GeGQ#h7^;~$-a zDjgl`gyUmyq&}<}&TBp@6~puY<$bA-3^6er;5iOaeMXJii^r{g!SUi`&2YY!z%@M4 z;;D$U&+Z3tGot~7hWKw_E$EJ_uxh8c)ym1@l;FvtI_H|=ZGkm~oE6IP+sNSA;dY}9 z27LZeejY(_TP_DwIqE18*F!l;94#k_-4?*43HXPa-Rk6U{B2JTSyga0R3UERgcgnS z%cRxCLxx0taFwCww6ZE@88hSVeOQwD>tt$y3O*yEJZnM^d+UFqC_4wE&!96u@%P6^bc~3 zlZh?Z16Bg3jtz)1$6|0fb3_@G)P_c>|8yo{81I^K) zE|5=w<5n)yl$X>sa1A)#{jb-+&%yD5zQ^jxVWEywJIaJ{2^=l*yoi;)+c9CUddQ5L zf@M9Tt-LQ&PBok*WSaET#im+pr$tS|DGx6YvbRc$dRb9}Hxl0g=(JGTKkyJ93U3fm zbC?gNgJTe`iea`n9Mz!B%y)?bo%k(*3NL6579)0P-{m_@Du}n9a4tF?I_)G%FnI>AZ z`53b6*z9QjSOnl5A0gQe`PW)#@_dlnsX@j4IdIg%nYHU!4{C5Yux^H9y@zpVeml1{ zN3(pRf?*MdA`iR5b{26!&>_yae2N}W`-aa&_WI{4fH*8rG$A#eo(?_bgc9(FEAw}1TOs~))SyN`bm z($?N8K1v+HU8HlGM(sg;71-(EsPV7Y`0S#_#YY-tF&y@+Mw}Qr5&}yhFj#LHA5nDL zuV#cr;A(#h?;`nCQ`_HZjB6SHC8^+#Ey2lpeA@2&id~P zs3-h)1xl-$cUD0n*7Oj3Enh(A~k(&P3Pk5e(wmiGE`ou2%>gqd=Gq_K0&!Oi1 za^QIW4jhfd=GNe7t+#4H$UkaK4*|ysJz6vl6|B#KWBZqy9WRG;sLA|IaQvpn(kmg3 z>SD(saMac95bw@LPXynud-y=umHb2>HA0;$`4mMBUda~$bb48}qQ(i+n5MTv^s9Bo zO0ggV9IMTtkv4D^cnHTtcm|Z;Lgq=V^9(3K=b}rL_&GAQ9v9%clR^3q` zTdLxWCwJ6t^9<-@$RE@DoU?;dgEDCaIG&Fjs$qTdDL5`{)QpyCTs12O+VF;0aMXEA z;|Tr~m|MlTh4PXw^hovlaK(>XWaWTWZAti{^x!fwTU6CPg=6xl2XCj0H;?051(nt2 zHYl!Z)M_+{XL;NO$2}Ouk9^CHR<_&vFq{d^J2z=Y=6W3V4RCDJFE6|h7@58|@k?CV zZ0`j_rj(ednYga>(FYRkYZBVB@6D$|vq>3s|R$BCpTL9c+$ z1?O*3cmWCAMi)9Sw>VOuqsWA5`e8L-7pWg6VxR*EpM~;u8He&tQvT z6+pnbtqKk$38FeyNs1_EEE6NLAkxF!0wZoj8sVshHjL3{!FSav|C**+ev6LWAyG*P*sz)40Caqzcc%Q#U=Fwpqm`m-9kMW-MT9qBZu zyHtn%1CAp)2dxR~(7V6I<#4-ZFCFj9O$($|*Yr7YyX#24q`|x0osjsJh7cIfcQ*s9 z$bRCakR1(O%Jxr0>jKn!MjvFsc_51;eSn&p)zlFu0(&6P%75i`%~Xy{M`;b=xd@)^ zA8H(&2ON&3!jb<@9MB}R2{e6cM;2j>zlZ3@o(0T(xCP%jjX{lH(@Jby=t z*_4=zmt2%AIGaC7b<9yQwHU&)^qA7jQ3GxpIIe8h%sCt~Sn2o{93Ow7amacti|Z%l z@EG{O%uy8JX|mFv6nE_C+vcN{Pu7+HR<0 zy8IXLWuZ8q(M>n}Ylw56aTW**9u8X|tinhRyHHoa0u=1(p|TD`C|!SQUu0Dy-h_sQ2~@gs_G0)o>H8M%~c_6&iTB51~=|JKTc0;|h18 zyTWxA2(Hf10zr=vb)_EzowuxicWVL1T^U{NT6?NSy3#w4bEVJQ7aG-!qOSDG-}6ep1Ciri>4RbHT^e(CQ<|O|PD7k4xmeCbzmoS6Kj3=~#vt9>!9C`kuH>sAP&(3Sj?JnA zcY))I&OvL!I`AiOTs@)LOUE0}oAVZUjV<`E)R12yHRqYz1z0n}H2i!ZZl1YQ5d3BB zJae~{<brjw~ zWXw0O!P4gXF!^zU)6$> zjI)f830z-B6!@9Th-Lb`#6j;URm+H4;E6k?c~Xm@MpA7CINItQ#!Xj;T1Mo6qqyE1 z!HG&OBkCdi!j=)Qg1@p^>y8q$DRHM|#03bS(F0mDM~&{NUvTKDhmVg2t4&N*l<@oy zIL>;XFXS_lu|jhPPjE(*3wsq0U#>gdtnZPjyE4N$?t8B|*|}Ub7614!GjYswkL3-h zxlL7uodGIagvxfBpP;frw>w3mSlm#vKPq#a^qGk5hu9hGXk_QHCNbq6OY3iS9WpQC z_}=@besK*pX*^e&RV^MBK||b=VPL!{tSSl-z~$xKq?VU!ibP5@dI>jm)d*1o^aC{+ z-{u(|nT)f}KvGRH>VC${Fl={%?l) zf`xcol52`rf`wOuh4)Z!1}le)?m}>U5`B9PHO*`VM+4pFyFxar{yqba&+}_K zG!8ZLjmxHSxS+-nAJUAuzfvsN4UW}juSgph)tpdqh0^D zc{5G-ynV3zTy9t0?!GYjcMk3qlChC& zq`){#gb-ne14)DoQb@uW2!p}j$)9^O^X9#E@2#xAp6d6e?qBA~lP6DRo;-Q-96^sy zv)cX`GW=w2hL{yaLlzS!EGp+;MgCt>+x)B27Ud{?!N0+t@#iZjeK<|Q`_&#&{Mwf& zDVXbEwO@TJQvB5WzV-{=-+1!nO1h7wka)lP!$|ixO-Qx-)&Bx$pZOxCJcgIruYLt7 ze)9|MDR{s7{9i#hL>1?a6lcznJ4o@qoD{rYeLYfq_E#yT?4~d{jo(9xUsO}vOH=TE z^@B+9Eov!@c51)+%{7Hx3{OAsCxP%6$N0(gtB)d|yV3Dq@coT{{M$;pgA@|)SN|C4UN<4t z?pGiFf1n@w4W&GW7pETQ_)j6lAN_TE3f`}}Nby@L&TpqU^M3W+Nby}cDR?PAiWGnL zcPSM7ObUb3_hq9a=~wiq^{YSoJ_W;59mCTP{IfRt z6?uZr^s667K6}5?D*1VzrGrrW)#k6mEBgPZpxzOvi}|X7Z(6_VAj5a&W{6o)Mg8iB zk^ir%Z62mA%G>-Wk>c0XHt$giPVswe&io~$_3Sve*zgk zyPa3qKbM7l&hP){ys+FhoIj!&u|9x2Iy!{$}NUt8!S|q&eL;Lw_ zUnzh76$Sv?!J)j$dN6J{dS9DQ!)?L?O*>E zykkFqAM3SS6r{2pptM``)Bfdez#aQ}1yF8%34q@EZ}F~ub&e18)Ba()`_vcW!{N{4 zhdokUn_EBn1^A)(54XPf1V0pU0-5>it{G5I-e*Ob`_ucQ{=MNFkANnP{yZRUSdFPk$^UF{n z-uiqZ*uNk&z7G3vx4x5TbwWS)>8J76@$Luz27bPRNcXn_{QUGc;pYds_+bt8xe@OE zEBc}15V!8Xi=W@5pU(le-THAV{Cnu`KO{Q8d5sTboqy|Vp5y1I!2)gKgIjm#Cn8+v z{P!(7w0?_@vfldFhj{#}FK{>dkMOhcZTR`N598fu2;M#V`M0SII<0wY^oQ_6$En(P zz6p2i=SS%4Z_&@c#83P8eg=1RGUpcEwSSaQ`?gCw(p{Tj`g4@{%l;+a{UZHb{TSep zwbrc;whC{(@(=Oz?NBX}YmmmR=KqEtT7KU8o^M5xucM!j)6WO+)BaiLo7hf&hc@SL zkuAZk-=OAxhp7A4{|+9n|1N&M34DL+P5iX~W8y1Xmv?CKe~UI3Zv7ql`sD=lAO0L3 zzYm&^TkogF`#1FN%ds}N^>f5^KTbd2O+UYbh2O33{apO~43iw2CD`*s&R?y58~fn z!$0|lWlRIr$-MuG-`!|@*ZUidAH%<&#y|Ooqczs|(}w@YfWRO4U5&<<;NN%PpZxoa zxcMF6Z@&LFy#Eor|1tdgZTypeKY*L>x4Z{`HohG1cku6_k{Tzn@j!{||Wo49|Z8|7_pE zONHO>;5()HC-{f)BKfQOeuSLAiGN=NJpQ199|63Nf1kiVYWp9;zkh&#^asI={e4he zDMmW|{UEmmvm&OBeJrLJN;`%9Z{cMr%&xz~5C*D)oLHhfH{L&y^ zr9X);CRO&gA@Wg(JNlE~<@NjcYZjf2Za*QO<#$=Xzc1hf;`=X(>lcaZUlCV{pDh1R z=Dhz`;{7*?D@EL*zc1yN#+tawcK(ETme(!uEb;qO;u%U`_V;t*x+AXgyM!y%9HuOU%Z$6^M8o%5^vd#vLDIvpNf34zA~M>O1#%ZI`b;i$##}kNr%r7`To4P zLY!iMkTkWcY#-SVKPJAvEv~X(%Y2f*B;JrP*x$E`t4t@$mw1}bGM%K$FN^%Log^NT zUUK}Pah3igTnR^}msj~-UO&yVv2mGhcg3?zFX4TycrTyjRl<>1*}i4*mvHj%mvH6v z8w4IEK9UYHU03&$e zm+dL9^1H0BS)Qz)Oef)gj(|s}Tj)>rmlyo8A?q*kl5pi!j++vWOegV{&$3*ZPrfhP z?y|ikToX!~#{|Qk~*&n6cdL-U|u0eo`|a)e-9uDOMJiGc$V!ezrSvjBj;yHpP`Xo(nr=yK1+BK z5BdC^Vt$kFC4Ih1z?Jj6?BB9qn{dr%IS%}|fuAf_(({q{F56MUk@(B>Z;NzaY`~Lz zbR^!J{4K{bDPQf0bbm%%WxJXA%<{2HWPhI}u5zA}*G~v|l8)~g&k~-jpRAYpEc2W1 zCHy-A?q3#HNe|h7q^`!=$vV56e;`daflh5Y&ar2N&Z_YOoKlxpb6EdCTM_H~}Kbh`_1b#Ao zUb>$Z>102b`(Gp;`0YY zIyql`y8&0ilUJEfju1CI0!2Jnvm3(62(-hx7A+EB1KOmlEIWnJoF551$ z-%9$+`k3t^6}j?vIG?lFt95c$RdQ{xgog z9~XT02?6hKitA5`tE7*_N0#$Ke3#F%o&KVD|FhycuHVc25?={N(pP?W-QQRE@dm0p zUdncna=hMd`|G<~!JUoGJ^y6yc&oX-)81V7JDshq z=HAK9S2tdX`mqH6O51-HcvpV68^o`)ue|sCUi3;B4PSY!>ko&)@D+OD`Tg+Y?S6lJ zPJ#3*A8$W@{!04-uwUr}$D`9%p6~56E<`zvx1wG!h#KByKOTJW9aeTD?8Weoa~U6Z zJ-qee>weI9A-;K^dHisPXWHSfwuV8_Xm=-T zDDnB>(T3Ncr{eS%(It>;=(DD{P26 z;+*lV*4&6AkMjUH3%S+D!V;TJB$Z{f+LTc~jma0ho1|=oAvh*^EX=q`)w^uqS8ya_ z+Ixij{f76HJ>lAKpyNbsKaRlh=pYHN-$~ws(Rb1B2f=U%PH%|YMn6IYftoCJfQ z*JcelHb0oE9rcE>C$sY>4Tv3wJ%LcrI+r->yrW^Pq&|3fsZmNx*Ie%e31IL|BYiBO z$KHki+@rn(3d>v3w`jys`>9siZYLPVgNQg91+iOMmuMi{=7GIIHkzJ?;XiD9$QSlb zJ#_GksJH*&zH99qSL^DLm0Q>mJ)2P>KrL9VXO~MD1#iV;3c#KmH zV%8H9CTwmAR+Z!aLA%vlPu@k;C(@^e_i7(??ZMTnw|{~Tb{6!A<2zxD>DlkzJMp{2 z;Px73o4a@UtaA5ml0EICYahAKzWed*HQr}g4ecq>2ahrC-eY}f?GhrxebLM4KIv*I zTb3e^);Wmc)IlmkNjuBoLz*Hg1K8Xh23-gzUep8A_hJYw!2oytYkEX)7`2JGEe^g^ z+UiI&(ZiB~f^i?X1svMkrD5=N;CDGPelOlXW__{+K9D(Zd)c`3yCY+i%+KAvJVrN* z`oVz4<~1fIFaQawr(*d<}N6Vh*`I5-NCqAs&kdA zYbjXO39;z_&6G;!L~~CYjFYc?K3=1#s~cgy2)f2)A)@y-RJmuaCrFO8@!|a&$PU!-*C`^Cr>dk;!26GqCsa!_x=_A2AE8qHt}x* z(@6&aUh{je2Ca*JeElkxf=I&01l*9kPcmA70pAY?9$NJRuRFnsKkCL18bb)UKB305 zq%V|J#m0sm&^|T)hB~|Nx9OF!AR;C;rtEE2i`JuXz4hoAZGh*~AZ8K-uKE}-)6#A9 z(m6q`E@K8`+U5&^bk4qSe9v$a&FE;-+iUB$*Th()PKHI**Qxp_Y=WAQ`%-GEW9dYI ztc;`+#;DlswWgdw)ao>MGrTl08y#(Xt?iR=FeDCQSDk~VUgj(+xHAk$Vnhx3&1|Ze zmO6_%ZVj*ee(UgP&uh?KcKp&gZhBpD%-G-SN5h6%dc$iGw#UI~*z+K1K(6<@SP2fi zZa9?VS#!tyfJO9{STNE>G^sV+HiM1UXV;>Xn*rkz{ALgli^&%{>gpg-Z#ZvrnO6nt zU53HcejB1ak+|^W8q>wEQEIem1>CSpHhG!<2=T zP@XL-yb$V*tYV~D8Zps4sFfcZF=NL=_07M!GT4iXZH zr603}Q(P&7Qx-fRzNfpFhT}az)feyRYg(3%oy38Szv`n*Ahr7~6 zd2JBe0g0h#7j~^ni10b|d2*Tijo(}s%!VJ6UQiCeQej`ZuWp|Vpjkj=*tISeTgQI; z8Gz8GHVhgg0fP^fwMN9|<{%)|x`ze92_vxfOqkUeXA`Ky(TN6?Ki7mR1p$oTHT%Mr z*dsV+x~V#yVP`lxh8n2_2>h-tD#<1cO-D7WlfXDXcLt?CX%cK`J81G6IfGKWt@(Zx z+aar29S(tOLhEo_x??tBCD;~P%}Q(!*uEX31G}x;xB^gpatHuancDPFVAQQgbCU?- zu{9+&I$De}+ACL(>yygFaUz=8fYq+z2BQ=<`)QL%p`Cc+2<`-w(-EAEa9LQj>$j_L z80|!B#N)ikU%M<}0y0|gos5<_0BcuwCuPJ8JsC4jNX{($38W(>xO{LUpz2e5X5RWN{c<~iX(LChP=qhsyz03aAN@lIK475Hk7fAmKUE zF-UL>Jx4g9g`4vrCY!+FgO? zvc_&&ULeQJOcjO6J}M8RaEJKXOPE0=rpMIVuv{8qA$Q(jHx7s;Alhj)ZTLrbT`v8Jb?vBhk zz@5751cj@)+GPN4=K@_7>g0sRVVofr4BY<s$ z4rt!QscXWXc?Hnwle}?K9e%i5DMr>tD`wJe0KX=zDVSx7Y!`7vbyC<{3ZY;~!;C%> z%Hf3*GNBM^Vn!4yM5B@@WYUUYtVr+{K6uE7Q}(S3_CjGvg=Aq`rNm1o)XOPs@?MW2 zFYS3|HFy_wS&zKpCa=gQuZUR%m&j*}m>6x0g*cQRvED#8E*O)Ua*^9Hve&>Q55q3; z)r89p@?`}-PhRjGHrenK#>gP3VEOEzCe&fb zVchXG_Cx3orHK~~ppyxSfX3vjbnAtRVp6B=yMvOOm=D;d7n$ryMpa)pC}RW6%0bHZ z@~*=8%wxVS871?+Iw-t}mSYUV9gYh5Pb`bFU#43kZ8j8nK%00RE2wRL+2rfVMZGaD zvvbta&nqnb#uch&m^ljY2;`*R;4r1$lEc`Eo9qV{wahIrpWIWgYktv=*o#IHTH$s> z?9Bv3<;0&xy56;YbU^V9Eb)}G<>8+pe22le5}$t)%=E9?d9qSR$;SD`g70PWXiC*G zJTy1AAwwR)J@X^@9Ub}1^{DZNa_MfJo7<4pwM>T(i?jtzn;)~L>By`FZ%i6g3%WbQ z*pEllc>Knaq}gPyS&vwakx+TEq~2(9K<{97X^~4;k?$}(EUM9ltwtM`8ZmSY;1+^5 zQS}21g5;eJyK+TES0JW@Xen?51->3!hV9@WB*&hPN=!gnioBB+iJJD$m;sIJk`u_5 zwoaTZGXY`*CzhKV@YS8%Sb9hE0=`fm2;a=)ia2?)z~AcoU?Lc);$r!{+Y4gyF^d%9 z4gw(+z9*2N>st@@A3ttAZ9HuqJ*Df>(+8hy(aqx^26H@nD%|iI-FTNU1605kcQyoK zctqxj#GNJ49{R&+z*EUvOS0w$JP~!?07m=06S(L-JG^eFZ&K%sq&8TiA5q(#Em2)| zW1;!RXc!RS!x8-Hx6Yn7)aQl@4zy!H@)| z@O2r&;r$W$ydUrabG{H1ed5?2VhI+w8g2-d1=GEg5YC(Y3+ia{){?Bb@hrF=zLBO? zAG4@$v9+@k-noXA75+ayW=`d7sL_!^u+}?%+&+8K>t4H|7%#SAz|K~6V;dv&VQ_*| zWoK^;qKjAIzy8^qL3nx=x2|cDwtur!WP_v&dulXJ?l%icG(jFh83M0p5M&4|l0RC< z93At$1pvCD0f5g{HW2)a1qjWWN26omq5n}7J@d~3AF3MoHL`xm!f0;8_gxRpwx33? z`*0%F10jqzl*t(1?}#KUnnrTpc#VUCZ|)-|Xn3!O!-B6OIbv~SGQI=vT&JJrF-|gH zEwz9%%lPSFG{pEPs==BG0GxZ3}bau)dd9 z*mZX?m>liU0EFlx!{L;PM5o(dII)%exFf$DTiXO$Te3;Z4*!g6$_MzKr z+39BOLzr8NxP!;m#$lo~ z9$P%r!yXg>*xkDz0~dL_FvxMSea}03o$*jQx6$_9oCqdyV(W9HYIg(1s z#II5p%{154yQ4O@sH4KvOU}+Y<`QQni%=zeO4@bw6@f8Kuz^FJhV8)-9v|hb4ER_- zo5CKlpYRt~%TK8fUPB1 z>>%>0WQHZ$Yj*S%jMFrHz3tFN+7i}LWRN94+1jDF2MNLeD23si|siXILL9K%JyGqk3vw;{`Ry`uXEXax{m)CcpJe?mJ- z#v1~YXaRDdU`Y&Zxq#Fo*t0|_e1$>LKMi2A#qfc_QFe zI4r{x^tdFh4jL24<`Ba{WRCa)4RMnlQk?ZK>iq0T=WZ2PWDoHkgX7uYL^n@CGw>6{ zIgMZx9F7r;77;1tLTm4ib}dN$q#r>sq|zs0S3a}#OJ*rQGsJYwjl>Njf`}}e5@oK0 zLjZdoAdS-vkMluC>P5IZ*~&XQ+p9dJf0<2(ph^1y1<__*;o+yBLe)nxH5u2_>PC#W zECj5v!!&Q)Z?o{tdDDo|Wp(1t8}&6TooLFZi7gqC?KDn4FIEjC@$cu+pJu2=BI^5$rb*zidUBX;KSTy ze=-`G!&EAq>0f3eTBI`sW;tbPRTOcVmT9aya^&4VAnl!XNr$n*5-D39FQ!`(+hBlU zofbu0C$v!+>qoYdqm{QZjZ7Hznn>n~C!49Y1RI_~a~JWnXN_Ws##-Y3RWYh~wN8en zn$oI zH1HU1F81*a3%4eGqe(fF?XAlPU4^?8xGy}du`SKSb|#oJYNwAHt2B2K*&TW{KaAPd zwXvM9Y3HwKhS2`0%K8xJ(eyJYbHl>aUT5udi0NzAU)72v2a1~O$%ZM8($h}9YCUt} zcZXxle2hVNzA9YoXeIVWi-lOm@@cWqGlMqItQ%?@C)5*@GgPTqGBae-?GqS|m|oV+zEAqP!=Qqo+NXjfa zmSLHco=0HIr1Wt~D4rrr_^ZYZ3%QccafZK;xNb4QU>T^YV46tr3rW)E`la6;1x&99 zeoY^g+srxPWvI#G_dHN>5JluQkl*0KbVA8_nS~!aXk|fF@W_~7R)Zc;6`ImD#nwVH z4L|?VVpgk*-BE$*lOrH1jtwn7X}8%#NNn+XcydCg6u=eW4cf(E@}Bg&t51@NJ)!*U zT4~PA6E#~q=={h~E^Kw^j9Ju&cXJ4MA6Xo{`ZP#Lygo)J5Xzl^fzLGYeRau&%x3GSq=bW{mp{-Enj}sFz zaz`yjD&3x9{)$m4Uo0kaWUPY?Aik(eha+`(O_m%B(EMz0Rm7i#KuH%i=8qB+IaJG@ zg+Pf>DIK-vkCQ%OTgKW&n*|M91coumU5kdNWwuVnkcFJAH(^u;DP5cER*2>pKbJDw zOHDKwSr@zcw^_Jh&H#&zskE|P23;U&0K(od7{uPF7rr~knN=>-tH(Q73oveczuol0ScX;=kgp)Z0nu~lg zHsV_^Y%him4j}-ey0P9tSYCR~ExMCcL*lNNHA0$*HVKWxn3`CQ&vj2HDyK8K-!7pZ z;Xy|h3o}F?IXI$t8j6fw>dff$h@~E9eXY)M)|sJJ?u@G|bX0bghh70S!lOR!@a)1@pw97HS3Mv*uo`D>U&EQ(R~Kx^NDdg{2;plBHPBW# zox50w8wX)ANlf9$?lhTJJ8?V?{d(tkr;C2V)FdY5ACz7=mM6|Bfx9?qx>#KA;s`CB zUSGIIaZ$0f#gZKdxh;U!_E@7WxdiPDm%apTd)@?g1Y*AkuiV0*XRW8E(v)b?v1)#oa6rLhPd%! zsz-YKpt-OWVduM-1Xq3>YdPq;$z@jjE(u3Bn-sgV11EzBq6TSOc>lF%S6LFLgT zDavQz>6xS26R0JqJ{AW_^(U}6s>U%#Z!#4N_EU70S$uk>(Je_Yt*xxYafHRM1BIPo zo}`71GSe^8=GIai{L4q4S|oo*b*bAWziOF1?!}y9HnDq5Cdi!S;4QpGu{m;@>n7GI z_Y(u< zi#|N9P8};lQ@l|0m~FT^jS{*0jPoVX8n@q|Xwwbw3YHjQC+Njte62IeOehDn`?KJh zZI>{gz&W_&kdhsOwzz7VP0!Fb@50_+BvZy5TSex-sVA zUgsHtEFs?NKF$%Z{ap>V4?@dGrP^Bz+A{ztV>Y5lq>|!ck!LD;p}LQb=au zJZ9Y#28B_MM9g% zgN!x=Df=@zHtGQ<+#*-Y^1WXc+x`!|&>t0P3tB#0^WG&DWt9Z<)o zx<_Yg&ZQ~=7aQN=Y1Fc)n)|#ZCeuYkO*-Z!_DqK#>%_X?T#@nFyU?8uGJ!tfE;e;D zlkdW#D<@)o%+=>BF~t=pNqdE!c~+C%Qcuc>R%JGGvdzQptV^D8m3Ia*w$LEB3 zS;On>x)Mv{LD)N;rudu@OXnk)R^y1`!H*s3EKaf-AG=YT^k{tPRn|S{oOJM81B(;# z*$k0$EPAIc2gx}s6t~)QBl&JSnH}a(@$L5fm~A__=*QRQ;n5i}dK#KF5eCXQgi3av zEE`WYt-0dM1^Z2^&!-199Jn|wy_8$0swLVq8!f|g)1ApYH_cg9@R1y^Omjx7*yGZi zk*ncNsVd{?9nEl<^Z*W%?##ZwB`#R7rT(D0Po&96P{Hld%yBb38(}DP@7ZWF>Q%%r zV+1+9KdH*?#=b^WFO<=2N)MmIwigYCZGe8zNzQvF z;_J+?cyhF(PiC_zdBcx60p_qwnrGQfIed!LXEsBTx8e4P{eQpBzd`sVMN28utjj-D}^zLR8&L5z$I0h=B9h4V@PMy{q%yHQB2iM-osK<8C?j=#M!(Ob!#AZ*&QPee# z1@RN==Pkr*JA8P4wCOb%c~vO7uY9q~dk+1OJ0W+E9gv52aXMhW{}8^S_~CeQJRW7? zU@cY_bfwQ`6%HtIuFB%_{g{am@!`4GhMKbhmQxE|ZJ5HOEoAiEK;`R>@L@S!$SOB8!Dr zGLFs>EeLXh-~@DHGL+iu);?sg-%5U3IQi*A`dVO)d<2(hkxf&=5aNPEblDBeJ7Y8 zoMn21s^`mDCfG2$s9w}D!d0x8Z+V&T_L{KJ(j@MU4dF15&MT&FuZG;ux!T@r)j1WL zkwkJy?M7NHEPP2h4z%bDp|MU_SgduO{t_WB$c?zq*j!!~YD-lv$C!l!B8E}Ue+h%;ASA-1Cs@zFzn_FzYYds2^+(-z2c#d2+_D+tf*K+JrO%2ew56~yADtWu%$votlTAj&Rh zoo+@mN%51;ZkaPo@!YYRYEtK&H(V7{ZmKaPOrddMIvHqPQ?uCF+Q34?k|XfJLQ^|~ zi4&RdzJ|BZyilAgsX#JU<2S5g$vC#$^#Y5r#V=dl@+M1aRwgdm#Aj73>V3YQt*iG{ z^K3mf=bJTR1ug{E=ALVFD={n`_+dQc8rV6G0cI>vm}ZljEu>Iue)ryq-yNDpGkOio zWmYXtxyst|2>Y3gLe0ESQq@ro8P_E5GI4puvhxVSu4 zv1YZR8_%ojlNXcc-Y|SG7$3TKsaUZ@wL~=KrKy&SNX8-x^Gj9dw4IYJWZ2Zu0#6t7 zldt;gl@zwbQW%y4jX{7o3mvmj6RRro!)lF8fs?su?Q$)r)U!pr(RmZ6Xwv@lqZHl_(GyJ+q_Ly*nuVO3@vsN=(tkY>QKl9O)y_3?E7paLj)31BuMX5 z!sCRoidt!lmRVbrqbpjegqBq$WZ3pC)u1C}-9*Y*GUP*jdvA#*tBVUmzFQ{B19?XI zG_Kz=VZX;6zxEjK^OMg~x-qr5t3i2L2jz^&v{K05V1+!~`oUYP5gcQw*O&I?*oIvB zun6X!9JZEfQMP<_C|;WJVDj2Akktb1CM?ia4V!P~yoB4g#xiXQhaq#Zwv<)Smu$;d zh0MZjDXU;C-i8ZAxE`rCg$wTC&Kzp9&-lcA(?RGctZSY(fnUiJ1Lo*$7T%mzC`YA6?&DpTryR&vft&glgm(tjF) z(&~u4-ZvKEGt(6uiWBIdtm0Q|1Aeu*o2KC~Jnh*9!rb9f zvxHgh(Gh+&86AXR%)7-)Tk-n+=BJii>_~j=!3QVB zV^Gu@OV&6Q9CI#rMGc>p5PYZLt<$+^SzE}jSlxOqJQu6FNvEW>Z@v%KrSG!Tv?b~) zoIoyjuXX4FbVZ1iBNE4-(u7m9=}Eqt3yGDGd4q*aavZ8GBE3|#sI$R}JG9QC7>sfc zqK4g5N-oAbOY3CPJg@|xe?|;k7Uq&G_niv{6ROxAh3lg_g=#n?molO4l|&to#ZruU~=7DC{8e#u^Ox)^D$|_(;0>UM_FbeiS%4 znbVa4pY|uFy_dA%k$t^pPX7QV#*dHi0mW~TedPW_L=wKHRP@Jm<+wfyo3%RgO{#FU z4zDz=-uKhVNt@FYuF%u3bjdeDmrN0(n%2>x35U1Fw7!@#dU0n)XmaQn*{HF75)Ou$ z8UJS2GdZeu^Qu`PSn)y%Z>9NGtLP1GPL^YS`P9{Dvz0Kwbdf-=58Vz>k&nd zyjsGomT=HI%k3%{8yHKtr9KWyZYEABQVM3U6R#UxwGNr~vEtFUhk6kD zZJCYGw3hD%!=cvHP!YhNNsu4vL(9J6gyrP~t^o4FPSA_P_*x&_vwXo0r`Qwc7_ll2 zRtpA`m0Mb!@(R_ouIAkI=$<$jFzb*XfbuzPaEk%N6jb0_SDap-r$ z_kw}f4Tmu-V`3~1Nf9l~>lsZM{zTj?Veu~O5r17h8z61?*QHN<szROwv?%nYd#vF$}ZNa-pLyL7pfp=_O z4Y4p78(mq9drkN^rp1PgSHO$~^5$Acl9L83!-aM$Jp!}fYbJ^WLTe^HqAjhQ^8A_8 z`ek|6PdBT6#cL@`6#3PPYFQ@_2;gExwQANiO-qn2gO`6@b;E`ybB%T5s;95FZdUa& zYp)wuJ-H6kg&lLj#iaD&B&#*qvQDdpN>w?;WU|4kjhDBLC!f7aqQYv!!B*Zenby7vse?f5q1_QC~#Oscd)fs2=6699pT&OP5q4F zVqsb#XzW7Q!w8ZJG0uHV*xHg*Wr?(6Z8F|-7K_J9MmZ%9DU04+N>+s$WYMeQFdpkd zj|?vAnYL$QjwUx-G$n5GRo{GE$wf;m7cH)ZcPeA(UbYuTXB$3;)3-Nt;b)PMd!kE_ z3xnE*A18!czzxm?N3TgSAh_2#8gv#`ExPwCxMo4J78b+idg{lEBbn%L7pAYkG0HF) zpuarCim<`vS#3gIoy2=7!%G=F!0ae`Q76#FvX#%V<@Gt1`kzmB)^D#JM^RVTV=df3 zMMv#i9Kt&yH&)rOm`86V-bKWih%ME{9k!p)sJ+k_&ak}}pBT&LHz*iT5TY42;bQXg zc0z~R{uN3LHw#_&#a)P|jWerx;pk{V$K35UVy=i4+v3exG9uQZx{TbSa3qVYI9PZD zx7*REm+D>?j|H1e#3Oi3s}pf*Gok)Xl5Bfskn{N8E62cwlz zMmj51jTc|SnBOaIH*n=N%Yi2l4K)-}QTK+6k6H zv$Cs?rfvDr%&b3{&FDiNesf(E@Sxj;pN6t%KK!4v(fQ`i>PNo$o|0wW6wh6%Q~=+~psaW`mnlx+M}qr<*fa&Mdly#xRH0)Z{}i7@J;B{>d= ziL{?atUm0}IjN-%)Kct*-{}kxe$`>2d z5z+8CQ`18PjcmwrW`e>oD>Bp1HrA7tr=IhGH?kY1%G4UR(}H!Cva+?GCQg?2-dM*$ z+VEm@foTXk-yJdHTtYU_zRqI1MX?oI2M^mv8_eWIAIH?M#XWV?CL3&KWCKeDwmZS` z=+sS{fm<64oVB7Sk-JjD-bs`#WcSJ+^q>iJSB?OfEeb|a1DxF`Zk3V}8;whdO&k7Fi;;Y$#;Ng+vm~) z_7H?qRQ**p+eXvOmKLYyW$!HjHikj`U=&A(yh{7MI2hn`NGojEKM)90^1b6*06-4Q zzO^8*j``WN;u!*ZST9p}DQ4gp_=)=M9G0sy8<^ z{95NudIinrXn0rDlq= z&2os-&Ei70c172NQO`D;Ow*%@j^I8NfZgDmI`z_zc}|3^0@U=qH4$9R!N~#Wz|{F$Js9OU%K#9e)&gNuColUd<=ok(r z=o|Wcbmet}-f4X1aY2I-CS~Yy5Ta4+MJK}44G=7a-irsLKtGXG#x+NFB(QZ&=~V>2 zCQ`nnrG(D#vnbH)30JfQmNE{laZ=hhCjKT$^6MV*V5;@Idfl9 zvG*2QYJHb^$(=gU4)kfoL}qR;uQOXcpY$!pV;C z|FkUV3ZFngH<5m-_ylr4S~FKQ9y~o`Fk_cCB7JJ(+6E$dLSpJ;%`*%-9&L1bK{vRV zWO{xSuD2c?gBaVMhm{c4L$vfyhSC`oX|2|@g;AV5U%$O};&+FJjF($!j2?BQ?o`ry z6gEL^^puL!o<_kXXrA0o=91Jt;-keE! zN$;9oaXZ5RlUpVrz>Er-L|EHjj6OoZFmohsd1s&g03O+dipeOqP^Qu|Jw71&|vpOZ^GJQPZ#H= zLUk(qBDxHW!e>@?PQ{DYU2|=deAKe*(`gJ#`7M@@8LhQuLo_=t}5@8o6#O zZaq_8Yb%ZPGQC2!^-xPws)~r!YLaQntY}DQu36xTIf%P1z{**)T+)Ubr={-jIg)n8 z*=((7ai>yFVHHz>$Z6SDm!?U7by`%~yY{hr1K}rZ$dI{S3_C!)xf(#NL@%jP(;7FM z%BM-z*sV?g@j5M)Z6Hm%H9uKAt`sa``kJUFTlo8S&{f<#KD>U8jVdehE48Z{60y7Q@zQ33+j7ofcw` zCF`^ZeHktyIXf-E(9BM0K(NQPbz70du7hn`PiH8{IRL~cxC~(IJv9YSb8~nGFD=i! zIPy+#=4Fc2frMpPr#fvC34S_lLBUI=iG2cpI_Pho;E-l!)7dHg)gq=-35e0{XPiT) zG;$~vI7wTrG(~DB??N(-(-h@A<;G@^3$b_m5z;wt; z#~iUYHBE^rDPqc_pR_YdHs7WpkT+r28TKyyK?q}HI*~XvL30D>Q%P`dfD>|Ln!xq~ zNGUqqa$%pLlqNe07omW3>Ca&zj`*#IR~5M*kNbB>kHFqQ+6ImBowR-R&nW&tM8x?quO>Q0n! zVe4M~WWiKQrWVMYo6t4xVyKP=`fK+aC->Jr#LV3-Cl4IkXM>cpHF(b}FcCASSi#wt zysI_TN}NR%r7%iMRFk8p&9!qhdjAj|8&?N5ZMMyf*EELLJFBcVF1NX(;{}RbI;FBy zlY4G1>DN;?gjXftDG^pH5VrPnV4^4Fz-R_Ml$w6cfUas`>A*J~ z7PZ*|Oo?66qNZIbRR@!<1E*9i>yF}-%ChhJO{uWljm#;PM~iy4g@b{_ACN7P_N*@g zriBA^MWpsuP)HwVGSFBzv8Gg8>vq)@6>FE}OKa*yH8fQfU; zUVs*>jM=Q(ODdH35_RfQPvJi2v_@5QW!oXvJ6=9x%!>SZM}LcO69;TnO~#Z}fAc$G zONu{b;BdMtJi$KDl((y~z+(){gD_KJP$4lblJb6fgrP;Q(qUi`wO6I9IBleAxMXHv zx47ht;?xr9$mz7mO>6@Cy&hZ}!&U=Z?QwWIibg|r3+Lh3u!Pe;7_9OCp^PX@JViul z>`uz=1y^KtpuL!8*=U!f><;{)#auCCyqhKlm|~LB!d`n2&_Oee1oG`Pu~6y2&B=8f z_`3#oR&ZnI3^rxxks>zMgXi$JkC67#iTA_cdN^H2-VIxk)cQJV&7G65#~e9G)TWG< zSzHz+qEk94Th$SOk^~XK)_IN$7#&28X7$ zsLmtCJ2Jk@0743zbT-30QxyuJN5p#Z8%wkF5`(W5M3sENu z7cXStnr}X|Oi>h27JySjq%69*>1I>>nxI%g=V|U-h*FUGP=lhOx+A)9h}Zt>K}4kHRSBKYG5ow$VftBg;C&FdI9wNW9JyB$U1 zfcBHEd-kF}4aa^LK9)AT{c9Gj;~M_A@ORYm@c%g}5-ell-oYS@2IK$_DVp9USaF}- zZ4uY)pSKXu5|KY}g=t}KEg6B6saG+{yH;X)T$f7qkR`LjN<$E^^L1krnIQu-#5AYy z2iFW@x?n82~+w z$9by;pn_xmI^YdQ``{7Bj`oQQD;APbbd+o_vhRNGv7 zQ{!>^CKktI9M4<2wBgbs*Npq%y0(LNTTavHl)0a`4oDOFR!66B<15_`$X*Xka!VS= zQoTy<${{hRmh{x!D>xq?lRF(Mq5Uyz-1iSGnKhf`bWXO~Wsl2Vxp2ANv}Lnj&T{!$ zzRhtqv5<#ToD5&BmdcRAjE;ptsHNp?{j61TLRW|tw+H9QHHtMeS1CBhryB?D957cv5;USV4K~Aw#lr1g*Oe$+VOSC+i|N0DF>!s4;^dc5o0 z>y~OVod+h*ZEd!y`bwu5`zL5Yjp>S$=TxyQ1jVDP-q8z6m3az^PDkegIORO8TG}{m z9L0-Xmg-n%=`%$EE>@7-;aM)=WN0mbo7$+CB1xLO4DdQ`>#ViOb2Vq7eVsB3=vcmE z7dlq6AX+v37`JM+5{jIpS<;Vld1lE{?7+;D!FqV0fIkgsp%jza4-FI*lB{Ey=vIcc zbIhO%3Mn>aF32c-V3n%7OkAc8iF>M2kdxG9K&yuKrJ$=B$`oL=t}h^>lD-u9)ZtPo z^taOVWxy+T&xeK@wV)14t|z4@!#u0wf^rHR`(U{#BR-d@XECJml_-V-M?*Xa_2eiO zhzwJwO!j1av}-OcxhrWt$K|hHyc|bq;xn7VqGGP7`!p=2Gq&`$*5HZ_ z(#0wxTdAD6ic|AciLF>Yb4tiEc}@Li+W$-8ZDy}lIOz2R{#2@yD^&$(TIMnpRhpWD8*Sy)@p?+E3>NYT;|lXbmp<+2+B&(6nRSJZ>ks= z%dk=a6a?yJmj`d_uxZ|swiM=e3AOqtY=={?H87D_j)&IZi=4xpB<9yXW@_s|)yo-w z2F_XzW_Oh`>09f!HT=~0?%OSf+DE>81=0SPCrlmE@3?IHFb(BU)l6S<@3{WpktdCAsA} zFz%PP9O7!}$+<3Zifh8Ia=-Dk5jS9%jL>-80F^b9FbG#opXJ#frQw=}_5y}Y9d`6C zu_&((Kpr8f4xxQ{3=u_EM?dD~h-lbil&0O@>%oZ+d-U|hqv$Gqcq{0Hql@(U&G7Ur zeR>4n*U6LKKNR!lbH&a(-;!EQ^-wos)?lUf&gBxB_RJbE%>ww~ya>D0%vayB)8M6c z-sd(u@30r^b`PZ4iw8mA^`cI&e|~V;;yMj7?My$U+7$q}y>=Oe9kG$0tb0gD#{fMG zuE{(2hzEltBYpJV(;)Wn0alwj%?ff6W|WP=s*+I@hm%>Y!_uWeB~OzC%VDjDMgq`~ zC%S+aDxAK1r}X%sQ1UQjg--Xjn8pkGpC1d^1xmJ zGQuOa$;F77qumqS0*0x9i)k*RFguB|8SZT(~B zi=52*5CXLG2ay~IB}SHjWXlzLi6;5z&q6miBVJ+i? z?J#Zg_FB3APp2r8@+Z)W0kekh)0(Q%_+eFvcEfqiUq0M~%~)767LFl0Ch7 zZk*mc*Tl^#r#G<}v7XyxtDHnEANXOc%jM?Ur4*qwF^iqmKB zrsQfd*kUn6=Xo8U)vQrSMsrrOy|AR4+F4CmjS?jg`gI!{YuO?EF|}ha>S2)U#mr|F z?)umC$OA`_s}qtp>`paF<37jY)7mFMlmn-fx zA0HX3=hk(tCCBrk(YV5h&YZNealP)u0z@VTLQ2#0Y+o|Wm8^%=AfbBRs>L?fx$cS9 zMs+nni;c}%j8=ZPtRa2W(>yoTVWynIP z8ELr6>TbeB`&}=0pHUnZpfq4ey`0cL-Cj!+{Y*R%ql*4g)k0K3yDxYx;ns?oLwzq^ zF5*iN?Bc@UkSZl3Gb_0swPAxw`q>_b!a{dDNYnPt{Qb%tO& z3sN*WrT}4cW)iQn5+hcJQOu6U0W6g%ZJ$)utbvNjptV5gY+4;ehFNQYFj%%a3=8Ax zeBq3JlkuSBxSbjfrd@LSS@YDtB}-PV7OPfRF5>IWH#F9Tyo!{x`bbIYMin_W|wj{x_Xk$98&c>NNvD(Ey(YMKJ!>Lz|nx(@SL9{({$kuWM zW|no>fS|{ zPlL|_v~H@n;5T%{ij11rVwzEHQ-wuE@fNy?ni^+JcW^%3@w$P3;&r2|)?uC2F-$Nj zutr+=8LV(-S~@y-QaUNSYIMSC#DeQeD9-B6vFW}zbsxFacUoZZIm7GNN^ zdajJ_l)~ks}q55rZhc=xi zuUZyw3$|1*T7zY`@Qm?09h+4R0~>a|uoEB(M0~B!5Cu7uSxh>hE!r1Ub#GY3S)3i6 zk9T%-Uc%YYc}px8!ya6pG7tCzuNw|^Z_WA&rDO$i(AIi>Nl;J7!uSQ*$Exy3nap-o zPSu>rinL5d+xoj&zDmWF_uFGpUKMo^MSd}oCB}GM$HoPbRM}9bvMJV8TXbsx0n*gU zmnpJ##vBJirOLE<5-O81&!teAymsG0rE&%refY^X{4kcuY2B$QlQBX9Hzr#9R-b5s0Yw`!ZPUw8dLl&4MS7_M z+gSXWyMkph>YCPSBfixsU^NhXbS%KODO(2j?51v|X?BZNjyhHVc9N{EcK-=^pt%_bs<4TSN}ew(b%wexRy zgLoh;aA$gE4L-zp=ti=}tQ#U^J2ylK)hv5Z?mDqU$QfU4+m5PCL&?H-F9(?QS~Cymq4fr{`~NhxXMt;P%6 zONG|WJC+3Y2w1k1mJnF7IqZ;=cvRzX5OJc$CEG?bg*~(kyQ*AdEx&mOgT_fXxbW$S z=v#?9)mrxgVRY3DtT#?1#wtpwodf5Q;Qrz8Vi@^CIlM zMRk{Pue9f}`IUfKX-BY<46Bk;R}tI@RKvn>gswTRAs`mQr75wJ9Ce)xTub45op9KX zhFa%m8h%S?q*f!FSS7y<{F`zJJKZei7 zeQX2KkUn#PCJolS zu#-DV1~YH-V3CL$CW0%fjb1+>q5;*y$lE*=r0aqWsM&&d&!GN{2BZcNcVdoG`tzGS zN#lj(ojUCAWxorNp6gfyt(%r~&1Rg=g)p&Gp0fDt_f8@W8TLZOWLv?6KHlks7`SOB zK|PauwevSKS;CGbeoY|<1MGdgs^^b!tFk{zZ$eZdMPjjyJT%31( z)FVPX4KGMoNFNGwZ6SW@8IsebFyS4{3mAEQW+WB|-|YDk7^E1+*|B>rf{Mf(VGoy__%JiV!R@x_j5?HR1(w<&NcJ zbJ7ly0amNg*s;LP0Ibr+QsfTIavyYwKlu$qF}^pk0`vd8GlK`1&)Uj!jN zo2DD6m8^o2-8_|65`uQ->!9#xePKP4Q$o5me@QG-V*>qcogZ1M?z0M}T0Z<(-!be9LG$PBZC2|-sl%jmXXBUmKZ+VLsJag8R9 zR$*DjVha=(pRrJxknAO6Op1ep?kS&)hO{!Y+Zj=n-Lo5PX&jxVbW0Q$AvsfuB@0@i zYRxlr$sM6g^Tb@A2?qsiUOQ-JHJEHqiL_Y(4tzm#!F?*^Rt-ms)>GF?ie*o39l@g| zr)isO7}deul!~xZKvPR39C0s~FqPtQ7BrDgF77|3LafdSAg42`#WhY5r`k}i;LTzp z&`yz-TfDnAj~KZvpC2JKH;Xwym=OyrwxWK}INhLi3O1#*5yr71vY1223cf_}(Fp;& zLRdYX<&3t5=XY1QT7#X^q6aHpXJzD>BJVga#%BKNz7(rX_)dYvbH)~V!j48xiz_3M z6>2BzmwBF(XH5uun-@#EP_J>ns@!2>?zmf3aYZf{b^Bkr(^GM5;x^5kbuormY?=!I zj<sYT`6PcD(HS6aTE7^u_#%8N+e9daQgq34@Ul%i*HGWN4c?SA5!P#y0YXY+xkpk6BkGrw&j1hxWyHL$}q(fw}S*U=}?2@?mQm24RP1vE)X0>ivP?I!F-Kdx?aI3IMS(XqT7yG*+h3)YU zU33XMWM}>ZCzV0@Ur1zShEn-i$7BA-uCJK1m(_g;7`W~y@$re?y2y6Rn<=(I^7KB%$c@N^W7hS>cPp2=IVqk>S#|98`&O9maR z$nq5e5>|zb-LQm4r3N%7@g-S;Qoi^;gmyMpv1b zV_9PuGlSSPleO0h^*bE^)lN^k~)j6#5+7%CKY<#Nbd7eE6tKex1zI? zYE|z9gF!TS4KB;jUdcV{(>6St+g&u>sDB_%C%*26MmUb3L2W3Fr4T_LOI{ZzK=|>- z^g%G$5kC-uuZ*e8g*0q z)LbWvd=5gG=L>i$3VNPBWO*dco5)+O6|%{J1Unsy52lLD#Tw65STg~2$Je~qim?Z67=!6wqq%>Bm# zHXEkM*xv-^%+%i?qs7qQNReyiZ=^FeXeVkBjTg>XHehLI}fmTYb zL}o2%(r=7LrWIJOCAwnEY_zchbN=xV?WXKft~V;>&XnIktmWL0zf1x4x{opAH%L;` zh~GfZy0-x5CBsZSBU|*4F-R5#kM3^b*0u4!-ym~{;HYk+lwth$Gn>cS^#D8mZK4W1Jk>X)Ezfl;}(Ae@Lc z`9|Yz%cyJ}U%^CwGFp`Op0MC%E=a#{2GGKeL*IDPM-*3eMew7vvlRSoM)fRxto6H;G-nQRzM4B;olCV?{< zI;sWygczxyCPPXwf1eO11=55ll{2F+!HwmN=t}@n%-ze_+*N~E!a}?R!1CtvC4h}H zHZNgo?w}Mmgc(Pu5|^ShPCR}m2 zHGnTezslzCWq_(?>kmdU@0Lsu<@PzE3=WXh!dzp^4gZ=d312>Lq5Nll-;pfs%>YU4}TWs=J}=1&g$G5 z4jE~?ydicm4$1CQv2D+E*r23$d#e0&5O87oJ*h={e*3t|k8axpN;O4$zhHJ|)* zAjwp$>ebP^!d8%)%^dVIn+X-hwF;*8IZ!KD+~+|^jibjJ-sgcRZ-1{*QtL_+(s8^s zeh%_BIj+7@euYA+*yh&&TWF_~&U2HHy`rUlg-WD6S!l4Ya?@D5{pl7jt-+n~bZUd| zrm<3ZiFhzc+q*HO*BfxGg@1)6bdR5G;c@o<6_6}v_CHU6We)*V!Lig?fC>Oh9|@=c zv*gKu3J}X35U2pqSY5aoB}yI_sDfsqx7GKfCK-In9v-NGX2mlE6(Gwq0B#ycLUS^R zCkF!D;Ff@Mf}DCbzzu#XL?V5uVr6_~lyNrVdUsvStE2Y9^seFeCs zk0(@sInJ_w{3!*8g*m0xxSEwXv*565g-aqQ{cX$v180kaG3AUs$WVc(s(RE3jgqqn z&Zv<cNQ$uqQZYF#i06s;jB3J0EwNVm6f>f2g7Y z9yFx0&5CM42C9^R5lh()nK;tG)QZmRN=>rJFWTXBv)Xcc?xG4&s~*3o0=vd3j4I%3 z9mc3qfQtY4GZ{_>CGCWU<>-JosNwvaMz$#BxW)`hOU`OsDrYqWMQM^2Cj#V=jV2xa z2#0ad3kIzN+7jM+2c~+;%Z8Fd9No}UG+r3bX(=YK=K4j{3$Bm)K`(aW_5YdzzobBw z8fMDgWXTSLb`V|$9oNN6xCIz&Y>j%@aDaojhV@B4*dK z)^$VP79`&t_33zY2S-lCT|weIBJ>AKp4=B?*l0$**MrNj9lSb<6LV2P4_VM%rOyVU)O{chdeK4 z3}hSINjv((VgGF44+F_xhsSAqnjec;V{hkf0Y~5B;rSq*PeVENoB00Nv%S%9>{S=B8E>a%s;+)kkkV3SvI`v&lou zDlODE`OwJD4wBX6B(%{9PW(|fek*()_JDx;sFW|0Z(~M!UCnV$bCmkVl4%!7Uh~^$ z!GjnKcRWIfLMOBF(H)OU*FmfFmRRrN+@7Aw4FZh}Tubd~ntyv33?4_0>n(xWYTTrg zicSlqx=M(a66t8<)8`L^Yj>1o;4B1P2Pd_kIV_A~*xm6CA0IWn%?rQ3kLPQ8*y>_f zp{Ew&G;DjAPw=kqhl72DPP@j@6#N|?A6_?7ge;U{2Tq?p$AA=_xFHUZCDvyYXJ9Qv z+7LK7FP12ET#r^zqo>455I0ApP1K8|)Q(%!iCigITRUwtlBH=}HWp?%1G*Ih;CL9I z+g=8|^2g`bPDV_%1_GP34vVhu251dYlSsAr{_k4#U&lTj+cKsiT>qp+L0N z{mx}D2v4q$P%f4SE=v}D)dJsw$HpeZ6Vq{sn*)CkhwZTMyIQbuDrBMCFoC9tC?aU_ zP8gpZjE=iu+t~=O5yn9UBCSd{ua7VMsa@> zbD=jj0&7z}YOi=6BkU^8Z#20bH_Y-ZIBgqg+_Vi%a0XyY*}J2jk;q-?8PHU|FHd#l9RFbvPrR|UCUqg-joU&D|fMCq7|D% zzJ^1dbYxYS=$MvoR8F>QV=4@=tUtv99D1TRqQNsc;!!5+mn@Jb>cNvjA@pVto}Q6D zEA!5h@y;{S5RQhyTOqFv<5HNfr>;{d7?G}WGCZt;9wIwTjzz{A+XVI06E$hmKR0gup`#`CMxVOEb z-zNU`&al@I4X!CFuGn?J?HTJ8xakE!$BQFR=!)5!D>Z+E)aHXIt5Vunw|%Lw->~jA zn~K75zfF_Nx~F*9!JAg=8j=YSHmAHwdkjvBti7pFw)Fhks#^!SBvCdDa?@!01i7i2 zdyq?m_%V3oX>^zb70uFdcfwG-#qr zgy^-rgHqQGJbDewk_+?$=&Qp^QcsiX+<0@ti=jN`*M5992>gzB0Zr?3y!X)IkK6rz z@`8P!8YKpZ+w2uTKe_HTUgV|NA`DPfjz|W;UOc#FNFs^6wUo2NCjlhlH=L<15h1|ZC^(GRiVcokyFn7F{Ty(0=KHF?y$W69WR z9L0V-8hTHj$-5SXUY8HA4In7A{jPWh&C$rwpfiL!97A{7SlUVtfX7$+}Sk`UXUy)eGk-}Zu2 zz!hJ3$s8~*`0e;)@73se;{XadP*&-IhyIn=N(r8~1GeYZNbg>xw;(R;OYS5uwyw^6 z>bi6x?!D-G_B@DVLzp%=ZS=xZ z?Bc0~HkDUNk;*$+pqfq=*A057@tFYkLVNN&Y#0VK>cpdd7aqF74DDceZ~bl9dhGW) z&+*%DcyHpL(v!%Ni>L1f{>lEM^L4gPw&*5o0zhW|e{>9cC|)Tj2UO5gFIAc@Q@K;F zAgRB>Q9AEUfsnEsrG?O(x7YZwOl^7VezW*Px7SYm?l1uNNRGPbcXMcq0fP4OJsJWu z_S^pyu@wG3MN0CzY$bUL%4vJs&Z7J$q#K`8@sha-14&?zT-VqnU(%jGD_#MUyo%B1 zX~S#v{Nrwbg(?)$AvQERqju1FfSLEY^&DnYL#%Qdj6*b1ZnIbWE|>&d1}22;(ZZ4s zl;DOY_ZTl5swGzFz1j38Q%%KCWL9{ofai(`PZS!c4C{uR@HC7e#j#6sy+OxslLv_6VGq3qFDVPA=zz2dxDB3T)eSkc6FzSs4W9d0 zK0~-u9|XAc8(_-^d^__Aq!7*M;oVUf#NK27G5bW~0no*ALB8Q4Bl{?%$8IznGR%VZ z_VyjRJ0?kz*YG0hjJgp7b-zDs#9{Bchn+9)I5@#lLkNjn2vpm71IE)rIO~lruu0U$ z;{`~xA3i#UN5oB35c3zKi!xP?&*nd;Y#?Nn(ssJh6YQEuW2kshcJMrmv3A0b2fap2n#-VvCb))i@I?b_M1Rme zYrH$8)ZS+{Y1P=kPov9z*e_nAg3q5*ZCPC#U8-s00%Ymo7t6$UlG?ZJ_PA||RCv^8721;Cc5vb3}39YRf7th#*{rE$uH1UrA zA}c)rGaozWxI;VgJi{|aG8&khJACoPu1TxO1S6Ruxxot$%a);BbnyoXg+EEH3xC?# zLJ5>V&6hs$Vv~<7XZn?8rH>~{fpnjgM-NGH^pKV&^DuBprsOFtD#^wcll>SLo}@G4 zH&{$3_vsy8QJ>=V;&<({LDY+|a{voT$ndb}pl9@K@$7x((e6cXK?iIOF5hnMB8Jn@ zi;m9&1Rxq>a$Sd8@biX90d{`0gXU`YuMgUm#La_;ZE8+@r=+{M?G>f9fq;o3&y^JB z$Hj$_UP2aDkX8UjYSgBE(PxPAOHV#Ve5`nWGPnTD9ZGmMc-y}dFj3YEu`H%p^WZXM zG{HwoMm4r3Ylo~5q@pClK7^0Y5K;QagJ%|~Z9zWzEK(K%rjG=f112=^e*s*4rQ~r$ z&>vClpj@@LI|S@a1{KH})U38tf+-iZEP&G5POFKN{lU z1j7=>#*>roXn01Oi^roAx?Ixr1RB#`j4Rn&oDjl$!ybQUXNPm3^;9LphzfH|g3 z*|tw`H?$WM9^mv4Cp}9A5{{6Ieup$kwHxet)JuVp;@Qps=jRGEN=BvcoLph~7GOxQ zwZE2yC2SBLXlpcL5Imz_{uBo^=|b6yX}67Gn>eg-5@3!$;k?%8my-yVg)|ql>j1qF z(?xvIKf!J$UGdB+Mk+VafczrJM)jp{i~^V9B{4=g^t+IULx|YyhH(qs_o2mSFL5JY z!epiQj9#)E@v_|muhUC*BVMwF2EAlA;^isi^)q_OZp2Fxe+TrE-H4YAKYGb-~+QYLtt>yxJ*7>Chvd@8*=bX zGL^U?c7|ZaE?{b~6+O`fPgh|lAa2Af{(*HgCdWZu>u|B{gkK<`GAXVrF5(IamAxjJ z6gM=D;zCm>d&Jbm9{H8#EJ{Rk7JJQ~<=jP|tdr8!70bq^u3eaQdSYnH5leK0eu~j${~T$USwE%SP>HwSX4(0oXyB6$ zgP9&QJ-Wi+0H4JffII9A06x$wb_C!dEEL5V021FQeM`pqL8{lh{fFmApJdi?mxo6W zy@RJ7_W8i7(Y3BwWn|-e!em*3fzqH9&L!yC)QUJc!F78rDL&6!j?P0&8H-9LceBv0 z+Q`C81Eu9$qGDY#X2r>K!H*`pQm@zr3&M8J$BIAd4P)4#?;o=bICx9o%$#J`Iby}m zP$&&pkF07zI)8S4L9K_mG&Kx?*NE4-whFVsYh<-D*n|eS6M=b{5(}?|jRsrYbEO>y z#Pf5^4r7vyD`^9U09Fu8Gf0KxmBA8>1&`H@6+EdailEc?alom2MII^t0EweX4~+~t zbwFGFhqnY;84C9QVJ_Yg@78j6bF7BAe{%B?H(&wdu}-!&)(Yr##K~(D_ODRyGq)nQBvV|5}Xww3Hp!yUa-#4U9 z(gxBbCYv@bg$GlFsuc=?qLcz!6|{V)fHhP_MGYUmB4PnW#D{<=s63@ADC+jOk z@7;TM(>7^~e*#VJz30r#nKNh3oH=u5W=|{Vkr!RXXo*p(06S|b!dZ#wdlt-TTe%YJ zh&fIxh8~Ph(QrZM$$=`XMoWv2M27t|i>HZhFf2Ow)kCj0V~!!6b#wK3$+kaR=TI=} zY(II2RGdhP2VVwTstT6RN*zoR(UuzHy|(lQt)$qX2evJ3-`l4NlhVpQ*Y6(dX*hIq zUAflbD~G;d^gSzDcYFL_K5fwl${?gm?v0`^;6L97CVGYhyQiEOXHJ7-qaNkU6yM;4I{z6hQ74LacL56%L-n;f+d)F398P)G#AW z)-?*T(*grg$!6Eb(h*R*2Pc0)m6Bn)fV3NVUpsZ#M9~yjd{){ltP7*h^Q!o)t6I$v zK?AzJK4Rwr>I?j^i?fIOsSMjg@owsPYNYZh1Yw3zfPUHZ8Zdsy{;?ne3dGZJergUp zoz~GjK1H|3_|(#-rUq(Xv$f2(eX~c?+2F7`Rpxa{xTks>plVfp?dtiEN5Zu8NT~+Du=T+I7U*FIdS+~dQ>_7m8OxiR zYN}d56*n;J{p$O+JVaB4q^I9U3~$w7pjajSdU~ap- z&bFuu{d+d-LFmb1e5BR9y{q0i;)Hu}w1;20$?U}465*HS_tbyT`I@zMxST}`;)EcI zxRnC)&V1n{`(Q6jH1V)vFN9kQI5gXw#LyErkv=)n>m^!+D_&ctN7ip(ZWG359AtuW=kM1-$EVaeD(373Ibq>+@f~XG+RSO*hmA{%@$Y?z zBwLJsCJ_&8*q_ID?6>BS3Nn-Afz@IKmZ7NrjKcD37A{~xSt)m2)`H1Pn!l6xx*Zel)7W2DRQQgWz)hug zNr0`D)y1tGOadc@`r_qLlwT`%ghN|n4H{c0xt2MfhlB-00be{@@!`1TEtxz>68nN7 zPs>)pTQ?tL(VVQGmaG4BD`<~kh4&o#N+tg=!(hLeuHj5SJ!a1t5HGC~-Th%kAMDy= zPnR1ZDS7&Th&=aZuu&u&`np;KQ8CnJfyP8y{hxIXM3pbo4Sdl!sm z2e_pRy7;8ADPI4U{Rgk^n2@E%lPAytJ&J=TOV}Mh zc)>Vb?u$9LOv#4h`)tU9BN9vS#OJb%Lc@cmARCZdhz4_)n$j)aF52S>obpMk-6V54 zVN@-w!q;#TN)-+(ge^V4Qo~o}T8UYtKJJczWtiTrH=GX5IL!>(t8wrmk9WdBE14DZ z^&T4?Fc$*f4>hh@#mO%ZUc(>UU#_;N$Ewcac@b&Z4@;R@KAYCd zaE}K0_hPwcsgNHtw1E0NJxvU}tOP%jr04sZ(a{)xp(ai-g zgQqkXK=&TTTmaQ~>~aCz-1C(SC775!HyNif`}s+GDa88FGVL)ue3qZJIQm%hRk%W~ zjps3qFj~}HS~g?G{-nrSeSNL?D|~)34%+JSoz=KO7pE%AMLAW=+p2K}Vy3pXb^anf zl5=Q)qxq~VdSn#)WEfQgfBroBx?lAd#fk2#68wG5H9vxyD&6=Np*Eo(?S-U$C5Ie6dE&F zBg0Y#ucNRsIbTmsu?}i>Ghhb)`iwAw~D!ZaqUWJ1d z@&5(*x2I|_q-Amzz+^Ix8)d0eL*r`l=r`UWW~*&xpo?-@+S*dC7ZP#p9+nhwqlUhM zO~QDvq-Z#0s}B8-|9PTWuz--xq>iirVn`H5;qgC&O*G+y+2tLvL-Md);6hvhfLm8_ z8Q2^g2ExC%D=zyHFXsE63OhHcX1RkAba}1e?ffKs`NoQ6bM#MV;NAgwJp z%vmh}&tF_twU`@xwD9*vC&5^MK}g#xU5{}ee)SYqkCuZxKJ$rYrSd~q__Z*8Rrw{1r;*x+GFGBVM zvlGRq_+N*kw=qM*iT=y{M}qF3;M}vy!O|*PF^F3CsPe{IeRAktwG%qpQhlQ$rd6wP z+kgu7RW=Lfrnovm#UdX&b3e~J8xe7(E_$rcF~Bx-kDA_u*Z4mAH%RXJN#Ne;ZTOMk zQ++Yh-Xpg@jN|_b_ap zpVa-sr8%m5ec-&Za__nN=yZ#g@jjyLRLx8o_MQWtr7lydJy~2;7Saos?cNvQIn6#_ zxIZR`kZGLwC;I`WtAp$r|A-$&8C9UZw;Oxfjq3A`MRH|1KT+__73MJ98+kG*@2AFR z-pkY0tRJDt1&VmnXd#cY4kt!{|B4;nQq?Kx@_|&qY^rL(4I`dU zsy@|AYjK~VollzH9;;raE_zpIBmwgi_le4v9VcWP5w7So-hN?km|ywn3k zb-EgJFW|icdcdVXRW;RV1XWN=8~Q>`RZVs6N?tSRe^q92xsQvrAKDkQ7z1OpWlYO- zT9tMrS<`N2-Ge>!u!R?O1eo48?U6I~6}b&Pdy^6`9pVaL4#1~r{32?H9=owDVjPi^jkSbLjg&As ze97eIXQcOJCJs*C`+oe2*=Qwpojfz;oc`~r9Q1|i4LC+O+Z()6?=O)%`rum-)cLqn zfXVf7cG>T;OOrN)Ke?x1Ny=3@PswWGF_oJT=k`^tf@1^oJT+cZ5$>HAET0c3P`kY^ zL~~^t7uP*p>Dz7*j1UbSC-%NdDy4UK2xD&bVz3-}Oplita(SepSK}K=&CO-+Dbj_9 zkB407FL)d?MtOKM7zyUp84*^WF;PvQ)sviDOHyk9)XHN}u#P@A^**oxLz?!I&z-A% z0yJ^d1?M=**>ALPpLNiHrK$*LnWD+7toL9CL2x@c*zXe!PU^H-LSpL`*TW6nd=}mw zYT=-DiMG<4hs;H({^>=&lKZGFO)NWjrNt&_wH6?G&lr+p)b>%WOwhBbRZh8fGJ_c& zCOc8HmNIh$fStAIkX%n^jcl_^JdHoU9z8=vD0)&_8uV&c-z&@L9+8g+*kKr$x#cd>w^#SdZiIj-Y&sU5Qhi>sHBM~QWANa%{eDS`N3J3z@&M~yk7k*#)Ne?i zI4B3{9OG3cuX{gStjRJX(t_815OWuX+LDM*wBv&1gq;@C>-<&0 z%^nR<7E;{^k`ct7L$ZIu_?cIl@*eY|l%RL?-FuhpTrt;> zCC4y(D6;1aVPsC9BASIiIf~g@qj|!E6v5v1>G33k9diSTB&9-NT&wp3x_-TS<*5xKTD@MDaEnSnTy1`Sfu^rpHW|5H)}I zUR;GpZiH<^=bo93uuAueVd*1u(#rZqI<$Fs6Xv?~GT}=$JUeGPpcA0UVab>a7a*xB z{p2dFz3_IUU=}&HY|eoQ9)}}~45)&#usbW1qz2Z|I5r~4(|>1mp1#&s9)z4(Ckf+@ zxTQYs=f8M{74%2`sV{rowPB7TgFM{uXr8RUV-X~f<)Xc7Y8g<<$X(7ts0X<_B=UX? z_Q|<(mvEl|Ph8EtIwIg408VBFA}b(Qjmx>su%)G`B{yalMT%cpHbm9V^*Wo)N6qN6 za&Kl@I($t~!G*l}oFC_5OkasfdDhWnyxJJv6t{C$7{Nw8w4Kjo6;kb=26|Of_G%(O zj_{_b#sArpGzd7bN5SZ=I0$>^vO|s$7~*=%9lprS1K5e!=hYcTVS|#jaP-M~zG1fy z=+0|7p{wSzoZbZ@a&pMgoB`LYUQ*vLLgICfQ3yhO0k-)MCgl_DE6nwi`D|;Cgm~;( zzdm_)>mUD2jl)H#cpWsYsr^y7)?Ay%ArjaNUKr$E$vyvbD`5q)>V>b?oYPE`0LW+I zh9$gk&!XQH=v}%h7hVD;6rhh5fSGU$f%xR55D03T)7IQji|tG`^~-STLFJOxW@V?d zKD;rC?;(Lswy*EoWFDhPlq(<67y$*opQi0Tb7~SIALo6RL;`ihI5dn<=gG9~gWivrlbsaV|K~#A7fBv;h-V=aXXP)$aMe0?y z`R1XtyA??Y#crsr!#=we^$j)oX<4c+ugp!gcN8!NPvxbGZ)wUP4mN-J;Dup?C(T}# zjzuR`dQ1KC6$r`Qv*Nvp_O5)}?TzwisfF$^yXX0_H*Hhq=QAP^t)_i9P_TJaN6$uf zLw1l82YQMSWrZAUbmrVZ;ZvMeQZB$n(RtbmV@p8I>+3@Os>qCF`!?E$6F`NJ&V?V) zN3aUy(PJTR`7{FVA05@mYpzq;>$M2l7SyXz}h&xwXA8N4X3J32C^?HTTGj&e9Ek})M`@&6$!R2WoA%>X8J=x1jK^Dny z2uY+%^T2lCpsVj)zbO_@rVGyv$Wjm7Y|MQ z$}M_xm0i?W+n&+e;`gZ0wYQQxE#|7F3S+R@?1F=@D$IydC{S%R4A`Fo|-3`>i~Y=@6x=jEKEmC}QH!V7)zv_?_$5rD0*RUe#(eL;k*s6nzv=86NRV z3d8nGscR_09Qyfuf_90#XLa@XkCj~;Mu$)3*$G77aVd9IGv7=FXDtL~Dn8ZvuJ#4{ zIG?Z8`$%4MTEZK97{1zIY_i_C{E{8RAF!~DpK^D!di$#hsSmL|J#GpvZhEI-2RFI2 z^#iKT^4WM|lpA(`I(A6*enUIxgKz#N3&5TaweYeyFf3h{qFWAVqfQ| z;M|1*f8ctDM-74w@6on6hZQyA@j~hx)_UHhoK-1YPLqRexf@xJx@xyF7-6Q~nD40z zT8L3Lxu(8OwyvvKp1CpB-f!^A4AHN?f+z>pcNCbim^m$`cn2Guxz1mEaIxHI=`)Vr z<2}yR_r&(8z{lVol&l4*HnXMx4++E1#t_-7pMCv4S5>GnWxouAP*!{7cF|sMzpu@@ za++IeS9x4H;SP`R;x4REK0Kc*$7UDoO4@H^+$dQOOn7HBvz?yia(d1or`DBI-JXAX z=y&B*xA(Y6pFB*hu35!XFb|rcU=>bURzq5jCday6h$a{MLu>z@GM8bnw-w5n^>gZ5 z=3`;kCrj|6yvwDD_Ry52^)>Z4osh>2;xyl^7*;QbDl#>EPu{9q0xEF-3}C%555YKu z4U2&VUXM>(Erax8q=Go9eLMF;qLsX3uwT5qQ_^196cK7V1ePWb+{D04n|s4vF#d@H zY4=2WCJrj1vReZ@UOeT+DjcGZV6NN{{h+}bm^^zroIdmA0)#hsmhF|5>lIXfisIi@XxJsjY!_42Ur zls-8cD2G#Y^?D8>tzqJ;CO3QMm-ZZ41c95=NO=icatRkg+s3?P zAWysI9=D-p{r0LG|MFgB^X)@DJB;cX|qz1+ttF@>(fwsQ=B;% zB}8BX$6Mt&yV)M17b;|-3HMlJBKf>%O>eakw)1*Ach6Q4Jv>*Zh6g%bVIJmgS!Ntv z_Bb={F~&rlgOTTRHV`3u;)qWcvSaaHEggtMG|%}e{@)XS>XG=6jgEWWWLQQ}hvf1kxt{b1?D)^^6FEDd`gnFWV}_zS zFue|%(>eAJ7ZqEZ8|pJvOWU~Iu@B3c*p5a>pUkPZ7x0C|CF8@*vakVSygI;F1=&xAR2!+ws4Xy5JLDL6m(G1fv=E7cQyh%@&O zc?Po{_m`}_l2^Co?zZyjwybFSK6`aTuedF8cST3q75mN*ZA{31!q71Giq_TD&HK{O zDu&;?@X2cr%XtMSl@MkGa+$EYcr&}~iMu?f85|tdU%$MuTHVY^DUpTI?9H6GmJ>>i zl=iXK%2~;nqAF2eheOfz70Uadko0bcGH|4(UOQ%a0V=OGEuRinG&bp@6bi6Su{Pu$ zNoY6AIprBVpI`K7PD4VC300n&^ffC_$L+GVrs=xshSu8gDJ2g60O8*6VJ8H1VIPzb z@B_)nzYnv#o($}8zUB_>ym5qnt4=+>~dPUAV=H^I|N%fm7@9%er6DM2dP2MIP4>uVx8x z1qQvo**l(kdX1KEy}|DXip)&=hxBH6>o!XF>{8=^Rz^kS`^&>fLyPsz_-(-rK; z(QMDTTFc+4daWf_kw-B;C%gQ#2k!j}lAZ0pW>pH*_2%|=W*5FK1)-hO86qQx0DlT=#ra`2k&eal8@Ohb=pZ?b`MuMr{j&hIG}hNM@9`;I)K(iEl;|t}Knsl8 zJr+LCV803({pd0Z?{5U`ogYV~^s<86;k6}|(|3E;VZ!aFkweZW^s+ZSdmp}$L5ns9($A89f z;cNCqr#QE|5m<;Y{Ol$D*ArE>0?n71e{Fq-=y_ZLa({MU#=Ct~A%V=r?-bsZlIlv^oq{pDQV^eIK> z;Ywc+n2#Y9awYbfUS>+DXsp3k+zPAi;FbdOu%Zu1TdMBqj*yYQDmPb74nXDe)x3P7 zx9gtW(zJ3x?V8rU)fQTd;J06In8Kqu)c3?LrMT+<4;UG_GIQW*>KR{rBMzH$PVFij z=h$n~l*1Xy5dVcM-=Jh`YNFc}8?76fT5ClsGS4aUyfo&45cGk1{+af+gJslDxeUM&xVM7@Ha zqDv_+&*CnwZox^TA(?mq(OH#E72A0Zw&B(Q4GfU2_sBfjv;1=Fm ztzKfQ>T6fS){V9D@(n&zFI(2s)`Xocqtf2`6#oAhHt6EzdpmT8N2T$j4{SkJPD#gCz2n+bQ6Hnvu)?UAN6$YxcKR@6<8iuhDzzHw(meTD?1$JJJ; zu_)HMqN%N+29(#K{a3{3m&qpez2J_N7|t@rud2ov>tV_OU#geZHW&$+?-daJqH4Dc z3z1v169 z8UHer)(i!$nh*E~g7AxP@IK*pHADvdfu9Oj%2X?PZ*4+mh(=!urjvd^=_jg5kAikRjq6FH+iUS z#gLCLtxVO*RO}OElyZ*aH>+-i6!~>PA{{ktD_62# zt$?E&f0TgZFHiTtpX}CMbrwifJx=ZoIw>QY5kS@a;vdxw6&j;w}?*1O1idhmoS z7@-~7(VcupxKw4Tmzz_5EZfz`=)Kp-XBp*Z8RdsUf=;T1y|sQVWnm=+aalE`TbWLL zYiprwS80s%2vVYjzp97C^v~?ZnwF;en$);y71Jk{O`SGAMLkuMYHCciR7{>Yby`Ku zNvUP@3a2pHYQ?_rR9Qvo#L_9LaVs*J=GGY#CO|zfi&EVBv>eNEO>Hg9YD>}ACS+iC zKqJ>TPH1RYwer;FmZnQ!x~D3ZO_?~Uwr=UfWy`83POYe&UOs7Bb=|b36=f5rESoeD zny{jxY+BuvlR)8cA+u=h1+k)a$)ckM^y{~wC>9%q@BGJ~)A?)mpyWs5XAX4FS?{z0 zCxuUGe#g&W`O5>3zYYX^V)~2mk3VDi%ivtB;rwi4FyjkEk3VehY{vQD1eH{MXFYsEOrfldF%Wk;G9M7>$V%$13b3FBEg#;$gdIE5#B8D z83A|`;G}0$56U6l_8#D|ycY}56LUyNEEYx&)29SpP9zV1mP>tR2|P+JFD{V&N`a3L zqwlfg0s+zBl7;=QcjoPRC;m12Lpdq;757k()USc(j_1k zJD$HxJ=h3%9gBbC1pZ%MIP#C50~}9(TO@c<{B9Qb;of{M)a8(lO$E~5mj|9g`X>c` zlQ)0T`7vDvadsELAst5~m_aNyi@yv%kWU-3A$*#^qw2Xt;9+u^Li%=r*Wx*w|J6?X z16evZ3(hNE96dJtf>@;EVZj;c#d%*gj~5001uvZZ_^ifZ9{u_g7>h;8##n)ewOI=3 z<_P=~%*4a1ct^I36$Q%JP@s%E1^&Tc88R-g9#06)(O#U3vNXId@RS$+!7O|Ll|6pK z#vSHAUf{Ec z@Gb=!^V!|Qd`1;BgIFwzpJ{=I(aZXLP~a(MV)*6Z_d0<`@q4qtXL-}3zJ}jB1Rgau zJTLI5vE?0sN7Zjs2@A#;$X_A!rv)Bae}PApzfRyjc|iT@MV>Yb{1|Wfq94fL9RfeX z3tya-r{@Je*$YShvz-jJLPDUL9Xe6qKPQsmf$=?dX+ER?S|WHK_u`RPS7v#&PH-q&Hm@aF_-27e^@kk-kK)Di z0*~UwI|85OEgv)*AIB(Ve8pl>ZIu>yRQVqicvSi81U@lPKE;VV*(~rVeY->8QS?18 z@QOhGW`6Zf0r)62vC30_fk)O~;9>Pofu?l=&)1)BFF?b?0*~V1ivl0)<$=e}jVZ@b zEEYBoAdM-3U*SzpIp!oB-`Gxb1ShJ`)(AX|4@`fRz@zxMwE+APfvZ2JPkQXWZh=Sf zpr0~)!}~nx8!PZAIh<1mtI&>5BgSXLqre2%~)7$ z=d-i@dHB%;#$w7`H2HaSMuot`>YGBk#RC71mmZYi+)rAx&S)2$D4yS30KPpBoHRTu z@MrPttLKli^?XNg!ukdC76tt zUylepO#WF$x4@SL%kbD5$J)QwDjtQQ+x7 z8D=eQTY>aX2>gsd`V2^wFe2F$#o_6?l}4&k=YjGck0~$t-!+2>eDVUlF!@RW{)E8u$>O!8*$HI%+gk$9*CxbE9mfn}v7Gh8>yeSH0T6GV z;Q4fnmiO}vW(s)Cg4c>?AAdc4>qfx|<1cx0zre%ffbgdUuBLjX4L$3Gy9=Zr&I;it zs{9IphshAjUtA!4ra<}|1sfWIT~Fug_^MxB6P_*uwb zhR@{V>?|K=2~IkIW5%qD1s)}h>*`$wllhHOi!Fs?D78PzOjra^W;JJ8v^(7*yE!etQsd;?@bhVSQ{|^MFr9~7f8QJ z;9)#q{`VEg|H%URzaj8h$SbT31}o=%csv|sVxqu5?@g~|XCq`sO*Bd862XhoIqd?E zn$z4Y@N#cCkYy8hxLx2;`ruiChv@@~|62n8vNwNYlipxzqGf8V>hR&~qs(iLz?XXa zlbL^4a&DpL-{ecP;D*T$`MXKrrTy??`f%lX$2q*8>6%K;x97hv^a0FiYTJZA$pX0#_pF;S=LC2)|O`QGC2z;9-2E zzIa&R=X-Sz+QB)EdPfiXEaz3hi<(a+%YcNRC_2UoJgOe^1g==_sVChGEPsW-!}<^5 z8w4IDZ+8m(XcB4i_r!K~6-fW8z@zGyR0B=84V*%e;{?9gTR!!v#Hg_j3-jbbc!R*B zXxLaF{WgK08K8l&?kRkGLf}^f;NG>GHv}h&&x0p1akLyv6!>5wnRf8_h8GDuOkT-@ zW`Re^(I$aM@#sE*hn1f~{!a=#pN+U%aE1Zj*1=-~4p%}N9S2Y$@F*G=3p|R(jKK5J zcyj?7wilq`**r8*Z@eY&pL=;=?4K?O6uzhUZ!!^Lv5)hYX>ZECXB~Tv;IMryj>nf! zBXDJIc=F)%jA^bCcoaXk3OuUsKO*p`_UsmTl#cH=g@lLOIizo_z@zA!Bk-v5YXq)T zu&4fJo%BWhD>fMZ(D8t3r|_?z8oXn%D7%X?Fivoy+IXJ8qim5C1DyTrV}9+`x}25zLB0+vUn+g z<_O-=UK>Qs37sLdLP*mJ!HJU54FZpnu{#AGB|}{TKNe+qX{DQs<-b}W|KtoNj9!Zw zC-5lx<_SEE=c@h!Ka_J}cx9Vx5cu_8ICH9iWjuQPv?N@O(0Sa{(H*3w(sP49}eKS%HVO7ioA);Gg!U zC%@^%z&EzZC{+RU%OFlWa6J8Fj^KUYi)Y5t2X%gwfd;_~vkM5{DDW_v3Ew90D84@- zaAoQm8AF}8Er97?7x*kZTNwo0#Cr`;Mq!@#Ux7!-%|d}k(ce%Y{YHUD)o)vY{GTY0 z{&j&X^=J6Q#bK}`g?|Io0Gxjum?$_=G%gbOQOM8oSl04cMsp9!xKVJ<_U3_h;{FoK z<^2LLq`#jRyxoC(;x8g2k>3CJV5_XBTU zMsIG{{gQmyDtJ+P^AUkZ@wHpvQF^hTnovjkfW`_uN-pLIJc{Qv0*~rDR|$NUmk(%H zu8X8te}Vrn0FOVEHVMwpy*NfDJoD1+f|qYz`n=$fHd~%&Uiyx}qvoZf z<}hJ+UtpeTfk*M>M}hL67kJdX^BsY!VZuWno1Ep3 znu}lfiJ~tp@Th+A!2<4; zr4<5?s>=p}NAcoLfk(+wm%yXi>eT|}C(lt$9q9uYC-5j)nkVomSz00RDEc-CJW7`C zECBBkcohF$6?hc?lk=kMPgxo#@Itb*NbvIMrHtT2$1lyS$ zCoRtl{;+reU;D&1vy}|pNwy(=eu96#yh-;bvvf1x3c-Cmh^uX=YYjGWFW!TEH|_!M z_C3Ju-UHmh;1z!g@qz7^7TlNd?BkiS6Tf6Qq2;Jy5AwcQa6g&|%LeqXStst@em!@S2r?)h^v_~@%A@^%tNinNR_65Js`^x+!1zvozDNcWY3e@HNI zElc(kHR5g)+?zvjomN8$+vZupe1*L($VRsV~60rg7);`8eZS+*B`G7epfJWBdB;q2T|YAU(RC;|w*#Z5P~c1@qSJ&Q(2?Guv{j;P!-W z=KZwb-xcIH<+aUlTldKr+K@kUAuql*m*(+;dweioP4nZ1X3}8J-FiHT%NVK~ zvox@NS4qAv1aXDW&h{)m$Nl>Se+!;{G^2j1{sMn31Rj6dP$}aY`UijBkAK0u{##I) z=QzPDlqYc)3+_cBdB)GomQUO(1$S#0?kD`X+x8&eX9f4suzc_G=i4s{B>eQGZW9H! zP~F(B9~9h2quTWjwyTcGBQMOkTespl*cRUP7vgT0ysr(zWqXs{2kzqI)E^+dr9)lbi6%VoYF6x;{#oKv6M{J0wg_tQaMY2DFmI5ie|-7mNo zhU9CGAY=LF+^t7L@Ztd(NR|KzKVQJV99lo(r?oq|{!u>_8ylr;uDO6uh3~+1|rE zZ{LGFpXfoJKifcFo{tf-sHo`gg9h>snj?mPMH8BuGv<)z3CpT4t(BwsCoEg7?h=em zSkbhyc0xmKlfgQ*wdT?ZxYch$`Q*~F(rMEtO`SA-Qua9LR&^fqgyxporET>MnF$T` zjcx6xwojWzdYhjt~+`hD|?+Zf>`@WE+^|(l&&jpR8OsH#W$>7$iSggLO zb;4OVEWNe1bwX+Bgt_gR+Lp%Z1|#K0UMA?9D$3QJnk(34)ZG-gP$CA4AGd1=1nY-a-fmHk>kQV`w%{HN++?7#AaWIN2T>?Zt#zww zGyvCDWRN%1AdYu$Yg9K=R5w)d40j^5W$GJn=>;EG;&gcY!P)UR^ei4}l#Y1?Yr#h-5HHt!SB-)(&6yP~ zwbeB?C9F{pq`t9+t!>TCV7@MTWm~4U-PWX`9@l6n4%N0Vt8LEUAbO&KyZT+HQPSw?|Zwk7y$zK{rU|c+%`$sV;Oe&zTi?Vvd>mm5Q1CtAR|< z8yN^)(bCk|q@HkBiIoRF0XIqNc@ zAg}^TqUsx=RaKK9`7-s5gsfIiI@4wPg`Zb0#kBz$$f1R-s8-Ujnzz^Jg3TiBpq?RJ%Fym`f2%z3V;$Q@pie8?S|NV~%m>%Zj=OjJ5|Tv6v9pKyLt zROz0I@5d#Fy2Xk031`a{OWflU&dc~dTw~r0%#jJ__xN%wFb_AFHv#kTg!9KN=5@dv zm2lp~m$AS+(qL``=8*~KulVln$P%ll`#Y!`T(TU6C)4o~AK_QVi`?Rp_>5uhxyj+~ z(a3RPVu71VY;woo@9BvScTRGX^S8^BTio-UtK*e?%(zSN*x{Bf!CU-{B6kcS?#TGe zq3(#pxo$CX8iMNo`SRo@@WJ^6fFtn!=HdyIM=n8ur`$aMgY1@M1~T<-97M6#5x zDR&rNJKTZk#6zx|JOS(hj`JyCj7d1n9SM})DKvE}3fzPd6x@pXdMB2Xz+M!c9Tb46gBuO*7y6HDUdL)}5i z+udP_jN3n1huo5XNjN`RlL=tIFtEr?mc&bkB%IH+B)75Dmj-sYMakO|&gPanH<@r= z7>IH{*U}M4`K#h0cWMceOiXkH8uVtg+PNk1*~3(ev86^n3QngXL&@cQa9(0FL87*x z&V2tLyeFL7@OJn`?&8lt_%4sPvE^>Tr;+jhV9Q-#S`HGNyumF?EODMgBh7Zc#7sKz z(&3IvICtS~L;`K}jBX>o4@}HN6G7I0$|kxOU%7I> z%iN6wY?)^g&QrQ&1k9GfBeLycj>w2vb_O{0X#XPjWOAwu@_Jld{1Bgre^oQxtV9D*w9jzRYBAg#`~6nnqVEIRR`*!u&#DfT|3*~@p!-Ulv^&n|Kv$0u;39{ha* zY(*(O_^a8DqzUJN%ae-jk0Kvo`-7V80w&w>2t>tp6u^>%?M8DtKi0aVbeOv^shR85 z9rMr@>9qS_DEIudbI;|;O1I8=N~?`~E|1S3f1UyXBjYEKKMM_aoG()oKq#Kk)Io}$ zb*Ch@IbQ;^&UT)|*Xf<=WiVbkAWO>=&KD_WzW~K}=->nS(+>XJgD#CySpHCo9Y6{@ zO#}cGh88DVuV12GhnK|14ujU-=AM?^ zgPi&eavWR|A2-bXuS6Hv;hveyIJaI7wNdQ6gdFj>Qyw~*W4GjZD{|EEV2-aS-rwe) zlSp>Dr*)$llWng1Oh8Y(?yJc(U6UJhP5y{-@wgKUVti0F`ID4;1IpE(gXR9OFUOfW z$4}@S-$X`u-0A2CmE&&7@e{~Ve-7sOm#`c+=p5fdj(FVZ=m(YK+mho3vfL*K#q9aiN!iTs2u+(Ij%>J`g1VHD;=*yNRIzprzE1osdVtT)6owq$Mueu zh<~o@l+VE&KcaISKg^vB8Jm-KPffcQ#!nndQF~iwd<`Ks3T9Pzl*(GQB$YbD1wk)!?`%yAQPJgFo;VVHYia;EzskXxU2{;)27 zT#;LvaBg(ahhAR?<#!^+Q)G60VyE-_b@9_Nq@p-Hov5B*sia}Jtb#7fIIpgQvL5H$ z41`zLb9EZmacN)x>@rg>e97F01{5>g+ z_E~^Y587j7rSl8YJ<0i^(}~AT$e8I9$PyY0t@9uX8|bv`OgPW3OQxMWQQEWXx{)CX zMXx3r%$P3&Z7@tRcPg?@qm+qh=jUvpq0U!8!$5o;dlmH4Hs>it^*zW3PoP>qb;(~< z?|YEq1Zd9+S)vDYNSW>COX4>B5kGY+d}^B32tu9rCw3 z>aW(a1C1H=2nOw8FpP$}hfs%|lvcqTzq*PETxduFaqg(C~jc1iZRFBNm*^`FluTT=KiNK(>!0 zi`*$C@ySCW;>j(}L#sK>IMMk*vJ%gdhozwl$Q25CJdwYlkdJpB1@bp?kUL?T4xu4L zL;lFLThgiPYIEBRgp*2=-R^`$r#nW>N(=piZj!PgXcA6icDqO5@39b;7b7EpkUzs^;%1Rf;!0K{fNcS2ce}tLE8CFFt5nnvpng26dAq3Q$B+Y6^Mgvs;f+toK|giLU!|HK zLk1F;%havO-pw7+;~K%!sC z3w;exI22CAgy2ng5+riaHn434v;}B~<6;-+E63+quuMjDJJ)Ka>>_j7FCK!sVBHex z)V~06;1%xRB<4;ZXI+b(KchAuM>d$(Bbx*g2W^$Nbmb%uLF}^px|W)`;a9t(+^8HAL>#`{(c!WV8Xcu zNk$^c+e~t}dPNevcGE}mF+ed>cgLokzg&jN&S-q;z+?PBVLK}5pk101yDw9mxE2ZM z`Pg+CDp&6Cm7Wj0as4m0lS_7|@9Wll7+;T4?l5Gngoj^D2m3CCqS*Nk2>kA4 zo$gTymJD}R4zWiUxg$!F$HMK!-a0{#VwSnz*UX)RuD2V;Bpn%T?h(ILo#+8{B1{o} zOghkszRpfGQoUyT-I3t4vx42E(zy@#=fVO7{%qjiL;Mt9`G`q9z8{7W_o&1(?pZKq zrly^{iShyGXF$Q@PPd7V?lJ*vC{nNM zMWFF#>>C+WH$HDz!r7+z`6{wbIhQ~Tox|vJy!o>D#3F}Zp`9+>2A|et-9k$6FD!pB z_!*!I;dg1m@x{SorMn)(381Ufe9gF<_3Nf0dB01)e;uR)Ugv&azyBCyzaXUFC8R&2 zNry-dfu$axvI$h)1uAv9!M~sq8t@mO<2cONzIYkl2ddZM(5UlZ%v@0C4qW1FMKeJv zUjSYi@IHsOanDe%M`L)yE2Z-VNGBdM$bpEI&P@q)tUFj+5U1GYtO7m2O2g`O{s(9S zVPS8%tPT!Syqp4e*{zpt!92%#1+T}Ttj{vXV)Z(T(ny!;XD-_%8G0&<#_3`i_}gv% zs!nL83EzW}c5Deq9gW%J@zCRyTCj&1gx_OaIiw_h@=%Ne@i9Z4o7Txp#bP`Q(f62* zCgFFH^N5mec=aVq+gE-Fr#!lS8HXvddM4NiqZk?T@IyUtMJJ%}-dzz?HLvOZc@Boh-B4f? z+@Y_a^bYqZD5}#Vx*ki zz`$cC9y;B_cJi6n_>7vp><+))9lH@Nq}<=fE=f3lSli`%(p7!sVvJtMTsei+C#M=; zkO95f&fCaAE0P69k*wE>JG*LJf~A%DG0q?v$BRcHDH60oOE(EWbog8D^$6J@6F3w-^d9?mqlz1pmP_JZXy0cak@#DCjly;Bb zMNPqlK?BEP*ddsIn;D#~ZP@hAYJ!{GBKJsT0GxBaS*2dHL9VMhPou2rM| zE%;OhtkctQx+??VWi3RvK#1^&hIWYKF#x*PD(mqMd_7WGkH1^14FG=8)*}+C6|&9v zG8}@^4Y9>Ab}L>fDlb7)U;y6kqF24RR#^(Sqv2m%+sP$IP?-S9L0$8C)M{W!@)>3A zPegu|&M#4ia=71Jt}ov0#8mjo%lE|QHMI*fs$wzE{`8dPfxZ9)cWnq z$g(bA(mbr_xXse>Ez*J2i63g-xPzeQIKA1v7Nggr_(**^IPn|`qHE}(_#j_FSKETp z0WLtU^VRHkpygtBH-5` zU@WGCN5qdCj>>LwZiRTj5_%bh4T1~cmbD!;6<)>bkqLO0Z(h3-X56b(l8N;YAeh;- ziZR}QYHgkKdv^=4uf*`Ywu5Qn1AGj69s?%kk7I{m{&v{i?&xP0kRx{SU9D%o4uVcE ziNkrm5DYjzk$e*z@4{?z0lWloOQfAm>=Z+tHz1k|?Fd)tTnoadL5+aYlYuxE1L|=J zcu7CL7EhC%KfCA#GcdT~g0>0Y4TGH#W6I~x-w1#DKYZ34WqNWIn@=!tlRlL44@ z@GCQ$QFQH37hmg<(Egl@-AS7DQS+Tk(Bt8mrA3r1Rg)|O`ix3K&~XNo?P(_$x#Q>#8w_#|Ph3yO zEKDCgo#=^E%y!v#v=G2!Mj<$cLf|IRmRGKYqw-3OXjiTk8_g!^fY%SQ1-Ur}Glpqt zND4wNGR`||(EP>DRS*fx24PP9eNBh+5xf=CoO)+XCqeuh=(5-7{ID{TLVl%bcV3!H zo`<8+{<;PueX;XVo8@1S<;P5xe?^u60V|m0MwMl9JycAGdpM0E8P9Abt_Q}MYIX8l zpd4lE{n{GT`zB=i+M1vjy^sjx9i2X{%Yz4n<&80&jZ3|gQJ<62&dY05XS)Rp_}h2dXe0o;M~qNl?sd^OnnYsE8T_aE#v;DdYgsrq<~}bx{Hr# zSenEei43MlXF428C)k;Oxu(nc0`OAoOGvj3sXFkW`p{MY*oS_(2C52Jc*w}#PV+a= zg$i_$ha$Sj_I&+ds_F*|R6iJje&Fi?wz0pYB@7G4CqlxG;`|`vJhMi59qwX9l(_Ch z4Ze&wC9cmvwg3WFP`0+|%pm?pBQwbUa7fHkTK4a;nf(-kdaudsDP#r^u!5O=Rb_S? z24H1%t`Df_2LV1qN$L9`HDis`oQ77Lh0H6`&JVTJbOxm65lGGSg!646aUt%6d-$xR*{tmYO zBdFPqHFfg0)BFvzexcqIAstzjw+#d9VOYW$27Q>F;n9vYGrVzl9tpeR7|ixg!Sg6Q zPk>rX<9Pwhya|}PjDjzV<177pGckN|PRO{jsYpE?MUL!te#nXD;ZCQXXr@@c2l@jI zeMmzw`-a|pRYi z=)ksvsx{=GfqxAaJ%?QV|#o`k#hs;@W=M#E;8?WtFg02QP5CbYg?$x@4YR;)fu;GMz&0IFl6+Z>l1J`x zkAY^xRANa0?G3E6*TY6#8n97czyO>qNp1;D_I{3vAy+#~w^h*qNI?7;-<;$nBp6Lj zjcCfet&HQ^T7$P1=P0UQv&YV^K-BugE*`?To-TdPG4+H!S~7#GGi6v2N5~!9$r=;SLoHclg|8 zjEy*zUSm8SAs13Q%H@K`4oa3 zO5M>C`(dG9MC!>xdO!R1HR#3pOmilHURgHxq= zgSS~dGiDRdM`5aui3E(J4wy6U32Eo)51~bhoo$0U`N(OfbN3)jO~9<;G>S}~4*wA{ zM(owLL6re9*nx&Vl^i$?`IVFggy?o9M1Y!*n0R5b_>#%WT^t4DFK!Sih2Z;pBVBZN(EyC?UK)<~gu~>i# zLoM`CKu;)1UhRY0_P80%c}hw0w^&9ZXTAx27hv`)=)+^6PSM>^pI~!+AN(%$Nq;o+ zY;(MZesQYl7jeT3M$(?mf+nM&QW-ieq5r?`H4o@sv)r|oj5V7NFDK9`9YkV^49 zZIe5DmwN`L#r+f4!Hc*`4-qzl$6>|{RZ|2m9DaQrR?&WfCAhI~B10sa4nqpVd69{0 zvFZK?1jp~_NvrP9jh0X2_WH*6C9*rtY7Y%LGN^!1}FZ7hzbOb4N4$}x>6~QqQuOE^EB|`boesN zSrs{KX^a}WEy5@DAbJm~hN%|NqVaynMZ8WE*ld~e6^y&5P?Nz9+vP3`@;b!4&KUDLXp&tIb(t zy5EJhjRh_?6ggX(;J!r|+F<3*bO$86om-pY$0M|b-|)OedmN83w*B9rV7$a zPl5A`L%Alp6JA>Pq)M1y2)0f zQl19PM@J&YG( zHz)fsOvv%|26x7PsW!vTm60eH&F5U#jJQQ!&xg9jk$W#;hxdWuwCE7R`9-PzwRT-Jc9^^8vr>40yWBrI@?ARMnX?s9G#vIT$Pa=&Rv2Oc``7wc88 zHDW<_2o_`;W%11R$s8@eHxOIbhtLn)lK82^;2Pn2$a3}fXoTLv3&cgkLldW~M-^c| z0rnI8d}-&~=oV8DAB=8sw(`EhtBhU9O{Fxj9>G`c5t;_uie@qVE^zpO(QSeG@~_}< z8m4E&VsqM2<&OX%t_e#L2;$LJ+;HSE00g=Shg2~g7Wr|V4848aZCYW^&4Y2+-znfzds6m%FGgkkhx(F%jrVhcZU~;9z|}pwl_T)4NwL zP;2#EjalhrRn82=r6B-o2r5;wOZ%d214gUc^)~%n#szJ z-l=>&=teNh)b@8v_MNamtn0=aj}MPlKJdGtKGepzW8s?$&hK78us4iwM5tod8+K*h zz7z(V>%7R&#oL$GxdZT6iKpPf1&<@$5h~r`Zz5?YnsfpFVy1Kw9;QICoW3 z>QIEyqo~PfoKhTjp{)L-Vb;en>zD*{Y`k%gT6fH6Aw>gaj)$V5?XjQcXoN3dHo;|E z>;$DVsvBLv8Ca=#Y_q-BW-G!u(-e3m#QJb{4>b@V12IP}!e586|4^fIuN{gQjm6gi zh(ccCT+@&NyWbv$Jto&QNOf(x$Iz^2u}{ng>)=aEFVSO=rRf!{IwP)UzS_$-y3{>_ zs$q7(gZCh8b~Ot-28CDJ=CLL53hqIH z*B0vXZQf)u3Ad#4I{d~Q zkc!0#JIXZVzrapJvhF}L!Dn{}HV&y11)Pp}2Oklxhz&yVEv}1LgMVJ$f$tL8W<8Uy zBZp&4a6$>E_Hcd*VYYv8w(JngWYrE$737M`gL+fi#5jHE>RnD zPaX_|3NH9=H;HWfC*E|6p4HSx^Udb*24>^sCCRIlZ`*jKE%cL65OvTyRXHm|xo$sO zXP@iEe&qmxA?$7}3!z5`r8|5L=2IvhOO7uqE#%hGo5xX@^YSA%Ilsj*2*)^|!6^t> z)Bi2cNtmMEj^-O;Ncn;%bri^EU?ED`=_cAhXLG!x1J7!M8IPL5G6#>ENx2m`d8R`@ zo}&(-L6IY%{Zr6ZW9wX4MZdXx3&t$x4y1x^bbifLBk)Sk`%LsfEcF7PpkHaw=YcsE zAl7>b_VCe`T&_AR*3@C~Uan%nc^VBTxg$DoJ`E#WoUh;uf^D3iGnT% zfdLxs5gMM-1>F-u!;>0xp9e(a8x{vbT#G+|@M9E@U3NS)hD_)peua8H12%GLpz=S` zmFHnHtRW7QVdWq4teb>D0onV9`k@0l%T4faK4U`5n}L}IIM7I8m#ntAu?EigUo1kZHJP3 zVO=So;WRYQI1yY6eNl~PTsxJ8OABEf!T_vFF+vW5*kDM#jCB^}cTk<`_${uYVO~H< zI}%#lEoC4)V@uSo>q_U7S3uwMG_658v*P4X=LVddg;~v?@KxE*2+?9B7FW2_oaj7C ztAx28%k@a-I-p}K0uSI~h&R5UjFU62Kq>?l<0EbEq5LyJ6ks%4i^f4UVb%ZKB zz?Xmch%Z&M&XFWu8D`jIr{oz1`@b#+@fcSW@ncI79*U6$+ijrI@UbVf{~e75+OGk6 zmiD(VC&Qc#_(>so_gv^+WQ25#vnLKe8U(l4ntcH zz?d+ct~^ZgoNHifz?1m5;q2QxU4+RvCWzJw%x7TMz}h>JQS56NujXtEm0Zb{x zk9X_%q|J%WMDij`LmA78qp!9AX#zanm`K5U39sdE@Er`@jOmOrG@}QKXowvoz6Z|2 z*7~`7$TWA@cl5|(fjlr~8YmvDoE-yqp^D;M46I@?sRJt;vuxm4qZaA zT%if=i(jxr=gewsnusV1JN+Q1AugP|$qqQ1)aPflU-O4pybL7*pAUjM$}x2~J{Z#x z>D;v($dyl9^2;C^w0HU7 z=PhFPS;5IzNI3=$mHk!XiHg>Bb{>(b}XpEKE+2Xviih*f^oX-{`jB?c`tpaR` z3^0ZxDFwH)C_M}MB|s<9#T$A8&x;0HX3nLtN@F`F7=^TxUJ}f!o!&xqCX~d_9EMpY zv`*SxguXF2?OeSoUJk9~{0$YldX+e|E!BCn_?z%PmX*Zkj({fun_V%ZV4vdl40_^= zm8A%CBkf$H-SF>-8~$i+9!!2N)bS4ADrRzxowQ5V!{0gpL-0T7e|7Q7N1@L$=V$P( zQN`tIva3NJ{3|$;U~nRSI!^IIw|lFp+a2X>03j#AQ&gHkynPxUVN4X`E8%Lc^YOu* z?h%Z+jnQZKB)h78C+gnAUFbF6U)@gh_KN zK4QZUW>6@2P&ESPe4LDl!C(eaV+7Gqh|o51E1*$#y-+qo90%rX*djGQ>3+NXqfwL8q0}W!HGi|H%Q}0 z8A>v>u^1bGfi263y@nf_MiPtw9Ak`4qcFHOq8J9Fj7)qO@J;x15hnfyX_rR2&X0sm z_FSBDHetr<_p5F}!-X1&cIXtRC=ROOp%gPRRIS<(DiMeFJY8EOIh}a z{7yk*1*XY&0&YWHEjbT^9C*1I#0||FTp|7~(qK(MW(%hTv)pe6|JOhVn6^zVV3h`a zc0F|g+NBP<0BI@@gQfc5N=8FFj}K)>!_a{3H5Va-4Yuq9D|cZ;aGnOl0dt1JpGg}h z3A34dc^n*^0}lsKuogqW)Na?Iv?@31ohwBn+jh+p)MW{~%|s5_*fk4!(SSmO1)uXm zPeS~f1oPYE|Erb=5GS1gr572Iwcu|dJs7-G&7Tg1gBXXiW*`W6I-rMLKR11s=~f0d)sXP ziCzKN+kW?M58JXF&yB*epgoPXDlh}d^&!}RmiytRLCD?L|2tj^y?^uN9Fm={IUUQn zjVkRTChrLzR0!CEjyfX@@riJszRHuRZ@yd>#%yl)KxC(yKs#HTkXfEx=n>swIFEv|5Y&!qIGZ~Jb(0w)*zo%o5ZAzX` zue?f(QZQa63*{6AL1*Q|a4Oz2jIJ1pV~=PX;#_3l!x2}Dps;qHg13d9<&0&v#HTS9BAfsv;wFTln0YS1iF5E%pz7x#e(U{sEK?NRpmu?c zt#mH}+Fa0rN#B=RG3kTB{tNm`LCY6fVevrWK0g4eW@{@6!y}$Rn0^q#EdO%#y9N2y zS1r9)fiAiKkcoo!eY6g@<$eU^j=-5g{ZZ^N zx^vGA6w*sm18byQjrc=^_MA8b6Euuwu)AHH5>4B?D6v709+vFr=KUAQ#tIGsi$=ij zKo=3GWSDCGbG4dkt;dm1&OcUn&=GPKqAd&-XM+ggI~2I^Sz(5Td7AUL)tlf$a;^dQ z8QzFxVVnl$swRgM>8;fW7}`Le&uTGfhnk3v9T0k0(NlFm^-+vZr)T+eO|}91DL2$~qitP2fFN3y;AEEC=9pqah}y{X3USnYO|1 zN6j&{8aLcMbT>`)lsmDMLV{CcIBz{Rd5;P~!0c3+0nR&bX3KZANqrx2?&Ceh9AKj23Q@M(t==dbALcwoGeeq?l*ev+Zx z1};5{<-4$mDBHzeL+76p+<|9l;GXUrRdu9k)9=CjdS40dDuUVw7&CXkqm3AdtGM9q z4hhb|-U74)mX=z|v843W)ojcEIouNGVWX7F##Z@Z6^#@c&$B#?Fg21-kEj$*bl@C-sN zMo~f-pmu_+7+L5q0EPT?BN`uT%cbsV5_M-0HbVN5e5Xo2C7660h#CNA%rLNsiVIgg z)zKk%FI3U=1fm7UBh(usJN9z9MTn?*5@7glas884L$(-P9h4)+R%&vcDOPp7XXS8U zu$;=%Pxjo(nXL^S#sa-73>_G<;sPBAk%I}MM+++}|4t@~3W@TXD4F+66j&=cCW`GD zdtrgtw0&u2*h2pO4FmYE8H&w=B4A~kXl%=XKClgb3EKdtHo^bO1JtnCayU+&!=R2Z z8^*^y$~9Z(4%iDgUFk*G3n#*jj1ycYSN1!F@s7W0!3Z`E*r(!neyng+_Up&dYwJMl zK~M&{9e($Z#V{9V%wUEVx}V)=G+4TN%`6ZT$&S|tyIFvUh&gH=I1dd!s1wuLE%ZCg zh7kxy0t157?mFi)tLpIG`5o3YIr04TD)<}_^80(dbG5Uy)SbdvEQY`&_K)0z5F&UT zUN1(_pmXCY9Oi~#B0O~9p%QRxaVX9jK1jz8wk?UX$PS$K3li z91MmXlmCPLNC9zCxF441_0t*3O%hef>5XMF?aUO@Nn2Ml2sERY8Di&hJNmRwvt+}cKo{ql{ zfZs|2LW&cswAQd3eYbn0ZNt3hadr;2Lo5z}$N4>Rj^UQq5LcG%C%F?@3-WCYvKr#O zGg)vEJI`c!Pn@0oam3Jj>w&Ofum_~Cj~Lp2;%p6~oT-3~x4HqoT!hmif(+q==D;fp z{r}i|^Z1>LKK_5Mvs|BKi4P&7kBjVE*6cf33K6nIipai(vPBXhOSZ^PQYl3wX+fk! zk|;&8-Ij=yvV33fnb*}^*W7pavJn@YUY`q=Rlk}WH48i4f1ZLM| zmX||S{n;2u<-)KVD;@BS**5q{fh@zC)xQm<%=%~ITXXyx7A>ilZOPI>d>#i2CT^D* zG^O-|Sxg8@hZjcjj27#HBJrsXf2Ul&WtKPo=(1^ie$oGsA@Z3sjC8STS3caG8%sv8 zkieaV;pV4`;O|&u#4i(mVrRxL3x288*}z+A=K^!nt^?MkT_0>fyCK+!b`$Vk+D*yk z;Qh2)lC8kjv>yc9(ryoSpxqJdM7uNi2!4-JcLg7#-5q?Kc2BSu?LJ^%+Wo-+vEI07OUaewD)2ShZ-A?5zeTi58nv^Rkt z(Ebqoi1sJo7TVjuPigM}KcoFQ_yz56$b;nf#PP!9!%(SC{?L5>1P(;fqk zr9BROmiBYt1lrG&lgSszY2*y>McT8#*|g_^FVUV)E+7|yi)k+(OwU3puG`%pY{jfX4)TtAJg7KZUaB1y#xG=_UGg-ayPgKzptpj z2KUk44}MGgAov~aL*Ngz4}(W&9|eD=eH=VN`xJSaJPV$qeIC3(`yzM=zu%~T2mhe` zC-@ibYv6U-%EPrHKU^<97|@P_DYVm(>B)@bEnsH+vQTFQv(e5D=AeBWn2Yx9WM1$N z+WEj3?E>JPvq-#<#vz-4EjVjracB6OM4tS9(<1WMDTgqlgSszY2*y> zMcT8-IpAE{^T7GE7m$m<#k7}#%kW!H{R+5}_A2l-+HZiXX}<-oq5TfHmiD{gdfM-i z?}M9YZw5c4{V}WGz^k;cgEweLe5E}6qzwqbkah~0 z4!oIm1~4P-TgWV6D(!4!b}$F++rV7-<)+R9=B1qm=A)gTyb~-)yD(W4EJnKoSdw;W zvJ6=cEKj>4SqZF+Ulr+C#`;;FGk6lOw@V z_>HC>1CFIVjvP-;04L)2JoRL73hk-nbZ`dkndEG64(*r7`QXd67lMoMTTH!_Tu#0M zuB5#Re2w-S;A+}$foo{LL#`v&gBxgXBsYS3y(*6|OPWv-(C+#oDFTvfk zzXJEt-bd~SzomT;{Eqe^@<;Lr_!I4)!DF;ffG27H3p`ExEO?IgdGG@5i{K^Nm%-m@ zUm^bjuhPCwssPu${G|UULoiDFCNLfC^khab6Yb1k7TQ_CY_zkJIl{(q5TZ`EI6L_1aKnlN#JDKFMv~NPX}kvo(ayP zJqMgidmi~RxPbN|a4~*MsF#7uX}?0g3a+C4I=LErllB_&9dIpv>!{a*8)$C?->3Zn zxS94x;K#JLklV=Z;11e5!Ov;$0>8v>H}zNK*Wf|k+v@e2}XkRA(0I$&g3%pAEI;lc)?R%h4I|QS&ZvxZNPETe8 zGttfrW}%%G%tkvqm;=9@)VaXiwDW*@X{V7fFh70;s0)IHXcr-ifyHT;1WVypnz{^G z4lIvf1?s!OO0=tx)yNuPP1?1|x@3K@0qurhBic>CducZ%n}he$ZV5g>yEWK`c3ZF= ze(k9r0z2Z@iMliR2<_!RKjD2B*-T3QnUvgPaM@qCE$kOM4zTpY{T9A??NFQg9jV7350r zRobtCuhU))zDaux_%?p;P_F~urM&@skM{fECfb|95Apkm`V(?1xDCHgsds>%(f*v= zMeYXo(B4b#Blm;f(mn`&NBa=?1MS1$5!y$=pJ^WlPvCcw`d{E_{LWCH1An1?0sNKr zCGa=ezmr$MKWSejuY)&eN1_=2rdONs-_D=E(a2M^};2zq0$$j8Aw7&%p z(Eg4*1pYw#FnEOaQSfKl$H|l6DcYyOGqlfvztFw_{)*p4>fgZ2wEqCF(Ef|O242VS z26ZF_*FS#x`X{60O<+3O>A?)NGl93z&O&Adv(e5@<_8PVE=U$8i-N^ymjFxBE)CvA zyDC@>KiAzp#cm1Ig&S639D{%7CYUYN0S`LS`3enRg7a1K0eqD%!B^r-uU>2{xf6Hk zwI;)6|j7j zSFLW4xPM;9{|-mzQy1<{44=>Ok2$)4%9Rwpfa8CsqYJ44O%mfTteJIR0fFU0z*DDxdO>e+5V1t@QVJuQvG?<@$c&B?vC#1 z=su2?H@(*RO5XNb=PP;RYn`v;t*>>y8es)2UyX9~7)L+j=x5ccr277><3HZfY%ICe zSI;~ClU0YL`Zw9}pQ3h8GMh|!ra9#~Rh>*~f2KP7%bRTLeD$IguzWSk(Q_RAlB4H4 zdV%VjlphNm|AmfTtlB4C|BD^}rH)?a=oP9_Qhu#){8u_!-qu^^D|usYov-Ary>-5l zxA)fhc#FR)sXohFed~O+&I(w*TCeU%3cud*m)QW;`ATL4Sm&z`t$^jLPaM6?(K{Ud zxubVEdbcW&)E@12{P#F|ucN(XYM^|=q)ySBn_O+_xU(L}q9bL=O zbt2KE@lqYfzh0yk{A(irWn}X2_Y?J<@JWS%{7R|}(Dz0*Ck075IQ(S>k#)Xm=IHw! z-O|ym9o^Q^?Hw&Mk*vdb$=IHK@?&0WOj+U8A*7-_iFj?m-naN}w#!r#C zXisHhCj27G9bY^VX`7VAPdNL_3@Gb-^^~J!Hk5T3Z#i0KMp@^pagKh@(a$@2vZG&c z^fX7$aP%xk&vo>CN6XAA>wLAy(Muh@+|er?y~@#VIQq@VJxTTXO~-$Yqh*Gcbr_F0 zT4ril=PQ}5Wu31+a`YBQZ*%kxM}O|ZE9RIH!z2DIX9ev2rhaD|5 z!L0MuaYvtW^l3+*b@X{h%Sv)8QiRS8Fz za&#F-mveMQM^|=qRY%uww9Iz1&R2CE-N4Z@`^`G^Uyg3-==&Z0fTLwroOM2C$E`|g zKiWF}?H%3G(K36^I$y~QI_uD1d7mZK@5dbf?v9pOcGmf-x1;+xdZ449aP&||Kk4mB zYENWlo^`&G8G6>CKXSCp)Uyu#k)vhSo^`&O=;+CgmRWq(`ATN)sY{g$KOarC>6mf3>V`RaW~Z+5iI z9<wG1%5Uul- z%tW*f_q&ch>}Z*pXq}H4iuWX?UuG;?=PQ}HXq~TQ2BUSpl9`Ow`Rc5rWmcngxPNuD z%x<*KS2DxVI^4fHT4p<1=c|ZsmE6w;j+U8^*5Q4Cqh%JPb-t3BkkYc z;r`3fEgUT~KCSar8%N9RPwRZu!O=1k)H>XMIa+3fTIZ{7j_%=TnH_4KulhQAfTLx` zsC9Tg?P!@jY90C~N6So7>wL^8?UGPBt_U(Iy% z97oS{^vjN3)9Q}%;Wp=c6zIxr!GE>?*U&(A~>wNW&qt^v}lKR(m zj=#*Rw$4{Fv)Vd5uXFTAj+R;0*7-_iTU&?wBS-Iaw9LM?&c`h5SxMvN-HyM^&bH21 zUprc6YFp>41CIXQ(K2(}I`k)wJ{nX^8vh)1{Es>Mq@zzeT4sA&=d1IMmYLty;r*VY zWfr(~xIc3Abw?*pkiz@B(C#h$kIWFa&Q~%^+&avcageW}Z*lZyowOM-O-O zC`Zdoed}=lEPv~KB{Ti4 z^VLd6%dCIvd?hpgtwVq2=y$>~N#*~JT*JnwU~tQ4>g_dnsfr02=9g1|b= zhjFy5D6kIqM`7cn>seMBSm&!9j+Rvi*7<6eqh%F>b$A}=Xjze9ov&nNf_1omaTCqh)o4b$CDJ=+cfZ6J4BC|I0Z3vI@gGU&%@g>wHz&(N&}GCDoUz zj=!wdunzN89bG4ymQ;W0IR3Jt!#ZEdst)UXtnOHubiXL8J*@Lp6GzMH59{!J(9yCI z#5!L+;OI7vmX#sap+9rj zb+|usw5%+#4$lLl8Is!L(T@KZN6YFH>wG0EP^`oIEJsg@mPo3PvO>i=U&%@p>+pWd z(XwjAI?Ok9w5(pS4*i{@WhIMs=f9Ggf-C`Z?-yAI~U93ZY=jgSLmQ^p- z`B?pOEUA9WY8dO#-#J=V##rYoSsh~?-fua2TlB}I{!CWSScm&LN6ShY>+pWd(Xy(> zI`n6b-sfmpWn&%QZ#i04+*pVH%+W_3Evs*=^OdZ^u@3LA94)JHti$|EM_-I?O3Hs( zsbd}HUpQJ;?O2EVHAl+|9_uh4GrBV=|7B&5b?DEW`PhM@WwnoWxSw;hto*UgSF-xY zI=t_4w5$ZO4)=2@8K)?<5SxnQ_wV!P-1-0Io&E22bY(}^PC1n@g;%~MSNS>oM<+TR zr<}`;ZWfg{OpPx&yjLJr@$M1+us8MqjRRb z#rTZQol=(b)jWhl-(?8~AR+qUXMpn|qylg6p@`yW$|JW;WW#XUoLbBeQCcM|FSARgVp#~P~Di`V+fb3DyjOM@^AdB zsy}%=>FH9jK4;&vCPG;$67%Y)MLBo?K+fm)x<=OrVqSf<<8h-KXx&gf@UzjfQYhv% zQ4Jq5`c|!*s&6=@T!O_^bCrclj&f=Lma4Zz3@6Emd976Co?22rs5*USwCoo1+N%^U z!7=68QN8(t@jt5lJF7?P8ExY0s>=3A)ZJAnPT@E4^;8Qw7=IIAAJvUZq+}&l%OYNKPDX2YxX%)SJf&Qd6|I+iT4!$}*og=CzJ| z%JOQV^|xMXU=oz7^>^MMIgOTY-o-G#t^%if9Boyue{9@jE z|GUq%RHl44`V+btZI1VmpPBxqzI^7_&T0Hj{QLb6ni*~4-xWD@kXonbh<`Gvd{6l6 zlFIjAemBVoxD*}!XaB~NM(g^k7I~BF7;Vy9J*dm}+@!Z)@Mw4AZ_-;K*!r!}CcRGt zRapK~O=8|t!Txf_-{>#>d+#;6g!Ug9tY~iZKCR1nK9^ig6s;@DpK`T6W&~( z&!}b+5KiiAsv58UOwtq7CSK1)alWZoPc@D@OCWj*z844&xT^TYyy zSi$4ff`2O3LoHb@q0uklmx}dJYk9mTTF+4#R*5gxspFTbUQ%DOy-kn!Qq_D_{2uMC z|C9PWV1?0g)GX?bl+2F*NFIN--hZKbgYoA^_?TL%1~dN8QzZUns#kT1$vBBWJ_F}Y z*fF(I&3nf9wG-{FQp<-KT~zBg)ci3Xu8)ENr}xKI|LRbqO?&aV>LLvv+%o)P-makYSS{5;t&arj zxFplm&tl=)^Tyv?Z)L)z8;zFojH#00fel6v)Vf@_L@rb~v;X_yo9RsY%>JK*@4sjK z&HkIizt$UV_TP#>vTVYa)bUl0c1*fH&IgBiK2q&s>S9oq^=~`Er>b3QI_pCh_@}Bp zYCQdKg3hAyq#U9?uKo9_T`bVsbbQ~aZb{*9PszgiDfyME_N%8^KTZ8RsG3ll`trT1 z#`2w{!yi(m*w4d4QOAR=v8|=rpZ=Q44w*eXD4!*SaDd6d>l#euPF?B^18L7S5AN{39vOdaIxjrV`Z~RUB)-F1f;U$}6c)qZJ`76mz z#rm#IXqUuo$1fG@yT0W49MIZ}>{~9r_^u9q7!OCrC+(jS>5_E5H%A7rJvH?|LnL2P zdS*mFOKNXtMK4a#(d%zxrm9Sl)=Bx58tIvoU)dsWC*@D}$h1{v|6)K4>$67id^YLy z=89BJI=?)TjXWR8_EeP?8N%~jsq1qrl7aoHDZhe|%Sq`e9O=gPsh%&#D;n98R30TG zMdZZcp2aWbjfv!zh7ZnMpW`BDlJet=X#P>!Tbc6N9sM;aeWfE?S-++HQ&pKrW7bz` z-%?e%$h23@{yDWSANh&(v%J<7B5$%klu%MX-e7*0(*Acx8i@zoo%;MMN8V%kO0`c_ z)gssK)!sN)IiH%56_bqKsl(Tb45iM1%~@2wlw7YE|5-q)svlW!$mnK3%xf4~y~}9R zK1EZC9yGeD_~ZWbJdgi_j=ymvz9Pz$Z_|j+_=_TZD%M9e;`!9q`u@mc)F!`LMp9au z`1SSXwT-mQhlt^7;+IdAPN_9SRJ{G}80knY+a$mCJ|`B(e^?*&&L2jn0WsAjQuIoq zek>B7;b#21N8&RACA~4#Bl3Mu6W+8(y&^SxCF(wryr@^=bp6Bns3`pfU8@t@+vcZu;yH-+(Rq}6!Y)3gUM zte3jM_DPo~)>q9=(jy{0c|AOUePZ5okz-X%{^!#A`AGjt5}Wzvd(4{_S;_J;^<#3R zR&5hrx98pqk!9tKHvaP?vkDk3X^(jeB8&1Ht@GPk6e-C1B*&02i8BO5ceq)6SpMGf z$OmliO?*ouT?-k1bG((2>XHyRX+L7#n#dg9@SPT|-iYMsExz&VeQo6Dy+&6CV&29` z@6|?2{fuG#Q|%c>SJ(a@L_TR_bTzFHM`lUK3TMveqezQ4jV=LT{1F-drO_sRpGS_r zXml&__jX72q$T=qi7bBFXtV#0$kb^@o8x~SsX<*4n`7So$R*w{neYcAH`tz<`g|y| zJ)7Czr0;m7)Srp^XynLcqfPowMfylUIHONTK6L8aWvLi&CVzjARI6yp)8y~P$d|p0 zzfO<$XJq{%qs{S^m+2j&P5xes9G`ErIX~Z<(b{N}zgfM`k0kCN^*X$3v`(K&@8J*U z>J28n8NC>f_aL^$yj#3HcO-=O(s|Rf7;Vy%-AgTPbYC4lulEXX$%+NAFRuXc*jHMM_Tui;BZoBY1tTXw-{ zbNt#~NeKvN_HW=F%xJVpeSVOpzq|LZ zHAb8AZ}0VdJ5hJ^zQinXapw4)y_NZlzd2q{uX|&ojekEch1#6|K=0aM<1fux4C{4L z_v1y4 zK>hFdW_cfcV*GV_)f_Khs?jDt=6Ue^z-Q+_`++>{@e5? zd%d39O?dg605NsgOJ6oIe@}RCl}^;Byevum&uQG$`TdGt zN*WS4Gv0Z}zxk5UrarvoHz{efE-!W6+r{vvJR|<#-;BQ$OUw)W7_S$T|0#a%YsSBW z_D|<8pJ}v7e>uO|>qg6AVqQi6=^`e*G7O1fJxI-@_PwS*H#O0}nt%6QW`C33I)3i! zMnC7v{v-XlO^i0_9pl%PiVSDM5Aw&{lBj3aXgyx?vim=H=6LgU_}l!io-qD{v`+K) zoiSQo6U9^>|0>&??AkxS|Ik3=Z_2ZRgdHvaeeXXxKl`#1B?OfvrRzZ7kAXS^DHJ=uT16Mj!p z``E_M%J$K;pKbj*B}{tF`E>B>v3;$JXk)6Qe=)Q1m*)={-~0RcyjEWiSbx*Kmhm5; z{d@T74w>|r`q$SVU)*R@UIY9NMT|Db8{+qtf`K!7xZks-(Wbn|`Dv?-&JV=A@&31O z82yWAHNme)y-(}O{!Td%oH_n<|0DMI(u~KvseYM)+MCCl>2H*RhBL>1$?tm7=ygEM zTj;mq^XDd_)hfT-R^zYhyL!W)$NF#fU*}(B`is(|&FCk0gz^w)op5Ae>3> zr+%%SM&Aj|KN!2kgxBYz!l3D6Mw{?A1%=a$HsP=Pou%Tz z8J#|OX1~$WO~kys!518#ysCBn;O5(me>JVU1TU92`fjaT1&6;e+LUj;;K6-H>-bf% z;LRK+y`6!WDjbyg)cBVSM3)E(CiTDNg3KQp|5-YG>7Z27{bZ$}dpqNA%CAb0y@Amt zJ+*>4@?akBe*9uy-C(j56r9Q52EkWZjQ>N}7E=!f3u+o|>T|-JA|462@LoBA;)Xec|v8U1pwb(PV1 zfS8&WJUQLy7NWgH!D=Z8IFsIG!BxI5k!C06y&AOV{>FcGFhe4OGx_sMFg#-N!|2z8 zlS%h;Yl2>bP59aX?#F|Xc}@5cT5k;QNov172;NG%-aZO8%8Lp(6aTj0xoujS_5Dw918*8-mZ82|4kny=h{Z&wk<2}q@lE{S z2OGvG#`k0J8PCVWcPyxywExMVYSQzP)4|X&iTj@m3J)~ew7-7@&xb~vmuR98I3mSxjW1~$LI<`4D<18B-NMN;oMtIgi_68 zsz&(55EEXvH>z%UW0}!M#ouclmc3x~pQ2UE@ZPFs|2#lUwGN96H~tH?f7|d!NeG-t zZEZJ1)HZqtUZ~n3@xor+!|v zH!qwd9V^@?_~H3qI8b(kGuPMR@NL$=yRa?htqj{lwYRFN^=ske{zjYQbqlNiZnP=C zF5#tgM(5MvdxUo+jh}~w83O;E0}+#zv&kiiWz@XK7+%J zN%wcpg{!t2e;Jm<)Wq;1)(2BQlfy_S<8RVGHSC$eXp{b#VL4t8=6Ey08J80Mmxis* z7;TQfB24|uXj2}m!zwk5Hu0|uZ{>OxDK3ZA|j(XYbulrxjU%!!b zzqL0!kW?RchhvlK|GscjQvE*^)@1#X)4=_DcqXa-9}T-oLkG7IzZmAHzs>VE=l6M7 zj^hne|M!P4vOMeS@CUl0M+8n=MG*h9(@B^cd-emGyvMuI~j2>8E{7rv4F?#Uf#Qmp4e}2bkU4Cjz zwDGz`Jucdx&ofMVo{KikYy6F#7VValKl7sRr6k6`Aet^If96K#mo@$-e^y7s0Y;np zxHfuQQvNKBE|_QhP5!Kj_DRa0#nBZt6Zc;cZJCrmuSQoFH2x;NuSbW=L?<|tKkK6< zlk#Uvv|m#GY>y5|%Afb6@2xfQnf%%uEtr%)A4h*mx;}SCa||}&ivzenj^54w%9P)? z(d$Y1vp3paB8D^hb27R;DSysIr*VH%e-1^5CDotP(W^=M^If!WEfb%~-^0;6q@#l~ z$3GfNB8*TQFq}-R3AHPNSCDorlqVFc<&tK8C zN%bd4*~s^YV{zD+N}uxR0TaK@UoTV2)ICO<^kqqzQ^%yQB{s*rtSRNcN%YU2vT3r> z(#+&jB~qqR=g_)f%CLN9|6E!ZPFYDU)h?eZnsS~RQnz=XI{N1q#K*YIK>vG9d;#oy zUe%PL)DlAcQ}MgGwy$!6#p=ix|G~PxDgdU#Bn3IopuVr~cO_hV@y`{gM?tR-zHlbt z@R^o@+&)Y+_L~68errJ4FMb>ut`xh+*X3IbpVw(4x)D~MkTOmyhR^D}LQ3`(Yl1Ip zkaGD*eAz@J9%UZGk?o-L%R;$L5AMeoj>t;n{h-$Z zE5n5?ef6Vk$7gzO(7%pn_G?AT7vLnG>Eudb17CekEnk2V|J#JE@C9CBYhU+|avt?0 zJ$T9gpzuMgm=WT$KeL4h7tgm^4A&a;+Ld~soWHOuIgFeR{+%!Q?9eIE$e%yNANkXS=PO^>ll}XX&yb5r`Mau; zKk_B9|CBHB^G%aoYyH*x);&%*hIKZi1ZvJ&ygOFFJE*NfBDj) zP|8=%bDR+8DPN$I^OP^c$$1uMdDbAYi{4MZv?TivAt#crkRJ$f-tq+*33mrBNU0Bn zg$ebcqMXMg`0@wO_i>)rXz~Xk_LpIyP|jD3D3dj1|bjCrrEJ;bN07uzEvry$JESv8RMjVx^q$DPL_B4#!Gk;Ry5_xc#4CSOQSui{ ze{}xFgwLRT7mhP4-sO1PL_dpu4a932^_LJYDP_g49A8$V%Jx=5Y?qapvRzh8O8Gn^ zOei0nzxdo)3&~eBKKi;#@GmR*i_e|KuZMDumhqA|$@HsIU+Rm-=g`^;r}*j#FkLmQ zhy;Tde6>WjPc{9!Hw`P}WP8H#YKi}JGhXm!_-f35@_+H4{dIa!IPvrrkoabqzqsSg zw%e;pymQQXdvj4wB-~3(=RD-I_|Ny1j3Xr9eiXXte3|K3@DJ%+_|N`2or`RGbUKkQ zGCr1kNlO1>tJ5SMNLP~o6061ETWYnmi{3I{-7Whqx7#ILu)_9}|NnJ{{P=(II@A3W z+OK%Ixw@2;2l{VaP6+piXi&zV(k?6(jdu5AA=+JCA3=FcB=xhP5cMPuvR_EF9=qcGt*EGg;6 z=L!EQU*q{)Ud|W!5bxLWQ^)s{>rec%g3^x3^(pr=Wn}w1zFs#|Y_0iAQ9`+&k?_*K zNq#IA;yhjh#b0h8W&cgGeI33iLI3MQoQK@5%X!3)C->13pB}#%bUnrLD*5aqR9m{7kfNI87utJcDV?P;Pvw)K87wD$?i5$XI;{E^OM zvVFX-IHUNn{Ps280j{8sZ9#Jp|3S}xm>ulj!PQ(yfg8tK;c7~AEs zw$zU{690C5`BgOh-y`GqPk)L(>YLODiLVwY^{u67gzpPVd0}Rt3U=UrTZnMGNU1O4 ze=Evc$`f6$F3&Ym{@5Q$)jTLf<+xYM9r@5+>I3pY#$8fgON9t8UnrCMAYTp>otL~z zi2a*WcLJsSWOC-rz@Kl`a~ZTnRb;iP|QAp4`-h6{1t+hl)~!#>d{hs#2ggG}EN ze|haBypQYvNDBk$ zC(*u3xKnogAoW0=pXqV@X*`#a{l>C=Im7!t9RC;DeimQYlX5xdt0JJ3w=7SP@_tbG z3-;&s(cJ!~@I0Oa2vPpulk%4zM9W`f5DpU}-LpaO0@@++fNaNk{3J}M4>EoZezoW4 zYF&RXvi@GO;R^D6C4W7f?_)w7?|F$2@n-{NToBI}DG#aVLxo7^DsrPx>Zveczq_C% zKXpCAeiIn}ee!c5_S4r%!uiPfMfQuAmriG6^IX;Ylj;1+rZXN+pXXJc=QVqs7Lxd| ze+y9d?;*!UxxOm;2HG>xDA$uh{FBG#K_t+B0ZhtOU$60UMW;KE<+hLfO^EW6?;?0e zS52}R%j>~^D6jbSS`^2X^wp8$BcJ4Yll)ysz9~dLZ4f5puPztt_rI1)JfCtR9ywlI z>-=rR{7nh;I7#wnCBk_(1?odNF7oGuFkPVJF~6K|C(ye&P|uU|WINKiOo()5M|i0} zhd>Vx2QCQF|H!llFGFC))reP~w@E&ql>Ly;G08v4cgZ*C`19juxqT+LZxkY*&Iys8 z^z07{lXnY|o?60$`lag$2G#n$BUA8qKInWwKE(6I)p}f=El|ZIADTMh?y>bvmnU=` z35W80O3oYSGf_0oXPFS`UPt~x>gTc8o>TGx>6X_OiRqT>NuC2qyN>COrkxtk_88}P zE4E91mt(kl7_Ng5;RbX2Bq7RIu0I(+{UrKVj1NR3oqC*(bjHWmk4id_E_qHW@w`EP zAls47PlXBjd#A*Q_E_3cdH?aS#Cv<7+f#WiGhO@>!b?5&@}OSH_PoL0?T(a_>@V$^ zJXg~FEYdCKBirRV7D~S)&zZ(k&k#M_yuXm=O<#x}Y0gv5PwJtRLsZg@`ls9NG{gff z&zto49`$LD_~ZQacrGEmx?bS8X%a8e6|XP(pk=%k*E(E+mUhT15U9#z7EsD7kL-7+ zt%qsQK_ROpAA*9cuSi!se%+6i3G{rfbcZ<(DQoIQv2uaxg#C(@4^&^-zd~Tz-->~n zD;nn&k4O650H5QI>jKa+ZjI|&qOrJF?*F`Mff^&>6Y?WXwpX|NOMG69z|_;4c6)i* zUW?mnGd}2^vb|2AGJujFG9C%)26`T4P|xn4CgJKk8lU}+r&IgiW3}X)htGgl1%pO* zdwuFoWIqtoOVta)CV{>$3^16Me#yHp(CwbQKT0}IQyX7?3D?YOx&DLZR_pwn&F5VA z+wF3lVw!4lye+Mkc!LL$wOl{(bX1Z3TLt=kV`BPryshni`gwL6t988ie0e;cG&xQ} zz0&oxZJ^3Z{Oyv%dAPYq+|TP^wbcLMA**%%cVzx|vfFk3LwAz!pw9n?ng5-c|Bo>L zAN_~??_%TA`QO!Qo&S$nordFh-K^I6)7@(A|G3rFB|P%=0bxS9>wLk@^?%HlgnZED z-IMKBFB`AUkKU~ReFFWQ%Ijl<)oBbD zk4K-!aOH`bSx<%Wt&RdjF@bzDJIS^gSv>I);J4m_RKQolu^-o{Y8o ziT0kcTH=*{FP`pysuyXp-#EKpQaL}%avpE}b@=~M&XUi;bAfpeJt5HdmEOcazkl+c z57hf|Je*G!`{e(B!9#6NsQ%t!9FPQ7jn~HI)>_5$h)Af7$Kh*CTHe8w< z|3#~Hz9Ig2KI!s6{Bfna~9i$*><~b7oa;K{s7eN!W^~>bJ;Gu#CBocKeP+; zZG1W%FI%n4dx6!u9!_JsywGmf^=pyUI{k~S*7ahE)#CrZ)DxY*OaCE%6WR|w-dSd^ z-?kF}@<7SB&0E2G{7RtzLboOp^;<3-t3Y@AW`6fcD-9%yaG4 zfqCEkW}sF{xPj_Yv#`aT7GAKPX8vsIXI{<^)#^(Esaxy~k# z3x!DMyI}BPpx+;OAK83J6aSB`*7f_7K-HA(VEj7J*U1*E?-Kv5fxdt9w%P4Ezfq5M zJwQIi_t*9LQ>*Wm{kI3^?NcVfu++ z7q3IKJ9Dr-G2e8#bu#mEyf4|GbTID+z1@M5X?flrQ+~l$rd$&D*Zmp7Hi0QrC$rm1ge(A^MfhJ zVn1^Hewg>+6#_L@!c`2+dy#~3yKaYY{}QhsWhC4YQ}2rXWRIiU|D$aGe?~hX$2(^3 zn}XvuoX#(Vi^r!m!u?PAa>DK>_i=Jv-Y-P{>2?A6Hwrp9iR)g7{LTu>bze>NDb}-u z>ru|f`xo;E?NVzAhx^oc`qISzv^}oYXROxO%UP?NN%(Vt{$7x9q3B=Ou0ZdnzdWZE zf0-vF94bV(snq5<9-fO(pCB`ONZ*A(6#`|yuH+m_@fH1Yq< z>SChNt~DZi2vP4x3oqMn+8^z-_y_2>7m7dn?KQ%LbV)r6ez*JSeg)-STekmUx9j?d z?MdmpVzutS{^a=jFK7Ez)3136+jW0@?H~H%nRb7D-0N2B@#qb!b$fwHEV}n)W6d>gPpXN@(7LV?4N5{Lvrj{tx|> zEUQSoo^(5kKNs_;gi9Bi_vtr>ro8d;M~~|>gz9_o$DfVyxqm#pwPbsy(A@81zcJ8> z?W*>_<)8g^zk)wM6OT{V+bmY=_NW%iDV6bL4b5|kY&M+U?^dhRBwg7ZoiHxd;So># zxH>#ue#W&<*Gsnj(B+yl{JR}$FY(_Nn&(LiFrN`R@w|08<_b-}jQ%wquil>99!JM} zd-!*|DeX>>Cp7mVc*sx5EY$BwJfvrhY+uLmQ~uDj4;ZJ#B%YUjGcH4T zdEYJJhpX99IPGn2bwnOM8ZJ@)xJYe~=LVG7r?d6ZK7q^yqnI zh+qCvti*qZ4`RQ{LhOgGP06_NNnycI;Z>cEzi432FWz71`>;8@e|^vN%Q8-!FZqOV zqC8iXapHC%+Mgpr~hr{)#$3qF>bbC?6hN~d^;bnY$Kdp=5{AGJW`|-T!gmy&NtKxRQy5f&|H%N%` ziO2UJ+b5iVON0wb*l@btif=Dzx9jmEw##`0rR;WTmlOM6UGH)JW##zzb4&5#r-{Z( z<+#@QQpUvRm36jboU8LSVY@!hayFcMKKUj7^44D;uY%ROed*2dN5#;LKkg3odqb~M zsGom&l|wWCqe`gX|HyO2ZzNvuhOla=+f@&fC1e?UP(4(QoqADD!r{+6#m`fxqo$(~ zUy^@6tMz%-vf*|6ln`F$FSO3z+BTdnw^o69AD+;U>f_h3;dDQW^RF!FtQ(sC8agRG z^{m#<9qNbXxkH1{Ja@P!G|wGs{EyEa8rt}DIZSb$J2VQ-bBD$@obHF4upYIu`J>P0 zUK>uAJN8dX|4bWR=hJ`4m+mGn$piO9=5wG>P|d8%`g;haC^-_OB<~<)LOAE6)>0%6`2$Fd4a-4zo{B*m4_;f!o=pVKZw%c_-fbfzJ-V=7aZdZncW}MN^j;Exa2SZJM z1;aw~9A|K#=LdREhW|F7_yGz36zlEqP~YczBSQ0hXJlyR&EPtU=U;J2$1*c7G5-8H z7!{iG7;VbK17DMHm@l+hh$S>Y5V%n}2^ElGF~N-FrmBO)=x$;03$CPTy3kb$X^bdb-s*JmQJB3(_wB zx91)@z8N-rnxrG4p6dG-)c?-1{YBGnOZ|_>Uq-gi43%ylz)sZTLCNQApj>Z7Wc#4N zTz6mt(Ws9)Ug-YRlNjz@;S;t$NfV9vW%1+cerlFYhi?C7Tdnh9j@7z-Mm^H)7tTkw zUtx9`VG>(``SbpYRf%o9g&B+3-5us88|o(&MiWtbZBVe>2+)uoLxvY%kh`ro8}l zdx3hS+Y9LavLCc=FQ7MwZfB39+lLRW*6qVbR_pWp*lOKApuBbafa@wgzWI;s!zXsX zG&$}gc3fCpH0s0s!Y!d$*RwS=^NvvOmSB6ZEyQ0C06z`YuR_dY)$@xmZqWBPsPC!R zF72ki57};yR{`6-``DlF;Par*Sl>}E*GhZ|`rp@V7{>g@bu&of!F8s`rMOPs z7me#7-d;=p8K7O$&tVXLgy@~2dG3w&Yny0L?$czv^P@1~xNiOI1b^>y-fw(i&qvoE zY>(F$T@O%S;_1-i)Lk5BgSwo)mkyi z>*4qRFwQ@w?=j}@aT`wO?+L4Qej!{^{+_g2=g%ptb@+c-t@HP^)jEIASgrRzYqic_q)+EB z(xLPB+&|>+FLpnjzvr#~ulaky$=_d@zo5?Fi_BkWoxdr3zX`4L7ydebFWKYi{QZsj zdztzBJM;Gs8&2o%6{~fAAzV`a{%N(&pTDfu;jdb)^Y@z7I)ATQt@poSwa#CpPvskF@^VhfGWc(2XRu_}w;Q3%J**=@^3#W5lBB+r zqgNK*6gAI%pabYgx~RHISkTP3ixdv@w=E(?%zM5F9=7Hb|6+ljhZiXxs5H?f0#!g* zGSKVJBc%fU9i2#N^PW0#mziG_x!cS?iBvZ8J0ex&sMs%K)Eqy3)aXpqSTv&3gFol1 z(+6se#l0D1KQJ>X?Xzf|KJa$xG*YJz+Y5{Sf0{l|p~hf8yoA%ot!eth2$)^AV-j&L zA+*%@NDX{9fm+5Z5zOLO z7sNk3S&WqV53*g>mk94C`;mjl8KgYdmvAyKLMZPwgB&(2^@~gu?NDd*N zB4?6w$#=;0B$jUI{V$PuP+{fx`N*ndO|mWd5Q#@WI{a`FO@-F;$oI()$%7=O2Iz2C z$uKlJJ(-2fN#0IYB&(1Zvg>#-gw-5EK1D7hF_hN+7!qk>$f}7hSQA~RCYlmWT-ut2 z$YNwYvLX2h`4}nd!6g5lA>}Xpie5r)B0nPKFV2epkK`3n{!*)K&yix7n=C=zMb;r3 zkPng_$nIn>awIv1oJ+n;t|d2+KaxkubZE#VT^Y#&WMQ%fS%+*&wjjHbkCV@m6Ump! z#pGIY1Nk|*n>%!E+UtaTgdI?QSt42PlC8;y$-(3>aymJSTuW{s_mkg| zm&iZJthj-abmS)QBrB8E$<|~$av(W`oJzh(zCo@bcamR{C&@Epn49H8#>j$X4YCf| zp6o;pC5MwU$+_g)e$-Bw>$ot8jWMA?HQvM!*#Iu3iL>?rMk{8GuWX8N^zg%QRvI==G z*_?cYe2g4Pjwh#)uaK{i+sMzzW8^6^-5n+!8Ob}zl4Mn~5!r_9N)9APldq7kkspvB zlV6kHlK&#lkt)rkCm?Sp?<7l+^~i=~Z?Zo*i+qXPNNy$%l0T4_$Un$T`Aj-e$r9vU zWCOA>*@f&*jwhcdSCFg7ZRB3^NAhR#Jb9J8IcCz6hs;NoB`cB*$$QBzWN&f^IgXq` zE+*e2KOny)zbCJfVSbaITga?reXtUCEco1>_O(7@4l1**_y$oGeW~M0O@$AZL(olkbvy$bIB_@)DV~ zkU3rs@-DJG*_3QS_9FX{6Uiy$O7eB`Q*tMHg}g@QC~S_Oo2)_BA^VU+$!Ew3&B=$zzT{AHD)}<`8uA8a}OEw`pkweL8hcd{2bmVBOkfm}hZCf_Evk)M%=$Rp$>@((h7 z36tJi$QW6WtVC8Ln~^Qa$H*S!2=Zz2MRE?ghFnK}M(!eiB9D`QlGn+MB~5y>kZEKA zvMgDVY((BiK2G*02b0stx#Y{_I`Td8EAkui9QiAGb19R)Ok_c_C|R4VPd-F;CdZQF z$z|k9@*{F9`4f4Z{FA&+W-o2hlZz}#mLY4A^~g44d$JEXfE-6oAm@{d$PMHsavyns z{ENIn-hP)!Um7WYUsA?{Rmlg*4&)$mC^?gyOMXOdB~Os2$(zcU_%o0t$ueY9vIRMa z97@h4=aTP|8_B)oe)1Ce2brs^IeuQU5qTduh#X43L@pq=k)M%g$n#{5awh)VWHquD z*^TT;P9~?3?~v=sedGc1EO~(p%A4ceMCK;%Aj^;y$QER4aws{RoJ-2zsgruJk=#sv zPaY<{3MO2X%uf~~>yr17UC8d_L~;uG8u=#q1-XYjNB&A?t7wj&lPphGB3qGd$tTDs z$@%0W@&oc?@<;M0DIXw`dcWKpsK*_iA`_9VxW)OY|@uX-bofAtCBUz`^i>h zcd{2bk{myrCA*Tn$^PVIaxS@;Tuy#K zeoX#I9wo1ms-{U_Rx$@!imXK5LpCAXksZmt3{JIMTGd9o7Oj_gQ|CZ8ealZ(g=KhkS~BhMY#eL@pxVAlH!F$=&4F7)ivq9gDg&#Cu@-P$QEQ*aws{RoKC((E+E&E zo5>yIUh*(`io8gwdM16D$b4iu@^11zvK85u>`M+K$B|RW8RRl@9l448jQo~7P5weg z>znlDCGR53la0w%WC!wLasc@R`5ZZkTtF@%H;^BaTgd(7cjP(pS2Ap1(wUCDolGOk zk`>8Dy~LxrE$G?jV07uaH?9nsnSsRwS#Coyo4`81h+iDftTd8M%u*P5we=Xk?C;nJhux zMYbSYlLN^i+^l42vK-l*e1Lp{e3G0)zDzD5Um;&7-zGmKcaUF^-;syO3*;5@rh82~)5yYP zJ@Q`iVX_N3oSaI&O1?pEBYz~Xk=gGv$IC^QA?uSJ$=+mt@;P!U`6Brm`3||B+(~{( z{zM)puaRL>lb&>B8d;buPSzmnkgdqJWG}KGIhGtxzC{Sa&iN?iQG-@BM*?jk=MvbbCb@zWQ?p#Rwvt$ z9mxUY6XXQeopQtPmsTm7s;C+Fvm?Lvy(;05@b!XF4>NJgnWz~L5?FQkn_n! zty=2CViR7JIMTG4YD!Wf^1C=AV-qVk`u`#^Lw4=Jm+=ZbMLvo&z+h3o4NPj4Ax>(wqSQY#wR&~qdA4|@DqN<@41z~@L$F^ zMEw8r3k&ihmSrVYV?#FKLwtmNID%vOElpXUfp;cR}yFSwGw@c@tVBnv-~?z)ntSeA8JkDb|#gZTpA;G6t}%eao4xRVEX zj0GM{cU{I(ti;-E$QJCtK75+PIf+xah+p#u?&f~x=$P&~n}v8WOY=tF&Zg|hE*!+s zoWQp^my5ZQKX5bu;$fcIDcyMiFXojj&8n=)TiKHTV;4TgfgHux_zpkh5`M!Uxs&^O zj5#}}yU%Aq7G+76=gq9kMr_4S?8d%)nlE!Qr}KR-<0`J@FZ_+idD=ti{+zs!SFkKA zvo;&C4LkBtKFuL~krVh1XY+G@$xYnK{XE2+UDDmTc`1vtJZrNdTk`=v#pgMaZ}3fi z#;>`aKky(=@yxF2zOz}JC0Luc^FFp`ANJ)KPT)ko$JzXuJ9&UdctN*xS2334jjY7m zc`v)N2M2Q`$8b95atT**1Apc|W*<&>4c^73Y|9ROgwOF6zRtP)l#BU2w{j0pFjtRsS3X|MlB~cx*qZmV z51;0+AE}O9}+p`A;aVRJA1AfSFxQ;vcJCE@c z&wo7KS%BB^CRXH~Y`}JWfRFPjzQ~t3ogZ;6x9}GpV@LL2Uk>4DPT&;Io*iZw}`xoXn|Q$mLwY z&D_p^d7S4ylkUyO>sX1kcqf~(9Uo*bKFe{O!CCy0>-iJ6@i0#^JHYMDLM+3ZcsuW8 z2lixN4&-o-=6Fu!yPV0D{GPvX5C3AGXVbj}SeRv5j<@qpw&wkOmV-H+@AC_;v`a5oR|7_)=Y{pa!m7H0|8 zVtqE_z3j~ae4ZmXjqma+uHsJa=5fY<@F@O0`9faC>sf(SS(nY&iBGaW$8iGZ@FT9| z58T1Oc!Xhax-SsBV%5$Di_vGc}yo%*nnf2L--PoH?a2zLaF6Z+*{>c42#PeTBcNO3bEYJFE#E1C^ zU*Jf-%^6(5Z@7;~c#H*yr8_QVan|A;tk2Hu#*rMuX?&N9xRjf?m4|th=MQ(iuoTPk z7S`c?Y|nmtfiLkD&fr|m=Sr^TcJAO&W=Ev^&R`K<&Z}6Rwb+6k*@rK15~p$o7jP-R z=4S5YDdrgI`eR|1XJy{QmVAs)ax^D$3g>b@H*hA6(8l} z9L7<6hqL(^zv6ms=Wd?%V!G=*7U5Ma%j&$HjoE=+*_R_Ynlre7i}*Fya3}ZkKb~N| z(dpiccqz;9Cf>m&yq}%<2nTQk$8#!YaRHZd6@TO}Jjf%=H74DghsAgWE3gXdvk^P; zQ9i+;9M0*S$3!Q*qEL82>Wvo zhjI!(;6g6v3hw599^yIU(tUYZoF!P1RoRB^IFLg)iBq_cOZX$V@IU4lpYAx1`B{k9 zvpj3CE}QW_c4ALH$)Oz037o{){Fp2F4R`Qw{>$Uc_lnz_m$EF&u^#Vcdv;`hj^jjr z#LxISf8?+HoBuKUYPu^o3-K~u!_vH&b$AaSW*_$DXuiQ|e3whPlB@YMck%=?6VkmG z@Isd6ZLH4@?8+V-#L=9uo;fkyb2f{!1go$45p@nJs4F&xj=IESBb z8CUZs?&M!Q!px*}ZypxpRlJtfS&L2Cf?e31&vGzd=ewNCMO?;jxs(6$IM1J)?k&tq zcq6Ov4mM_M{*OI4kmERkv-vR>aRawC@Vq11(4?e-CIf$b zSc9$Eh5h*oU*|loi@kbu!Q5JbG z-C2}Xc{7`{6(8qQ9L7l$Wy%%drvLvLk!(Iga3Ke3vu%1y}Q1?&NMBXPA@j%*V@Ej&<3b zt@sch=5rju(VWJ2`58aw5B!M-d4%WAwU5{EdfvfiY{zbVjDtCruW~xy=Vx5Sb^MNh z^Eh*UnC?4|7w|?_VGZ8Hmh8$Ne3pYbo$qrkH}DVs&7AYnJ-K-~uVQW9$p&o6hxjm` z)Wqo#FPxj>?zQ9-b9v5>NH}Mz##^XF~f%_qgvotHR78|fNyYpEN z=Iflw>0Hc}{DGVKClB$okJEiQc_~Zq8rEc8*5iF_&nMZRV>phpIG1a=k(>Ds|K)j~ zq&qL*wJgosc_-WO5%%X$zRbydm$UdGKjD{L%gy|Q2YHHTf12(s$dW9@TUdv!*`6Kw zIG^GOj^a_9^!GHwJ_av5zDe1?_>kE=Rv;of zur?dA2_Il*KEpvA#|fOnkGPuOatD9sDdt$5?k>zrSeiHT7S`c?Y|nli#!-BOZ*mS7 za|JhXEBEsdb1q4D=H{g=&T_28dc2qa;}aarQGAt?IFn2H9e?CL9^o|!9%rFt>2Ztk z3RYxQHeh3RW>5C!aK6k}_#QvtGJeHv+{L}jE>HL6VjdRb6|BH2tj|X5z)pOU{W*r? z_%3I1DZk*4+`_;44|9Hz?#|7NcquEh7H?x4w&N4*$FY2s?{hYna|JhZI}h>*bA6fa z%)?^5f)!bn4cUbMcN(tV;Ks&SJcdH?bm{@IH2A7Y^hQPUUod&M&!%TX~o#nf)f+cP=kr8CK(MY{d5L z!Y4R{!}u0wa27x3m)yjy+|RH&-FE@6VtH0(UDjiJc42o82w&DYPn2&J)M{+!;^L;Mia&F{i?&Cq8vEJ>>OLz@$WF0nT8$QYbe1R`> z0;h8!*Kz~*@Bj}p_l9)e1uV)NSc7%gh;7-G{W*r?_&(?HW3J^!?%-h_WB4xJcRJ5z zK^En;tioEX&wKd*ALmniiR1Y`KjZ?gHaf$2`}S~tibwg z#7^wWr}->j;&^_*54nb$xs!)^l;>=6KjG!Pij`TNce5!wu{WRQSiZ&g_z@TKYi{L! z9^%8`U_j5o0k@8=U7!`b|r zYq*PhnPW?Ooby?L*YPG+WCPyAmh8r!9K@lV#CP}}mvI%>@>lNSQJ!Spt?BOkyo%Sd zI%}~hTd)heb1+A845#s3e#!OxiQ9ObVOzTILKa~~R%JsrVHbAi5Dw#XzR!hR!teMa z|KQ)uu|3^&CJXZtmSZK}&8FfnI10}^Y98@$1<$V+j%eBum>OIKn~$+oWzA(&K3NPdzk$#-FXI! zvjnTN7TfZF?9YLGjgz>DOSy?#d6-98a96tLB39)sti$%~!tNZ!@qCR7xR6`<3lH%> z=Kek1aUQSYwXDtC*_QufUp~#z9Lt%U!*95Wzw#t=?N0X;;AOm)6zFFwW>IFfI28b9GzT*u#eh$orzuXJaA z7H2uu;azOU&g{m49LDjS!3A8zrQE{ZJj4^s>`V6*x;lJvL)Yc403*%L#moZ}T&L z&Gr0&fAKJn@|=U|-n_h;*Rcj`vn6}-3BJfz_&R6vGk(Q&+{A6%$pbvb)BZ_!p2a-O z#|wE0ui=fX&U);?t{lYSoW^Bb#XbCw=Nw9RUCENH$)@ba0i3{zoX=0Wfg5>Qs& zM{_!7a~@al8~(&?Jj|m!=UBQsFR$ixtijrB$+qmxC-^d7=VX4!1^kXb@-UC`{Nw4a z0xZR{yoGhxncesd2XPF?@msTwg)GWatil>>#x`unNBKC1aTMR;9Dd24xQBo71T&}XV^Lnt3ar8g zY|IDw5TE5>PUKtsl#98Uzw;j^tN#D>5V=^8MOc)Tc^ez?UbbOBKF8P_yGHH zG-q%zf8-V(;(yG0Mta=*EXzu)#=F^+9odD?@&%6MG|uE4e!-R8!k_ss!6OSWYn_T?Ck z<1EhQm;9Pr`3n#6KjuCw-FY61vji)#8t-OPc4AjP$^Lwulld7x=T7eC8M)Fuxp*0` zWG&vtrfk8k?7`PT@OT!sXn;pZOn8u+Vww&MR1kRe2j5vpHL_ z51-{oj^hM=%4PhD+qr{>d6c>Hru)ugS(f8HY{^I1ha)+LGdPQ@xPcqFga7bfo_>D1 zrwFfRDVF8!Y{2Gh$A|ei2k-^H%r`lM3%P_FxRHCgkJ)_b-ZNN;7xM!DMb3VYw zIgFz?jWaoiE4ZH9xtj+WE=YIgVKLsw3arPbY{7^57@y(*4(2e9=0v{3x%`|z@mC&W zj{NQitjL?$hF$p#U*#M8h+lID|7G3+>2dP&I+kG_-o;Mr!ACii!#Rml_$in1D{kX1 z?&V2l3);s*EX@k6!bZH8ZP7JatlqGl#tFa~$5pKup6J?Fuue$ z`2j!VDsJFL?&UsaFHQHI!9u)>RoH-S*p5B;D2MSSj^}&)fXlgpTlh2o;|b<3n(i#b zGQ5cm*@_+6i~aZlNAV@j;-~zIYq^2{@Hj)Ubk~I}!cr{D+Ps~e*p(wWhBG*eUvU+8 z@OPeeS-K-P&tnl@%hIgM#=MUm*ojYbFh}uKzRlVEgv+>^KXC^S@jvD+p6)-7#aV)t zSd9(Ygq_)k{rNmc@eR)Aa<1Su?&4l%E>HKJ%?nwK*RTR_Wph5nhdGGD`6A!u2b{-G zxR}eil54qm#3KH z>U7sdyp&~Gj&<0C53(2gaWF^mRZin7HrKO?g$uZltN9bRa|e$ydsDjiEEZrk4-^^Jq-JP44@G{=W3T(mFe45X40w;1lKjj8)(MK}js6NSDm6FSo^T~P9$1|a@zJ%AY zDr-fb$b`FeL$>9^d^FlO6Q0)3ax~xMJJCUzFh_sHFZew-M_tC^2Xj?PcNb()ULAci z6K>Guc{A^dPR)d7`d)TqZw`pQoe9JAC{E-o&WldZgvELp*Yj8Ij?T!0gZc>1sG3}! zT>k}lF-t^eXF?f$6Kk_ETSVt%!vFMx?9JymjN_vVGT}`-qEF*&|eSa2)@P{oE=@237_i4T*GbL z8T}>`_UVJnR!=TZzMu11h{afn# za&F+y(XE-VSMTEq=B|-^Jo!HI^P=dsOt?Z{&GNjJcSe8Bgr>R$JMuC1i~gMnL-a6C z;0(@=9!hQxy_jpbm3yN{lgA1DA9LQET%LR%1$lY&SSFOxWqC6jur<5$aSn){mJP%7 zC{E-o&Wq;ChQ)dr*Yg)1;J?vxvLRbDG1+?tFW_Y?!%D0X&65pvbv?FZXLgUCn+;Fs zejLj2e1|im=VikJy^vq=2Oi*mJfl{+|7@PiD|j7mS>(E<@`2!Nj7ZO+qsV?d3NpO^U7vJ{%CT06yjB^z-rMOv*C7qC+}rvc8^v~ zu7BN+!}&Vjir$h9@9WuI!gc&1+B6$});swRPrD`gc(OZJv`aQzpf6+zmS@#yuWYzY z-@z8_#D}AgXT#(ADGuXnd^7rNHoT`l;9{=fHvYzgJjvX*CSND{J__?HmSb(+&9>~y zz8uPNoXWXe%C+3eKX{ZmZ%g+S;N>jK8m!GGY{mQ7l|9&x12~dnIEhm@oAdZNzvKpP zgihdFLfzn}A2jAdAfHKH#j=NVm(t=NSzimTscC{I}(%qxp@((?xRLvKf|zu{8{DLdFm3z34$9QJF zbnhj+mZe#fxAGpg~}CQZ`MU%?IB z#yvd6T*=?+;`uW#i?9Ss@sZ}~=WS?}dPbYnx7(%8;Ucc!TJC=!{k#*=x;aAj!L;*4 z>*NR*>uXq^wOF4m*_O|8FlTTU*Kj@mUC)c&kt2Mfzl?6p5mxDq(VudJEqZsfc8+jBpX5cIlFO6Z@k-vxyQ3fG2+j2W zqJ>WjkLms##;JUtAM*=-%dNbnb9&qcY{t_bN-sZ;7xNmHV@=j$8+K-I4(1q6=VD&Yt5}WA`3OhwWq!a-Eh;w*m0-*|-Chtsc{i|6wamSj2BWIeWE2ln7o9Llkr%=ui+ z9X!Rt-P2vyunOCDT}ifZ{tIJj+42R>$#nO@+8mglOCrCZ(x14<)eItqxm{# z@k{>5Jv_#|kEO@U&nsDym06t)*qH6vk&p8!j^Jp%#kaYD3%Q!#@>lNSzdX)!9#8k@ z8*m3b>0@*Z~N<9wbI_#PK=4YzYYvrnWu^6_$3;vHhUk|$nIA@TCI4NN{+3&!=Y;T&J{8Rq!dU|nlN}eb1k3RjHfB5a*CSmxMg&8-o>Uq-cEPZef41dvVM!R`H7Ezr8nrG^?v3UobJdQO|Gv?c^%6~ zlifA+UAn36z~0gFAq>Xy;!A@tNw{l6i+q$fseCif$~G+HZ!wR#J8^GNj85b_L7OpaS9dRqvkb>(QC5boBk zqIE-fME8r{k=(EKE1VL&GdU0HFQa#buvPEoexBf2&nKUk>?jef7s5@tChM^!J4Wk= z&|5#t5zz)Ayr!q~!)U`0KGUnYm4ERh^SqFJezNBhmSW{-a{stRH{yNl?BkE)edS6&v5CSSjVzCqW}4S2uHAJ$Lt1-=|jzOOg*4E>>A z&hMj*L)fnWj5Z13h(2w2(oK{5RW!N&F6OnY6m1?tZQY3Xvpf596en^P7jrGQ^RH;D z1X7ycEEJ9MtmNk1CGh0$cs6)YX?9YQsI2b)IwgwRbt z!6DJdLYS=I=cm!fLs+SQ;II5U`a}p}Ok#5Ub9iC2ZwOcF8(1y+WC*wGX6(RT91wjv zIj`#poF45T!d(41*F~QR;dgy7Iv|7-I`>OSC;JLVpG_YBb(QGA5E|*$(Lo_RsC#o@ z^tliw=xNcx$bMLo;fbLd~67Lqj3*QMaP9uLD%BlY#V(wgig8_pXF#yioPDgyLuj% zMc+uC=jtuo8=V+Jc6?&8=bY%I5H8YJ@rLN+5UT3C*os~Fcr>{^pV1@qSUr{VqEkXx zqkrP==+xxr?3Ki1&)LywAzY@f<4wGocd>Ky?d0_#dJtdaM7|e&Cwcy+mvU`%M)Leo z@8mzszM6b|W^%udCj0V7XN7R7zMj>17h6P=>*apkP50J=_;Pek2=D3n(YYb4(_6Tg z2YHHTPe?vL*;SCmc|9xhHa21#c4lu5;DqRhAxzgF@pG<;Cg0yiy^DvU^Fzq-TDt2z zUKCxBJl^S2(T|h+zrH2h`e_Jn>e*bvHPMA3{HTA4E(+lfeJJ`_ z2&Z(O*ON}J$0E_C$@yL15dA!ay1GepSqN=(S3bpId?lJ(Ka=%LJzswn{W64~^`AT% z&4zH=8;QxDT+tOFT%a$Gt_&lTSz2gfLW(jjj!0lAghjqwA8_bLn-_^~vL+J{aAQ zTyK*SlU;dPB>G(l*XoL_9sNFp#`-=!6#XHD0eS>q zPWBYymC;Sfc~#e8)96njbkTjHn?o3(Ux{uB;RC&pUq`ow@QeO4x-GdL-b_r6du}xO zw@j|oWmzM-BZOwU9lJ+&hA>!<;pFIVAFG zsc7h&BZSdbO(o;5YO{7?u*qsgvoqKA{; zm-JoHBO$cXo!Be-ZwSNnE1VWhey(TgMbTp+e5bcZk0-xJ>g=?nPbBA+Xmb4Gyn&UX zCzGFF-6DD_gopGK9LjOg8|GT})*gyT3hnky6L>o55|cSO(5gv0vucalza!oJuO-&6Bg*NxRKkUg)?ElJ{7$v6Y{>Bm>jn#uV>Y0kxXc;+e9zUghzG% z=p~u(j$XjU(W05~gZ`BV7-l3NFP;enqsehEi(Z}y6?N_C70Kwu7UB+r?dT%H{NqG;tzD66YRt0b?}(f6}E`$elK_h&tkv-r{fn+Y5A zuRO@3(VLU|)2zhg_!sk!P=3!teTE zv`!}E`XDhmZvJT9Oen5PvkL1*@5qD}`T_Q2|7gAB^{jdV-{D8m`pN4*^|##0KY4;@ z%uYT(*>z5|K_*XLY=gdh=_7vuoEXQim=9zG(ZqD}X#V4aJGGUBy+C4cR>KUBRP0=37>qqq|=J_bOJUQ;gyp~mX zCtLC%_K7B6Z=imeuX1*@S0=2`8={Y9!k_v-=A54%zaXz{Qes<^69KkpE zE|*51%!HrxE*|FT3)17~i$0aSpM$wDNC`gA5dqWklOX#Y%jMNi`#ei3~p zIdAHp`6rJv_s7ZSCAUX@UKSmYJTB_m(Pxv#McpAfFnL_mLpY98qt9i+LcM|;`CD{w zCY;bYKS_E>@;oG(>?j!>nh7`SyLc}jj6Rl(b1E%-omeDeBSJ(w>?Ur8Rn^aotXRooVRHTk*FM|sAg<__I7nmh({(S4%HIeCPBC7PTgKhU2>lb@CKdTTVfuO8Cj^Q4pi zFBna3m*OlFU6u*A>qgP#nb1l1ihhv^FX*w+FEinNy&(Ek@^h;P*l4Hc< z7GcTg>P)DhZ(&2;$8OOz$@x(TErVTNA7v}`<=j8oC^gq#GGU4pxHjKwF5Z#dpSLz#Bop(id zChtF?A7(#3@8e_j+ngEwE%|*wuZ!+Vejm^WqrWG=?xAmOp!Aw}Gzl;8p34iD#(ZiXLXJuk?{KCAN<)cTE=ePQ9w&p|8e=}i# z9v=NK6Q<}{(c_u$rC!fp_;>U~CY;n~f1Px)qad${p3H=5x-OgZLH6Nbj^$L&jwWB{ zGrgAI@t5eStjAXD7)?I^Q9VG9)RXvjH2K5*68#M~^AG;Z z)4xeR|MYAq5>2k3645iV;U-;^_1H3cW;XQHPepTP!%KQ%^sH?7NH2|^oee+g9nsv` za6q5p*~vLG9=}jDZ#IqeZh}sD3G0EE{I%kD`|)uXoo!MvEu6gFeZE$zw$3@@%*| zn(U~++t?&}MK(O7dq=O#hT(dAv_v+{(w{`H%7$ zWkYM-nY}qMS|J-o>xq1i^P&~AVVPdXE&PMWd3y2~9QWjoR?3Frx>U4s^16Iohi#%& zvZ0H9oCBlPl3jWtXYf-li&oEupY(74Z#Ep(Ig;l9aZjFTt>iqRuV%$)?c{wtbYr$< zH}>OTj)>lx4X^3xoX0P?I(l33{waDlPepIfhI5kVAaP$|UJm~1Zp-(Vh@|-ABKO2fglbxklG1?#-8t8kY4YQ%M z?!y7myOZ~U(Cea&vf+1qFxog9awX5L;@8g~ZITVw>hjTM*-%e6kKU8Kzm0w(+B_Rx z)UQQbWW!wjS@hm)_+I}UZJ7-RbvAhp7mu5lmquGh%|1ETjOk01Ii z&gCc3`?F!A-o+z48Eu!mZ%*>uG43eF>!bfm&X@Xb-p6jy2a@x(9u<8sIbZ8J(T>@$ zQhyiilnsCAe|hFl$>qs$^RZ~OYc^EWx3DqWu_qsocF%@UdP1~EHq6mKM0;k#PJMtU zdCunKso9W zeJUI7(_Q&kw14t*pqm%cg(U0(Hj^w!LnB;oUpKwL=rEJ))_eNh%-d`;F9W5UJoaor(`L4b`IxZV- z)(zN(UHKFTMqkN>3Hoi$i@ur-YxJh*>)EhhACJC~4f&Ga4daeWq7#$H2YoZ^MJFZS zzwXKBqi-eeU!&iPPDvim^_u9^Z1_zdj!sJ+mwru5j#r3R@kZVpeK$ET>JIG1XE}zi zM&Hkd*?M7gW^(`2|3+tJ!x_o%yz#jCcqvP&Rx+J+j=zpS1v*GOI zZv^pp1)`rP=V@Ibx-1*&>lV@F$@6;Mi~Tv06ZsBjMZd^~rFtE=MZZj*&*}KLiOg5o zaA7prQ#`sdIX~%YtjiX>Kl*hxJf;V7baYkn`h(mzC3XTx9mKb~N&-O0z3 z9T%|#Z;YK@W&-PoB@~iJZZYqrYaudcBQ*Mt3CVg+CIL9p|$cOS3xbvuSi!@_W7>6y2RX zF6&8rkDqcCzvJfU-fY;Tk1)rd>7IPNDEdcod+6KPl?_ms}nFGkM;m z|Bn8Z{0EJHB_`LyIlM5sFZq2_cZmL-yq}yN9NnJ{Z|LdKgUR1l^s4AT$^A|L6+M&< zr|(Nlj&ol0a5j|CWur&3p^k1G{Wlvr=w5u5FGl~%hIjPb=+Wfw2>M6<&co3Y$=?zF zPE3wpkR@0udNMiB=@#t7?$J}(Fj$Y_^}v{Zjzygc1|_FC^+>s{A(-CT|Pygh%__<-^M#F`rS zS9?C-F`f^gT#JO`1o6Nc_cD8)D;`wi7Ta^$*e^b<#@%GkUlb?RxCiZdr+9FUd%~XM zf8_ZP+F21f$BBn>?wdWIBR-?XU2f0a;$b!JHTL{E@$edVhdtjVPOfoZwC8UbA2R+% zJfg<4eM;V;f8zO>> z#1qL!_I$u!c%DlADI)K9W25nG@uV7ei9L6TC)c=Z?D=Nn2IHOLOKRK}d;Xg72gaX@ z(`ww4_WblGct-AXjV}~mO1$lPj=t8p279yVTYe2dsn<34Q9cZ-cR?wj`feQ`#O z`-43{X*_rj?`N`3O(Y!CjOU6?HSU%6yuvslo>t@DWY6z1-Yru7ebJuT>EP|tJ-|50 zc&KrT@mOQ6@i=3hvC-IMJi|EGxWL$ETx47#vY)Zb*lp}Fju@{tt~Fk7TyMP9xWRb4 zag*^b<7VUC#;qdzgzhzNGu~(1VSLEA)A)#SxA;Ei9yjhW{@pk!mi_%u<7DGe##)g; z9cP?sJk{7_Jj2**oMUVg*%z_MxY&4^v0Ef^J;r|Hka4Z?dgD6dEyfKZ>-cXsZZv+t zxY>BOaf|UD<5uIn#_h%jj5~}E8Fv~VG42*g)W?l`jDI&yA}?#*>Y>KT#-ogw!o77~ z#~G&@Pc=4)^vBLHHXG*{+eH4i$hg>enQ@7+%h)X*KzbYd#RJ(#Z5$B~a_(y5TJd1# zt~ag|Imh7^<9hKKZ2L2A5D!Bi#*N|;&V9hRN#wkRyNsK~XR(jZxJ8`8er@Ac@fh;I zahv#j=k7CZ7hmAq1I8WVi=2DNxKljdxkrq<#Hs9SG42*mL4U?Q;xzWd8(j_03HApV zY2v;5h^E^kO|ZA`{wO0&9rc}aG+`cV#aWaeBTa;NKhUX0s$y^dJyonns!DJF{TW88 zQg7e=9OGQ^OxBqj+r(z{Z(J;%<=kb)CF0rCU&d~6Hu^XAi|3$!=c0e( zIf`&2 z+eIqt2aG$!3(>!Er+5+iH|`QILI1|x;^pYyxJP^?`ZqetiuPq6V4Nf_VSk%(vY2x2 zDB~1yDf&0oifQz3oGNxZcdD^Y%&O52JtMCh;!xZ`>@hU-WL{7LoqOJ;tr#r_sN0 zn@H#AKI3+g{>1~v9pV=BZ`>(<9{n44iR`0%)VN#xZ}e~6Bi@7ljgGcZ`yvl8P7=R} z{*9BxFQI?q6!FXG-&iYt1^pYRiua;_W1aXl^lxkuzmEQm%_933=NRXT^mi5*+r)39 zf8%12{ehPmmx$ZZzp-1qAN?Eq#qXkj>%<4qzj3|zee`eKAhI9u zcH>5I2l_W|5`T#PjhjXG_uXyWBK{ct8@GydZtpd26MusKjoZbaqJQHK@nQ6D+$sJX z{Tp|QkD!0!Zt)lB-?&HoCHgnIr}6wN^lzLb?n3{@$>Oikzj2Dle!XLjwc>Blzj3Pg zDEc?niN8bt#wPLi=-=2Z?neK{x#DB!-`FOyziyFnvG^zSZ(Jfij{c3^;-AsKv0wZP z`ZtbQT!+RH*OODh5n73MgDWQaf=w^ zUK`_9F&=aG8n=lxF?XMFyLbTW#*I6~17q$X<4*CQn0v&yOFWqMU&h_y(^>aq+#?>s zx@V)C#504V1B{czXV9NFP8JV~xuc9z#KU9mSYxd?nf)xrsp1jr-!s;U&tyHUu}M5K z=FTuSi;N%U80U)5VSS{rO`O91Gvi|M=$O0AxI}y|>j#b9;xX)}GWLtdvR>afB0i7% z#f)pk=f~Xj#&zNgSdVI4FV?cZ#kfIyam?Lr+$bK$I&b49@p#s28aIn4pnu~Q@kI1* z+$u8Yyw|u*JPG|9w~HsEf8!4E6!dT0DKc1n#JEd*3Hmqg7N?^lw}%o{j#E>%&7lZ|Het;#pvHSSzL_%jZ?%+(7&-(ycGQ#r;4vY|HeA; zGW2h35-&&p#%6H|`ZvxMQ|RB=CN4$)#>HYM`Zq2SyU@R}TTG*WW52iz{ToNb<>=qI zR>Vkiy>XqGLI1|};tKR{+#p_o{*4>OUi5F=B=(_y<7TlR{TsK4SE7I8R&fCR8@Gvr z=-;?q976xb9pW(hH|`Wyp?~8paW(ok?iQ~?|HeJytI)sE9m4a~=-)U=yaxRnCyTE} z|HdieYtX;3R$PnzjZ?*I(Z8`yd@cGnHi_4ve`B+FJ^DA!6>mWQ#y0Ur^lw}&-h}>* zOGJ!jUB+(lX7q3D7hi||jU(dg(Z6x6h_UT@<2vyT=-;?rT#x>Z8^kxGf8$2+E$H94 zNqj5%H*OYhMgPVv;%(^PxK(@``ZsP9-;Vx`+r z^l#iQehK{>cZgp`|Hhr-SJ1z4mv}GwH|`d{ivEpz#Q#PAM)wS!zlQ#elf-T4-#A(P zI{G(G5${9)##-@P=-)V1{5JYG)`{Oi|HdY9JNh>^i}#~{<6QB(=-=2Teh>W{7mE*| zf8!GILG*9z7Qc`Fjs4;e(7$m++=2d$YsDX;f8#pwN9floH*OFgLjT5%;!n`O zag+E{^l#iOK8*g2Tg08{-?&x$8TvPF6aNqW8@G!;NB_nh;v?waxKsQE`Zw+pe~JE$ zyTxCjf8!o;7y384!+8ER`ZrDze}n#wlf~bnf8!MKQS@)D6@Q2RjZ?+nqkm(a_y_cF zY!Y{)e`B-w82UHP75|9-jcwwe(7$o9_&EAEE)oBX{*B$@U(mm?Uwi`n8%M-F=-;?j z{44r5t`q-;{*CL!C(*xggZOv!Z`>&U1N|E}iT_0Z#?9it(7$nu=;H1k<5rOgj(d&U z!~de!`Lhy8FzDx zbH$_B*I{fEpT#;=<6`mIad(+oRtWQ`i?_>=%!YyCLI<_*~W#8P|%(#NGAA zb>gvccZ+eo_&nCz7&nN|XC0n#qxgcj`+#wiSj)N?<7V-Ntm8Ir5nqJh|Hf|d4D@g87hi_{jU(dA(Z6x6cqaNct`nQlzj3`d8~qzMh;z`taiiFR{*9Z& zbI`wWvv@B0H*OK_q>@5wQ#X8`p}<(Z6w> z*p2>;>%|QEH*OGDpnu~=aV7dUZW4RZzj3p8CHgmR5eLw}ajQ6p{*BwjA@pzDE)JuA z;|_5Z`Zw+rSEGO9E^!3?8+VIq(7$nycoq6LI_9di&i?@8B=KtWZ=5V%gZ_=)mF{*5Ez8_~aUt@tMNZ(Jv?NB_q4;+xUGafA34^l#iKz7_o&H;K2Rf8%EH zHuP`YBEAj%8@GyYNB_oc;s*3@+%CQY{Tp|P??nH`o#MODzj2p%JNh^77T=BjjeErR zpnsz~lIQoLf8!)^Ble5y zzj3|zIrMMbAZ|hb#*O0V(Z6w%cn|tFZWh0U{*7D2t?1vlRs0|HZ`>xbPW?XPcJV9d z-?&4(7yTP|ieE+l#$Dq7qJQIV@oVVcxJTTE{*CS^p1+R%jg!Q0pnv0J@tf%1I7Pe< z{Tpk=Z=rwVRPo#B-&iMp2mKqH#O>(c*eu?U{*80R@1lQWoA^ESZ(J-sfc}k3#0Sy8 zv0MB;`ZxBAKS2M+5%EXp-?&!%G5R;I6CXnV#`WUE=-;?O+=>2;8^xcaf8!?c5%h1| zEdC1p8@GtN(7$o3_-piU+$R18{TsK7zeWGX9pa3peakI#}=(~+u#6xS`J;tpf>!R;9 zZWCD-eV=i=$hznUj61~1HSQtfPLXxcj~I7}tb=~kxLai1^W(-nBI}(0ZgkJ)nRU$v z7$=ESSWj)7EV6$2DB~3ISk757){3lOKF&B*Wc~7~#yXL8%Z-x< zSLD9%1;#d!by<=)wn@qUGnY5jUwxiKVaM>)}epnW|8&AcN@2ejp*OFRpj3DdyU&f)*s(z z+%B^2_yOY%u?hVfcZ%GH{)lmx$hzZ4jk`teL4Vxn_=_EJkgJ99xO2@SYk|5%)`VOy zGBhqzk-p-i;`5!G9D_5RYZ99{Us{~y+=zIZa~s6do!cUw!MX(T<*YA2R{TuX z1&Gbe=Zj}CFE5_W{JMA!>mtN+aVO5j9qZKMt*kE)=dn&eoKJYg1%y{TkNJ0TA?ql_ z^Kmb>;hwm~7vWyK5clHcxEEiEdok&p)@{X?5MMDxe8q0oL69c#9>OiIB-~;z;THP{ zx40_1z9+t#bsBmeaZc-O;;bt>mUR|!){~tfzAC$JC4M#Q5A?j&xsBqrgj;+q;TErR zZW8nJ@#~$ND&FAST=B;2x`y~o+4TwWb=h?W@mrkJI)V6l=QQ6Re=~YwemDLW=jz0_ zI@c!N>Ri8gn{(^Mw>h_2e7kd+SB}4jaEtGCu9iFy-$?!t?{IF3_(A8^igyxj@k7pS z6*oDzQ~ZQ;j(Mf{r*SXdjeBtm?nTxqtrc0Hv{C$T+>7_%USu7TV_qWuMcj*DCf?## zoa+|9#yQj?c|-Fn@voEK;x`Dl_-*H=916cf{uH;9KgIjWpW=5}w;_Iyd?r4?IvVjo z*29S3M_=Um_z%#RxC4EOtmnB}WF61#;*W7JK7@Ob^*VnSe~NqTYVn`rUVH@i;xBM7 z{u1}%uh6%+3w?{fM&F0S-=J^tx5Qg~lz5B3Bi`cgiMRL%@~OBReT$Ew@5%6w=v({~ z`W7EY-{POqxA+(IEj~eh5ue1p_;=h>#^bDOsT2Q+dy#c4{i5UCQ8C6jv|^m|xWt;6 z+btfz`CE)9;s?fDop^A}wTVxUxqk5w+>3|eUVH}b#lvtf9*+AXA(cy=cm(dnXX0Kw z68GYBa4$~5y?8Y4#pmMwD0mF+#ba?VJ`eZe^Kmb}0QcgHaW5W+d+~VOKMS6Kd+|i< z&Eiz-#^OoXf5nrrr@&_1i)Z0pY{9*F4(`Qs zu}_P0nP(7NnJ*CMVfQ~8F2sH>p3iw$Vq460ix+UNs@TqXQ({NVZ4(!9&X#y#%uRYO zyomFS#fxz-F2=oh3GT&9aWB3C_u^%^7nk7v7?{GnxD@wdC+@{A+>2@4i_35?F2}vt zjr(I^2KV9$+>5=q7yEE8_Tyf>68GW&dJ_j@Zp!oE5a+~+!!fs5T*dr=colYj@m0*% zh*vZ3B3?tfKOerDbQfR4{Drudc?j`Z<`cx%B3HZ)x#IPNTfBk!l^4JpnI{o%BEO33 z$gkqfaM!{&Gmj#^h5RPI6@81hl3&Ez$S>mCkSo5O^m-xO zKzfPqAiczQl3wC_kSo3yx#C9Tig%D+;+^F47r_saUg9RwOZ+hDC4PkT5Vb85 zuXqpc#V_Dq{37nfFC$m{3iDOR!+S|D@vEel_`if({2JjFw~=1reUvZpTQTQOfZs;X z;&;%qxE(!<_oHX=yOb~Sdz3Hn0n%H1kn}zgexLLfe?WSRJD8smf5<$O_#@_v#2+*7 zCqBgdo%j>-$yE4L>Lu}E@`<>Ud?Nk~eTn~vzQmuSFYyu5P5cGnJ_-I3x#F*IC+@2)gn2jLd~iCpnt$QAj|JtCdThr|Qp&bH>!!L!;W?U;ihw-U61v`UyblhzepBr~u#bY?1Lp+vocO85l z<7e^tjDy7&5N@%SaEmX*z97B`JAwFO#`ofJggXI`C*0x*gj+lj`-eCcJBD}?_6YH0 z>=&tbp0cy8P+7U#y@h`0bdi+CRT78jy#@qE%< zY$M&K!wceWuGr3b4PpoTro~0*Tf7i`ix;79@nZI6&wz_L2SdCB_u{3v7hi#U@iN?t zm*ZYc;a*&d`vGq@L5;$FNG_u>HV#X;OR!6DLJ97b>AD)c6#T(JLcoX^-*P-vz;LXStUx!@r^|%*r z!M*qfF~|yOMDCZ65oox#9PsqcpLf>--f=#x1%p{1K~aczJqX! z?U1BWpE?s5sDumpNb#Ey?7_?#gE`#{5bB#PvBnM zjQf|vPm)i?Pmxc>Pm@o@yW?(y_?fudB7TS};I|34_#M() z+#Yvp#rw%$;&;hk;`hj3;sb>HZ1^DgQ~W;ZE&ho7DgK!JDL#yQ@#lnF{1xFAcacwK z!(S6_@i&B9{4L=YAEjK2zeCUB?@2H54{-+Aa5s7uAEO=?{}^{m#6QK|TJdq}L-Ehl zhvHvwFFt|$7PtrZ;$Lwu{sZ?ScE7dazv6DAh+S{1cmVtIMeKN!&VktPP8G4+EfBHS z^@!N%ZV_dl6S2$PCt{C#RKyN<=(!O4+o>XUw*?~hwjL2X+btsYw7W#?X!nWO&mI-A zlN~x2VjnwI#4ff-#2z*xVh7tG*0S$i#O}32#NM?>#LhLP6&}aFb`iVQVi9}Rh=?6) zgNXfVi-_H7hlqV@kBD7r$~>rj@gjDo#Ul2m5fMAn1`+$x77@GBLn8L1zl*c5>&=JQ zkD5j7MoUE0@_KRdL2jdXkaHgvpT;;;e7bWFiia=`7Z1b6v;ZE?cvgI-a|!WC#^d6% zoJ)z%#{MEsaqbP`(Tq>UW1RcEcr4><@deKPLab$+d>(v}b4Q3TcCJx8-no~FCpfo6 zoa$UgJPA9Ac#3nkiKk+h5^1ylN2CqjCDIl?Ce}N5)Ivzx@;s5YVvb1OK2Ic%_KO!d zw?=Hojv-z|dWaX39^xgWhxiKY0^(BV4m=-rk{)83^bnU}PZBfET`sO5J;Z*}L%fpo z5C=&QaR@t!c#U(v7GI5hstw-k+_S{jVfPT<;M`f_8=dPGH#m2t_zvuI;=7!?L%iL& zZQ}c!yI*|2bB~K3cJ3eIN1UrAuJOB^J4yVQb8X^g=PnUHiCshdjB_`LpT&+Qe#yB{ zid(VIi1#}86Y;CgInpftP3I04@5A08KJ45q@n`ri?!kZYulO$>#Cg=>)97c5N5$O7 z#Angp6>DSehvEzAKZ<8??sErx8U0A{Z0^$#XVZ@r=f~XT;sVA?;^o}yBfgS;xOfHU z(ThEdBgEC5k1vkUpI-#u!2LGj8|mMQ?~1vXiMKQE7T+Ip8Sw-7FMb~X#s9*8@k{tG zZpDA`>-aBzgYo!)5oEs!QNjo7r&ifE!HEx^8{K);{ zk=VsW<~#l&9!>p6*^OiWKVCeg#?2M6=U*TuIOl`9FGhX1(&+6A#x`>CF(|LX87M!ol1k^0VCFF1{1(cwHNoO_Mf=-l^_6`SeYlVX!| z#~@St_fHq;<0Zw@sozBUUY{4~3&~!mefj?oo1HuPNJw8}zIZnEtw=rjU*b8={Ys=w zJnASo*SYCpt8*RVJm-4F`Oe)WE^zLB;(4T#xDdOjNFArN(Ej-6iWg9iJqIo#T}ATr z$3*hpDWsM5y?^Csc)4>w6JLqWo(q%IU*Zz#aWREI;!@`x7O9VKA&s?f{Uc(=xuvAF z_NiYdu5|8$VlQ@Iv5#~V`<X74drKektDI+`q&di4VHh{_o}DI_K7k zH#_$`@fO<26W|*N$BA&gbFUQNjKAVrXcxt|($0vtI`=K{Hs}5-zRkI3lc%&lyH(ua z+&jc~F+U={$GO8!g6}2YiyLXz#XFpPwfH{gu00ukkakkMllE8q5a}dtA|Hw$#@ID3@bMFzqL-`Q5 z(@zoackXZEcPZEP@O!jt;sdm6;)9eE@%yBU_ygzOCGK$UGvW`O`;Pb{=YB8#*tw@Q zz=tq5ia&9#LHwz6=ZX*0Ul4!p+@0bhlt1wo&V5__C3+Hn<=oMYaF=s4#a}yjvG^P3 zhQ;5KKgCDs$B4fpe~P~+AB(%0|C$aTbM74RkJNACpGXh!anecrGwr|l7w5hxK0*B? z?jb#Az$aM)Y;xn;hiAQ3` zng!`^+$ugN<~}7(q2D1M%{^Y?bCGu%Jcj#%#A9P_q4+%PgyQpK?ke#G_#@I^xmSEK z_hyL45#!V0@!Y#4p1^%i;)&S3#HrXf#gn*KO+1-<6~$9x?vLWB^h?fwFX5gIaaznZ zi!Y72YsEV5gA@~lTdXIY#D`_9Da*f+%)F}GBl$-O9I6Zesbv$zjNJT2xP z6i??qF_He(g)fI^axbLVOnAk!2(L*0>z85+@jMfr!#y$LxiQx+&c!Y%wsP;FIFI`^ zMEYqp&2VANy+}NtbQRn9Uc4aYZWP;N?hdg7d!o1qJ&G4%M-?yPKE|`)#oUJ@E{?g` z;w8jWyp(u~uOOb{W!&E>(l2Z{8!m~t3&d2+^@&TdpNgHNhuB4Wh-vKe;xgpThReA} zRP5${3o(P;T3o@sRpJ#f_a3pA{3rHtPnp;sbAJ=B#O^%@4v_D}LF}yJ5cj=^!`!pd z0$0%wJqOZH{jPWw@fKf2IL?Jv$6T#=P0YPpd^L7*@ij5`3vn%anG3Ha|B0`qyolFP z-o)!;?k4dD`rYD<-1i~g#JyGGI`UsDygBBcFTRfWim#`?E#88iUZmf=SzJ#(od@5H z9PuqNmlod|bMF&xMUUcbG4~VkZ87((`S9&AH$&XO{b%AkuqTV}jJfxV@1h?qzK3*M z0N;!L#Es+|@ealj;`<4|cqjKGiXYS;J{+^%v)RpcW_^r_`{exPy7+{OyZB3_YfcAeqiw@+z%=KlzQu8_;Ab(iaV(<#h;P? z#s6b|MEp7RiTDWlVKMwg%)LeYCHKFGzasyOy9mc6@Yme?BmRba1jXM{uZoYx-0Q^O zp(pY8G56o%AE-aX-IQnXG1Bi+_(%K^|3o;&#~DY8e~!6Vi+>@U;uGW#aZk+sR{SgF z@D=cHxEG%!J;cA0p5i~K2gH9;4_^lV#duO=yDy0c#obTD zr^Vfq;-t7cCJ7IYyO)VikGrMfA`_zdidOWeKR zmv}Pgh>NE%jujb4e@1*M_F=J(@QMk>t!Y@#xxiur<4UoS`$j~@+y5mtaet0Di*sd{ z!P7WTRy;lK&KA#Ld@jB$?gqq{Gj0~o#6B!G$KBt=+1Q1b!#T_si7jz=k$4X0I*aFG zUlr#PUy`6B6f!>d*GGW)x`nMdlv_}_d*O&T#Wmb}Bwoe2=;Ev5?&4l}b=-YZye95m-UnYDcQ=dIavzU)J@*EP zH(-D1hd0LEDdJ7US6qkvLcBTdt`c9zeHr5GyPX^%II1gETJLON@!1v-i;_hMbos_RZ_^!CC z7jMT-FTOkOR*3H*-;3|%++uNK+>;)gg#UHl085wYJ~ zJPbchz7{`$zv5=?eP(;RyPWS*u$ zti|ppzL5DJk$IXM#TVDO4~fjvd{sQ2`6rQin!kuAvR?W|$UIGx$UMzOB6h_sBJ(vr z6q&DiQe?j7h?^jG#>c@l!n{FiLBm zAO0lKcrj{74=tcl=rAJNtTHJyX4oJ_H<`Dvnt(15CaOYN6!=#@YT4kZUExjm_+>7Jzbdnk95 z_%5d#|Myf^*C;;ZzR0;99A3)Hf%M>DGWTOB01+Q0FYOqbHIyD$ndzkju5#15(o2Vz zCsRw84)Bz`w5z9$mpL&78FFTFPTI;^dbYGZFpF~1m+a)C;<6wzw@p`a(KO0^d1h{j}V$BZQTw*tw2 zDpoIWZ1RfJeP7A-*skD_fr1`&Ls81oL4>Lxss$9Id@1CKQWALp~OJ zBlr{Ke>mLJ7v=j?t-Z_oCOqL2%s^|^rDJ+BIgsve>6o5unNIUa zyIZmzRbOY{$<3uzl-Rb2u2?m}uiT$ef)ml`l>oE7F0c zX&=XVyppSFKdOpiPEaK^{Wv95R3k^r7(It1l6211zTS2|m7GRjN!45yPrYx?a? z@i3s0ZfMJz7P__?A0+GR12S^sLq?qo>29@loUOh>OI7u4n@ZPy9)q$fQ21$cJPpXA z;Az2&6=U?AUb5qDrKXpjf#Fst{wuOwuj-O>Ux#MjCXHf8POK(#&rE8l%fPm!Wxq<_ zeG#RnT1hL2Bt6Ie$~$#AZQ-)9hi+kO$2rt73p@Bhue>heeBPnX?B9N_)TcfP%4Pxu zFM&k^C0XfGzc@88p4LNN78X{thraSEory}l(Lr@}-F_5ke>@az*Q-xt1{bDR2gZFZ zBiIUq1E~@YXD}p654DzXjfKjF^fS(4YkTe`=Y!~MMqNwp{pd7pOSFZ4fkfSgD3lkvV;4A zsCgl(u3-;nfHC%3%jw#>aIMOh*>-3}asQ1MEqpf6*HQUpvp}PG^>P z7u3eNwo>DsA`4M6-IHFa8YR$&r&U{!Nn}%wu>f{b!E-5#?^cD)^13SgpjXyanHA`&c!q-s&L|blviV^xTN0{L|HO%}NU6~c zpY&T%K!Vl1*U$7^7Iaxk4{ypSuCk=tPXj-C!iTN@*|ex*$QNoTNB53IFJp=f>PYG- zsBFXf^4?TZ6V?~kgnnVDG8RRNQgJwn%VL${+tw_|)X`aqbY4MzEbD%B9j+Lk^l>_G z8?6H~zR=~pFYdCG@ptqzt2m1Ui-4*rn++`^yaI(kwbBDg8tR{wiPz|f8Xo_95iO|G ztB$%qc~T~X6{P%A9mLTSQ3*7*>5uWH$b`xpJ$jx3s_P((FP;-CxP(P+zqQFU6b+$s ziqc?aXt=*8o$N`cmbETeQRl69thN*9HG;mdf<*GIriH7F5_JUZtnA{$;1E9-K7YAS z#Bz>$>?oOD=B_ebEI&-La4=^(94zZs^>t8SE`BuW1(DB1r@FrJbZ^0_;uP&`X=_;Z zQO!;)ME8>`vKJ-lvPL`^CuvQcW%c~#t&$~2_AVdlPNoM2 z`s71F7CTyp&Xp|p_0|bWA&r@%7p=2Ze{UkQj6kVz0m4qjyA+0OabF{cIJGH(aMP^ z9_CD_-=Y3~S>N+Hc>0AynV!K}eZ3t+sR6nRrE{v^buBZCH+K78Fm)$zPO@|~_Jb+O z(t*nj56Yx*^`(S%KRigv&yFb((C1mu!oft#QmkR8zm~G(#FdM6KKE*7e9Xu#wY=-B&{bp&qf9J#}wL!|uM~q{%6@cq3MX34&3imMBN~l271q zd6N%JB^~&Rf-^pkN(ZR=(ia>JR27B2Ejl0Ry)hW6D9Zbb;M_Q+#Bvo>5gH0r6TzIE zO2$Lu6Hw8hsI-WD=BUc7P5pZn+u}>sLJeB4s$N8y<#N-Prk7`WOM2l~@e|{VSJ(== z1pBm)Bk?FBys*0LlDi61C>%HMO(k>M!EB!$qk0P)qr+N}0W~_z`G&<;>%T#ub7jOg z=U1PsK`T!AY(KUg5@G!jMq5mz9q^u9y|TqbGi))@Xj*zILy=2%FAx;dI&VExb^WFm z^?xczknE-sZ&@!kK5r51{1qK@w1kxD^YSWt>W3jKR~A>J^ULn?Z=x%?K<9Rpa#qxS z1;59>mebJmmBS1$XAJjx$CY@~B}KnA+Aq1i;?Y|i5>4I~hlS~M*P_1m^fI2h6*hnP zTEf+I?Wibn5*+H}tDWj{4^?(%(Cc#t1C#eP&}mrH(!{R#Pyln|E5qLYMLa-Kxz!0O@_>1n=XWp~+X z;cT@lox^SEc>6+;LC)vW{jw{R3v=mgQ*n_BrD&iVRDqn_Xle|jwy}6y)W~T|VxZ#4 zPKb@kzlz3WIUl17$G+)#>{4y1@j*Ch4_Vx{F)lhc6e)N9Egp|~(Bv(^*$0w+g(mYNH6_xJ_ zWaM+?e!DJYCK)u%;gBVY?SxHxHPWXjCB)iC?<|en$r+kb(Ux>h9~|a9(q#pXa|!D= zt)m!^RQ-5kJ5NS1t|6biqV(@(KpI#4s;@l8zY4FUUiS0eQ#iqc6@4gEjg~!`zxNN5 zDO1^7*LNJAg#z~PncK&dT>o)VtU!rRWsx4Ia`yY6m$CwuUZ~Mk#!^(uw{WfnOll?z?9>vJZy%RQb|Q{`f}e=nOV7xHTLGSPV`ziuiUT7Q(8Z@o1jnwW)C;q=H= zgzAbHo!gK#5Csic(KaknBwz~&?4i?%qBA%=zK;{pORnyZkQ;R*X9<4-sWd*1$|gix z)M@G^LR8+P>T^$U4aGhd9WX_ekUWYSs*m;PqRXduHDl`%ajZ~KC1dMxN~maTU6l+e zirOZ32;)TCh;=LmGRo{o4;+qJO$-zPe@U`G9LTOUjT|Ajc)L6pYco6G5o(AlJXg$Fv8P;1#FQ23%(vUuvL zrW2roUX)o&pZ8I!pHMz8?*F0QM^hA?)O97hSiXTTtdFth%Hp10aLvdlhXT~V54RTQ-&S&G&%Gl3>oU1PUiI(ca7wE)AB~DJ#z9}qGLCEXpsS874GEg+1 z^0i!kO8G<5=#@n?hx@fX->ZN8Fa5IsM!DyyEqi}Oa55oU#;k$tI;TP@qc7aznv>Ro zfcZ{}dg)rUmHT#FW@vh6I(k%x74&ufXI9B-)W;Ra>T8m5SI*_bp05V>%WArO;B)my z1^ZDnK^~Ps^9e8xPx1k&WG70gpyYk2YSsPd-WCV0`dk?_&5SO0Z*24^CAG9ZtB-A< zH7_MLue+kiR%4E-UPw_TAGv609KKg%hAHKLUNe6GDr$ux4QndcI_6!CVTGaZNw8fD zcvMyKYAo-mAEyb)WfjV*CU1?^>q>IenEk9MA4U3_FK1-4DC_;+F@?>p_YU&GmNyow zzVgC^hR4fX1U)n037v0u+;iCk8}Q7Vq^>dsbI zx8Nwy64vDGhrY=HuHYE`~>~K7CzE{w9%(^b$a27Q$ zCBslIiPR<)toX=Yu~L|B`GAjU09V43fPzBOy(Y4t8(49p>2FFUzj?Q>lu7?edc9?w zSGOrM>tT6~R%MGR6H>p@tvC^bHM6(HH_+25Bd0h+PoTW=3071DCQxoFfd0`5zdS_I6#72&YU`!W8Ft&zpkgC%T!MQ>SK1sTXLhI00cb z6Dw@wOzXbNh`S*}U*z%`zx1Y8v-U2N$!*2Z=C~aZEsvT+@mvzBW0EU zeCgoew3W$JXJ;R&7>Gl_)gVSi??)Zq%{DTJm2o7MMD9o?`!JGR-qW`<)x*Zs0nTdY zZ9eG&9?3YlQa^@DbJRz<_-aRN=kS2HgDrdKoST*nc28<>D0xM1-|AjJ!3%%yOm%jr zyOM)zdOI^5Y`s)RYq0e`)0_0a%L(E5rKC+SCzlQMt;~KL{!W4M{R?@bAH6xz$Y1<8 zWb;NKi8_1w2GhAHhJWr(^)3(po=t-A*V!E5zYis~Tmtm;rMfH?BNSBdYt9W5 z_Z)GZ_7mSrw=2?X1|vKu{b@EHgTqTx+4}(k38VDPy$!{r;8*#=?Wk#F=Yp5g<*wdk z?olBs_*HJY(o2VzCnxOF$KbZaBb1$S!2zk*Q=$ocsMb}M8?9&8|KItg=i6UO;U2C~-y@rBHX)t?2bTC%_ zo8<$2!~KpV>jKGh7o30gSqrdF4lhl%Ca+5M_9avOnQ5K<{cdG?W#`KNtQXnj&h#$p z3wkN_4Gfb~UCFLgn!5u6KNkI9m6GPORU@WHI@A5CKCQOmfSlmVd?q1dcBXm*b%R1q zQxlM6wWGH+pL#t)WuY%}dC>B;mbjF0ANf_zk3j8M&XdT`Ncf>t=M~A$?kkeZQW*lD z^EO}Pl3te6@kSAGi~KB`+Wo^6{#6-{3QzTr&eCW98i~qQ(AmmCm9Cq{KK%5wa~EFt z5-&J`Pz2lj#0+mef-X5$3z!)i)Y9|7NI|2>L|s?fK1;W>GkemuW-6k*XU0q5ln`q|bLO5F;fq{Bv=DPZ5q5Xg-snff-jm0}Wrft<2ylSAcThc4m zb7YqHGV)nb(nsvZJ(;Bxzd&fpIw0ugzz=*&Y2Qavp!%EzitrTJSt_&vC3F_LYm=Kw z6&T?*sOsvvi1aVj)oE#)ub_lF(2;X}8kvL+|Do%f^&?j@3j#Morr$^4**Mci$!3quPsXj@0C!e41t z+u!4{*YcPmUePEqm$l47)6&wEt617QW|zz?qc#o|B>gx7S&%6d&bE%TONKR2Z%t&V za{1Ykt{_Zp9cN8&My)utDhXGpf}BvRREgCDRITk8pG(z0eh?yTrU?$J_ilmE(g?=7 zI#!~!js6FTGArGiT1w-cS=PFE&}-WnwbP=~@Gt8dSe+W^%HNK$h{YY#?L4QJ#-TO+ z=@w1W&Ky-$PjT3)uP4S-2~gVxOTU*a`%ZL0`DsTfZ5=a8W|pEdT~Rdsf>GS0OdnPK z6E3Z~R2^-Wx45-zXSa77mp+v$aidn^If2FVw0lufXr6V#WrZ36yTZOOUyPb~MP0|4 zTI|QkPU=2#_#SCqvXYIc;mTE+o@bFcCXg?4sw#2XU}5CivLURrA61p-6^A&Kxe986 zYJ*ylua$=}oGm9Nl$H5AS~yE&>G1?{3|>ZtZq&*}=7V5!Q(v;4%I!_ZoS8k2F>6O` zUD3h-T9!v$ciCR9$SF1zH4;GsNAYZ1W~8N@jL}L7VF(o1>;avXdRd&C$K_Wj&z1Hq zsM`Fh+j89@RzKzrdSvoMDOTQ-2~myK%9RtFoA#^z)RYRnYtfyKq@M2xh`2r?<>o6#Cm{3Z8Rg+Rh+P4 zA0{Tp70JX*WK+T=t{zR0ffn>FUyxqK!S$Iysqn1#{(M*9y>G|1nXtew0V{C$#{$c9 z_-AiUGu?#|f2c1fG;2Z5o+XLJzOy?Z%)1I0!}S2Ob`hqR!k;xkf&>|xz0Y$+-;a!J ztO3u1w)Uc*0#ibsWj5eSRleqzB7&3uDJNR~Ci|9|i`?t%9@*lzq(l#sPFyd=)z(}p zyE4=33CcMOByTc1eHRgmsE=|!D2RcH$t3pmY*+#@^sMy}9@~5Qm7S#N$@HdO^1|NL z8ScbtPY({SwB${9Gj*EspS-@P1TV`lo#MR?b^Z!|#;!fsXNGa>$}UKEag%P#2$QzV z$~jHq1VfzWj#4jPQNa%Um`evn^u1}u^W;M%M})J`7df|HScg#&6Wyua&M3#>PYPUT zZ+)N`l=mU@S#L(ta$c!b=qIbL?i=Weh(Y1co))sncntm0nvE2y}sEywNVh_UDS)WarPl>uYK6%#Vl? zb!TPQIIzJRtI&$Jz;81z99q_NcHf8$@qyR5=CRmhKZC^AG)sGD`+UC7#UvOwt#ygG z-kgzIL_${TFj7(|blG(>8WffYTXh{0wnokA#qb#Rws2`qb~;1bl$aP#^z<#ybY_?4 z6#P&)IX*j)^_MDtD7Dm08(g!}V`w~^>z8}AnO3~WKG!!;G*38@-IB1qnuy2%OgMuI zDX~7aetKW;ob)P+a2wgCzk47xm~KyBIZV)7+Kar%=Qsu#-tk)lndRLyJl-MZbivX(Qep2WLdAXZa19X9T=6U-+GB2LuWD}`0WZ)-DCnbUWZV&}XoTh` zH<=)p&e-L>f`N&Cd`Uaj5Cjq|8-~(pl<;!xxI#aB@5w4<{%(<}(69TL6G3yMWuCp3%uiKFqSR1rSVEnLQSH4- z?#SX42!aY!X|-fqqH(E3M(14d<$>bMnzibSulx&yUp|%&f3{94C$Eh0kQt(6|L|Zp z<5gA=4)*k|X52Z{-71miD*|P^h~x1%*ssp@V|@=5+ls33pzXWZuwE)|*-F0h*zK#p zluePS**%Wu^14*s`h~t;&LYdMVVI}$0wsy43YyK+A%>O@WQCzi2 z`yY^7{l%XC6>};SW%p}WoL1-m$7aKQmS&OpOQl~cT(oxrqq!FACb?s6CCl&@Wa?Tx zGl6H6T-DOzwPs`VMLD3le#AtGUlH^qQ(Y9wSCPT)kK$U;6ZRrs-8^l*-TO<+k~PS+ zv@FOZa{B0KNmdt|@YOow2xKtwUf<6`8%%XsYN`vW0v6e#dLiEH=cH$oo4!5SzkU9A zViB16SI{Rai})s-Towt2c(m}U>*Mtwun4D?wJumu*W&dzsx7QCCz4Rq=hZ2jlZ=A7 zsbUrTiBMELCMXyrZ9%DPs4{j$CwFF7P)p>i`s%$5jpY?&slFKyR z&BRTrr`7A!wwIZtAW=2I^!lz|*Eqi*T-^#~A^&HuL(R*MxpX5k*uA}9Lnmy|f##IL z`N{VAB`pX45h+(L`eow2Z;oV`k?9>w4-6@9PQ;aGj8RoVhI2z}QVlDaL4Qo_b+nb5 z+v{Zuq{d=ejHdBjhV>)bKIs)7KNA(aBqw{@5xn(`tz+LA7OV=h4J+acwuo`8re4|R zs#&?Cf1+YKHy=|kk|7&k`bvx7K99^O7g4#r9K`em^&{7Sa2m`~-SCjS2tFFOJEXSQ}TeQm0iNo_!vDTEJP! zd{v^-w_vHv*9)m8Tlvka3|r1ubY~237Qm{s))J;U7Nj%X$~LR)=Bo4At{D-rS$2#> z-?Bj6wAU&>dVcc>F_pXjhrPd@7Jk%_6`B1eHiVdhdgQop&4_qO94>=XGV5$|4qN>+pL66VW-T zSUW+j=SJFcU7&u7L#|Kb6@;=8sJ3l+N&=lL5yg8&ywL2$?$&7K84HD0q-+qwRNV&5X>O!rj2CRkRwN_0GxR-p*At zQ8Z2+b7;P78?dZS)>ySi$1Pt+1%}azML~)3qE(Q)yf>9psJ>-FqYnlemDM`uM73Ui z_q^0-cN~GNuwG#}ogFK6D1c>amHj13Vy+)oX2e#pk|#d>_S4|)^R6oU_nQJ; zRn2hvT~$p>s#oj>g`xqLXq36?|Y^kAzFGr@eU zb4}=h&c*C( zPLE9w@Gl*7=r4NWm`OD{k;z+8Uf7GlXAoFf1f=OQ+cC1yi!87EW!EKJ$4Dh*E4=+Y z?2+l+%TB1O%Oy3*((IHGnQrxf%^7*MV7Us-KiDcYn4O!qHGtK(;|1+C%XbJ@i2~#s zx1WMRkvclnS4^`1))V?%J&`?J*gqt!bq#+JO_ds}1~pdfe_xeh2drwEg6hU=w$#PR zwn~EoGtK1Cx+sxcr2FKuKlJr2(5AgoQvzE`6jYu zRnByw-)3vtx}AgYN;QOKSJ-)ZxH=0)nDYyACmLfT=Uu?E=NZkdPA=>eGN!6aQlzOGCByH!?WN;I8py`E z18qpQq0I8(zG1IE$o6{JqrHklCbR#|2PZds7&*zN_!q{i(j-y!nVph4D-ii8Y2FHm zDkqmhnkW?e6lP`)YHBB~BNE!W?BnVLj6TgI(ZT5Fvt4xx^^dFb)~1xc3Dqkd$@9`f zsk2k;`R0U89eM4Y(eCXt;3x^52hR~6*#lxYfIPjrwUf3g&`h;(7fp+IN@we`)|LG| zty)<%KRPw{!Gxbzk5Ce9!cXHe&tj=>W+=IIcp2+Eyy~L5a0KrlrKqh~fo38K zg16w9Ybm#Znx%Q)bfPKRewPe1vHrs5(AeTt^ z6|Y*drsVm0kBspTZ{HZ*#rimdFdXh+sU~j_RzO1b-@IJR2vxT@&i2WDjKV zGL%0A$u;Fgoe1AnQ`tg9>)y{SS!OCZ&!?iMAz(*uTA3Qj-n&8q?px6bZ%k^^rTu7o zt5!W)*h1+oTSMMzH=YrI`ksouFCzNZr$imME~VFW^fS*!pvv7iSf_fRc%WMsY|XOE z!|0HXDz(9r+Rpak%&K(PL<)|q5^csQss}lqi6h1!zJ)DsH)}|G2@n~M=tg3Ug{r8F zr__!V=J!aduZ9BGf+}CGOkKf2UhF`?W>r$EX0!J~_fB(H{&8@2)Ir%$?2Ri!ONXJX z^=_|Rn_4<7dp|GC${iZQ>XG7%upc$jP3)!$g)i5#>CP^11DBoFnM^GsYuobs@(b*> zWoJ6YuB_T8z<plOMjm@;Q|1v`0q06)UpV@WSs3 zQ#5Y^oKH5O!u9-&)Bw|&Bisc-KJmUP_aUuL(T9F0bJ7F#-Kb4=pcW0rxU65HM!PCc z!p(M(H<2k-+`Anuf@GvXa%AnF(VbaEKdO4lCB@zqJ+{~ut6*P5b9^$#7{5^N*e5X@ zr_@kMwEDfG>b+#86=Zbd$X0$y} z=01!*gVYO%JC|4q=zzR7& zuf}Fol&o;hsU*k^6StJKWQ6_YnA(V&o&KinEUZa*VVynsQZ~sI|+$)oEsmeM}|COTXsx4HX9*b`xfoks2f!br?0IF zh{;Lk7)aKj+vwCAxQ0T|(dhN|%8AK#qtGw@`rS0t>-DO<0dwgPHgHXjcYMj%od)_B zYg%UImpiV>o{fr@)h8{PHUZ~^e8Lw0`Qv0&+p9=~K)_TO>^K!~-zj~1c02OTsxgMO zqT!GqkYEVNF!Q`jGiH$!wKmcZRb|OTidAwvDFYEwF?c%Zs3|(?+LejS6aKW7AL&xL z!aGnvxk86XY0HOqQh(W8ykEzoQuTQkW-RPjkUL!V-y!O%G4hp8pllauQ5mVs1mXU# z<5448y_)w?+Ei3u`h~Qx&Sqj^9{uHP@qZJ%Kwhu2{%XqokrUI)u$aZ_rAJRfmNo41s9 zls?janU30vK2@8o=yB}l6+~l%Ud>Q$_7?+8gkC?s|&O$TX93^ z_EPtiQ~$iF6$)q8Xy+{-QfhEjSXX*kYPg5-N-xVghf>R1yp9UHzRGm7qaqy6w-PXc zEB{pn@G`e{uS78qHE!SFmEImrV#yQywGX1w%+m|O-MzDcC z#4ozYzwA2Em<`;5%-~R(&G-n;1#(eGxvzAEu_BZAw6*l-o=DkNJ4Z%ROEaqyIzDDF zqsy8H*_+E0C(YTiz7}peC2YYDy_T!^s{(UgqG=JQGz_LXwPd;#U$VE-=H|u{p?QsH zOJ_Cy1kH-|i8lHT+{_yYPJ2oh{&ki&Da#TA>hHuDvfrL9eLs%8xiJ3zT2{D@xkRf)La|pji)GuP~9C$PHpD z>*emHPy{laR8=s3vWpsv^}#r3RjP-vTCV3izI+&x>*X0=h$^M*(6y4DnV*X&K%T)l zl*1<^@Z(fn#bIE0o$6Ypi`kU|rADyhNUq`>uf0Fznrqo%7wMR|#B_h?&3e*QW{B}R zBZkEEu8g*~>G)!=HBot~pRqL4mEpql>{goGwsmjJR3hh;zr|>xBRt0Ok+zTEM8_;B zBxtiM%~pagW{tB4&@0l6Y;8EsQKfu9CxnHzgIu_f;`Ak%=ykwXi`w7ieSKZY0g9B) ze$FOabX%0G>i&Q7L^iICz04o(HzkE!5Zt%Ro(qPFY#;0F@24}B>FpoR&UJcM8z?W> zxh1+WJG&c5Utv2+Ug^(#wNj8zz6Zu!rEapcq z-q6oGyf1uuyXwQN8b^si8M{oddJY9+9Px}ke4K><^0V5gWQRSG7GW=_l{DYM2z!>d za3nEP(n#?>Z2Zw^e|%90w|(INR3DjKr=(0cX&EZYHRbwk;|O!8|5P@Ma{~0}f%Wo* z8S%%Jc4dQ-JAZnV(&jHn&gRyNMkb+5iN&vMSU8TU!eps#TvA>-CcX-!qluy{R8d;^ z`D2t6s3;88XNIz=k2Sc0_{&C`$1(E~T9cl>@Zby-<3BKypY zUbG=FJHoDR%pI&qyhc0QK96H^SmSHE5-2-}^2U*VC(K)Ck{d>P_y3adiu!1|so!Ap zlkGc{=qURsQ81TKSV*)?b7pSGS4gO5FBxU%Hepi6s7=Lc;?Aqn5fN_&wDF< zykakHMQeYBH>8=B)b0`gczGRQ=&gAwld^mub54b6EAfRRfd7!#k5T7dI#ku|9(M^Y zr^{^7tXh}*d91>A=@Ru;IG2tqX5pbrZutvSAM!dhQr6O!*;@J%(Pu7YY+MnR<5hbZ zCi0@CtYE^@lM$VJS78{myB#a)freU}z=UW$wX4oqPxfJ3>C6mt4)<_IW%kIe>>>Nb zTkn_~*ID99g0jJjm=qqnur*pKR#H^@%IvE5>QcdrM5#lN)dn^tTUq{HQu+i8(3r`c z=OyMmS^+X#sqQd8`MpH;OA;hLo}Jx1>0NQaX;ZeW>s{G5+&gs6K;Oy^P7v;0 z?oF}|q3+(UD-z*RRD$k6=-8Hm4YpoKB_iL4ONm!13wlQTv^5ErH){;N66gKu7wpj{ zlDI}t?Q=w|OO^I;+`Tu|wkZ*D@%w4s^lYG#8Z|E7hTW*RRHDKCE*6oM&%~BV+wxq# zY|4CAR5*DRES*X^Ww^qP+1fMhZ-my$bv=7Kp)1o+*;Zw2dEA#8nWBF0+tYtRnI2b; zkmE?hC$%yaFF%Kjl?&N<;$N%89&_(3x$ONM9FW`M+5JnelP}d+?U!RYB~0X{QA)Kj z$1z;jM^*L3odoTg4g`WEo?cxNS1G89IU!n>J5rSkIk3+wRX{mYtgwX1UOt@T2=|EiHLWz8bfhy3cs2Wel>l1_+3L|_+29M zT}Wu6F6^`+^wq5JtLaVQcQeAT>Zga_H8i+s3#M^G{j~6JP4yw+GsCYMXN2EPZw$X{ zXb8VcgkLrA&O#Lav2j)+6r{$c@Vgn)Bi=QH-_?g-C8FMiKbw(AIB&^qa(Pc5C-1R* zPG|0AhNdOx$z|6fld1{t(O=Iy=VB}p%cikBXk;YWpB@<0ImDTvHOWOlH{M@2fe)s&zSG~oNWUYp|MdR9ZqdQ+Q2wRx zU4VRjr~kd_E=xc2a3lWR?zzbRpC7*0^PR%s?7KaLZz_-S?-|e!U$NXXkSjm*T}MFf zgEth)Z6@Qa<2(P)mwP|o1?AS>pO>p|e7P^WG3#I4!nY0oj`BUT@AOz4z6F7FSriE0 z?w1sXZzukp9PrN%-=lmN4BuSB=f_v_{qSx1i1}xJOeQ^|^1BIw8WeDlwjTl>uD{QTt2g>swu?wk1I|M_yC;JcvQ zZOConBgs7;`f`tWU12&OdStZRQ;O2LmhYDOLZL7B#G-U|4;<{JpX93k@Z}!#;lg;V z$G@obi}PJD9<}(_j6d@4@9me{1arAeSm2 z7mq&vE&qJEZO@99dz*ddmydqFi<0|hz6;9T7?4}XZ+`lH)co`1Hd9$d#rOUqxl8yi zO76FcY<`2lM)!5s-U=`RB*Cmc}FKev9vda(5zk2?16)Ix`@5m-*+* zy{FcB^#-4Ke+r-eirbm4Mfv_lU!a}&&P^6R-@_L=HS{(#)pGIG}iI2-5!X?aKOLqzb*7{E&dVY+@J5?eS8;;$9m$?%vTEE z1+bLfHU;9bDj@d|3O&Wa9TeyP`0IbMbL!vtf4DV|Bp4ZZc2MzxDWclkXYy z{p;epU_7=Hk6M0LJT8Kz;&D$v?nppxV^5*n+T)_-*703X?(TrxOUlUI7LdCpAotR5 z6w2Lkr0&-(G3a0aJ2h@-e3!Qrg%AIt^4}$V7YyGB;j6XqEenLNSnl5ga<2)B4+F^Xh=ylfG9dx9!B}{C7Ox1?6r*uCHH;L{1;Y@jWUa_cZ~z@3_2B z?t0`#<-gnbE+}^!a{c_*S4M7aK54Kewf$qNEx|v0&=el$i3|RLb+>^dn*3;e|~%y^IcHxcc@72QIzK>yH9bx?+@g^j|KAIeX&?UIch8N&kx@= zzB^bE%0)P@x3>nucSlkFTaSNd$({ZA{=K^>|4n`<@1JY|eth43XQAG9;-B>4|M~vC zgYOi+X8WNQ|NL_KcHa5^eWEB|F}>*)m>a?O@1sTeswoh@cLe-9=%a<~x=gzD}Zxh6E|0+rEzohqU zy{?yqp1KAgP5So~;#jW=dT|7)I-Q9}@w>p&D-0WsceeB7GmLS|Bd*TE9bt@HBe>Nb zH$~iwJU!vo;-DYG&!wsUsb<#cL|X3~s7~u8&z@i!db_qsw0@Sn9B1YaaZ8XBX%aWo z$Y1zNJih?HDt~hjEcqL2|^EdZZaeg4R1-~Y@j<^emo4Q)(roio0pcd!R48$?F z1zgo9mFK4&+}V`B*NA)nB%PZDcP9(i^f4ED!d*yu5AUh3e|hK~s1oWm$=`#BV;?17 z7td3kN37J#Do;<&Q+gcT&V0Mg^WkwKh`VDmp%(Ku0&zUgE5WVx>hwk8UhC<}e9Ime z2vim2TKlK|YvyG>jqh8Om+NoV^Bl$^X&c{b5XX7R=8AcKh5Bc58;SciadVS&Zmb>d z3dAutN8AMt?sDS3L)?cq=-ec@>Nq5=PzQ)(ZXVn)f>b?c@F;a)`ppryk+`oI>p}Q< zJNHGzF*o$TBKJ)PcQtX}C2rr2dfjKijX+15_zfeDxlwS{&y?S{@z|c<7UI4~+?Ir% z=imwUx>|!c=EjKou7lfYMDhH0F>z;KrE??T4uXy}@tZ;%bK~I3K4J-i#c#xf{nYT0hu(Jr+na&K|#-~`yj@n#Ebiq#-p*TJ{~z-l-$|E z?fjUY=fKHr$7cx@zndeD^BhJ0A|CfsJc?hle`VCa9QAKvrQW|ZxVHU|B>Dh zLoW+G+i~kq4}-!C10%c*}WseirD8Qw=EPVwhAOnR$GZ;YXr zf}YLqu6O9;n?c;K1-Hd|-U)F$zFGKLy#-=2u$btAH}xNdw;{o6dL`wgFp`6iu3oQ!Wr#IfHh=rwr#`+@ZK@bpBY z3u2eosW*)DR+HZBhjqOe^g=%LhLhgU zq&NK{T`vK>9en7Gr1AZQ^#16r>!qLX*?^pSAr;>u2FUh&blf6L%8` z2zP;}C)^F~aF;!*bAwo{aLJ_5gu57V%*}zTey03xO57WfXZ8_=9=cL!qIVtQST9fG zu{r6P>qafr>EBdWql|SZ2dfd-z zPsTTLj(y$O+Tg|zXIrnfG`J<-6}jDr+sojVkG6APFxHI-;&8|-H1Yeav2H}bmGKA> z_qe2ntySqB-agUu17 z;?&1xC+c+&8S8I-X(YW8(#t=r>&2iKYVA?mC-H0cFAF{OGv#*+(%Z$mjwII!6VN*v z^IMwe?T9#@A8F(dscO|z&u>7o_55purzh8?8qd?mSH-Dj_AiJ2$-Y?CoQhK)i?7%H zs*9q7lz`WyfA1iU`xp7XxSsZ*{;f9ZFA6ORkE0*g>p26x-7I=jpU~rSh*SFb2EsWgx`}U+%)2t+X8Mmf)w`%;+plmn&xjA)$?Dt z{-ydS^DTN|+x^ETcM?v+@ITSvAvd$!W#wTp{wS`r6t*PcQ*J+kRuC;UkT>UTvt>&*Ed9;Un=w zF)vZ_G1yoSa?l%M(Tf=CK^^oIOXcNc(mTh{3twViPtP*+>Pc@n>6!TpB7bt6xt;3y zBur+`UmRRqf+;k~%khZgdTF4%oaW$mrE%*)p4@DevbHp9x;PxkOIdPZXs&k{@4l0aVaea9g zam>xrxQ%vjD{0*JA@0*HIyVJw$ig-2FG_l9&y0VqA3fITdKsU3Riw8s>8X1GVXJVQ z$@$cak)C?pko50lLoaZdeSA&7)ugu{>3uR@?_U^tw(GX0UYzv$klx`quCU*zPrVw_ z+n@Bx48L*cb@MU43DOIbUcl&I5_+FLS7Ju;!#CnXDXYcu;-hyKZWT0#B$i+t5q<)SE|nIgIq8wR&E%(6e1P8-_T} zON{c8aO5RJ+|I=9jzy8@NAPm{eaO2bj=6DgL&%>xPET@hmk_sBDB!EGXLf8vfa{AR&D)xsTZ_)URZ=J~zV!CeJzi5GVSalh`T*I)Pwf3IIy zO?m@K?~&np{-V(HQ_pKiFG70#2I>8aLvL40Ud;Kif%FED-uT1x{w1NegActbu; zUWj9Ej_T!p2e&J6&m`{BBXw>J+?a*?F5;NmLi6JR2e%wtsna8A+#c$y=Q#tepSlW@ z-XPMutB0ghmR`qQAym`-a0o1uAlLZk&nly zPWQM**GoXpcAnP_aqOcUKFW|dH7}oZ_!tka%Cm|)mVDfMs9pzIaDP$*;WZhXyAa3R z2)Gf%D7~kNdkZc;;lBad=ghy#ex2H^(}|RqW2k=>SUi=UT+hiu&vrerFXFg=2^!z$ zsDCE6mbk|ecPCtbU~T~SKiZC~+ar#-N#efX;7%j%@x-luM(2jX?F;|XWIV}h z9NY%tMu~eDZnna&73wMvu5I189dXQUBJS%B?jmsIxGUUJ@f;i4g$?D=f%2HmI zdwQ~-R!l6;MWv(iqMEs`bvnJc|5ML_O8%zYt@keqJ==V{1##TJ5c(&6ms9^tZjiXA z5%(~In*{gJwyw8+mb@HnaKps?)WPja+$!S!a+mHm3$AT`{D?UA8zJuJ4sJPdPbcm= ze2rf#tS^CU?d!{*h+}S)xL-QBeTjP_aTiqS+%ULDSn~Wb;+Pu)SJv^IgBv04nZ(`a zZ=D-&$8S%>F}H^Nu5@sR5%&z@zR^YJrrP1YhB)Td68Ad?w+dWY$43(Pi?up83$CAa zJVttFk>2?@_@Enwddd6LtERl1PV3rPb9KGob@t~gPDdQ)rH=CQvm-APi2DX{zs7Nt zeMG>u?PI?{9CPcb{_+lP0$f>#VwArR@FXg8li=F+u}cxh+zhx8VMQMhABuaYqyPxmh|loUpIE zPa}@GVdARiDk0fA@69}Ch&z_JxtTgQ2CnV6x&m>`jS#n^gS&*dbD78S^q8|?oPYw+$^|$*1sI-okx17y`<~qed;xnUNz~xvX#Cb1aI)y zzdZD0eL0`>-c9NK3q$X83EU*1aTd5$5^a$Mbp@*MQ)RMwZN&=U=%33O{S>o0Id zabI^X_3w_;^!}xwcZ8>*9z^>##Bm+eQ2*5X$tkWHZQ=-t zH%axkqk~&U+_UI7Gi!p*4c=%!U!93K=BCK+&JJ!5aHZ}qBEJvgrrHk3k6e$4g6pU5 zdy@}!524Dl`X~+SKH|`eK=CNt zXAsBSCK|Ur9NfXg{SR^9hY!wQXp;SS^q%3jnYcY1+$eG5#C>dkof`$$Ha{Lg9Q$pd zdfD5-9ZB3vi2MGQIyVWfZGOCmIOYa_DXv4k9NcPfrA{v+?w5P(+zhyW>NHM1E+xIK zag#HTTdo}+TOy8qgviJK4j&WA#{}Zuy`|0#PWI>~^xmH+WMZFvY@MhdAcefLrcy4|Q;7Q2wr@{8jy^b5r1U zwQ$Y#em42Iob=Wj>uv^mwtejH=DJID(BI)BP24Mpy975_a{cAOwap{-{C1n+Df5Zdt@JH%HuK9o%Lbx9f>}5^m08zd3OItbcj( zQA2v&57PAlw**@6pOm4Kxc!NH6LH_gEYju?xVAcY3sKCiChlklx034M z2I9VD)P3+)`}x-EM%~wdE9YD15_j(zdL4|1o{W_mH=tXaIUZG%mm8^nSH$%3NI=iF zu3d^a&P$T=az6FX!h= zIrymX^sXWwcdl&HlXY_96o1z{>nYE-Ql9_9O+~zJB%wFR(!W0t$NekI7w7M_)IT#X z^N4#JaXT3IH|4;^rQkx7Ja61pU$4U8mLp2#IpN@Dh&zS2DO?OwN}#y$abY*69kwv5z=>NS)R?eB_9G z2XVU_+!e^|yxf?j^l0I4|KkQ18DkHK)=j zUz>UxNbgS4OB}3^M-+N~#<$bR;=V3Pdh1`;`xl3vZ9n-J;&^%VJO{y*I=zdy zC3uk_=OyjaM;ZB0?*V{+tsf0<>OQj2+s{&`^AN{AQsiU0!$%L|-b377x6`?SJM8mg zC&V!~P23p{ZkY0SA94TQN9TsY^-~8GqVhA#FD>15yw6<@FDxFSq>kA z!Ikx(j(psDm|h1daDTFJZ$cb%o4}1APOZgFBwM|0V9p z&+1(DqGQ|n%n68NZUu3lc5rKm`v7q-|3l|Sz&+fO=SvXB+)8kz{+@MkClhxDagV-V z=O)0lt$#-%j=3@NJI}#Q68Ayk{y0YGX27)_SHD9XbK}H)$-$iguB^Kc6ZdN4dAdBf ze%6iIuj9=2Jf=h>E_1yZ-RWxclbyX_YvX_!F``RFC*aE@;3-^oWCS-7dp7} zDSs*Ae*dG+jf3kae~U=(Zd!N0JWUde~wXn))5pem3ek zg}lf-dYkfcZCzXcWIZjtySQgjIzYEJb6s0O<2IA}cg7jI-w^a{&%2C39FJQA_3u6E zpUG_|?rh@zyq(UCforRm9}vgfEY-_W2X_r|r_%V|_qWbXf*bL2rXFNG?nWGQbHvR$ zxPh~Z^L!5ZJ+4LPX2IRn!Zq_(0=-hispD#reEeRfAE)!sdqzz_uZfRe5XV09@KKEz zrT4MJM;GGWLEP6@={{1^aDSyh@hIE{h+}Tm@5OpaI3~G z=io-bRk=`cPY}0!zRnF{y;1k~N|XHcKpb8&L0l?&SRWF1^C!ZF-PCzQO7K*6}LRt0%oD@g^mFJPP~Ni;>>rq}SPay-?JrUN!V&{>~-6 zc}w;2h(oVQl7~kbk2K33>1mZqP-1qm@xzPvg`{(x%$J`{iQdfBg zH$mK|hCJAirxJ z+&XY&U-t}gkN8&ShHxF+&w8ICA8FFd?5@{y1bU+_`J0b8_R&cBTkr5Om$)wwcSs-I zM;hG2E!;tfV{VSP|2Vh}#C?&tjs0|P9$ee`)*{3)w}r;7gSXzR@iFJeBI3S8-1wh5 zH#7r(Tf*XZJmQ#JvZh$4ogCaOxKb|-#O;dN!Sf>tuAhBu6Zv?V^mf>&`$$9YEQ^nA z5yw74D=H<`@SxTIObM>E9*Co;o)IuAlt1kdJps z?~q?~y%_ZRTk>}x;@C$e`PkOsqtn^NI%p*Bu~D6y^68@#dUBjuOnNOp=z1CG4Yc@J zgE;n4MLu?P_$UKc#%&34Cv2kEvwCv|pbJg?j%snlF}E7ra(rK{_d64JiKi#~jTH2{ zv?{cH0=l)C^Sqq$@;>!%*=i#%(5qAv&}-7a#fannCDFeKVpRXSQU6SCU*aw$?vg8Y zZZH)HT<$T|gK!%W$J{KqA^co%Lk?~PTv=b15qIrzIyaeW`@7DNY;D3deN>W<4@qw* z^2O^_I)(SH^t9B2=pBVP_K~N$>gn(?oP1=7TQx!FhGzMDz5Ph?@d4?rH|`gWK+m>6 z_zQ9DBk*Uj?t3|WR1^1O;tt0jrse!4z{RD3LX-SO5y#vhxUwJG&%vEQ`TK;pR~vpq z59{w^EnKq>CX(Jqq_^fCeLSMj>rrq~tOHYTGUeqJ(o5Z^>m{IP8;==?D&ys*wPeQdwHpYp8A=Zm-9*Qta5#P)%#Z7QBW)9<#fccj|%vZ_3tq9 z5#OgxPu9Q0BmUOEddl-_)W2!l>HSMV&(^;r;<$e?>faI6KXZKN5qAM`58p-4b9lD> z{NoVBF}Ie+H{#%Ch`W%u2OgkvW8m7ZH}ydrbL)tEl!Lp3xStYt88|%8llcExmO5CB z?=!a^+>lpSLmb>DaHalM5ciKKb#5N|br$Zgh+}RexDk(g3~@tq+w`RVYUdPdSjht2 z+RQp=ro4Pf{hN>LRh*X;^lbb42E=jyO4b(r9#8!-1we8}qqvf$#9Z=uON z{|0f)Edy89-Kc{b7*#y}HWBxYtnN4TsK5Pb3G_lGGRELi)fW^lah~x37qB=Ok;iH^< zd`sLT_S5qhe$3x^gvrNuq&M&l-A5F9gDpP#A&z}ilaEmjAN`5@IdN;c=sr^5+Sc(2 zh+}RI)xl^7x01Nu6Zhw!&JEYw|6a@wh+}RF+^|>A=Q_Bu%iPBSAiXBJPd7b#CYhfBW`Y z^6>`g4M4(qJR;Du`8XVLJRW7_L;l{o%DZ{|m_|NU6Zf=zbZ#76KjSfje0)KA4~*9J zlF+jq2k%21`zR+L@^{E>KI+NG&%~|np>s1neWanMYF*WHhV)+8sO#mRcPr{dn#_-9 z5yw6%;3I<|rFT8m)fWG>>B)X${L}vSyBW&!>(sw#!}R_opl8do`g?TTzZS~#BOG}wmi69y}ql5_Qov`EAH2RC%w0J(DNL8*1lf7jyTS93_cV~ z`MAeXf2H6me=2SbaeMEjb0gsTS+BZ~k2gv0+HG{bSUWzhLLB>ulMi`+AKQ3@$j6_= zeF1~Xb(-|)qnvy!BE5Cr>3V7CO;H2uH5uPO5yw6fR9AApp3O&JaAn-q68DAgb#COj zK;T7z;!(KIB96KB#7$8h3~z4Jllj&HJ<(9IK({t?z70nIRKHcdyhZ)HrnkP|2tMzx zUWSq0+oX4<@w{o+r`~Yr$$8Inq<86BJ%3T?*{%;=j5y9;mg=vb@@M8HM%=%M8#V4f zNP>$)MWIQ~harx+IdEm)`J{t8p13WEr`)3{8$>2);Jx|pJ^8C6Z&x?q=fqZ;%n$AswdxVAiDdL!0N!&#aZkD(kiJL)D^6@PXZZ8XWKH``g zqxmL(XIafFvz}KF_dd$=mPTELa4^CYEHtUB%@D`jIC0-|_-zJP=J`M5x8GvjZw%a? z1#0{Ck|!UJkdF`g>Uv4&Rao?vB946|$j35=j}65AmwX&&yzfF5+VD%d*{`FUbr6J}%(wd~fBmsIas8#BXRG@P#Bu)8 z@FDBkrw$)oiMt8;n7Lf%=D@Yp{dB}Jw~@x}a|gGa^4Ed53l7t{!3KZFnK0>fB)zU# zT`vqhOw~e@d1Q`91?6QrjmM{->v~b8rv}JtqW2NvI4@1eOC@4dUCG}?wyg()i93V1 zqu-zu3HNNoF*o#g@p*$)j`4^R_W|O5bF|J)ykdWU{;v?n+!(kabWZt| zzb9<-JCeBnC2smcof~}B&Yg=m<|c^yqr-1CaW|!UIpTjhHwA7)l8i^m^I?c%ZVFuW zGv!zQUa!sX1mbog?o0pCxjArc*Fl~~9COpemA`Xq<0go^8F2^iqVEra^8@NFn+r|+ zMi9r`47lZ<-#;9Ao=V)!iF+e9%c^|k`JN=WHow;)j=9a`cddh42d>J48jm1xHyGoa z0e6Rj+v50|>p_ZqY)g6z#_B$D(6gZ(W;5 zKDHyho;~$C2t&{2V-Li!kCOGpx>qN)>KJJAks%-36Zf+Hb#Bb3k4Ey*h4ijlq~|38 zJzHH}jX3sEMm{!m_*hQd9f*6(c{(@UPX3NY9COQwTjJp6D1SQOUzHNK z;}1GF0q!FODy;|2I=2ek5aQJOvb}>_3a+d}TN3w{FLZ8rp}+ISF65&#>3uy?*NZ~$ zaEp&G5Xbqefe+aymN|Tch`SYWA3s#*Cc!<>!kvRS<|b*}c6D%j6Ss`G*MF*Wv*7l# zaIZleb5q3K&B3jpaqCLl&p*+*!HmE2qX_xfne^TwG{)73TeqF9VS2y~59nfUT zbBOvEGG4cnfS#Z8sHv1^xjwGadG`6b-xTyt!S|&}p3guW`;Eh|tXGGSU$ai@$j6@K zW1oI{ovJr~@l*FH^3k32#+<492tm)b-x!5B_E8HTQV0DUKIRhlL7Km{N9o)sxTi|; z@F@A4j5y}jQT_%vxDCYZL4Jcnb#5Bm3JbRsam-DV-ydgY`yJ)--FLvL4$53`XZ- zR}y*;TJ)Yau5)FPmvY3Zb>lckURINjeTm!eUp+5jTsQ1v;hH|ykdI!ZSHG{Gml*VL zNwCnQo@XPD$G3&XH|p>a7*pK;^(OAvy>)I1+`9|Z;yj8Wj=3fO6xX3s9Nbdk?n>Oc zgZ2DHa2?k+kES7xxgl_6-5BBEmJxSv;x5@%_nQFsY>VGU#4$HaeouFBdk}X&;@*ji zWIT^@?Qo|cj=7b@9qHhPiQ9*`?;H2?N0!>}D}B$npFc+2Q4Vf@;_gq};97lrli(g> z$#W^<*l!Ju?`Q|NlDNANx6{r#HwW$!7H$A>%&jHA=Q_B*qZeE57zbK(6b#^D-g#%(v-i896lzHj{}K& z(+HiL_32|G=^aFRO9$%nEe}0E$C=5Lmu*Ndc!A!(;4=GutrT&bmqyCV1V>(y#GOU^ zoP|v~Hx6z;OFh4eIOgW4uC8=&XHfq7lHZWQO@rIh!ZnX?v&qN9Sf{$wa zOzp4a{X5nAW!B3I;vP;ue!wP#kC*um?DyY)i#X=iQvPmpzPLh!PaBchDvk}GIM&jP*;Fb}$KXLzgME4u`$i6@L8*$8S zBJOktw+Fa#oE|{jg-`0-2)NxWc{b-qZ}M>j=^ceZ;{3(h@i7o_?4ubz%D`3g@ z3UF1;skni}J?tKxn*#R~i;sg5$J{_*%K}&4hf3w?d{0lV)2xA>)Vh*I7h9W|mrBY@ zg!=b5HuId9AfBJMt-Es&$Neiq|HSVcM_z{0_#Q>vJ205cjexto*LU?Go=hJj$;XkT zx7Jv9W6&FJ(fi$4cgx`;gg7;BPdI#3laIl~y|RNbFMaxmlaE29H^Qj<9Q17CaWdj~ zJSu5C274KLVd%YU8IQdX$3CjyL+x|a zc*uQ>%Ex$5PwIXH^tzB_f5A`e@0&aZaooQo`X}o_gQH$j#2rf9 zt9H}tB?j(wOyW9^7&-FRwbdbBS9?+(D=5eskdB5LIZx9e_CIX36hs4sHW+ zk0I`p#`DA>JilVA=f{laiJQSK)Rlv~2wYVks$PyK?tPPWzfo|-qcSaDo9oLG(mR&) zUO3PgH|Y6Uua;9@jw8KExL(ieUjllz{mb=;#E(@sRf=v8^ww!Ig1aLgy9V->h?U;La&jUvWHEB96Ib;7Z-g`+g|yDYvxg$$C)R z14D^}Ix(H^Abf25~%Y)l@I?dS_d`^dRoZ#0~V&=UWn7 z+q$u#yS`4=5O;+me__hsDa3ugR`;6$*H0Z(Ku_v^Db@Xs#yXURUdocc?GVTLtED>l zANh!SdQ$iC&;8YXCFOZI`CVijkCM={)oI2!9;K;&-%|g~^>jFKPbKalMqLHJu-Dar zMqM@0_%=JZG2)J3F6yNN@-NSuM!~h!)qzG`H4|4}4{NLE@!-n5JdL=QP15Ts0j{6A znm|6}zFgQ2oPLt7mxLa+M1>~Wry`E)ss%nO5v7ioc}M;d#BHK_{`@MP8^?VCQwr3g zr%w>a+{h-yb^H$pcPi!YOv>LvBPMmUu*RTuC4xVL>zN#h%2wxuyN;7{>~t7<~W_30JodPuQ`9`kzS1S z&NE(DnS!35{m^{M%h{y22w!tvGSKU1>0btMoR?b4i`+2G>>xw<31joTRFuI{OGW8nH3w`TG& zlJxdIP}fU9FKijN?ucU_4dg@a53~7LL)=lsEx$|WrokOx;r2ira~p{(_xakmfpNus z-C4w)5ZAeRaBchcIO3SwL|nO_)y6FaSJs!Y#LZxG@camUZU1|1^AW_{W^l`q7q#BY z{lJP_x=EX!>?0OIPjRKGV~lF%deD{favt?>#Y=ksa?tDBCeiv?w3`se{R?(1uBY<6 zq%AMy#H}W7?*^S4%GtT)h+}SuxN?7(joTMo^?jAU^ND+xF&;5+{mi5OG`{DOUX4-D z3FwUgSDNH+f>F<5_$Wh=>ffH8p6YMCrzhjvl=C;f!zj<=sDFEm(({~$o^8GAhB(f1 zCFNP}ldB`aewQob3_00m**Jyc%Sw!>4Cal1bVjlI~Q^6ql$dUeJwU0<7s@e z#4UYQ=f=V9j2egJlB)nc+%Tpx~`Xm-XYMJ zCUs@5<7vvv#iTcF2mSmg3%#>N43DChL>%X(0(p^jNS^<&Ah2<=OqfgT`fM$yey%-Tuyr3chvI|hn_7jyCaVC5~aMz^=DgNnuvP^aj!Ps zpDPRQi54GM81K(jO8meaW5tA(EfUzCYy1dXIXcTLL75jz>Rr+PxJI_+^*oNH9+O% zGU7fyQTLnv!G4`<4&sUPc`EuNM8QK#cM$=c}rJ`y8wHFZh$c<57Paw`-_>A8x9TTNrw_{qy^X zzqE~8C2?;dZpB}EUgF^55LIZBm%fN&ZkD*RkF{}!6IWgP=mcf;QG2P* zO@V9MhfPKtb92O%^8gz+M%-HB;?IO@$KNctdlcLjYwSnFF*i?K*+IZFC+;k-PG!Fl26qRGU-LMaARkjmFCWwM7j4JK zYQ%B=g5*Qi4V#atg8Go zcOG%CBW~jZdj4|Y+SaQ@h+}Sy>LB6ZW{4~OQ|rb9m+0KkFZOlgKEyFMPTWZj?h@i& zPkvv;#U(Az?Qma09CH)ImG#dyzD?k&@2l~+lejM!?;Dx`*H7K&$VZa&=Del*NI|cE zp-PME-z>zjk0kk!^}yz1HF57EZq*!}n*;YO3wJo;n41DOZxdv+kBcuhjE<59y7=H@W_j(6b$t&&5tC!ml$3CjzLvdCAW;=XD$%oXH@}c$v z>?82IzxAq$d`u=EPvLn3)(b)J0F@B0Nsb;z9Q&vtACEhHj3w?(#65X4of`u;B2YXE z_XNZ-x0bkb9o#r^?29{{xl>;20^&sKkf5Xb$?pno#Y-=+SUd09nymi1n7pX#Y|LpU$>ljqf> zC&yo-2L6x16{s;=VLT&tDeYl@{*vh~xPY z1UKyE?@I@_FL7rP_i*ESU1lBLuiL^s#JFA;A#TpWjS%-?;(ljb-_87OzrOp8aeX%q zZp`z$(!m`DuB;o65V!1VJ)sIDeF$zu-UiaXS}r z?4z1|taJF7O+H>C?!az3Hv+DoBeTvBuwBPlD^GURIG0IZsjf>;1OwBMm*< zb;5GQv5zeID0TSA6ZaMJk(#Y@^Wcs`f20MyFJ>T)xjAq{_?g<*ZR6l>AnvQgeGZTg z_DnKDrWDu5T!A5Z47ce_8zRF??T|j9V$viWMj`LDSb+ET1FC&TjEOEEQ?=UwCZa;}-zyQv+(vMv?!(0W-qVx)?)Xl6 zU8!18&8(}*l$Y13f0r7^!36Yd>*>YDaWGGL=}Y}Hxk=)_N!)H&6uA!4;M&%|oe{@* z36vJs@k1Tl88jZBbSz#s`_;HEl>@hr>WJ55JbpqPbA#YU5u?WUaN_p#USA>O5!|eU zuh%=zrMxVnyxe4*e}thIk z;y5pHaKngGc{!4}6`l{tOYhA)v|i5<$@c2Bk@E63`ty?JZ-$KyyvoBdqdUD-Sjmcid`y@o5=jS-HhQ{qZ>fb)b>lS0syG|MP znt1PNyl$~rTm%W7PzpOmnFn)F!tFwpFT>UC;PRfr1uGmjn}IH=7DXU{19ospr~IDj;Pxi&8d{$(yI$vJu#QZzaQ}li=GIfaobBLNfGhJzt}83QH~g-1 zqnKA+EnKtyBIM(J8n*?P>w0nM^|t7}j5zj@rEweM@G*?I%ZPh5%yFHjz_lG$uRt7g zbHp9z;8s!oJ|^z-|LEK-xPI1+82R{!^gc9vl7ais1e zjQ2CK&GStW$N39vU7Y6^JGeE(mFxGa{$AQz=f=Rbjob5xV{VYRmpHhSY22E~Z^_;| zHwmtvahpm$J|Mln57PD0&D&%UetbsUAF==8c^(CKcEN4&xbPj~ zm>UJR9C2!WzMi-zV_&26WM8rddXh6Gt7=p=bN$OuURF^5zM7}!C5Y#fZ0B2_BaZu5 zLwT7*{WG~sh%3(vsXiY4qRx%B!#xsl%&jHv%?@r8xL9&p^Y<0`9gqDok4F;R?N!3O zCb=|yY3Pj*F+7UiRfuCBb?{M!pR4hmLO$N{^kjTX@H!OHP_pff zZ=Uk}1^Hcmj^4iz^la-@7IECaH0AkD>YtgH4V34viF?d$IyVZgpFDROU)QB|_42O>}asNj?=Hd4^ ze_?QK^_NB*=PyFshaBAgl)vwZd;UKz9qfwF-Ytq0X^G3XB)(^k0|+= z?eGyLZZmObMRaZkT-$MLCgPYIBkp4k?nvVPK-?3IeNMieaXZ%7=fsKogo9g6<0j7& zt2%vrFWqkl??>)u+~VXzo{v|0_aCI|MW7eP_od0&dJp0_e+lyOjKjx7;>z>!iaULV z&W(dRK%jUO?!Aa(Zj!jqIk>gNT}9*e@1;674X&+T)+3I&DdN81;7$Wq)`OpjyTLfF z=D?k8@!Ntp=BB|dN1R$;8i;$Lw{Mc;;N&j;j)Su)FY^4p8jp*NeNGB`wtdd|#y+Qs z@-mGVcX_JaX-D)!)hd&&S##R$%p*CHl_C+_Al%sfcxz}R*CSM zNA?^FldUZLwHp=Z0EvlZglN0RE`V~39}#QlS~2SSX;Ed#Et z{`w$}xhdi{Ik+LppWOeV^0(I5=j6flGtbM($6w@Qs^KG8X5Z)38a~qG<4cE+zQp~T zxECC$=PwGb?YK1#ah$&ladQrCgt+U8yYn_WHvz6~+;%`5bF;)<>EI5daoa%LGcjqn zUee(D8Moo&<4@8XfrA5v$_q^*ba$idv+}V<3 zJW8J5MjUg4;L1Ar8*%&M`3^O1vd`&)zw;{^N>8aRCW4{rGo^78q z*w}AWP+tC|{+Zlq#FhKV6nEK+`gp|K;VwoT=cSUkEe>u9+!Aoqcx*y`pEdS5X>k3_ zqk0-&xerhI*dwL;$U<)fzAsJ2rdvw)Q3W5e&)G;mE!qRB9~@~iZXv{RUJ{g-5=UNg#FhIPm5&z&>DLqU;7(Qp?ls{)i#X;c z!A&4W)pKVDcQtW0rSUlXGu>|j_nF$}`5A~~Zg9Ke`nR=%+d|`}?(tDx)yI?%bZ!P* zKXnkexVT@F`!SW?JxA&J%Rz5AzAsJkcPHZ5M+iPb2vYgm-r=JZTv<0t$jAPl=sqHN zUfbql+|;&tf=hy}Z8+jozop67YRDDm{}*@s9sc6_-0m-K?rr|!#$Yqg{i}ix^?zyd z^(3Eho$mU-dXfvJDPLdw*#C{A>Cw72s`%57Z>xg?)ql`b|4wQ9vh}n29rZE6$je;B zsq+A7!Zp{mE>wR%(DmJOFdj;`<0fqiN-rW}coe;}5XbcwLH*U>=c@j?JL)e)^{4Ks zQ+n#-R*x&k{ng;^gzrm}9GO1KNv|{MUAl+9kLZZ^LElBh@YtSSnDQd`7pwlw@bn}v zA?QhsC|Su%9pX4I4Ya=Wa^$5yakn5JX=6Of!L^O=Tw^>M!Ik6hehzLWaeKmq@}WM4 z8h-nN8^QObiQl6Pzd5RdFmacLyz%e^CO}WdKz&QTz6oD!jsMHKQG+;PsW|!i2E?g6 zN7OgbsZB6T7LFC;#e=bZ|6W9C+JGAg7n_<^uo#n+QNPv15*yhM#yVQ zPkos4V>pd(km_o@x4uX{54)tKkXt1wd9Fqr*K_8y&V@Ypr~Wlz-Bo<)Ule+{^i^om zzb;rO)z{K~K^!;vSxbFeoVN@G@`$TGy%;I|TZ1^xUnBZgfjq1HMW}zDd3vHywYVhk uX|4RP*r$&Ty}*Au2kN`D=?x;iK~G`dUHtVx40#Tn)21`XTTj)o`u_n+h1ZV& literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..619871d6284ac336ce67e5f5606469ceca5aeeed GIT binary patch literal 7016 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 EzeA=A9{>OV literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c new file mode 100644 index 000000000..90a87b17a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json new file mode 100644 index 000000000..283b0033f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "1": "--target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-x86": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" cw_zano", + "buildType": "debug", + "toolchain": "520418125", + "abi": "x86", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt new file mode 100644 index 000000000..b337a0c8b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stderr.txt b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt new file mode 100644 index 000000000..68ec9680e --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json new file mode 100644 index 000000000..03b852862 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-x86": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" cw_zano", + "abi": "x86", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build.ninja b/cw_zano/android/.cxx/cmake/debug/x86/build.ninja new file mode 100644 index 000000000..2fbef1db7 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build_command.txt b/cw_zano/android/.cxx/cmake/debug/x86/build_command.txt new file mode 100644 index 000000000..561bb3c47 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab +-DCMAKE_BUILD_TYPE=Debug +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=x86 +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=x86 +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86 +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build_model.json b/cw_zano/android/.cxx/cmake/debug/x86/build_model.json new file mode 100644 index 000000000..23a5e6ac6 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "X86", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/x86", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Debug" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "x86" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "x86" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "info": { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": true, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", + "variantName": "debug", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build_output.txt b/cw_zano/android/.cxx/cmake/debug/x86/build_output.txt new file mode 100644 index 000000000..df1a97a2b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/build_output.txt @@ -0,0 +1,145 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +Detecting C compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compiler ABI info - done +Detecting C compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compile features - done +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +Detecting CXX compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compiler ABI info - done +Detecting CXX compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compile features - done +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake new file mode 100644 index 000000000..fa9b1be13 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt new file mode 100644 index 000000000..bebbda46a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt @@ -0,0 +1,686 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab", + "-DCMAKE_BUILD_TYPE\u003dDebug", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003dx86", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003dx86", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json new file mode 100644 index 000000000..7b0aa9a1c --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json new file mode 100644 index 000000000..9971483f8 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: x86", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/rules.ninja b/cw_zano/android/.cxx/cmake/debug/x86/rules.ninja new file mode 100644 index 000000000..07d4023ab --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..755eb7fe50d33726c001f9f202aca33ffc8194ab GIT binary patch literal 22440 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 DMdP&a literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log b/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log new file mode 100644 index 000000000..cb576f678 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log @@ -0,0 +1,3 @@ +# ninja log v5 +0 815 1695988616 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 7f413045eeaa589e +816 1174 1695988616 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so f4d57a697c127ac8 diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt new file mode 100644 index 000000000..017b739c9 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt @@ -0,0 +1,362 @@ +# This is the CMakeCache file. +# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 +# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=x86_64 + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86_64 + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//Archiver +CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Debug + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON + +//No help, variable specified on the command line. +CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64 + +//Path to a program. +CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//The CMake toolchain file +CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android + +//Dependencies for the target +cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so; + +//Path to a library. +log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake new file mode 100644 index 000000000..b3dc3837b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "14.0.6") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/x86_64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake new file mode 100644 index 000000000..7e5bd3555 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake @@ -0,0 +1,75 @@ +set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "14.0.6") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") + +set(CMAKE_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/x86_64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..f696bd3f1670dc7c13d2804655e6ac82fabc74ab GIT binary patch literal 6392 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 JJ_lb?{R^0=N5=pF literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake new file mode 100644 index 000000000..67917a306 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt new file mode 100644 index 000000000..ef0a5b6ae --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/edit_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/rebuild_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f2d83dcdfc74b74ac41d2542998caad81130eb56 GIT binary patch literal 1174136 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 b`s1n~9gR#F>59iz(66fxDGx;yB3= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json new file mode 100644 index 000000000..e87e21190 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "1": "--target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-x86_64": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" cw_zano", + "buildType": "debug", + "toolchain": "520418125", + "abi": "x86_64", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt new file mode 100644 index 000000000..3beaa5ed0 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt new file mode 100644 index 000000000..a9fa6174f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json new file mode 100644 index 000000000..9e55d11dd --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Debug-x86_64": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" cw_zano", + "abi": "x86_64", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja b/cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja new file mode 100644 index 000000000..c82675a65 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86_64/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt new file mode 100644 index 000000000..80e5fa036 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab +-DCMAKE_BUILD_TYPE=Debug +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=x86_64 +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=x86_64 +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64 +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json b/cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json new file mode 100644 index 000000000..72278f96e --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "X86_64", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/x86_64", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Debug" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "x86_64" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "x86_64" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "info": { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": true, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", + "variantName": "debug", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt new file mode 100644 index 000000000..f8cfe47df --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt @@ -0,0 +1,145 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +Detecting C compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compiler ABI info - done +Detecting C compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting C compile features - done +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +Detecting CXX compiler ABI info +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compiler ABI info - done +Detecting CXX compile features +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + + +Detecting CXX compile features - done +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake new file mode 100644 index 000000000..36f56ccb3 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt new file mode 100644 index 000000000..5e34b1928 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt @@ -0,0 +1,686 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab", + "-DCMAKE_BUILD_TYPE\u003dDebug", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003dx86_64", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003dx86_64", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: Detecting C compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: Detecting C compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: Detecting C compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: Detecting C compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: Detecting CXX compiler ABI info +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: Detecting CXX compiler ABI info - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: Detecting CXX compile features +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: Detecting CXX compile features - done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86_64/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json new file mode 100644 index 000000000..c41760582 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json new file mode 100644 index 000000000..e68593eed --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: x86_64", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86_64" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86_64" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86_64" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86_64" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86_64" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "debug|x86_64" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja b/cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja new file mode 100644 index 000000000..e3e2c7856 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_deps b/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..93aa15e4fe970f0a0321be52e5806b9d87f2c9a5 GIT binary patch literal 24984 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log b/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log new file mode 100644 index 000000000..2b36879ed --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log @@ -0,0 +1,9 @@ +# ninja log v5 +2 2722 1695294279 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o db4fcd8d10aae3 +2722 3436 1695294280 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so eb9f79de8b3719ec +2 1687 1695314570 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o db4fcd8d10aae3 +1687 2344 1695314570 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so eb9f79de8b3719ec +1 1517 1695811881 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o db4fcd8d10aae3 +1517 1889 1695811882 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so eb9f79de8b3719ec +0 1561 1695986024 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 606d692942cf5f01 +1562 2123 1695986024 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so 4711e3c4165b04f5 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt new file mode 100644 index 000000000..8c00ac85f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt @@ -0,0 +1,362 @@ +# This is the CMakeCache file. +# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a +# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-21 + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 + +//Archiver +CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or +// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. +CMAKE_BUILD_TYPE:STRING=Release + +//LLVM archiver +CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C++ applications. +CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON + +//No help, variable specified on the command line. +CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a + +//Path to a program. +CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=Project + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 + +//No help, variable specified on the command line. +CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a + +//Value Computed by CMake +Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android + +//Dependencies for the target +cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so; + +//Path to a library. +log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES +CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake new file mode 100644 index 000000000..45a931bec --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "14.0.6") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake new file mode 100644 index 000000000..a2eee9511 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake @@ -0,0 +1,75 @@ +set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "Clang") +set(CMAKE_CXX_COMPILER_VERSION "14.0.6") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") + +set(CMAKE_CXX_PLATFORM_ID "") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") +set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") +set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX ) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..b3fb35e1e9aae687d70747992ade8e5a52abd8fe GIT binary patch literal 7280 zcmd5>Z){Xq6+iQ)(|=R?7X+-(StwGH?aY)8?Eo7nWm>mvscaW@*$qD4%zJG|=AUn- zrLZKD-8JFEn$Uz0OqLb>pkYn4CL~g`MzU*G;zlj2Y&OvkC2GR@K~Yzw*(~*(chBhz zk5+Kq58lbU=bqm^=bm%_ynF6_^Oe5Ae$C?nNnZFN5ciT#Aw67?Tge3^JrIRz%mc6< z%8@T~Fje292-d0;*6yX1jC+xiUXJVCbQQ}96%UEBYbj*vb*r+M7m^fhiqsMrhTkLL?kIuuW4LaAitsAYFW zNR;~jB0kigJsH!^CQYEZx3_MKBl*ZFy1lczb9?7U)+fJd>C<}s%+Tk+-u(HSPX^Du zHFdJ#`rqu!`E&c${p&w9PW@?ILSV%*IDm#f8V3)25-BfVNUWe$ufYb)DN(!R6H$^Y zO@z}!NwuZQi@C0+lJSI|%p?n->xoH2HwxAyG6V-?$i_JHeDZ{q9nsBP!G1OzJq!+L z#FNkBrgj+HY4+}<*OgrUDLyfLDzR}B>8FsML>fhU7O8A+o)g31Il11`T+@Om%JDOa zl=LCiK3KD^{uS*)8F7x@V@O}-GGUacy@U9i$A{XGM0g4xl7E`OSZ#m^rEj!)Z>)n; zZ?DH^&I?oM+REJ1up%Jf?rY5vFc>TVAa^6r102 zI5xk}h|S;n4qW|Q>hBPClX!qL*v>4RSv}P| zw{fZ!Z7#e3*B4q~X091#Zu((a&3PfNgiLmsDY0_(n|>Ky(A@~p_4W<6<*$%^^DX0L+OKs1!uvdoC8VxQMCXSTxe6%zqs!oVVt*R;AM-0r`lt2 zSj}>$8IUy{W?bIeS#ChqrP!6d`f(QYv!2+K*!Vuz<2rGYwEvI0%AYG-FMj=o`2fqy z`~3*>I1f%*%T(U;X6B_{##P>TS^H9do5$k}+q=vBdFF9GW&FA2kB8)V;DmCF3A9Bc z+ru5*(MJPuBX603Y$jkwwuQT+5pzo*kuox)feFjbClT+61jE6uK-*ZMkjw7~g$xy@ zf}`2&Xv)fG$L)j_Ok~rcLN=R9j2RT+QWNR+oSprWl_&%viLP*`H4+ae5=OW?Vr}2r z88t?t@kmFwE72J?OfwSch>mn^fk7uQ?g$JH#@H%uW(}TAwM{;6ZT;%z+6GS}_D73= zw|1au_u3u)oqi2hfY;+0Xu|#O5g2Id#+BjwG#2n2(u#7s{C-3#sOb0a!eXV;7Tu~K zT4*fqS>vrGX!BZX7@*n*8bj2SKXMOSQ|B0f>o`ejCDHy0Py_GswCzG(_V}j}(=K4P z8y`18#a>1qGwZ;_ZRo+)IwFM1y44N z;#%Dss8FpSN|rWTHVhv_iIx%ZxPo>l2HCSX1=nTUm>X>ALJPF|G7kxnUSns z68|uc?-?H6b4Y(`;F&)C;GqM3x(>-q0StR|0&MHc<4M~BT$MJ2#V?uxWe zL=9!AAC0ihgXtV~DFHN3W$;zZJs!^owJV6=Ow-}P^D*=gKy|UChhxhd4^yyg3}O7tI_SvEN~ z;I9jAff@&>TfDDHeFGLWsDq0f5Mo@h&Y=w;`@6_*a0-ne`?}yNZZ?7J=Yp$y#AKAJ~71%WaI`VO-)}2yu^A93MGfd=1+#TVfu+>DaAX z+$$Xxvv1?$!TnUWy;`pLzC&w3worya&2Ld&@C{BuqPL&`YJMeZ7jZSe65WgVe>=aI z9aR~XVmr$J2Drla0;y5{H^Ma+uKaI;cU|}lDte%}t~feyzlylD{|wFxXe&YP;e!7R z3yt``$afE!-(Mo$fIoR(WFF@ny!gHd{uc)?zAu8`MV#7~ErMbpB`^B3)cx?WW$*#S z8*n|yyf2Y{3f3*(7ON7y}eGni&tq$CD|u9q-mb^LQqIJPkoY`Gj*1 zquYudGxB2)R5|Gs5XWuWpa!^I0)he6Qvx{oNdw7 zQ#WkeI1cD|u{?r|;Ap@|CllyK7Bw+b+VOlI=$MsudS+Vj@lgyoaod`}PB|RKASpZk zDi}XESP;Zc7mPU4F|1N0MIm7q;?`&~gQ2W-GS~rnzF^n|-3e>0W^gND)=61}vTc-g zQPvGK{TaU`%imcp!z2^sUKE(1?xXKM7!csg#`ONJSADqM`OXrP0v zM=|pE5AWIEr}quTFyl#10MZ**~yXt@!^fr`MMr*`AmCZYWkrwlvZGtO6g= zm$)NT;*aRaej+^WPo?@2SA@2TAXB$~7;!v&FWQ%T+#+Q?@{@d*{bLQ|QKWQ76945M zC6uo@d>Sv>5&1sUr#qMMa_BdjcT#eW(93D)mrIl0FR75k)5 zp~|g)3bE4lEBm<6jaXlr-2R`&%2NI1zVk{O(huR!x%A~cCiF!SWGem(d=U#|U)Gt# zOQCaESDM`R)p@3{rWBH()f$Me3zYO!2s5kCeasc4hyCF z@||gx1=~cBsayX�eAoa{ib9N8Ivm{?DjO_T@dnqLW1b2Ldo9SxQ3bW4n}{3eGO^ zfL$mBmyq?L@>2T!{Gsf|1N0kM-|c@hZR(g_aWyWiQ2OpHWu>9=8Fi5Z`tVVj+_KJn zqf~&)XXp(q;jDB^K(oeV)TrB(> DFKBPR literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..7f4ee912d806e2c143fc2f7c1d16ab56e2ea983e GIT binary patch literal 7360 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake new file mode 100644 index 000000000..9549696b6 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "aarch64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 000000000..6ba44fcac --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/edit_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/rebuild_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8f97a8caafc601aaf3a96e824b66825b2f2be62b GIT binary patch literal 1007056 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

AVd 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νM}CqV`6+Vb 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 Twy(IXpL)#e+4j5LXZ!yH)JGET literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..067f4ecb3c67ced4dd36de9f0816f7386d55c934 GIT binary patch literal 1007048 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

$!BUlJ~{H4$iHenEBS4$UyQuoYH3d?a^!1~ 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c new file mode 100644 index 000000000..90a87b17a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json new file mode 100644 index 000000000..b482e0f47 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "1": "--target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-arm64-v8a": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" cw_zano", + "buildType": "release", + "toolchain": "520418125", + "abi": "arm64-v8a", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt new file mode 100644 index 000000000..ccf914959 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stderr.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt new file mode 100644 index 000000000..faddf3788 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt @@ -0,0 +1,7 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a' +[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o +/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] + std::set::iterator it = transaction->subaddrIndex().begin(); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 warning generated. +[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt new file mode 100644 index 000000000..ccf914959 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt new file mode 100644 index 000000000..d28886785 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 000000000..7a06c6a9d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-arm64-v8a": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" cw_zano", + "abi": "arm64-v8a", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja new file mode 100644 index 000000000..e1fcf2c61 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt new file mode 100644 index 000000000..2c7fdf987 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab +-DCMAKE_BUILD_TYPE=Release +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=arm64-v8a +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=arm64-v8a +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json new file mode 100644 index 000000000..51fddc45f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "ARM64_V8A", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/arm64-v8a", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Release" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "arm64-v8a" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "arm64-v8a" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "info": { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": false, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", + "variantName": "release", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt new file mode 100644 index 000000000..9a536afea --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt @@ -0,0 +1,12 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + + +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake new file mode 100644 index 000000000..3796fc78d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt new file mode 100644 index 000000000..1b574baf8 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt @@ -0,0 +1,170 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab", + "-DCMAKE_BUILD_TYPE\u003dRelease", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003darm64-v8a", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003darm64-v8a", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/arm64-v8a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json new file mode 100644 index 000000000..739b1c6cc --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json new file mode 100644 index 000000000..8a629e64d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: arm64-v8a", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|arm64-v8a" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|arm64-v8a" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|arm64-v8a" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|arm64-v8a" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|arm64-v8a" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|arm64-v8a" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja b/cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja new file mode 100644 index 000000000..e62398732 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_deps b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..dd3a4a4b62ed89b2a48c87dabfaf277c4cbe6d90 GIT binary patch literal 24540 zcmeI41&|!o7KYEm-Q6L0*cl>(1kHPS@Dz7#dV22cG~3fXboZGH0PGsrqWGQoHltbMC$8o^$$6Puni^!_(cmX(wx}C?dzhfDC8byKE zbp0@?2Ekyf+Kx@F;|FOq@Wak<-|*Zy&YaoRWF(2BD6Mvqxax;q(5aiMH+_0_a7Hyr z>wcJ4n*UbTbsR4W8-D-4&~0nj+c0k0iA_>z%0IO<@q5*)n+Br)K=UjOJIlp8XyU|= zSor-|Eb@2shc)%t6@7sjG(n~LH?$XPXxIESsrH-HshdIHGj?Y>*%%x@WJB1=|Eu;q zux0y-xv&%Q7xY!udpm8$#;se;Kcl(KV@lxHh%8>*RGPog0R2<0E68(?$K^Lo~=kKm8Ad~0*ubfj%_s~>9lHeW}Ds>lz}U990- zH*WRig;kMd8@J|H-K14|K;-+3MJLZsT7CT{G_mgyEz`arm@}Jo_C55MOsy|$WNDi? zh-~TcUB)x2GM;h%m@op7?=S|HoG@RP?I`hwonm!<8|`JDdoL|N$hF!1S!yQVLRV!S z=DJ?gYST=KOS9#hx;`)Uvl#ykw5NCvOjrY7XFTeAV8RGQzNWPvvb>@wKD(m4IEp;C<)%&R|IebUlIIqJpHa56?Dc%Q7rK+gvr_j{=&J0gQjmT8$zIqx$y#az zk!u?}pXi0|Bt9;6Ki&)7rP-V3PF+ub3|+mmB2N%X@sDb07xBWT$4(m43P|K5TK+Dy zZ4ZqsSw5_+TRaAkXO(sHITra4x+*n6;b+I`gn7Hxi=#y3gUWV$%{U4pkq>C=rhdy1 zH{Xx0%2{ajh?nm}PvvYNmQ@SQ_iFhzkClb0$a~OLiIroz-D>9DS~gohCnhjn_LxK7 zr8d7jT5)-B%Nl+snp0d$Cw@OARceN<7v7;Y?|D6yIij5Sw`bJZk{NaZU%G@_I7L_xVE_1ivi$8L8kvE~Q zQs-s+!G>RYyI!UFjFzsAft|7a|1`R4XIv*SF)`;UG^eDd&!bQG?#h!|J}>gO*iC)X zCwW3y*XHLu(vZisb&Ev#F?3aOi^9*1PUzujg1yM2$~N0N%*K*Olx;S{o@ra7Sziw; z+uSm(C>{}c2wjy}Qp|H`hU7tITRW*A`00o|psedSX{Q|+xgTAX^Re);ANr}!-Jpd$ ziwgWCy-(S0Vpq(aOSxBBH0^}-X+f5vY_6EY0=&HoALhuSLJM;cvX{KC`?qZES{rvsG?pT&E z7L`3Vz8_YoUxxOmiXX=H;xg?%8`-k+vUT5h`;#Z2=>TDF#FcSNye+}4F!wvOq_B4t}0C%?;efwFEH8uj$o@gXV9lNbe^)!_WM*;eN@?IH|URIKW(;%)#swEvVRMIlZMMV%6`uJ*)-D6 z*4EAHE0MGGb#0j=XKL$a)s@IXZQY`%8$nm)%q^iH~WoZ7ur~MSN^^xM+cHg0AK{=s1~j)*^_NwRyyxnwCQf9mQuT z``fXy)ah+yT`wybL?UI~@}_>+Yu$-^xRjL^x+;6Pt0)qnxkRHbEpy7e?^3=wrkW4M zsoB?oaCJil7?0-O&a0PNr-2Vn@AbStC!X;L(3Vc(E9({|n>3Ym^SKu3SJt&TE?>Bk z2D&Q!k7BJmPA#byHKWtud)_tI8{i?CQMTW<_YDn@I=U)3*_i!)>cpmDViS5sJoHuK zTPI{|Wv`c!nwGEg=b>Jh=66$FRbAdI#LK~KlkYTDT|e>)dmU9>BFO+Rmmy}Ks;Wyi zW?v14@+s)5?4^8N72jVRTi7R~uM*3i^Ig7t1Y@PvNsL2fPiKBehFo5_a-!Cp7jZ0q zY9w+3x`*3b=|#PW@1S8GYjSU{o9dLOfBx3Knc2Jfn#U{KGRTGfh?fH$hpx){?Vbfm zo6BAfnHI-^$g$|FteZmL-nTkNS<@c6M=Q@SciUpagY2W!=QoV%hL=@_b#B&)9I0$K zTQa+)dW7;E^Wa4eNAuYgWE8Vy!L+r^EBLtr*!Ov^1S`WTuqvzutHTh#*adcl-C%c^4tqc! zRG#bhz8(Qb!clNE90SL~ad14G04Kspa59_%r-B2gfeSV8pbmCD+WM{^Y|h}r z=`a8R*j~TA>q{G4Y)m=>2vNe<0)@0$Ixq-BU~5yZ=gLAj6Ko7U8_t1qVHD1T^Wg$m z1Q)_Za4{@~OW;zt43@yQ}QCcF*Y{>RwM!1>I>$XVv|bFx}y(of-U59KrLdHte3vR)f`H4OkP_g0*2CSQplV^^=Bx9ui%QWw>;>v-dzgr;$vq%kq;Zs`glR$mD0IFIbAH2Pg;%;arnRLw-tkB)3FPtSPSgz*qMX)*wjDJ)7LZ5 z^Re4=%veJ2o<4l!v*MLMZoKjI&6drZ9{cn+dY*Z&b@xk|jVqI5{&i}Hwz`glAm)bR zJyP&vW889&@~gQ6RIxR{%)`Az8SaEOGRe>5>-DRy7Yn((UMLq_q3ii+LpNM&8h~c4 zYKxKKeM1Chk!S`By$+3^59DkhF9xy*AII>+K=NJ_&x7aYB4?uj#4jWMPAGGf7})TU zgOBX07QSTJW4c*!oyRlTCw!xkD?E+|?+GTTT^9?r>#IfW>eABEEpe#poz-)-tI6LS zzLrT|T8w7ST~m^mZnh-PEp`A?k3-)a=uzk*S-YN0U0PIAmu_ws;%_(Fg!nUf9{eU4 zPx1A;m(ogdDSZ{OS6jrT#TLX1aehHfonN?1h+7Nj{N*j!gLCRZk&4Wy7nJA3jQXv{ zL(}^QPl(z0exg_iiP`8}<>6kmdl1ZCNYRC^Me*13*OXgdzczCFCyVndNW1~xub#b@ zz5S}^leja$Naf{PDY?G)fhoBc?gsOjd4FlihAoaI_lVPtVsmhxrNFE^jQc0zxR-gK zN8sna;lATOs-ZFWINS0W-w!9sf#>IroCj`#%z*#?!IFIun7OV%rXX3Pwm`C<4d7Ye zO#$XuYrvZW{4U1fqTL6OXCN_8j=xTfWqamqV<#aR1ttgeA=TNR9msU|^*@lx8CA|pY614{td`MwQ=Jp8TdD3!rwzZvXydj$UbL$Aq?5O_ zyj@DWwq49m7_3aisZv+PvA<~L-BdQ;o9VH}a+!SI$n<5cfgL^l##nzY+nwpn_hbyy z%x1g$$9nGiXqf@g(9}2>S5~P_krpK(T9u^I zrnX1#P}Yidk@d<3Wuv-P*{&#U%C^LsSR|2Lw<*!4wBrV;SrJJLuX$+0uIAm%>U!Kn zMH$A8j&2ddYx;2KV%wqMUUndEPjfRYjZ~YP_dt#Nt!3L)8hU7N*tTfLH2fZyxYGDNipKZ_BpHXQY>P#nTo#`Yt7KN?v2zGhTYrGSCiSWK3t<#}16H;5 zN4PetPl;a>wKGyQ{2Z59wB@G|E$sXMdpi}%W40cup{VDBM~@C3*B>4J+yVXA@zDdi zE(&E=7|!^VaI7aM3yvkQgB_8!E3Vw=>AZ2$(oY%1qUEOZr}PP9$|~2LT7G&uoi8CI z?N~(%4^!H3O5CqqQ+-By=rBA73wTa^^;oGQ(i3*cN*66#Ch4l0CxaY4T6admohf(2zC=>I276R|4Og7#-cPKi;C2Kn|AX=3x#dEH$2-B?zBO#l(=4JmHmV$7 zB&oz2n|>U-Cml;PXtCz8*t&)ZsWvqfVvz}N! z_6+bb7*vrEc$bO!kbf)ijS%KLB(!B@b1r!hqvB3_5&`_0E~;&;G&*ZDXpZZHmjb(8s4p+8B?cP}tYDBt&O zJXvaZ_${X*w6g75ntZPnOba!^w~d!4wcKQ(Xm;UDt(m9G)zc-R(HguRmjT`J;e=70 z5So8w8y9vI2eud5;L*bx4wUA!Z>tp1mt&iTYX}V|O(4%yaV(xeb;EIt(;VrC`WS$; zBc)L)bJeQgJGtadglAX6t_6o_>QaZPb3n1v>L(Xaw>9qwo8wccqWaF(X&SGvZ=lQlFFnk};(Bz)~lE z5pg``OOn0@C{m|y4<6EA${q=DkM=Mb^s;CsHiGorotw>s>Qd{w(t&lLLZW^wlA;l|HR2Ib z2Ni7+x1j+s3LOzmg$r3?8)PDFPwKh| zv87!Fe;$hSXiK~anMgbR4$Qgc!uXY@JNbPPcDUUGUVLa7<0SHtco8y@dLm4f^_T>S z9ncY_Jyo5ox>hNbE0j~kLiwoW2+;uhxBRxEzic{o!4yj&I~z9UKt40{_H}RS?(6={ z?U^&C&|A~p`@SST`q3))Pfu)At`41j>*^b`CzqX9TNVb#_-oJ#ZgEW#f-*N0*GR$d zK~OBY2l>U^0jgLV$c)3iL`pvi)Da1O9G|Z}b-h@~<@G|j;0j&OPZ+x4S`!ec)~dD` z%x)i`P@({87RgLu!j~h+*?>+5^oId0!p2-)4=C51@@3$K3y~912$Wxg|1vPIlOn--kt;ll7w`xJOkWo>)7KY^>1*@z^Ebqv&JPw}n7)?y z-QL-B;@n&`{nD(GIQM>Y;-$HE$mAQquMYSqc#)XCo=BdXQ#frM>krSTl*D}M8ho!ci*s|$@E79rjG8<>vr32?GwA%)HQ0+6)LkMOIir4Cc}1L2 zzhA#+Vn_dTVya;WrC3N3Q_%~R-92dcd0=#=b58vA^sI8@<=LTIZ_Qm^0OAsCzd1F# z<<>>dCgpS>Bg8yrLoB46*T;aQsep1%JPhQ!b9;W?hOGfp?g59}j7`G*mISi?(C=UH z-n*QV+rhSN2KhED_?9FD$zXc!PX)s8kUpygWz( z`LpxXs9myBMaz~UJFDi=AY!-HmDV5zRC@=Qps2haYQx2ncP67naIlYyLp%sVer zQq*N)5>x`m`w9fkp%4D}_Jri`!oWJjGg85=>{U?K7*tMAegl-}iVsV?JMC9PGVPU+ z%=^#rkWBlDkWBljklc^_c^~&cZ4ncU`<=Cd-8bZUZ z6q2W^I2P}#y5Ts+q(G*3_+bcAkB~;GkVn5ZTH@ii&Q+^|=XS{(3cEC1*D2)2Tnh%% z%8iYn4CNeaTuQ7=lJ^q!orWEwWJx_fPQYUdTq6fM3O}FosmMES&KfC{wY+FIw6xHx zuHm@4SNYmat&7?X0$jJ?jO)RS>;8;;DsLV<4&$+%lvUyaOQ%>Gn6umrF%HeD2 zewC!%WfK4Sgb1Gm?FNzxvc(5N_+w#Lc3(C)Omvta4TZ%02X@}2@kXi#Ul%ws$|lOP ze#|i{6{Hz_blmj?qU&bW4m^dv6eDcyDU0TMWp12dp zyDxd(e~C%(;dl_eTK#e0$NM&M1@tnWq+fxKcXXJ&`?$Q5OFJpi1ft}4ewX1)WX=-g z{1u^KE{wjjyuT0m@q6w({Lp<37?1F0AmcKg_dgQ+qz$SXe-%9YO;ZWr|4u*iS?@_3@ozxH zs(4B~N*L4@DS*<4@Ci`zlz$ArQ)B{=wmLA9r)eWz(%(uaP-$xo{A7N(8i{wLG4P}K zP~ay+yoU+ykOHV2`x6WN{t3TJAwL^a$Uvcy02 z=Do-HWOinLzu)}kH^2GK|2Ze$ojNmN7>3Y~Au5Fx6QX`?AyNMElAuy_g0|ylo}c&< z<<;fWmrc20iYIm95g`gw(PSj~)b?1aBU4=xORSz&Hhoy?hAD-q1DV>P!DKAaG%cEi z)R>ThbZ~m%j2ouh2)fc#Fd0n-r!!43+3~b!Z$O?4;40vTz|DZ0WQNcEfw7{kt!NdZ z*~e48Y>G&U)RJkUJzzrH+S(eA{LK54&v%MGceMo)cULzj?n*41a(jZ5(I#K)!@vIR zL%NlTc!GZPXtYn`k#`&YiEw4Xft2`uCN3hI#Zkle^b>>9{-aT`FH_d`o5bG4Gl|%d zKEcT{l`pZcv#2I`)DU|T`xCDu4uU4q6ibXvjFNZ}OV-uf_&?hiko=c`|8P-A{{F>J zl%xaT53atLr1dAJ95F=bp2DW^-Ia-XiE$>c&2`l_UJo?-B(EfRm5YGnbtQQD6t93P zmp_pJuY&b~rXYAtPYjbBUdae#SXoz`GKLmz-Ph@fe*OK`Ms zJQS9oxSZOdxSX6GTP;o=3u~gqh!kz6dZ-unM5`H{wHj?lm05_kqf<<)*@U{HbV{CR zb4B_Mg4~y(5zgOWK}(Tl5LGA9uNw6GmU;02#}(ntX33H-t* zZuP{3c*xW55uZ5biFWwJ9p1n;Pm%| zHf!VknkeClM5WDQGB)e07NydJ_3g`4xLSALq}{qJ+Dc*FBeNFS+QqtmZEHP~ zL?7}GTm_3{>#?jmAgw!kcb}$`d*ZNe-BOm+)!1a+Y_o2&CHlLw?xOXPreaw4EYrHh zu;0O=N7e1?3=Rve{e4En?@t9EHcruYzOU0ayL3xnU7xKH*n72U?=fjZAr}kZl$j)P zB_^&~#>%qRUnV|H(TMjlf5;Z9Y;w>bpoWGk>+6x4_Ojt2fx}e2BF3#x8b#(+aDXO^Jay zc3$af=YzV~d1c$cJa%5Q!WtzOi2ix)y!`I|O#|}S`R7+yy?Bi%Bd>1l{G|0|P5tb4 zjvm}TB7|(bric@U#Oe7Xv`wjn$g1NgdgsBG_bDt z#{;+Y-&%(DJULOa4J~}C8pTG-mQrN4+zB!kHDgm`tgjiXk+FVeY=MjoFk>khtB^5{ zcLPO*Z1MfK43sUtf40S^(BcPWTl_iIle=m0XJy;BZt-VkA-ctnx3ze?1Vfs~bZPOQ zv$gnvvaR=*zh&~bME(}b-?04Ml(B0?q=%r@+cm>hZ`TducI`0Uy?)q7{I9n}`~6-a zGHAbaZ^FF{w-@d)I6k(1;u_sgv=wCgiKYVd6X-IY^8^|T#Pc3Z1Ml$$js(O;FM@A+ z1L*+zjS)hu^$mX^Ae#Lby%rGf`O%TI1p?snSReovPX(BISAYrk1eoT9z)Jf}R|ws= z+}?Ie;;QPV#2SpDoF#^u`etW|D-!lu+)r%doH_FfT=qoNG0yGlET~CV1e&@Z<-Tug z5fS0d+xmU$y-j{w>&Li;VYRaE0?gsOn8S%^V2h^-^SHn05iKIE)^FOdeLg2J76$5q zcXQ6>-4c*Ce0p`f8(TdsYnj?sPt8KKtqz~=z3+x8p%ms((P+{@4-?)lh6mCG_lnA3 z`;6eD@2@;Mvrts(8D*%s+-AeEMA&A-YEI@gZIz|)b*NIPd6>N#S+PpBf*+}dq?tX6-7?=-jke;I5HnoPSv{LJWrTx;dLe-wJzbtqWbTC@~qO;Tk|l3-U+{@-`QBsWBgGEUctY z$(dVMdP>H*LEJ1s<5W2pZo^!-NL(Sr6@do~v1Depd<<}n$#lijJy;V&QomVb3>%ti zo))f-OpnZ1HYIXCSB)JRvGY4}?I>b{QZcL_%ahMTR<(ZQnibuGbd{#>wr)ILo$k8o zv#Ha3c2#xdf4>YXdw~qQdVvg{&(t0~iGJ1Lgj-+p>=m)Z=Fgz7$!C`OW@EC-r@pJ5SsxC`^^#C5GVC96Jtn z7S;Z!D%?@Tk!M6T)~)PYB46CuDK7s})qDG+_XUsogs172Dsg1O%Ft$CJlNz-dzu-K zue@lHhZh) z=xKdHQ1##1?_sf?Io<+_*!Cr$ntWtSNzw(+xjlJO>NMtX z{wkz6EioV&O!iNQ5=P26x$ku|WD3u5QdB2Pl96U39%)(v%?8XGIQy-5q9zmkTqyNu zRdM2+V`u)vNCgSGdR%HvRc8N~w+?11+k(xvOg-n=pr0Jf)U<|=Mm>M%46b_esOVF$ z_WX|fGEwn|PXC;Jo&HrA$Bkh7oQlGA!S<=agPCYkAdP)9!CJqsaercEq9!pq5zRzT zPozpE?cCraRTJ9BCzfx2B~#ugMh4q4`UVS|&o%cY;@jJfet6ES2YuDWudJbNdex&M~2lglCWqf@^<>eiF6MGKShG?Aj zC5Aqi3AR4hDN1NVzXH`miN4JuHTIHgE)kUj+xs>lWo%rc?7ohy{Y0-T+J9SmCg$kI zu+Vh_Y&JA%i6^nV<1T4K%V0zP)c0XSU;F7vrVWiqPfZQpu43tqaB5xE%pTg%m(u$a z2ccP2j{7=bX|qg`K3Dj4wi2epFSNIJUp2S)^l$V%c|3MKu53eJ>6bV6 zv&{ml69a7X_R{o8>7sNbt#+P$X>VH1dp~?j_nN9-&gCg>xcw!+5OdMI_}J#_Ul|@UHzQ3}~ zmxxstCl+DuK8|&mGBERHzW&tzegeBk*&cbUgo>e}`B}85&B;CJcVp~_OIY&*+ha-2 zlSd|!DW+~s8S&Pn(Hyer#D6p^(8|exfQ!X@Z7z0+^=?KO~P3fw?AHMWMk+$}Ko-1@A;p4&g-e03e>55;o+P-^ZD-!A3Cj#MjV zZ{o+;NB?oAQatxl`>ldM+ID&MN&Utr`pc7g+$w0Y-ze}WsqbV`*U&l=UBsx>#*-rKjf0H?L5f!hQPcoc~#2&zlhxbQ+Y*@ zS14@lH(qtXItw$)=ChsontAxtErh#q3t>HX9Mzfc<0&x|E2`MVb#oVowiNRoLSqef zCdJUe7BNhm+=lxDUC-sO!paJ}gsAZv+%9N-g0Yp00-I-{&i!(Arej^xZ9<*!#8j1} zs}4(>2W73pz)o#n+l*H2MB9JE=}@{b9Zd72l>5-$4s}C z+Z^|+;z}W|4BYDz*COzm5oq>_HwS=`}c^0hvIvk%*u-_{map~Z;G@^&NE_;jgB#rDYgW&!AYshDh8 zFM>{m_C%k4yJKLMqsZY*0SF9W9emO;!D-5(fd#WQ{Qdm4p*8SV^I2{t_y zi))3rHk3BRa;%kXkJi&a;SBGOnVJ6PL>Y9oM)uUh%${1G+phnqTKTCPUsG0E{ns)v zM4n08`maJ|U4g`O^va*Rdq`6ZXVOD$cUCrKQqoS;+3>+X4++PbE6_&{3_p(kxTHhf z6H|GWtYrNRJHQ)TW?ud&KOdbwjJia7r%~5t;}O54Z#=TEF)74oE6wC1`x{?$ z)GF_JeQrG@#2KO9apH(EpxRPM{6RuQ&8G}t1+}_BhJXq z9kOL#r}vV97@Pb%A5Rsa&Fn)RHBT$u;7gQjUXiyJy37<~r3982v=4f*j<+~H}O7TZWG{aq&7$aB;f`j(V=j>?{8PKRo{ z7pCW%{U3M7jiKi*)i(}TCSs|ggn=`X)zgaZ3LsW>#SnS>@L*FZctEA@L%E*yHsL#M}D5F;3yFmF>xAi z0`2Q8hwF!nB)@GOhIUc#Sb6%HPVt0sH0bNU{vhH9GsBxUWtPY`Fhuseq5BGt`U=DM z8fSTq`aI&u6OH}QzCz>FxT!{qFUXO}kGseV65mH^+o+VieayAO;JYiDhG150zjJ)B zbD*)hDtO@FpDV&cHmpeQ{Idv0;scvP=>eN7wy<8i%7eZ!Y0o<&Z@BG)+&+01dWrbf z6Q%loi<$c^a;3uD_hpu~)!Xt9XZ)fWRp;_Hn^o?Fq1J@yOV%Uts>?|pd9j>D~en%glut*UIl`bcuhl_8fHTnL)QE#>!!~BPLivYCG5xBewbyKTrp`u-l$7jAJ zhI2l^o11~=#-Cav-|gnemlR)~s^ z3v&(7PN9U!0YjUN*!MGc2zy# zGhlV{{;tjH)aZJ7c67y968~MN7iY9Zmq#A?O=kG4FAR>X>+>+i4NnE{=k>!n@4NxL zG5hdjoM#tdJk>W;?Ke=n+G(tr{rync>)OVV5UoLtBNgU2G6dtu5{x5duH(ps<~VYG zdT}@72uBV*j-X{mIgV7ABjv8+$SsM%7)MGv&~jS48%HXd(I2#mG{=vnvLs=Q zA3+h~_;J~uPH%WmrfhQ8d$;{i?(%lpzyO@y49t6aGeDl+43wugB1X+{+!?-Mylvb$ z#WwD!ma2aH$yR$Rbi%w8Ox+$<;h4k^PFJJ{rHeMG`r>F}uQ3B-QUt4G_IKV6)!%*i zR;)R?UDcZ^S#d{Mb13bTt7#)$kPetBJZ1`(xT3wk)XxB!Dne=DyiWgu zb4=Q1h|R!kHUjU4aIFxxfpAuIB!oNmfny=D&4cSzdp&bM2#Hqj%|hJo3v9;F;ah<9 zm_L9KGq_IDs7cD~vv{_Pish3C4%hUe_|=R1XQYa*Oj zk{FO^d>WM_AH6qNY?i8Wdq=0oSUKdHqr&4kAYx)@y*q-V1)ZI8`Xi{JX zC{n?3p`<5OwDLfve(2M0w@r?McNO?ffvbcY0he!I^80O5%u=0aYAV9ph^fNOP16o` z7S>D|lr-1nM$?Rr6$$K7V)Si|8kMWte;D=LRhJo+RA9F5cn{Hvg(1 zuqD`DE$83<1n#vM>Q1Kre(#n|nDJtU9_H#_QS8P@#uIGrL+?i!PpYUh<38QKKPgkOsFv4ibg{q&p@X&+dy39zkpO~A8 z-tJ3yHmiFQzD*wV1VQ!$^3HSDoV$i%F8hRiRXcyd5cR=bhDffqHF164-*%50cGzgOy6UVQ zo@v`pHe20Cyi2_|rS4K6x6Sq79`#1M4chNgFBW1k?@}-AYJ+B*`;7XR@S^|D{zacG z7^&%tct#O|uK3vB1O8syXtNERX0`#|8m(Gn$TncKwH^-p%+a#xjqPXyg&ZyY95aJI zj2a_Xx1%K#&d*d%o-9Z70QP}71{}=z+VGBK@ZaC|T=C4*clLAq8`8cn6U3UBcwcig zJEn=|u6>SLeUSrGiT%EGJyr$5Hm0N7hB9o1<2b^{HkOr&*+R??;LV4I0QO#zDMg`v zt-8l*t-8qE!QeP{?xITUjEzd|#w@8aan~Xh_8`394EqqCbp_6SE_pjqnHrh!T*31Y zjC>cXwR2@^?4loD^2`;QPk?;Bxq8~j)UN)!JBvM)iQ7_)t-?FQm5E;=yee~wh?qL7 zOjUg|j+?km)5b1qOK}fwiJV`gFBys4c70Rkg?G`Q(EwWwdKR2V1kDo#-qVa-ig}pS ztd#Cbby_2YXA@|HJ`Cqb)cxP{qTFyt99-d-?AIz>-?4@XCVvo`tI#RBYp6Q=^27cj@5963q%7^xv8z&EGN3o~hZk&uz zyQ1YB*~)u==GAC$nv30sSKH3i)ZOWVyV&Dd{oMJse$E_kyXogVcxQw+=enMnwbt#= zEFJ6HW^6q-!MDEycn>C;9TS}I!E_yw3%d0F*zslWZ}x}BJ5$5zPCi}UE#Vv_gp;%z z(J|T{wh48oeW2O?v9?kz7_+(uxBsZBxT7*L#&L7*A$fBS%TC;hG~}w<+vUC=XMHo? zdwA&H_qGl-+N;mAztyu4`Ew4R?~dJVZB^MZ*)LbRxFb869Cv}Ee^A|j8MxhjvBz_G z|93WS=e)ZRus$5&({Im54P!tT6(sJ)+6zy0jE(J~bfwURM8X?ed*~&9NBzn!bSfQ;SlnFWB^Uf%qQW z#OB_;CNo5n>X6w#~5A$MmW8@;ph8=H#je+Cd8ClUbOy;^d zrSAETPWiFtyD~9zs=n!qUH3C)PCd4ST$e`7RP3X=_G|kycevc! z(fyXa*J7W=(;9n!cf9z{PS45t>5VS@?6mf92iEC9ISLg{_a$zSJ6r|TL9EGdoMPZa zsx(C#RP#-SxOY$vr}qU`VG)P27h#=)r7uP%-w090MY?{58Ykn;l9Iklc4i8rJ2U>M z%ANYM%V7`m9f2j&Xu-U_?U(KFV$({0xX5?3Ot#)wf_nq(`Q6r$OzlsolKIScTmsbv z-Il8i^5V2YK4zK1vP{K76bDcy-2g$M>(C>|&fr)h+4yw8Ov}2=C%+}N`}#L;+T}c@ zZe65mM3>&3k6v4@z`j{s#`hD>5vF&DyZnPomL2Fco+vqDczx|2tUd6KOjz9#5|w9n z)X6tE7RWa^I?%S%I~*4tnjL(3>V)*lDq-d^7?8N%lg1EI$+H7bb-kp6Ha+QXz z6Gt{+eqcn3)7U{XZo#`X`rV&9Gm+>uiIv!26G#4`@%Gff?}$;8kF0F`O(vLr4R@^W z#XB6Mep)Ku;YfGH0Q1ELZddV_JIYh5tG?1P5BKNlliU-#CCPNpz%{G4d(Ph|-|i_% zZb{(g zQhnvyK})9w+xsTUlh6|On+GIN3R~K9kru7+xM_W9z7?w4P1pNM+HStr=39Gv0^dK_ z>231GS66wOCU(>(HiA3f?HQbSHREfd4Z%iQgIEL1D$H6+Xz$bu5)<0zCd9fIw!fMQ zP8O&A0Vf0FFo*Z;47Nw`?k(+yZvn-y_d;u)ydAUsoqP|d;NXDt{;9s-oR%hJ|J2e0 z2Q!gY+_7oot+x89!48hSBXNVopO`G)IvJb(T4G^(GS(gHi$F}5ly41%5Bi#+r?zL| zta~^I*JIh`lcnGQeR&0^X6 zW}5!S)M+m|qtM+ouE{sv3q;k4wC=eej4K?Q7pQqnGBKxr!i5*pcIl%H2boiS6N#7SOseR2~W6Q9WqaJ67o(Yin z>mw<#exv2}Z!^0AXwu}2wFG7sjvPjm4puEBMc@>w- z+Sq~b6Db)dCwv<&$&vDhS^fE%OWXal#J2EJAKszXH<{eptZ7%_BJ8Mk;H`Yjn?IG9m0_>o!9BT{Jf0s%E(y{SN+F+rdsuOAo?)gn5;;Y zWg!nVx*ka{K7VY#nz5^~)4;5UDLfb_uuXwEM_Z#gWJr&F zT2XZ|cFT)r-Y{i3_5ll1>V9juS`1r;u{eY`UzbgRWT&r54oifSym<(Y?V>#n4s_g$ z)hR`l}aTdF5qGXD+&K>1BwD3(ipBvE#cUrZO{FnS8X* z$OTs~ja~PxB}=ZpcIjmc1(;oZ>BUR0zIIaW*%K$4vCAs2TXf@PUtbzqJTi9b;!|Un zExYux%NAZ2yXxX)i>~_CRaWvC=~NctLp)|sa6C3d4ZX`{uvTO2RGhtmie9q}&ZRdH zmE;qDF=|>E8UbgBx%Bv9D}?}+eC*6PeK5o*M;F%jS#umXkPT#r()KyLFs8(q{!M|tFvCrubR2n93e;)Kop?7?(2EjLR~2^!HUjB_x$&II>W4mxAJE zNtK5|okitPg~h8j2|h}9jvQHUtX|i7-a-@UGS6EH)T?kXUOg{B5CHk;O4C#r+9uiO z50e~Yz-pvBK0i&>Gk&VbHEXl19XfgdsE6QOMr8|Cw-Xe5B~=~<^DQce8Z2IO9|Ip% zPDiyq0u-6J&ht1wB+_M`r%_TVAd!!*ffo>~mLpdK`>SzqE(;z_1s3rZO(!EJyX?~F z#UAm~R6XOT^ilI#mbJr5-vR1fIG6djg{qC9oc&~3^Dt#%xS?#TFoLjR~`b&KOD6Q;xPdqhg+C%IBEDS@XP4ea@(aapd?(=Zx;E9SDV)Ljxqx>WR9)z`dR{6T$4x0w_RPuUz^4YfJj$@PqNb{0R zJ_o<@(W{^lh^Z5T`OLrBU3^W2KD1nBL^>HU*<~l{q*UU~v&!S>@kjS4S50;NTuC_| z4qe}lXaC3%CTsP{M0HG?Z zftu#*#bv`?Q$atG7ELE3NG=~;%hw}ze14j$XZ%#TY8tbw9n*&&|pzH8i&QJ?m_TT<#g2DMxe;Vb;EtDiFBFhXq2m7k09MKIG3Tdm!K%!0%<8jw|dbE$%uJWYH)8z7``go`l zd7)Objrvp9A(`8{NcJa~bQ8))_azKR;cz#fo}zLLkE4NFAgLVP-^WAIpu1uC@f49K zRUSKo6m}g=l0|grh`fmkh?|}lC;J?`#Ge)(8>P=X_n+XC@EYk_TFdDm$_c9!+bl5*nqnw5`Zfvu@fEip~TFcQm0t6(i+N(I-IIT{3! zW(AbV3LvGa&9bb*vH+b=79exNkIt+WVb&qci52xc9D?|#-_jt_bpay`xMESa&L;&}=Zm+j zGYBh%RCf4SzzJjVibR&2V4X)Fyf%z z5nm%wj#)}Qz}y-@-;kT?3V_MfWd^hpV9M&!jl2u664qf(wq84r(bc1*4RGv1>GN_K zN>0xl)M9${AqfYbU2tw4E?F^+G%uY~}=4~KonR(L!_ zLLJZxq7W{-ktv{-!s+=Q!)xJCEm8W4**r2s_Tb=HI+MeCIG9@m6ayvI>|DWmMnyqi zgj3Q4TV6%@OUbK}bQnf0ZrsC>j~+tyn0bQR@Lb%1tUNW;5zW!1dX516t~=^| zfd3{@j(jbYV?k1icEmmqEsnj>iz@gEJa$Zg>Rt&!-6goR&VC?P-EUlWBjm%~mDfy0 z3~NpdYgTSMFyu814!YFIU1sm>0GOlhQ8Y&#&(*J{?@8~<+^gXFh`E>&$OWpJTM)=h zyC67=(7JOVbfFyxEpJrKJ8YTcNc?} z)+FH7C@8(_6*O0sR_=3{`)0{}4)Zyrg1HHJ?z~>294%)fzz?{i9syXD!7)IULomwf zGBui!mD@2jS_71Gp3w#<7jG`SY_pL(R6Seyy^bv2klAo!Lq57gI|T6ia9&X&TK z7)-U$SRaG;xC*)@*(Oo*EGmax{RzC@fkRIjrGEqt-66etBqlhQF_TahtS=}@T;@?b z5ne(Ca}$&Stf(AyJ1~o~GnfG=b9d4AaDYchltV{03Gy&lfW$Y#Va7S$vH0&1(q$!l z5g4YFRP@N-WsF;BqOfioe{#@~`6ol?$@f!7twBLH!=W?8=2~ub=f|$K(zymGNEKA6ZJ~Rw^jWSrf3f`S6h+p~W=E?}$4GfrGqYTcq5;%Hm z&TuEep}k4JTBfMcDG1h&&VxxVmt@Cdtf=zII}Cg(C9fKKDnY%@-Q}Ip;U*QQ6`IU# zib1-#WbA1A1W$k~X?zJSZ}-+37^ZfZk*oWZv@8HpGZ60k!0kV==&^ zKLN^7^(@&y$*_i=;_YY?{Y(^;?d&W+J~B^^pE?R9u zxw~VlAXh?)ed3Hpx0*)iIUV&^>Kmg&hYc5BC+wS6CtRRxNHZXIHR%7Zcd!h%sz2O z6GIDZ!;a!#D&pmplg61Aq~2?S3GRE&oZ*6Dw4@1|3pILX1pfXX>>k|Rw-Pm^}~ zdUA*F(?7|12wT@U4yO004Az`D)UmFN_2}Ft?}?Agw&#gM9az4$`@i3z&XX|br=&^G zrMFXAw`_E_{JFM&PNM4Q?RBThe*}~t`zBa^k^`b3q&0W$xsUGtH8XCu@~Aq1uh>V8 zfh`O-$oLW&M^HXm?Tpwq=+(i@JbFB0z_Cyn{rBY+z>FRlwt?AYJa0 zAcg$*NI0qDmilXOybc2I2pkJBt0jP>r82qvo#8$7s0ulZCj{(hhG*|zB5aUN`4fVdUMI~N`P;K zbN$@yav<0;T#ha^%2oT^#4bl|OC)tqyU$CB%|=bgfPbFG(uL(VK;;Wdna-QsrSV-=cCfS&LWQo8Uvexzv;HOI%<1{u9zM2Nx69C|B(> zuSQ)@Y*UgcDzi3e6by2nX_{tY;nb$u^Ejezu{;9Ml^C8#NouG(F~UV>tkLqNRWvd%Ya zosYpXxPX`~;|R(}8wDez37AI2FsBOvagCY^Ak4>3A3+>dMDG_eIFH_LI5kmY=v9Tl zuY7d!Nr$$nP+6L9` zQFE68w-U~!om&j%SyYa`#-gfQ3_eO2N591hESY%4jn2>VZ3Lnf&ZR~564Z;3?qzog zdkG4{+1Cx%OJN)6y#l99o}n}xrmOVcg>zrD0Aat)#v)=~MNc!ECC_fj!DYfV9AHxb zTb2OIN4FnREr*l#uIXIc&nQqGpC74u&MyvX*xNWWk;`rX+hamfIjq@2)pB;sl}cU) z4Hi`cXyv2TVDYM(3j|BxGI6*7U@~zXtM34U=iPctWta-p-6ewZ(OI%lu`_g4_Qyv) z3YJg8p(~-s99&xTVXxvoVG~fCCvl z-k?^kj-hI~t>KtxGnaBWEYj&kWby`jI+s~3%w;VcnayfpE{d7M!pN*lGMi0rs|?oC zV-+#^>=uS-GB9I$I+xip7hRUwGM5hI1TuQu^;GE@dRrmrc~C5c@F7%{jZHx)0f+ST zD6k?!p7PNq%19|3-j1aAybRXUI|j!zb6OZuFM!t5(=yNLBJ&)Z%=MIch?(b{7KUPQ z=)vgm!n$HS86hq6oECTeY=>mx6*oAiJRCBJbXl2dlzRo-i$to~va*gL##N`HWo^*J^QVNl>tqP(G%mw< ztC`hDPN4GFne;?9X0;g(n649?FZnVKCsI&z{|40QfCdhqckI0UWUvfBhoYdVdJ>0~OFD{IF`%}OWu zcv-0e%MT!^0@i9_U8?JytZa_zvQV|_p&j+QvZJ~zs`(a`LwOce-I}bn9XWmgVOZy` zbEyyzM7pepG|FB5+;icJ`vsyNZ#Ir!=VRn%3E-=a05CEaVr3~9xgIXSB(>{&3{#0- z#`XA`rRGQ)gwxcy^*;sdXT!n1+)(!`6xqHcd+lziRQWWadueBY+wnPSs-ALG;@5EB zNilcWK?6_=Wl0>>YN2XZfv9 zg2PgbwehN~k%ruQ(^TMr|Er-1RVhOcdH_wRV!0eQ z_lTpW>M2JxWvO{I%iN)#T|hl2OX8?v3ssv2g}S?!he3lyeVH}mkFGrAxYh_iMNSDgeD0kKF zK*F7HSWK|lA5+2H3gG=fewqM0Tw3QR!ICR8cIQm&pWvWcdg?0-HM!DxU}4VwDwnDX zR12joI=1CC%3X-#W7Td7RipdM?m6|8b_ztDEyb;&rzCfn&IKk4*U>Y)o}OFiPm0fz z^{0;7h_bY*66Y49m!L9`PJL$r|FbAp#*dGjjfKiwIF}9JUV>s-i{T(4J+--1Ta6(1 zhH%kpH2vjpc!8H5XIBKX^Djox7+wPZRx=C|`RE-6M*6{-7p=${T^Tvu3CEqrSuNzL zzCh>LJ_3!o(L6hX;34FS9Lt$|tICl(!}77`SOy3-P3fs3&11%FWJo=nekthfcCRj9OF=2Gh>C#aFycIV5K93+ZmuJVxlnjk)xKo~1k!?BAX;Q+};Yh@u~ zDL9w**h^4s7#(mZ{}F6#!gAOxsTjcW(WTL}Xiu8ZWtMO&(vV}%sCtqwIkNFWi%nVP zj#}zl^yf*|5ah-2T1U_M}!xdU^#N?wHzk^r?&YkfGz|^Q#0Xv`# zupi1#iyGF1E_UDnH*)M5mC8x8bI+F?Ly}`nB+J}k2Lpi`0_SE28i&fC2omnyx!8e4 zHP@nY*ny^EK4ZX$q%NC)JR>8@)egpI(>d%wquf<-5fb*a6VtSq*}W`hc4n8Cjiavl zXhXRYyw}1Nh$ulu3oRi4X8}|KM+(Tw&e3FT7e{B)IV?e= z+^b+w`M-N-y@bAe=04jdW5R(ZaA5=;AErihVNq^fv-t>T)sSO zyA#f3a!D2RRJ=TF?lsxCRG&t9MLg!vq(-{*7Z!^1XZdLT_W*_F-)OjOPB3XJ9Hu`| zn>^KHlq%35^s*l#L)d~#jdC*=13EN6mz^@dyXZ0j(p1V)HKB^-it0(nF<*wRyk!Yf-ELIddXP3$%)eKPKe%z!MO(!F{Rh8)xKT`FapHfJT2LdpWOM5E? znBNh0DZYiOi-SUy)lpFv)m)3pQBf9EE&mO#62>u<3;~KvT(1>#XPHQsV-<~Z)hj=l z`@BpikB!!#xuUS_f-7Z})sBKUS_OH7ZH5ZwRu9?ifI}W}N5|Bd56M(J;m~5>-8nN)?p#AB^p412O|Eo$huP(VlSa9-&yW4cTgXR_vxWSz z@SplVaUO;b!Tff^L0ed8=c>79SeLfC87v=_mR&=SIk+_TM@$rkyEohv`APA4vi{Uj zyx(~SoNIf`i=2#9yt(Q!zv(5YT1cn9pX_Ley#&SY{NCfP!(M`7)8bA$YMI^w8LXqX z9FF_-H7(5u@q(gDQvuZe&cs?tRZowJ)ONp>+_9RN1fo0O^n2nAlf1h-{FLi@IG6ul z`teX?woEdtqsKD4*!u$jKh&#Hth*RoKwzSccgq+aCgT^$IK#tre9k%_!<8})dc+Zw zk6sLnLF@uJ9OEd2wLdiqfXQ%vyxTu+L<@u5r*~0X+(gL}1=2h(=^Bo~i(=92GDTsM z36iRYo?`4c=A8*tqokT^@p4S22uLa_{K`icZ#`lg;kvp1tBidvy+Y~$Lg5m~nIULGA+)@6#$TBmfOJ~vp zlt(zfX8-p~hA-F;cUkW047)+2^6Xvey|Rw$>9xYCE|sCj;am(5PegsQ{7e`s;^m8j(;4=9^&}CEUM%2Vy^<5W+PW@9qnT>P*Wt8 zV+CcQYT4IcE~)Y`Xt1ap#kY9Xk%JP(kt4eqGI71Avl56~;au8iFG00Ix*hHk_7W6? zv$vG{rLgnpJqV{-3PVpR1b*eCO`VZaI1EzsRPuUz@>wlb@_Lf=zc_fpK*wcSJ8ZlP zsDz|)jGq>&?jlg6Bvl>;^DQce8Z2J&pPpaqo+D=*Wa7F5#m2TqrmMlPe6;F%35t#F zaX6PQp_ibjHII^zp0fT=bB1@XWIk^fJWh37_CaWpXGl~HJvGB~bkOX2X^<{kh1Uao zvqU*sbR)p4C900z9Wv;!mQ?^#PBbCsJ-dxSJRsB6(R)Y+9W3?&{1O~kIRCY7UgQBY zrOWiE2Pn7c&)+W@<~L<7(;uB-H)s^l-l^Y%D9nH!b*nmchSbpHnA^vIS_+3WR$b(w z`kF=Mn7@qZ5ig7Cc)UhSxoS9#Q6kPoNItqJIvcSnIG4RA3pJPKzED!-VKC34auna< zRXZDelrXgj$wvz_12Ho3if=jJ#bgs&3Fp#T^%B%JNY~~rVJ|^JIJ>E{Q^ACuUMt** znf{5HzH9qpv*VP-rRjY<6kEv-cZR(L#hx<(XKorX$jP3|_R=^LB{z*ovqaL>vzvcJ z1@S8%-On+}WH{)Po?`5nsIsF}ylO38jy{uJ>2f$+)1cQVgEjb-kIwNS#5mJ)oyg}! zvYON!(J@Ev0m^Os|NAAw0Pk}d|8<7lpsA<`9BPB!Fu9LaOOMy|0HrrUK}pL;>y_as z9PEPLdoox@kBQi!&T6reJF0jW2!~6~j;X-ML%j-yuS+53(R)({9oFy~z};j^(LXCx z5G5~`rLUt`DuWJTLjZRp5oCpqWgXEA$S4m05Ri|(ntDuVvxQ%P3+8q7cEhOwk|FBZ zWvvhc_(p{y6(`ntsAOZ*bgnIPM34Ass-E#<&qkxpvd%N5s|AsKv?9+&tO^dx98T00 zsvv&lTC6sp*{ME>~5JUM>q zs52lwhkO*lxkT>~(xvq<-DEh}4n6XB*`b(ZqPkfie=>BQd_Q&6MJR~se;t#R#X#K( z=lZq~k$;23^;926B@RUl10)~aBWy*i4Gub_w?hUU{l+$ce*x!ejJtqHE2OiUdxUhU z=G|cU0vxKDURnknvkeYMM0HcmpA4NR-%lMi3WcE7UG}6t9x4iEY|t(Yi5l*XDh0Sq zq8uhL5Mafyb_{}-NGkcUs%0vOU-@Xu8iLpwxNfEkFIpjr^69RIEx;~M|3Lmn8u|tXq}_suo{k@?EEjz8jWKR=LGBHBZnbJ&TU-; zBA5cX^o6|y1>xj^1j5rcRBhGKQ(cCmF)@K^3$y5b!pf%>)N+M<`PhxjR{5+RXptV% zxagX;#Hw)7buU3dI8(uSn!`8{^++S5R9WdUjf+OuQrHo@Xrz~*Ae?T?XCv4Er^>z+ zp-13QDteD)5eUe~ZYHW57m3?ybma;ZcfNKcRH(XG*Y9F7$9cfx^!-X6H_J2BPY z%;un^Wt`n&F`f;$e6&<-KO9@VVu`PXfeCOJwI{;csDiqLl7xaiso?mPkDZlD-N4k7 z;2<)+2W7C~A$U7fkZhh)LHx=`v(cg>tsClc0RJASW#D`Bae046RIH{YQkeP7ait34 zS3X)(7FE4PRi8_>5CFx?afq}yi>hJKRW=T-6TAuzb98!l$e@FY;5*$>_W*paL^*`B zP>#tH5{N5gsv3GUM%CgNx?dsaC9t&Uz8e}M31>}!$I_x{(IX3dErQ;I3QF7TP*8fW zC@4KHUkq^(cg_0A;4FGm6cl**=qkAYv06CXC{YM&n79Z4)`bgd3BXDu#~}71P|VuJ zAWqsI)P9D47_ zVBHaT@4?Y1=Cm-g9dPK==ST!znN7RzP6N-&=&2f2uMpUf0WpD*Bv-LbnV7{!$EC6BoXst2D z^>Bt*V9B^Z(O9cK+8bYi3cZh!+)bV*w1aImU%Ui8cmzD06ELDR=)c~M; zw8q&ZDqifm%`q_`5 zxB$pU7eP~b#8}z$kc{C^N{6hNE8nt5@F{po0LOSi{Rb6Q2%b4&gFIB@vJB>0b~HCvn2A}cT8qlji!A_^Qlg`uAXv%i zKs^OiH?53dem?<|3XcC1RWMh$=Rp+&3SU?VwvcXwj<`{xp8&rF^q9!yRN_jPs{}-ZOgYZh*^K=Ed^j4(mMrRg-T8n|h0RNU{;IOhc zvM9%jA&@l%M=Dl=ntjVF798!ccS7$~IJF%56GF!n;(d5QWaP5H0*rkx^;Vgnjvf<{ z)2tRNx#I|gLNHtGR0dmgjxxeT9A{*N0pyOz5*#NYKxrg~2tL|AIkBVu@U5fYZvE|6 zLuSqtSpcc|MH1>4WyKhRxDL^51gu}e3hmt`7)D9=ki|D zB=BO@ViAsC`RJ?&UI@otFUw%AqOoeaXH;BhUm|%qnhopwR*7;L@~4i{HSW@7UI7ty zOEGG76}edKm7t)pxqUQ=2Fj{&QRSzOVnMdL=k=+hX!}Ytjta6+`IM$xg^NBvbrhRg zS}LZF9;?!2sZXl6CCX8xkB1rtW)tDO;u`14(I-c`n3QH}Lm4H;DaC#L-r{KgLB%CT zU4Pi=c;PLc-uIjV6T@ePJ>?LvkC@&UW5|~bZ!wO#`ofzu03DdmnBLc091epHZ^jo? zB3VTr3<-S^AVFbYV{qRy!WK!WNOGPK9uI7I4EQkV% zi=B9U{D-3Sv9Qzo+S5lpMmEDR`u5X7PN7Rx&MeUc!26nchnep<0Lroq!_)g};7PUu zf~H@V#;<6E=ubYA28=hkly@mGk_@Oo{>*ToJwqV|Wm$#o(&O`oW}&5ELJYP5I?EyC zq!KY(D(!QuAC@w9lGM)7;ZXD0;V|+Y7L|~bM@VltYw$J$>OG~OOhSEdI%_En6?tk_ zSN?MbOd7x{t;~`GKhnapXruaeNqt%oII~)b8{OYPc4t5oLWKCdm6WWwxzXtMjRLlb7oft|6oY- zm_W3$?k}0aA~asBG!w!U=q$V7I63Jnvc`zQe_0s=3D3@^3|o3Q$78me$yph)_Ia*N z$w*)2k#;AasgyyPB=*!#NB=U-E)|toeY&Kap3Nq!Q(|YR=FbXS z41VX!W{uL$G}%a*Nca`zjZ4~&vVi!)tcq>zsU|3BaOJ3iSrZxbGdTN8kVYEioUA}d zbk2Yn3W~3P$W8zNA?mVt7$&j!LbvK7i2Z69!qiiEawcS6mL6IreS?XW+~#MoAXfMV zRH6`H>t`~-JB(w{L6!z4m;az@fNq-S41iS#@pZrO^tXgd+9<~&^NWdQ;F7_{*uG>^ zAD-v`Dx|m+m~vtkhGlML|BTJ zBEEGN5@CUVf64?xr!o-khx^ z$w!FqB76KtaMd9RvBEHun>NhNEi<1it}>+UNi+N&XtVXpD!CQxruC(* z`~yOZiy2-B_-ccuriP~5fH}*rF>A~eq`FSBAyjMTkbhf z=RYDt)4ZfDHyN;!a!nz`U5qR9llZkpSTYh~9a2{GVPV$GGz{IXbpj=-jPG$~%xr&P z(C921Y?ksXjchlDM1&CkWGYQb@SweNwdPpJACb(a%ZHqVB>U&C zS+MI;*=#n`t8BJ(C8Hc$tqf#W^Ke%Z8jld$WEscyHH-LTq+u3pmygKm8ZY~-pJda@ zE{JoZwl1m^V!KqeRxO&xcQ5i_#m~pb{!9!No9N;Bz4FAevoX&b2IQFl82{?WN6;|O zI~PB`(*X5z*DmnO4y=&BWMIqW38UZ}2#A7f@M{#@j9(8XdKUsz$mNZ%K8YXC*NxCs z0NoS-D9qC~&&7tv6P5odGV%jLi}*3z{z&Wj1~DEcmYCv=Ko_5W06%S#a4PoXpMdi$ zCZV@`!hZqLc?&@JEfV@%2u0BX;8&97JEZYjG|W&G-40Y6(Tzk0vS?BCIG}$d=2l_~ zY?w|!2jk@w&+Ufci3YP6Sq4$`1)#n`bQ951NlF8KZUXcXV(vC7pa@_?*~Fqx^6Nru zfb(qB*l-qGJYP!tQ=tD!k_X8;Vxf}~-9L%38qTwY=pqZvs>XF7-+LF~*E6}~=g{*r z5Tx{%_+i9TElQt7cpK{7GdfS?i-ctp z0g=$D5yZ{pWj_G)e}q7rAbXQm1cOP~(XTGW&ujQO>AjbPm`@w?j47y+7B@p$+-zxa z{=4CwM6-Ms0iWlq1)JfEf+z566g-DtPr*z0^%lH=U!NjX7Cg(%fc-b22KtTsg-2Wn z=NV)?4%U&UJ*bv`^?1SeG$j2n?o5|-`M z(5W5?mC4Kg0I0nxBrObM{8yDU*R8in!$?(SAa|m+JXqXD&tbL zBM;e1L~c(tXu!p)r!rEY^L9^n2k6*Q8CQYM=Rzk26MFIuh(?%n4pwNpC zp+?}1{0iXn2?~3~$g2_Az(@p<2M~FSks>cL9pz6+4r$NGSqS`vIlk@@BkOhK-#osN zNkqQSByV_vqVhFJ#(x?V*y0)GzgMPy*K^u7;_?5{M*9tTGW}GR%N#(x8O#jKF$cJjY?Cce6m>s4PD#Qql_*XJhurYR+op`cFyp6&X zQ-@}XDhHx?oyBj8#xg}Q6=5cup%Ii+@>4&yv|n+O*szyt?70@xlpSV@aWU2SO%oyF zS0nl&L5saN7oufE3fOT}{^Q9Q;fDj<>WM!I{{k#?0!zGVG-L&+;WO?(#l$VM%P z7i!#h>^Lc2e4EDIWXF{-@A&`HxSQ=b8k2}m8i8XC%JPri&%=UDW2oFQN{IV_3Ow$K zKd4F8dTS(!D$x@lxt}SY@Wex>3UQd>yX{=!b2PZwo-)1(;HUb5dZYJ;wmg3UhJ$fL z6!^I(J_f!dY4Ps1<@rmHyv~$QdE!3<$%Ot0KVat)|4@T}WKS8NF%pGk$}L?)`2oP! z6TGbp_;rB4OWr@}!X%FD|ApX3yMUJi9KjMa@G~#1(5&+KzW~gCI2iaJUBG3hVbcL* zfycXmF9rBfxWE&3@YtUN6dVok)7tc;q07n}+Xo1V{DmDU#?A+PGZXFX3U31}@_E3Y z=?WhPn55rr!o}FD0s19LpUZ;wBU&*ApgkHCABN~}S@OMJHG`9;5nl{&e=JG@&wKwN zq7|arbmbtJ|2OEqPJaLD;1}n1mc(^9 zc*O4n?)Pwk19rogU03`KjXP+^sRr};xS8%XJ5Dv2r5cyE<5VNu58TkP$nOn1PUTk# zxWv7ai?cc>5x-GW{imIZQYrPtf29fD&m|D?{^QIn{>zTD*~>x@?1T&atxNsKU(yL< zK3j(*%QSYv7qIUE7dY9cI)`Fqdv^i$N5W4r;UfMvq7Sf|M)<7i6!9;NH^Ha+ENc+) z?*jZ5sVlos|4M^LcA+l&B8GB|e1Y+H5tV8eYTTK2oa!@ws&Qx8ab3p*5%-^Aa-V9a zvZ=jR6C`p8MEn7bn`XyZYLEYiCRku6P$o0$OehB~khJ4uVpX^;nqa9bf!%mM(4^mT zklKnebAp-U^{!MRexD}zwu8V{s7_6_%x4W8#T+1%fyB@Ml9|tq4gwpSM>N$xI;fO_ zM&LN?TDZVES7}6inI^b9mxGAEtZ_fc#Yss;{H(LEodFlP*Oj|DDBq*09_*gVUJ-{i z{g2)0ZME^`Nu~ggbWbYccWSDixKr5_`kE%)ZYP!XB7c-sRe#yc_Gx!2n}pjnX?ypi zB0k`3li@S&R5l44HR<#2q^jOO0M%}eo*h1>RfB5rDF^J6IT4?64mJV@f$D&d>jjfa zX2u^ewiyKX^##Fib@#;{PQ?Em@UfEtf6d3T>M{FFfKD3-aJmb4CBVNU^;^F2L5up| z0ZLKELv|Unor{Qn@m!POn4KW2T(eJKrK#R?r4sQ2n&7W?0`|iuhapwi&&84=@V=eE zCdk#Az~{GVGgpvyO%-sZ67k~m%zO&$1U5nDgWxBhgCHS0flZK~X@W94L9QUhQ%pAf zT&YC-a!pWfC$I_f6bKH-Ajlv)flZK;rkVt&*a>n4xk^)=>PjWzyEVZ`JAqA*0SV0h zhe43hb^@Cq-_`_Y*a>n4c~MhMaHSIQ_%t)0iFN{;AZtLd>|_Y?WjldQkhe6!G&@1A zAm>$^Y^J+XiTM4R;CwrQO_0BWfd3IDaDks20cM+}AR<0}x{15gj?1=Zvp?RXsTOum zW$%ywqUjgg=~*%nKW~PaCZ-aEw`6%8Ue%qXQ>~w%0Aoxzd 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¨a_rq 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

k`2-6|A*V0mYxyAW9a#z3CLtdoKJPe!5BBujp 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

4$?nTev9vOw*GnYQm)s&Mc&Qd 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..e39dfff86b9e5e9875059f6695956764b6399374 GIT binary patch literal 646836 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 B3e^Ar literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c new file mode 100644 index 000000000..90a87b17a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json new file mode 100644 index 000000000..1919d9091 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "1": "--target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-armeabi-v7a": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" cw_zano", + "buildType": "release", + "toolchain": "520418125", + "abi": "armeabi-v7a", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt new file mode 100644 index 000000000..bfef69037 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stderr.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt new file mode 100644 index 000000000..3a4bec200 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt @@ -0,0 +1,7 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a' +[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o +/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] + std::set::iterator it = transaction->subaddrIndex().begin(); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 warning generated. +[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt new file mode 100644 index 000000000..bfef69037 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt new file mode 100644 index 000000000..22ece7f9e --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json new file mode 100644 index 000000000..db95a67cb --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-armeabi-v7a": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" cw_zano", + "abi": "armeabi-v7a", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja new file mode 100644 index 000000000..589fb4784 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt new file mode 100644 index 000000000..5565e9b22 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a/prefab +-DCMAKE_BUILD_TYPE=Release +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=armeabi-v7a +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json new file mode 100644 index 000000000..5d70bc0f5 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "ARMEABI_V7A", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/armeabi-v7a", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Release" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "armeabi-v7a" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "armeabi-v7a" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "info": { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": false, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", + "variantName": "release", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt new file mode 100644 index 000000000..9c58eb98b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt @@ -0,0 +1,12 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + + +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake new file mode 100644 index 000000000..5398a149d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt new file mode 100644 index 000000000..abb4d2242 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt @@ -0,0 +1,170 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a/prefab", + "-DCMAKE_BUILD_TYPE\u003dRelease", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003darmeabi-v7a", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi-v7a", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/armeabi-v7a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json new file mode 100644 index 000000000..222dca8aa --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json new file mode 100644 index 000000000..1e1b5d8bc --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: armeabi-v7a", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|armeabi-v7a" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|armeabi-v7a" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|armeabi-v7a" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|armeabi-v7a" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|armeabi-v7a" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|armeabi-v7a" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja new file mode 100644 index 000000000..6139a830d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/release/x86/.ninja_deps b/cw_zano/android/.cxx/cmake/release/x86/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..2a091f2263568150ae2db38ebd2a67f03d9f001b GIT binary patch literal 24824 zcmeI41(4iU5{CQ2%*=_y&W>Wp#t!-}m)u>LIZ?ElH#_obq=}?iaL8dNahREz;h33n z%*@Qp@IAqP1+_3qS;>EwA0m=7m*X;fWy22 zb5IbP)bWShrZ;G!T0KadxScs(R8Qid?)dzQJLH9-$wq(43F6c_AoS9dzs_1Zzr zZ?|jlzxX$c&;BnyME=QVWcD+famzTNiL24{r1b$Of~kAdrqpK4oVMq*nbVvsjzhoc z1ySmR;b6;YC#J6xgqaftQD?Ykct)?=JKae~(j<;Er;{d55cy%JZXAE|WM^=SlVGtu^IuTAKLX@$066=wH!1Tf@$3@eZ0K4Pq94 zKNgGp1^r=7eRf4pXa-GKYyKJSc^cY%L6$oGCUfg%Fz}7tnQlG?H;C8}cJlwEJr8Wz zo^meiMEntbmG$1vnu+o1R`U;NF7cQW27N>pKlGx0XUg>2?zP_0&{D;e-)q@g39`n1 zho;Ip&)3=zu{UwUpvA(gHGkU;KTjOH2`;tfZ@Qs7@%-kxzee|>CB3gF&~;rV8fCZT z4ZB_#^hYiym&mWQ=Da*JT{r54VLMB({g>VF{RDIF;{seHzfjgKWNXczcUw1%eJ@-v zlwd8B{4;b_;$~$ibNf>*O;Sv(wo6%lqNQ2HFE3yR{kYq6TIHO1QtAxlqS*Q)En8c; zgLD7>P|MZ@^6MDoAD|mzbJz2F)^C8|_qBX$bKGpCZF8&dY5BHTN2RLBchOzq=g^{J zaL_xWx2LGAsx;e6Tb23p9mb)Odm!4=Zz7WfekJ~Gv~}u>1+=Lgd&01HI_vve=+D#GD71+> zc}gf>Lsw-T7P@}iYSY9?DzoLQx<0S;^RwkEXfMq@u+Rcv?SJ`|Gah%^)LQdPj7NP> zj&sTv8H39D%=4?V2p?UYB40p%iSNq^Y9=2mu6mMD`Sz*p|27P zbHArq((yC5L1;kyv#Pc?;v@?iBY9`lW_}`{L0_eI8P1C*YqETLY1v$qYw{`dRdTW_ z5erSf=a1M90V5de_kEIaEb;xesB^H)_gh}pwEq7Dx+?j8DfptYomJ24*v&j#?K%3$XnIsmq$z<53pIoZ$Wb&KfB()T}*!~4f?64GBb<|-mEp} zMJ<&(p_=qJY0Y`D-Y~nEfj6S7Qco=2|M@^(U>tKb*1>{(#lj0coFREF{XAn>%4;!* z8bxjU9Ai;AOUL=68o;yYtJHV-Ua(=8HnU%AKBJ{;V_#=<>&w&Vs-10})Fec|r_fZ{ zd*f^QBJzyh-FZ^W=VjiOcv(Q&Bu^;o+Ps`cEAqIuZkZrIhOSCZQTn;jiF`awd=+_A z*=AdR*;w+3vdw1LH*IS)>+4}$F27_oJ(FK9)WXq96;n8#RY#VquVG_bJ;=>`J(ED)%bu7P7VGJ?N^e=}M6OdpDXY z@v?fh;d`m^TWwpI+@))8o`2qnrplVm?HzlbVi%Sjz#U6b-}?M^^i^`sa!8C{irRjGIrdV2Ar)yGrWjHa_)%5r13 zeO%rB%lGn-Z}TlHe1n#5buMOxbUse5M|UoEcfF4@x_8I2Tepw6jrMiQwilU*$hGLI zth3T~%9tX}#pY|2ZDy`pfiH5k`g|APyWpsD(@wk1WdONK*>;m8k?qc0iLOcLN^bXEEji|Gwk1G$`WsO+x=dts&cWoWC!wg1rWu~98QOXg|K!?-?C?t-x^ zA95+-!y!~>Js!+^1-qvUZ{#(jIK_tV_IIj87EBhMOwC2=XOk?WxUpfTDFeq z$_2`{x^8iQ>wIP1vSgRJ=&Ho8(fq(xbnak4U+6q#o9%bWtopgiHhW=zoCI03MNV`M z+A90E^fxKEoUQEVyq8TA{VZ+WytWdVqpxdA92wEp%_}RBVQt;Apc_J0<;*QB$U*e< zdQiFO0vU!#N7>I+<(zd}cYIHzoZl2(l~`37N_-u@YAktFSt#0Rs-PT=r4_C4>fUe3O9#s^X zjplszlvcm3?738L&2fsMxPA6jC|ui+fbnSV?V@_=>oo8|v)l7NE}rrD&z4ToudG{^ zY|>EHE#_LpDC^oBmoHgK9bJ_^RC!*xZeLn2Yeu)hcij6te}D&MzOwzcwQp#E^r5Sg zla1LQWNu;_CNYt3#6w>tzI7tDR{m-oIYZ0W#j{X9%8L7_uBtBYRN}>Gw#j$8s%{Yb zrM;)A>Jmu?c(D#K`&3n3vN8KwG?Y(4S7k31>#F?D;@HAI8GV&lHm;Xjj9{$PI*D

5#|EW=_SVPmDxPK=(+SE4{3j5FR+pBTeqijix%)>0i9DaBBWu!shYH zwhVGfKjy_q$DymTen-!Ow9Q2?mrRS}K;&5TRn|?ZZ|_ z>hl}Lb;FA~qdK?hM2=Lpn=P5&P(4C(~v zm0)F91y+UCV0Bmn)`YcSZCD4^h4o;4*Z?+!jbLNg1U7}uU~||4wuG%yTcTi3e#XZ>;b*7C(MAEuovtN`@p`iAM6ja;MMRN zH~?M?2f{({I(R+20S<;k;7~XW4u>Pa#@D0ZXgCIrh2!9OH~~(Cli*}H1x|(2;B;`| z4Dg^2e5iw6kG8(+2b(hlFdGIS1l#Mk_k3xCi;YQV0wGHHDxi=yO9uvF2yAW2)m)ha zXMv5O=fJse9?XUF;R3i2E`p2U61WuR!DVncTmkdpO1KKHhHKzjxDKv|8{kH`32ug4 z;8wT|ZihSIPPhy1hI`;%xDW1!2jD??2p)z<;8A!C9)~C3Nq7pLhG*besMhoRWZ8ON zwx0ig*7M|5H&_;*+270J^Z#~yw&&o&??|8HajEPjUXgBpXQ4Nw+y5AQK{}s#7`e5O!z7M?V)^zJ;z_xXS}>JNe(GC^x!e+2JYyn%sRlC*@TD{kx3R0G=(LmXOBoVOAwfsh0V7O~secZpqWpLcd3 zRNMNJQk7*$Y(-l?bo&CE)(@MQ+7D<#TQ=CJHZ&oPO52BRY-&X+Wfha?G_9!K?{{~P zF=;DJ)jsT>{OE-1xf{eP#V)tMBx04E{L`LShrj5ORF`;D`D#vfGE1aX&P2 z(9XV*?}8u^flkm)#LCCY6{8SK=Zdj>u6Wq6gb2X?BEb1e6?MzZ=>kI&*4Axlu+L1% z-tM06-tNy_p8ahHxaLpo*)Lv;e7*nt+XJ0n?O2-n>+SXN$X~wy_R7jR21%_D)<^}M zI%kRVYkXFY6}oNR=S zn1e!dv}}rz;l6$Y3rHVBb zPaJZLS~@p{19u30?({z1g${B40w_BGegM1#J_pYI!u@jvobyZaJToplUkP|RgFfHO z@Ui^;zy)9k5UEh0KNOx<21AilC|u^Vt1q-E6^h&YYd1o!0~-J*wuQ0nsZh&AD3A)V zFL8i<_yZ6FR>Td5+DAhj1EKp-|87}^eK-qT1112LIj;1r@hf}LQyT8jmcO64KL5_m z`Q_l)60H;S%N@2b_58&iEdIhkB)qV2vs$g57>NWH7H&CGaADzJj?{9J_E&C0+c*BS z7+d-cYB^OS)EAKT-B@ea*K&NZqExTWUkXfJJXP<%4FCMH@8oM*>Up&%O~jyKm-1dM1D;2T?r}gp{TKz3Uib^$hwZvUI<9 zl{$#dl^okaJPMHWEIa_P(1+Ek30r`xKIh;^|%%Y@w=FP-0p{sX|xkKwLlqBp*!C%Gw{*2;z+Hj7~^ zu`S+{Oz4k=GkL8z6Fy>C3Slu zB{{wQF)?B%^c~@mkpZ_=EZSPnBcV3GH`KDOGql#zib+-y!W$ZHdvg7brpKF<4lIPn zGmORZJt&6TdNBL`jS#RN5yb6mYJ#PaVpG#jhykaxEW0X-7Frv2b$CNGJ-VJ1W6k_R zaZRkMDRGw?Y_=N^zrgfzHSx3;B53CZ>N}xx4JIHf-^HT`@c8`RN$eVLKNR0yJnj+x z-CzyB=fl(ZW3WJDU>ge0K=eG~_vY@34~bQ>R?q%8!j$GW5V%_TX5f{2E%<9#mFAz~ z*`!p&Z>hC1QZ)P$55F(?bFd)W{{P+*x#F~`*1a$APD+iBrw*zU!(SLwCl8Jds;bBp zD?+nojtI;6@@&pB1a_e%Vp+3b#PWtIckJe}emIsXXornhcXUfUx;2{UO(qlZM68T> z!*OkiECv)J3Q{!v8t_nU=ME^k<=zTs#_6tKh5B>II{mWY|9ifka3L9}{Q%jb%^A(i&AH86M&7`&i_ImsJ53CsdbhR7LWzUP2(FM%9LE!v&<{gv$gsu& z@ca+PCWJG%y0K+h_a_aR&H5DKSGf7SEgpa4YUSZJ|AtwAsNo5J(+mD}4OuC!Zpit) z4NoXO^cTfeP`$|~{!wK{e-1}z2wV}(0;k!2xAPtEf#vhy7ixtRu?_m0b^4RgcOe%# zqzLZl#XA2a9d-Wqp0Tb;GBJMXbB=uA26!dmoKL~&RQt0baDvtmSLF3;%(&X8l9 zDb7aIv$?#!8TaU@eymtNRuEBI-8aHrifTD(Rx4*k)OoT@1$Jz6mUo0w9t~Kgu2nP< zHL~ior4-x^=pM(2Awcb5)Y?zx?C1~ zDHZH-=|*~X2FEpR8AmWATjL3qvfW$9jE@RKL^0%wmIlwl+A#BMg>Y}J0R^@b3wkKRI&KA=6qWPpFSW7snIy9ad z9aIPR3?TJ6eGuwXBYXQ&BkJCvp^3psbu!gAG6<(SHahoINI_DJsj z0B|n<$Yezw2~a(1X{8c+=zbHZs$Mo-=iOfmAJ5wZ2lu2#hx_Gb{VzDTGQs0p|Gg}W z%B{W%hDJAz-vtEoha`FYKL>-1W6mHVG6kj`u`@`B3&t@-M=MJZ#s^dn6HF5yw~^ zz|ptkZXt%?I3#f_q&&dBz-`}uc?S+dmhF-A{y7UUt`FcnnBY9n&y*+Qz6P0fvp(h? z;$g^=WV;n7hw^O57#*`I8ajn9~>K0k-)RuH z1etSBV!Q0e9|4ZT?jIK5916+4!(5w}Ki9?a-L!}}ezQoD>t%iR??;G}KE_IU z88X|A(+J}4O+Rr&`$-@1fy-?p9>;O`comk!7!ub=%G4i1Cw@i2CFyH+<7B%x5cjHd zB9NLoVaTC*BPwO~8M1P4&T`2tH0gd|9OjNV<_H?hI?b*~*h zs;#3-TQv$uR7F!YZBr%Kv}zyPG$x@9ZE48_+d7RO{n1Hm>W_8Nrn9}^8w z(I)YW=s-jl3!R{6AWLk8Or#xZ3qfk|BexJl{0q@y+b!Kg&;vWriO6xK{ThU8Yiy*N zv87!Be+9v=pfB+zWFqbK8~LD|UKoFP@!kA}VLyRMNbEo#qMYAu*dg8r*7(rU@4LuX z;%ktJ)H65IZD1q@AQP!4hDygvWj!BCW(%QQws2TCh44WC0+8z$E2K>$n--XwFxPKL zf_!R-_H=FR>goE_{h4nYkk5Sk&OPF}f1MxQUVKIKo__PtxsG)|_}*J>M;8X?93(6Q zvqTD@l(|Y=CkOr>0mYWEAhm=$L=m5@%8bKtN$DqnIwHZ2WAn9ERdd;7O3fCsWudC6 zW16a!^&FlZ692+Do)I_TS=TxWvg*%9IR zlE<;q>vFve8~Z;BJP#ZMikQ#S=kre~1HM4a=P$8c+w1Fy`NGyd+X0t%fsfaGTj<*s z^R8>y$^Q=G!gi!1I^3;^EKq2mCWLH!GFObRyuHnYm?i-kF(y*j&pg z>R-JBY4^w>F?{_uh;q6Hi06^<{5pnIR6{W^mVd1r<^m-_?Oq%OMxoC!3| zzc}eRGheAVy@6?Oz*4;6d4md9VA>U!K|6o&5}j*M`3YlG&U(;t5|y)Fa2eWfyoWhf z<IFq4~yD$^aS{Qfve9IUp&Y7b(xgV?cJkU8xw*c~~n!R16iNx_fPmS zqvgN^>^wirfamE7_BHn)`?A)hVQd1WohS1aWRy`61%C8N#kdHWvEBjogR+*d0_8X> zfEOUItjf%F7Bcq`?brdv8T9)E^c$d zqaFUFR?^dcqu@6q8^Rl-k@S=PR8A{Q_>bsjDGPmPBp42M``2d58I2V>cO<{AXc~v~RM{U%b%(q3@nkra(!v`fde8c*Rp)2Z>eJ$7Fmf1r!U^R zscCbQ(q8c4K{y<7JS^8L5pUgy)pxG}gXa-|-&0LZ&@_^5YI+K+Cy0>C8n(4NeT)!q z-HLTz{0k(2--tNu`D-r zD5V|N)uUQ2rEXZwQpCjGaOtWjPyjKk#HnbLQ1-AT1Qi8$VgAtg7xj)+h^p9h;GJu zg5pIS1bcMTd zvGPQ#`|(M)uVIV3>8tML4H?NUZpgZw4O%fvin)_+@W6)YCAbg(~?r~%(|Jqu(J z#QD+9q6ij@vL2MRKAYBYtZdyxVKSJU%;wVTaNiE5j~7bE^CC!X^^I|lpqjRr(MlN+ zv|IKmLytqm{x(z0VF1%eYh_IY^^7`hYI$AFq~Rwe5yX`gUY2Xo)OlG|HPh6NGwr+l zI0UIjd@Y|%AqfLL(b&C{rIO%FD{sv!ttTfZPz;i$egsppB-RJXTiM!be0=C4h$)w~ zBxnXEo3p7%ndPKDku3yMLM@dwv#eUxhO4PoS5viD(^6T}wK$}y3yaeWX;DZYR^@V% zw-#J2Oy-mL@_Eo9d_a+`FNUf*I1(EgPzQGQqgL7(3Uzy8S8pt#?iw5%9T-!`V!eq0 z7}epCf%wk&ShdJfvp^h#T(es9y!SK0{)9jkEu>Mu)T5?WEF%BvmxZdPOGedr?>C3q zzi(%3DBf4ws{fVYHYV~Y*MDQnj&hqXf}*kNSN|<4{bVWlOr0O=2QeU>KzY6hVIVFQ z*0{X;5vk)i9Fu-LyS)GLz6P`49gfKRqKrd5aRA8s9eLjIh<@<(@gNG;t&gjIyi*cc z8)ZC6pN0+<*^13OC(*yakG^Rj%97=G3qC~VEJ3bc4hrT1vvpVIec2CQjz`M7>LieU zy+GcXiChQTS?;9YbKn`9@mM#BPk@&o$9)M3>30G?#182MD#t%l=f^rrocj-c->UlY z8L++*opLbfm@DBNkZSs!z(NxFd?iS~H=rPo;jH@1-%_{^5)j^k3uyT+pdah@g$MY} z!H#Ne`LUkQKEUrPe3%>KS-)WbT+ZxwewEPgOCI9bt=FYu$@0~ob_%Hv@pZzeI z$2oK6%$YN1o_Dx-{FEBgG!6ALjV!~78OFq=y#%O2{4F)IUARn|p8V_4bq$|xX!s)k zGscg* zv071Rp1t{m|)UbI&q~Xl~@YW>b(P+cwyoLRf>x^|*jEhceUJ{+u^kQP~ z^yuWv4XybNf7^hXCSQ>hzD>4)bgbcJ6Zs}4r$nc~g;L`~NDYE|@@0wlRckO}q{fGn zL05t2pg>vF8e`2BQ=*k9s;X&qVxM$1vX>-V?cyX67F8{as!S1KTy!*CC^a>VQblpC z5_3Z;k>483HNdGz5cTWpDXtX74MlPLbx~ZIEUwflZaC<&L{v7TxGSd?vbfYS(P%1= zG9r(^2!`^Tr$kHPhv8RJEGTbcatU%4M%%_ki`anh3#phL>yxdU#zjlbNYj&uB3Oyw z?__YI84rVjm=Yc`O#y_NCt7}tekvzbU5o-kR>484Ew5I11{9 z28rhSmyUQU>%M}g<1>`Jl%c7IAOWoPmwvO8rY3brFn<5|QM{Aort6jumWy27O@ zEc7IOjMWT@fkGOIeFdpR4af@wR3x*0@ek6yM4n1B{yLzU)r_~L^U{WZLyo@%+-^ig z(dg(fCmDZ675;37Zp$_PYMyQwe+Y!O)2>GM^687MdFP0*uGn24L_LfXDFbL))xd#0b`cYw< zfjLm#GrBPY^JQn516`j>eea!hV9nXb7f2;Evsq4AT(Il7-Dk5n)Pn zrYtZFNQT`Jh9Ht@2&Q@rfi!W-5R_@{jxupV0nq ze<6c2kb18S&XERWe$ukO$Uhel(wSrV^Xa<{2+NiRq+v;Ph7rGT#EYO0O8F20DcPo7 zjxeLfMHfYywtz}I0DeUpCZUCBKw6R_$&r%$Uq9RQb*n^M6pUC4VdxaVA zi@bAT#hT_JG2Q#s&loLtd(YBXLu9M z#87xM%)}9bUgBic^--5h@xx?lQm(9v0(#^_S3 z)Od7}WptLvGJ9lna#5yxvLg*@*G5MfR5WK94BOmJjgFXosD>7kox5Pg-Ni|h+I4ZZ zNtMOTOeG3+lbuwe$Tznd<0fH%iXTqGscbR{b7h~^f=RJTd_#+ql-gD{$?#(pb3 zPfb&Q1zgV{bc;2%VC1BcVdLWfhPW5ALhpu+SF;dY z6%73=&sZHq@Sg0@8+pb<*@qd%m)SG^)!TSBcU_<@&$z5N`sgFQ!yxo*?=Wb*)H{sq zZ}tu&=f}On$n<6J+hBb%fA)CT@I_2N7-AlP^>+cXiPn@&Iu5fx_X<46HxrhIt?Sjd zGHmG1qiJ?}I0*iVeRr)KBi0-1vD7bxVH?`?nwWMUgXQ&`4QjbB+2yp`UJw)EnCNgg z6ljltZ%WLsQ&X}29;6n;)j_!;re)-cm~&dreZ4DT3Kixt-(?<4<N^mMM^1mWm!A;Y+isz$Jfi;$ zSL@H8XJh>dVcrp__%dkRnlP zg(5UpM{N=I8LmVG+BRr~nc`qNE;=|ezD+fzsM{bj9#S2{UR{(XdM7t1(Frw^yzp;l z{G?p_U!|(g6)MtVqSS)yVlHaW1&g4agS%PkmdMp-5tO;Ot3G#3w2+Iv5-2`#sqh`^ z(QHL#ybvv40v&-U3I%JBOQEADrHMjSSxb5XNmhb;MIga$P-08Y+M<9x%s1{p7rMjj z^H0-w&^*D}&vdtypp^Oz#g_`9S$=AE92D!QEpB)rzb!|kik{NOpdp*H>#)6B*?D_( zs~F1j=l>s6v{`--}-eJrpu z``4|0v*Z7m_V|)7mV-Ty$Sfm=bvri*U>cWT2w#FA7cEQa;|FWGNS=eFdZqfMt`n0* zZoR{bLVlb;cf1Df5uSl?a%QwxitUSFDjuDIp=D;(miVv~(w8k0Tivc1cw04A<0y`Q zjE2^5)t1EjSnkaMvAI=i)1l;Aa5cAT9dkz-pMyCBhf|0QKSm#zQ!pKxm^!}@Q=p3G zv0S^BRJA2a+EbXtEzA5R+ps-W5@|dYpys34{!@~2=AE*Z3EZ}vg6SZak=B}S99EKz z(Hl@0*Qv;3?=fMAveJkTNgWkzdQq_0^n2L*c5d#-axvA6A|GKwC?HVUu$r?HmJo!z zY|z({{0YSXlztuQH>Mcuu)sFXz>KyrLQ2Uop(OX+CZ@2UiVqUCJ_z}zRDBS+p(dO- zxV;?c$(LP8d$;du^Fodq)`nZhgw14Y)$@@Xs>7`T%;^6^29FFaT^u$dO&b^)6H4V* zy%g`?^jiF=rRRr@_`382S)Wuah{PO`_?xN`k;Z1?*9KGN$#a4@e#=Q78AA5tSpFUH zUR5Y^%8BCrN zO4Wo~Yr-(5y_WY$68rJU@V!BLb}K? zCYbEq097*WHjM8it1A8`*QI)42C}*R`TuluASE>+R8<*idL?eb@8>$V|n0J zmKw{=lFHQB5_GO5O`D+eJfj;O-!u75Jm}qI_ z@iF;W>F1;t7pAk9CEH&8C+ZZfdMo*6Wb8N4h(0S!kSvK0NR25<53Kt4f~V8xJ3KXy z$!9@vn3HkQad1JDJv?cxMWN+=**`czThy2?T(+zV`}8U$aw+$onOEeIdB-6y5$uf; zMnETLQSbD$Wy?k(|H8@5P}ng+Zc0>=!dqmJ5=j)NM?1VRL`d=#!s5F_^r^`u?T@(S zC30fbA##6U^>*3QTV+4znF#y2NNlSqf#8g`nquLJ*C=s%N7kW!suw~O!MX>Zlv8?ajr5NuXeexxyhSi@TO_ukDgJ63-` zQR28MSoq_=)#2}tRM_>UXp%J_WhtFN3$rgTf>~ICR%~1e@Q9A|KtZ;l4YryCbJe;? zBS+p%HTfnwa5SEsswqlmHP`eL+O9Tl+Mt4Apb2eD9a)^JD}m8WhLVdy>_ixhqsid6 zZR5U`I(H;RptE=B%Ve!!fvd_;e{_?ER@T37Gt9E8KTSS>c=d z8y&s#Z|-k=6$xL}-}q1DDhvwlpKE@ZIscs=PEB>Lm=tk02<&ng2qwc8%VkZQ67!N& zktk?N`3NgzUE9zaDF~xbE<-ItC5_b7P|6h3kR05v$%WK5z)VgGy31>r5Hej8=ROUs z#h!fw(F&3eYxfN@>SIjDJUa5SX`CviqVDR8`L*Uc(0ELrLml&j_AI`6_V?<(j=GPN zd4UN0SHbd)!Z=X1Ing({IlU)UHn{9rNvNFyGe9H^qUB zI8(#s=e57am~2frIsfYx|LIJ8d0jkXI&W_m7h|$+pH*9DL^(LhW3fv?rg3$m4BOce zTqjZId-(*4^F5qR<;$}vp81JcEVh^<&e2wJBG)=A5tHR^3$P$#r0pI89P(9MH4}pO0;w<5a~&2{$+;?5ruF+$q6(bZwPT?JA)XXO?R9 zCaCX%>^P;zwij0H3yYAY#8?gCmog-3u{tpfm-E{i+VUIzzCq>1l{;>yy~1U?Kt*&o zX>(4`qj%>{oGJ7ljeTiApvK=oQY>jP=wyq(DAWfv z#V%Y|VkN>9Y#fSP7h#B&Vzuuo+G-VP`W5z7+waGpt)$7#R~^kt+ywg#Y5o>}u;S)s zg5bHcaC&t5;B;mBpmc@0J&<|By~?EzWr`St1dZ+HhPzvYiU`)z#~Qzf;{HAmTApjX z9>6`D>#|0Dkz;Jm%Klr9ab+<4agK3EF#Ktb@jx(P79VUnG;6x$2s$$Hl3}cnb<$gOOQpbj$v={i7a_m=4Eg1Pppajo zTYg0_n(A7KV^lI_S0e2-<>rxDhEai8%!diZwGw_iKs!u3ir!j8yPKaF3_Cm28E;Dy z3vClfi)FPnOk+N5?^~%0xq(@z?&?518TWJwab}H%fMLNsomOQUlDR0ZkoR<~_9Qh| zk@03_j_gT*Fg%^zS`ls0&sYJ`tuXt%5ilMzpF!CA+3j)37at+Xt@5c0^DV7!jJ^$+ zdzOIXWNu^ehaeA|`9pBI2*5ma#LrQEL=3jWF@~YhA`Slsj3hrxyDGW@!RAM!{FZ`e zH@uz3p%PaoNl{+HU5=0vO{y`^)QMIq2hR=f(wMp32)l&;anoa_+ zeLgXGAm*P-$U0FypBA-&#*9M^?`QcJa+Fe&ie#JYd7IrbiZs2=d$Awm4^(@!%XV1Z z6r?CK7k#2#CFzgncQIm~31!RZ2#^R{2g#BSWPmN`iD()o%cc=+VU3QqsH%miV!SG8 zfrPY8zGY;BCP@lEe1 zlaFL81~a~zcvO8gQ6ad~3wRj_N&#QN!lZz&LXfPfJDeT?d&?hVm#@ALT?8BCd^w>n zd8t+M67l5(FR3o+s!UANXpB~CHq6BYb1vv`qB);FD9lO4qp?)qRFW6! zQ#S~aq5TU*pQ9MXoIRYHUd$t7j5OomN1?2=W{cn#H`~`QiV$RfrYa*y{XsB@lj}Jc z?uJ9fI$lk-rocpdJK5p|PsfaRp~ltS>i}ANHOljSAp0fzBTd1=u3B5qhp)BC$5yuX zg?9P+*4CH26g83K7{8OL?!L8Qx4f-A6RkXxB7r}PKB&w4gF*^FE+&Q;p@9Y&ZVce5N{ zV6(-N=SoQkqxd)syN?Q^2yNup;~IQZQ%jQkIBgt`-4CZSTK2E~Aoc@!)SI;In$4*E z#xC=F5oIVNP2+IPA-=Rzcdl?k8*ClZhqp1tkz4B%V#~rZr9{*V@M^R|j4Aw<(OaXG z94|KI^18(ooF7jJ;rw`lnM&YD*f!h8fb08FNgRp|#-Z4O);X^7x;!6~A|t)01r0?u zMaxJ>7TZ<&$sg{9%-oD zs*9si&V?75iD6135>=}C6Q`-_N1FJtwc@)IRf@L(z_L^&6rK30baA?`i>cewZ-^MJ zsTsc&*?ygwP0IY5bWu7d9ZUzrx6)Qi$m4%xS?)=ozbWLQfSKt8*6M6OY``0|mx!bH^CQ zce&Xw^f&Gbo$~Ac#_hdA_w_gK?zI%yclQq6-QReyH?WuIg>X2&A`jT@dD++YH?9kx zlI(9h+b8?80^`j-1=sgC8Y3e=FEDQD7Xc?L`bEIR6a857bNwPH^W}bF6!&hw2&lLB zi-7LteqoSo?B5LjUF(fYzF3XuXH2u+oUkXiv~bqs7MC66ZFWp$sV@8>NbAlYf@~fB zU_KXF{u1F!BWJdYbfc|D)={qDbQ|fbx!O#VQCM7ZPNta+(@K z`{N67j84L0VzX)C9BanRR&9PX%I}XjW9C9UlfKw$k_?ZM%tjin16Jy)=yG_;i6JqB zlMal!(XcvcOyxf_f+FW7rDRo88ahMlJ8$W_wl;M3BNx1|3PLZWHIXa?3qH&hs^byN)yRIJV|6tnaN87;BW6kUrieGH_hc z^Ey|kI)jj?v;0I}>?65n=c;a&DT0WWV8~gDYE*r*usE5UtPkS0VR8%FcS-x-k!*7W zs+BPM6_`>j8u}LCqt|p~H6LYO@-47RA`NRWj~@DFa>JU<0o))OyXKNDn>#u#PPVSX zD6?zi@D1VuVOf0tOZdGw@b3VAbC7GU4DlxUo*#RTw*eT-I1rg8xKO7t@lftHbMb8s_4!me{2!F!Y$dzR)Fe5Xx( z>@#4Z`zS(Y(*4!j2452q=K7_mnRmjl0n=fBTbEp ziESCqkK7{;g$q{E9XNxVpH!@1bOVPWJ1!ptXxbEMc0A<3pl|_iA{7Th5>< z7JhSvH-0!C(QG26M5WM>j%G?UQ*=Ubu*VeKrW`ZA0GA@u^HCsMw_WVf>eW*-3OfD5 zy;UPr);%By5l5P?{0=p_5r3L%OjML;vd?iTAcxbc4e_(UZncnU?lN)Ta-fo>b>C9T z@>ApxV==JPqhMtom8(z}U3@<|Jadx03RR3Wy^FtU<5FZ4YbRGmG*d-tYH4x|2ZA!( z2;@|M3{|8OA1%NemmHIyTwG|?YYh)f*73l^>K86jx+FPGx2w-Ua|3v?Ti?kf>e}qO zsObe+{nS;WO*dVaJ|;cQ-#2+DRP@ipAf-`mZoY7 zd1hS%%M?mY;wuwHV(Vo!e{&QdeC?gwIzzrV}WOyy!dJpn}Jkvz>y zExsmmf8OQa#^=*%+({5$+&Vk?16@1$iID1p(g<|(?P>3d0q>c{q=#T|ou86N<`Z^P z!+cPWeVs!`eXwdn^7X;LU)U=-GI>-G9sVU%FwbN7oR!Re;w5cpYa?~J$jBk;z|{O; zYGP=_>V_?WsH)6GXd5;B&^;;+Tkvo6sqCQ5vcWZSYZ;v(8)dQVO5w9Dx!I$Ml@iS8)~Z-N@Qg}tqsf@*a)#kCw$h#X&UyO zuA70jvX3^&j{E#;)@Mw}T#Ulbsl!A2{>Mag=Z;!_Pl#zK=Py%+e$yO0Om%V;R)nYH z8hfLxH5~!$s;r`hL=NYp0>vX9+u|QcC=s$G5(nMlaoMT3{4Qg#@%NOIX z>nxp*PL*QLQh+(j5{xgKFN3u z9Ho4hFQAg*lYYKs!E;)C0L-%;``Frhz-ia|2Y=9y+K6-NyU;dwnS~oLD4NsRO3u&K zULJX=!%=9mYBHa^?gF80AusJ^6(ujejzoFkgAu;g`QwYtC9|ErF^%WkGNZh@x-ZAi zI>hCT!Uq544M@u+@BelGh-v%hMAg`~eWn$(`)4Kk=jfqZnu7-^yFsPkx@k3Phpvf% z)UwaKMn?NQ++&~ld_^=_v94|0I@>biRTo<3_(j+=5_b6-*kz15)<-`y>bW3S@ zqRF&hH=%@W(I55a%^v&pqZ%$(AMDd^V#KlRmaG4G>8rW zhSL3EA;O~57W+Fbbg|I5z%VWdZ#MBdcmBtwaf`Vatm4!^-4-Z6Rh^%# zDYa+}Pu3MDYiK!HT4l1Pa?R#llQq~f5(%LzYH(v$1jAR$JGng^MLB!4HXlLn&5ADGzFPjZ!3rEJ;x4=ZsGT343!nZRG%_LTx zNenLmM8saO&(b)ooti@P;0EDRb`W0t#$7_LyLj^u z>n`+;q23q53gz3nMP_18TT?0%Bb*h5(j%x9X5>6KDoI+)Kqo_7zGCn0e&UqeJBL>q zC-v+eaDINrTM#cja8-w$OV0Osmc=b8W5nuob~85fBA^zl6IE(>!CI5zNu(l=ac36(I^*Bk z{i+FNK4g)fI<%oR2%#3LW1SJ3GOjdmu;UXkyo7){7vW-psCw|LwsBvH8H{+pC%&s!->vsN?Ds6>`#s`43*Y-aCt{R< zWbKBR_1Etw;^dA0;Rof@)p!7DTi*{{dj-frbeK z^*dv(ln}3bB*M1Yk_9%b4kdFuYThaTLSCia$xEq&GW~A*m!HWK>b?SjO<^CM6e8qwdtNG~KAgEO2@xhy(H*v}792(hRYElThBWC*`3_!1@ zaTzU$ZTVz4YCRqVTbRmAzRkzQK7nkLFR2H@dL>`Sb9rgJ=aYOr`HFb4D`>sgMca)_ zL9o4O;rw_6?}>qKC_XTCK~Z|pGQ8h)f5!V=7vy7zPvNc)@^N}HGn!vlU#rF!9FFus zQYdo8LfF=H0nZcitDvtU@zN8Js4{in9WOb?0agS?U)O0Q=t+%vx6K`p8=xDIt)7oIa zrzPIUQ}1bQ0HOcCy{BdO2F-lH(O2xx6hU91tdK4Bw~CX|V5E_!0FlR!&8OxTrWWA; zS26J>92zn)fX~I@0Q-YizqAwM>D1z2)fSvOZi$TL{WSdFRhTct2Qd5K)cHkJffZ(= zxOt439#Yk|U`%@%)W7+Bp@;$&{}e4G^(tIfkK9rFT_D_oY6le0kWHX z6WsH$ub+S%X0>=G?I4sD&X`f)K5sQ1j!WRJJyarI$tRD((a7UR^5MNi6+2V&))8kYiz@=k6hV|^jGsT--^bk6W$+; ziw%v$fYkJ&hP7t8K#EZ$Lf57jrKTxeiPcV1d^fG8cwvAnqlQmNi`sXCpsPkl7k<%j ze$c>w`M^3j3tb`IhP6TQe`$e9@l*B&=XaUo$Mg`swVWIrx@OI{fiu1p>qFk!teZZ4 zK%`+mHqf-tP;6@i&R8peg+|p&k+H8Hf`w%7XQvZu?AI89N-o(Vvt+Rk$kkbM&~+$@ z|HE!-xOw!&(81&}t3u6%tC}m$ZLat=hY!rCO-!hRtE^MgHqgNQWDI9YM)SB;d{Qh` zg|Vh;OQi7%q+vWc^84iE?~$=)BXW-2*sykETg_(Tx7F~eL3rQOYiQkwr(9oE1d{#a z)u14517VfD55|^|SYs!*K$}BVZCI0Dv~g1n)};SP)i`U?kMKXGbvRFuD?{Wa*VK{t zDE+r&p`86@UJKICC!nd#^7~@B?=Q~b>m0R~vkPnL);uw29p5LZCe2=C&-{aR{~^Ef zvZ-g!o4w%d`jh6)ogJTY#=`h)M2#a4lF1_~G6CaRhG-_2&$J`Yj+ZP<%%6Yug81xH z4G=r~l#}9TFBpByp$8vq#b%c-JmdV?C&o+W4K3Mw-rgm%7o9SD_Nfa?&N^w)8D}NV za)=eodbHjFRRZlO zIMb-3mjYJ6h~rfP!+2ign6@j3?gIx5da}HD^df{Wha>iF@Nc)mAR>OMY!<*fDCn>2 zj21;q#w2DYGqaFr8uh2aTPTAn4^ojJeu{WCVm&2J+#}#jBSudWucfy{q-u%JlAxY( zLu6uV7AtXg_^iXiTD$)Bp(EJQ6@WRI29kmU;i4RBe;xfk>Ge(_TzmLf(V z8cw9+j{3jZDuTWSb28L98M?r#uLB)ixCCFm!lxklcsOmd9%}(L z_35Hu2h>$1eh1p?MZst=8vf;Q+6E&Q?i~_X*>WSWo|c%EJ`3T)v}pPAU!>k#67Wx zxKlvoXgDG5GZ5g|rxiW1j+Ma5mV|>@*|HQ74wIr$yj`s8Y#e2^+4ct=8cNjgGoz&* zXs5u*n70VxQkkLB$HT*a48@?zqfzvc!00J);#Lcav9a(Z@mhM;5RQ=eDVxF!Tg45L z$+w142UL40FgUbforWj)3!jEN#6r$cL@j?0SDH3bzDaJ^6ES!eN1CU%LK)yzEK(X1tSRk-s z^f=;nNvqDu;A>ikZ2eK7!*7%{O*1W-2i^$0y?$Dn-Tr#gopmt^&7LYiR-MfYBb(5rULOV^KU@t`pb zq`9l4gaKuZLl-eGUE&t>5SKJhgF{P^QI0wYz6@`@zRxhjNI0GN>yUmHoE+ySfB@;q zn3qZ79^XUUlYqzBgT`=gC!kAF&m^4CwYw2`QboM=Ce|`IsXmV&L}BZd$&X92dR)@{ znS?@peut1n7qRyc`^JWOIqELw$DQUZ2dU@bz|j?E%O2T=Q4S|#-cpD=3l65lwPaU$ zGzR8iAor9waSs>7W8>j16v3`G5SU?>!0I74MDBhA;RaycCCJv&yH5mt26h&bT^k6j zq^ADdK)4J}YhW8JpvJ&*=Yk7;O=syDdygP9Z?b3zbOCw@IYz>$qV+c$E!2ZUr7j=_ zkoYNs`dh@d23JZb_B&+z7!ETNdVdu`pL99rcwc~g1EvG2L~2VaGGL>bvGPZ27`q{ zlrbQ4n7R!7sc+%`B9PTRC|ETE=7T@>tqx~jyDpv_Gi&}OsN>6?~V128b6F=6HvqKtW) z_7^>(NUW`=7$d8#a2ioOf#hcd$k((ED8@;%m}eO=djAm_e2wO0sBA)|2&3ORPpXH0C;^MIp+Vw`n=y>z*R9 zww_{)gb#$%h+;1!4;LU`(>kCS_j6_otQftyBIs*0Cqtc+p$n|~v7p21XqvVX$&=u; zON{;51^m z5y?LnAYZdOpjaC){v@zs^xhLeUxPUr>YNN+VAVeiI$sM~zQXT8@+vrOvp!}4HTCJD zU25Y!P6y2!BwfV3{Q7Y%9yGY5 zd9$R86~`qGUBtX}iOUrfWY#S%X?_g{?IELFmLS*$??rtdW(F?Cbj#rPk^U{5EI1zo zNKeMROcM8RJ;eP7@VJcAOw6|vPy+Q_0w?+gUxB3rwH<|64RDYOhPP)eR2h2BZrimvcELRKk={U2hH9KjD_-ZHz(`Mpimo0H{TE1~EnA(XI}ECsQd z2%TZay3c9x*KJOgcbhB|U1%qiaJVc5u`>}`WXHT^`g2;`cAK*h6Q-z`O`T)3Ffber ziz{ylTzHRwspj2;gW%))6cN_ptwN$uo?0MruSly&q<8`x<^iX|J4Xgp7R~HnEHHXT znwUojdabfH%`Tcr-10S7%O_4QG1K=d3_ zN+a}UAS;tpuqzmZvrkYj?YYG4r+{5z4geN6o;3z#I|0oHcjw8v zl(t-k04LB|J>{kTX+qEHXTX~+gCD^ATn6!1{Omm$#2$nLwW1bBzRA}65$J3*CVCm@ITsiIu;3I)A$ z9D0QrlW_T%S!Y6+$_i#eMj#JU*){WV-_OZI2*tJ= zTwlXUXDLjh?aRzTh_~`&R9^CkN9o@Or;+LZ1Z_2Vk@`_fF9#DnjeZczuTb8463fz5 zFX(RoQ58Y^TX=(IF{SY2W_lgHYei};y`PC--7WCe$W(g2ld1GJh+vGHs~cr1z0D#x zjouzYaeWI1hmoVn$i*VV(Jb;48FVNf?XAS2z~Iat<2N(hCWBtAqmevE4`Q;ctH9hHL||yj zR0SCJ;*lb8VO4vYg%?lKa3nVg6^mxeu$Q#LgWRywq%dVnhdafhQxCsa4_GIC=8+Ut zE*Vo*-X2Q((2^I%gv}fyD2bVHkY6eNli|?p^ej=9dc~tiz-%zb2_i>~-m@a;>kvgq zrhafBgNS%@1Hl@2lo*0@;C&>6-omK2%*%a%;Xq+#h9|<8ZB*9sQ-rfb8|4wR3aU^9y#%Nl zU&CQK`+^8SaLn@mHM|_K-CNIkA(98e=|s-s@HKGCx+%-6;$AT*{GQlpo(lZ}E@ISS z&MAzioY^w*buWOER3_3MiAk!Jf$7RdS(8*3g!~SHbLZgXm1(qOnK^XRT6J~>>6GzI z=^8lA*sXZhC>lYX7-NDSgah#s`cJ@Vl&gnm6i>ULFl{ru194^qV@vNO5v-+mx=iIE z*0nN~-i>PUR93^MNvGU(0F7s*2esGb>!sj(t^ zAX)NUPdc)2pRK91v3w)SZ2(EyzQOZlo1hQ06LjlHI7n?8JkHuQO?^m@uzEJ-yBV~8 zE{gG4lzWi;6kL|k&uDobfp-L6J-vdE?5^~8frALc)N(joFD9u?GE2#K@C}Jq;>uIv zZK#Kk=V4KzkF)!bOwOR|kmi{6of7vEvbR{)V!O-pAXIRcks)LtK)c72fHJ>fV! zA?oES&jM>Y3FTmwKMlc?;53bQaF4Lg0M=b_Fk^4~cQ|_n)mVbFK=M2|aK9K{qX^d1 zOUhJwELS6_>yUiA#PSMdI{`fn?*0h}p=q{-yN15)jTfwfOCqbLfg437VHFPoZ zC1qYsxm`m`!REPe=y8Sg<)KLIWduL6lHrM;+Pz|y(Qq2YWb!xxiqYd2Xc{dz6v@Aa z;|$y>$p7&s@n{q^N;m__rwWkI{xQb_xLzEQFp~EaAfGwf4auDNX>xS~nj&)f#+4|NhY3)Oba^lVInt|= zsq|#tI)ubeReUUBli@T5YC8d43ho{i9Qv5Q%m(>n!W`VTke!UvsvRdl5Q%E`*AV6= zGQ_hE?{Yvq+%%OjfW%MXZrz#A)?uroo1XBo;{-_8OLv?A_3ZS{b(FK?1jx1n>STwr zaAgH_GjfI3lYYA61ZW$aC#}XY$c_`B9Vb9yeBN;ar1tS(o65ZN6Lqpfm^#<#3J*4H z#|aSTeriv2#|hAm6QCdCWQl!HomA-hqdI}=4o@Au>^K1m?l=MJp!MHz0^~k^@{Wf) zPJpKEH~|t$p>}X~oB&}baK{Od*x>8pd`PqTzT*T)Z6SNDY}aQzT|>J*!G>o^1s2O9JS ziY)j)Q{nGxg_)hVs4?-3o(6x36;8olZiT&Mk3zzgaJW}f+Cl=K!->dbQfOjOEM{jKxldM+!KPB9HO{Z7sbP!7fq7Pc5Bz7&+$KSsGS}Tm=WCTtc6@G)jGl4e~Xz0+9kA)VdgsVQ*Cx9+*&Q z8h#wCy6GVFD4fRL9f9PTa9PHA{wMfzrRVSqy@RKrdPD6|Xi-W^KcMhDB;%y^RnE)sHC4@QUUT^kMY?3VUhqnIRyB4mK zjv2h9ply+#Y!xQgALx(tmWg03y<0@kHykWRawoG?2UPoOV70+vpztjv9JD%?!5V3X zfE1FK!)dz!@01a!=>kt6`FR2Ib%Fbl{Hy@g((8=B5rFX(RYD1K^I zQ-xU1F~wR)zXvy1CDQE=%U5aC|%51rfbq{GPQ7S`h{=hr?a<>)?&Vt#*OLKmrcw zE3hdM#5FXL-VcES72)x3nTm`=#%=*uf-?aFlK3gADkt=f+0KDOQ038R;i<^ZqP9B2*7N2R6?1rtk;S-V zQ&z>f6?g>_q+#`Sa|aY#j?51T0x^1&l%}3ehI%K1ug4QhN~7))o0hL|nhdLXZZ=z1 zS%?q_V%|Cs_m6N=TrONRY!|ryGrAvwshv?H$uEVuKju_2MzwnaPR6|4|NXzpxdFLh z3BR_8z`C&PSK$z(_a_nbwOAh{lV6Qtc0jf0Wkw%3(4to;f<9XPZCWvA=r6E*qoG5# z?k~u&tHAQ<$i4uT3BG(2#BMF3~F8N8kQIN+WDr>SQbpc%-~M=l&-?o=^) z^Kr^n;?9-a%!7A>2-eb*PeRnIqBQJs5q-7D;8R%#RQo(I)(fm!dT)uKPyMe%vZNJb zhBpM3Ph}mlb$ou90@0}KtpGg;r&X8xETBeRx+u73mG~C4n`I;6(OBxi%hJjq=2ZhO zp|=KC)-@JEwsKMJT6zbHpii26A$hm}`C7&S)t&$hF0o;l)Jj_;6(>X8SRj*Ujm#^N z%>PeKEAvSfP(!_EJS+wQ*lwC{T=1h%X~Jd9D_B01u{F4|La}R*?S422gC3vp(y+T6 z$#)BoPp}TC_BCL9EU;?nwTqyyk(>;5+!7$q8o@pSP%E5Pu+LjS4X5t_^mjN-zwH@& zN$|s=3p|~NS^R&*OulY-E?zZ;Ln^)F&2{EQ z1WsG8hb*9`UR?}mJsTYV4%!!F3++L-ukZh)Xo5c>k5e!W%9E3EEv{@bSG&1r&WFF1`ZZYQ9f!16_KxExZr z3Pam(;TZPT#Dy1f;i2v1Pwnu;5xo>nylZeh0wKAK;QvrmE`w}@OW`zq_f9K=Y!&9Y z6;8%fHW>q=_^EQ4^C>tO5_&8Zo75E~G0zIqzX%SEp=fE$&V$Hpy*kazH6lY@HyK#m z*7MAwz7sshSd&pm^76k*2l7h(||z{;LXI-}%`(}W<2@vEMJ1&| zHNO!~FC*e^6lCh?os4XxPJcce24t0A)3kp_jy!=?#}~H`mcec^^prCa-%C)8(Hkm) z^(4;c6f`PCPRIrrB_}LL!?S}GI~Evc3al7CoEqzEYB0tE zYUq=uM(kelJ!4iZq+veM*jP}p*`JV2kC>MtHv@QQ3@Q((c&qEY5PYWH4hNN2>5Sgv zO2Xp}UTOqi-NTX)wUfSzGn{QF(;;tcnrpWLsRLoB3EQccpqRUukxX^V9 zjED$&v3R8Z8C*7AJfGf-hX@+4lHqA;1pHFO{2XgqikhD7lq-1R{w zRm0^onUIizFm<|s;JF(7b0AFRe^%a)581>k+#n`%#huT$RWl$=oedWOB!e0ge+t*% z0&vSq@xb)6;QF94u4E?h2?CT70xcJWsSDu>R-U4LIG=;k5y&!^qaGK%O0maTl<|Tqaj2pco^Jg-L-iM90YWT-VAVYUI;@VS0e^|)AG+l$IrSCn@YGc$_+ILJV#~LF8FpER$>EZt z=94l=@9%Ipmsu?WJmY|5cZU*imj*#@=w*q$J|7e3fOI1qv;gmid9`4%1BJ%0{FU74 z)jm#1D%VL$unD&T?~f8!GjjTIExH<9(!5{Ng#~=lp^KQ8-yaM2ag_fgoMz@41w$ic zMKK9D(GogDgqW8-;_lN!+zG&=z(MH>vxUvhNtleK5!zzMyrul`oOKyxdg=BIs_8q& zgY21bkRH9b2-efPP^QvjT{ZULG9+IuvAq0jC!jxrJ3br>=5K|^YXF*hj74%CoOS>> z+5&3wbusyMKw=`@APc4^=hVIdZ6!eO3oM^)RUqh>rVDltrOlCfqfQU#gi=p&9|lb+ z%^1BG1n2eiUKGI?Jy{>0S$hp2-Wkwz*zE+g59Bmbm}g%*ZF5i`*#1FqXd#V}?;1K7 z`ATG73;`n%I@*qTdnECONhsQWf`g0Lafmh9u&vEGyVIP!2|No7s9#k zhOa^VJx>~<;-}6u_CRbexGX-3%fNKF97eE_hM@Q<9Hdp2d9}UIiT95z*r`*#Me?ufI1gD*TBrKq&XI&1^jc}TAbSaX%XOB(s-!$WM$S<1lZwT;?yNJLS zKX(K5tQof@J(uXc3^}0MrGRxWCntkwMzXm*HDi}ul|VUW;G=wm#ZNVjGxVIBIrR8? zEfX?^o|}-sp@;t6a4-e*c7gF>@)7W7TVW)NpDLBK#z0-%_~8|*gFEA==eBBF(sML;xaz+GYGgv9C&6JBNslv4v;e)uGL;@n)wIi{NWM~le7d@wfR=;1`{1B1 z;fLT`_ktqmr#ZNW;w!~r)H^ONxZI{4Zkc+lN(@47^IVwQDPFvP_E`n%#MGxWsQN9vRL!Efm zoGTwe@l&EHM@*XWdQza}flkn4m(%FP#Ynyx4&AMYev3e>#b5DLboua!T=2v!h`o?q zhJ+qaU}Y>GK1T2>IL)r>OFhCW0@hA~fRCF!kz5LwWy}w@?2o|V5^plR88S$ZqZg}8 z|K~E9-g+yU^OJ1!6r$`3|0FAnWbspCVM&teG*Xgt@mhK`&bS&$?=lf&bBLeH`#fT; zaGFNh<{)xp)lKlgKZ=hZ1I8-f0cX9p&tc(lCyJ2xDGn4iB%v^A{Wk(>GaM9{9;b;+ z7FqGfn;S60m0h9f@PaP9;6EMOL6u3-<|`nb$&FTnbws&^-hA&PfjXoaoLCL2l&0CY zIjG1kE9T{p--vMi1MYpb?giulaQNgYOn)dGbh#22xo7!;yfm>q6mqfs?X_&acK^LEQ5Co z9J@p#>T)w2!|LbGawZZn$k3CyW3JqVS0E=3($IMHEJ8kgr*VHm5Q@=T1&8vA;EA6q zZ$4tO5Z?;-8GzQoX?hG5sF$okkp7;6pE`QhMr)A1ob=TF1Hs(`qD}|Gi^<@0c>G{R zGn{_rB2Su}ndy4PK%}$d=Abp=a7Q70mMac2;-@N0T6~d|w94U+hSQ9AJw)S?AxlH+ zvReFnN7E@378_fkF|2-yx9>oyw;+#}2ho0YJI`kwSzuscI^V2NyplNrCzn=j4D#((0K!Jpx z5)|tAYDm8?C7=Val_a$Z`Ci z$V_@!APW-wRtl+1>458nZ?CK*MmZLTNCluxou;@(^@ z3meId4ugZ9hCpIp1jjnjIs{LI%Pf>BC&T4QRwQjEP|{R*$byZ25u6eqxEDWVBq`n` z9JF4cYD_M%ZW35^4wkR$odk?awh`8OpmVXH<+B`Y!8HQpv+F+!h)MwU#b5DLl4Duh z6m&NT{uWO6b<`(F-`oj|y2r<3HSI?IlOSJXagsq$mT^w7g+nTpMnq7I_^FC2ZPn24 z0<@j%Pj$ft4de-MVihf`?99*qd!WXaDWWcr+0WdwZ$Wle-~2&4_3dX)AB6U=FtYki zDmZNL!Fi+d0x;!S5o1yTtWK4g)fXMR0N&`q=+Z%RQbAVVygcA#!~B#YTX6)7j{*dU z(5t}Qx!|BY2c>r(LAf%o0?@quK!;hU>KT<;HbGTmR6%op4+4scZvI0J2*Y>5K} zCY{lPD=aES`xzF~78S!7>?Dyao<+$J3drtM3?9i;v70FvXuG&PcMW%Ok|n`iodm^J z2`R};WQ~H|jcrIt>^?w9aE~aO;?TT2lpD<#DSPfEyuH}UNfVszJy2w!%rM(=2^Nh# z)Rt%VVS`5xX0s2o(E;DbfwOAE3!G*Fbl*Op%%&%7zdGAYK$f0NL?kKY5U9i>289usxI9Tv3>l_ZOH)*u~f~C3K23 z5p1w|pf^=?ebn|yi;Uojh)1z(ED(Kl0dlP^VppG=7BZ-CMQDPf4`wi%!DFhxjZn(z zHbcmC*x(XWv@RP!W@5Y5+i)l*p))Kf_{UbQ168??%>#eOu|6z}NHc9D2%aR4x1gec z6DUN?hW3Ny?4MIz^s}*pM9ToJ>7-%t#!$21|$^soW7>X&rDGL-i@|l|i`z#hK z-E1LWR(YPg-OBUWa%b;_TFy7oGjI=cH>mbVFtmVHBQNhz1Q(7K{UlDM6MYA13D?Mx z&5`3=^cLg1QOJb*i3J7+g~h5UWvtHMPgcWH0&HHW1olo*hb03*=0cUxPQGY>;O^r6 z09|T2twze237TAmTxv?QgeU%ip&D8C`$p3$$?oD!rcgiV967$s6dEX$@p6-byMAmD zC3gifX0(11v?ml$SFRL%FnlTmm%?|m97{Q(T?NRfYz1kyauDlkkw>)=sazv)=k-++~SG()*PxJ!nZSWPnY4*%fy z_92+94FPZ@BIYaE*fPLuZ4CYd_dsek7j!vGUWX>*f9eSao-}h$M8L>B1AoojbMY6; z_s|3+_2S7&Fg6Q+0w2*`M&|O@VmGaX8X~3(O;8R_BP%0cq4sASQ?y)F2vtjsg69;#@$SYzK!08hsi7 zT0!tqf^%%J(dXAleT$IG2+4Ip{({s2#{-fw%|L$0hKM>Cef9z9M1q$QEQBN_5J@2Q zZbEJ}i@669$nR}uHX<`l#3v7Mf!h=`&xZCb!%P!Qle; z65PiDv#IeIOYlo99r6R!{r&DfQJO`x1_eaqz1BWAJI#UOmR7fjz7E&%_ z>JV3|k$v?ZpmW6Q7M;Q}vk0joN0rPWQjJi*eF8>)_69rv6-HBRfuQWBU?j6C zLUvR9;$wGHFxK~_4=D88KuIqvDsg}{Yk46g@I;3j;d ziyKBVxp5TZkWbv)FxI!>Lza75o#KXZGdz}vg)3C*_-2tRvKO`^)y<8-9W>*Q0pt@H zMzH3IfKfCRe@=r7jQst%pceea8v$eRFY#wJTwt^jn%*Z1td4*}U@d5v>n)?kgO|Xu zNEP4wziOrK4U{458^Nn)p*xs$J27JPKM^q+1#?EQ{~Uycvi>C8|9llbwofs0m@~tB zP}_ID1CdAo38$d91xQu^y!LG8ekVzLX3ha#R_Az)z@s@c&jMahgJR@V#%jyA(SZ|WROWl)(Uj0-5$mt?(yx;@2L0S z<(KTBF!j+kB<#tK7aS76*KWJu&)&3A5m@_PuayR$ITqA&ejey|6gV6PXunT(!jJ{= z_q%v!4DmqSsbv>5(9p%XhVcg=<)j1Vu;N`YWd|(hSAn4wn5YTB7XfphYDAvd4FK%Z z56`|Iv2adq*1pq_Ij2{av0ru=-ag}zehHKC^3p!1Bk~+0VMK04q)!MDDj_J$5)?iP z>@x|0!NmGFVC)l9kxv4_eP$r?8$vz}gp6T9a5fq2=iD0@o_(Fj{dHj9*9hMjK=~#- zk$(&8vI)c%0|~QEBj+1bUr@`2$aB68n8q+lN?q%+Z&Eu(C~70CFnm$v>{VQ~f9| z=xGWXc8Jb#r&(5Se z!t=A_n8^l^gKYVK6l{?jCInbMVNWaH1#XyNulz0ryU-1LiDj4nL%}X`!>CL~dBtA% zEQ!2alf@5uEoB(??l7EQ0F<*TP=1?2xi0Hmfg)@4Ay95&&L;!qfxU6Xg5ew8RLYM~ z$v3-mmfwivM+XA?wyZW+nV*8-fKnts6)4{ezCdZo`rK7!J5b(b&Zh(A4*;bM+mJbT zx~Y_ZqmqB+&RISd_a;i2^WF?ru0irVCf}ct{4SEuBkhMWh?JuE=a~FRMsggHaNd=aq0BT(L_ZkQ~u1nC0yr5ENHC!>6U!ur;YMXsdy%GW4_ ze|r&(@<_Q=#CL9(OJ8OJVHI4?mW=ibLzjdx?Y#6IO9tN0o(f>C~}f=zJ49I==GT_MbL zBS@8*gmv1ja5=NwFp*hS?hb_z*CM!;XQM(*_)uL{8CPkQc&--9D8F7IoaaMuRq8Ja zYf;b{IQnvckP1?Mc$HPo`91^}nY$I%H9jmUpj~hn^;5W<>$Th%_fwSnh`SMBzW6$9J{Hfuk)39_$>|D8Ec$J*3BS z3G_{c`mh^Sw2Sy7wW|6MtJr7sSS}9lRjAK(j%t+mJJce$Mvvv7cHDo{%52Q ztw#C>LDp4`+501Dk0D6@C?olNB)>xJzXy*EIoN+j(k$}$xtmAZxESU8jRGs%LT;)dD%*|NtsDy&mG$8y`_w8Ed~#%Ilp@==qm63=$S zoDwBgv%;F+IhNHIKLTpS5vbl(*{(V90b`JKE0eFzwia3C4K|q3J5fDTPN>af92qIu4h)Pfp6JkbD!7OG}f`E#mm=j_^{l$RqoLg1hJ-h3B zZ@+K5s?H5{D|B~N-I{9fZjK0_vLR6fXdK~}qzyFlWk7ZieJhLkQ$Q_x0p1p5?h0f% z(Vao&%w2#E6W$Yq6Vcw-qk{jO4}v--0(p(-KF!Pp5G%14Q2GqO`y&K&0lNSZ^z+C^ zHBA9igK!VeEdFy21bMd_^v3{i=GeaY4GR8q z4klx&a=wz=Bnv4tHJA>3H~PkKm2j&-kA~zTtK0d1435j3P7I_ZXJMi zK7RrqGyt?VnkF}JW&$9AI|ktRCul`0^Npbm3(|UF9nQ*(9td|8{&PlZ8eh|KMf=*& zMh9t1=deLoy~cme1p%6sdE3Aj2ViYR*TGukiXcs8wFR`~5U9IS(X32cr0yUxM{~34 zt!8vfgmd6~I7APGN>i{RiozO!`P9Hy1zbD6q<&9~ZK6(vIEy<@a@uk8`2Razpoo ztgZOZ8K|BtgXWrV zelWrrWhW*eypi#7HXlXts283fFXPTWYpzKPF0gXrbI~Ut?sZcHftxG}Uc+a__a{7y)Npa@|=rl-5 zWhK4?ou`gF*V(nOY8mInO0fVXM9;Ak$06*^_zkvHgm5H=0a-wFk&+|HO7Ohs7l|%W z)#Ix?`E9^F_}IBg1gwS;9ye-7I_65-u<6Q*aET1ewPOodV=fN|?m+15+-G5y9a}=X z-w+G0N0ckUk#4!ERfu!VBhn++9cE-k<^Jr;{39~#IeaKay62|uN1W>^k<)YCI}pCg z__?`MtFn(vtGU|@ZE|^9{1Nb4>HmSD9!e6KrtOYXhn8*v0vD|!({rB?%`AbH9s}qa z!cQ3)md{EtOD?=ea0qF`$XU2!?40qT7VMNiD&sSS+cVli(4Z zBHpr`c)Y9VSbePeKyajXPUdesn58z_UL&+=AAx~Gv_#6W94_Su9T%e!fKQbw& zz(d_ACd3o*ANfl1bbOm7Q}sx4OOMiA2P@~2hm)Hh!xkI-N9yG=Uq^&h?(XG=)=1MR zqG=z4c2-r$HO-}ES#tA$3(eIuUoORdC*ADm95jcV!5P`@6tY{?L-iz%$AyQPM!s}z zK-I5o!W9taDW-D&T!@G~#5N-W zJ}dP-$j6|9a$mEXME*rx+PM$gh4Mf{mlZwJi8i_%*Ds+p_fgwU%t3;V#@vl|V^l@# zJ28$@^pxaouoJH%{FU*i0vuLq2)M(jvE0{@-IvI>^6ac&c2?p#FzW19FuPwXWVZ<% zIy;{OcgL;Oz#d8D6}Cn9+<-nW{rw3P}6HP2K90#H-TC4?aN;Sn*o_E`#I7ofi#CbW zLzUQ(Ls6;6ESqiVEVS8fOV^e$_HZ=Tfy$Mgf2mZ^^nWy@Okadb5z`B#a+PfAG-LX2 z(Zu_Pqe$vG)<;aIb4g79J&N4`6O-5m5#8dw&^?!CJG$zw2XAzz^3*l{8o+G?&I(zj z#@QErt?@zNONb8-g{%FBMD!y&b}s-+r9M$9HHawAt*+ch(a)X$OOT|vztoU8;HXw> zIT*mL;xnLy4x{LyxhQ}gdzy@;Hy}=DQ1q=*^Ky#5QG7QLx`m>@2Y8FW20~X%^l%V8 z5ePjo(Z7S}R3P*NMgRRdklXH*asx%*aeoGpUZ7~m4sf{50MUUHjby>I0MUUHjb_2G z0HOmY8nan$T_`sX5C=NZ{4BUTV7?2ZMOpCmfawc~R+k}zQSvSz`a+^5_NE3#cU-Es z)V#Z+Tiv64)U7?RJ6m2z3` zP%v}{R5HRFl!>}jFP~MQ!kJb5nTq&33-U^1#@gMy<$Ph5(C&Tb# zkRf15OT6nv!=WHUc|+zIuD>eff}a8mTqKN!LxGzrV2BH%FvNlk0YhdRhH62E@`mg% zT(v6YvfO&O>$pf5O$HePhFobFngkgFhP-1K(m{suhSb56N%Co3DHncI{WKoz?PuW$ z)BYP?J}t#%YC~+^3Qrx4r*+k1i%vp#Ut?^k;q9JDc+3K`$Sxh9u428K>i_`HhkeRc(38VYV+G* zl}1bVBD>~9n^~pv5g!GaSo?#h*yr?Uc1;NH71-@1v9_Ns{h)CgZ;oOLgpTSzE}q&{6blL3&&^ z38&5h6F2(gU!!#%FicfGfD-r0zf|?*A99KT=nRCWY>2?UBAJ$uUtvcDF_n?~w^0-i z2NVT_5=N*tAAnK>rR|ss1f^0@>4ld3MNA6iR{uvEoeJhf23=EWBP9GvQA>lda5{&( zpeVncCRpx$NOB02-#I-01XCGSY7**@cW?e9j{6(7VhhV@;q}6DHmfDI>`XOG%74^x zuZh_*ILhx9)Z#i-HQXa8>0SYt1EKt0;lBcTzB54WnaSVaxHsf$mNUY2n$j$l=euCx zo|*i|9QOhIDuJV={C+_#?(sz$9uSmt?*Pn!TKGaX^-T zL69c;+&1+z?ZWVNU{*C9SG3KbZEFX)DdCPy49#-e9%oyhoCkPXxK03m4)CvQ0AC#5 zd7{VN{$D_DJM7Kp)`0wF;oXD065UMeQl+P=d2Idy$L)nvD}--(pd-cE?c&1hwme=l ztPUz#BgK5m(AHKE7KZfNQZ0OsxiRDha+^1_#V?;P?yrVc zBcfVZ?pjrMQ}9Cs`ug*a4$4VMc(Kw$8r!l3DgPKaQ7CAocLU-$HUBIP#ra&Z+`dh0 z84l%-3hGk%Y%{dc5&!Pg?bj1OX@3j<`IEJM?3kLi6F7c2X64VWsPi1)LYrGr=eM9; za3bWERFu0ExX_kWl(WigYaagd?~LsAdw?p#ZD~!rC-RBVd^=Omq7Ls^3AwdS`km`S z)-%_Kto#SUb|IfX&jV18N~Yqx;9#!Eo# #a($F@hw#Aa=d1&y4?VC)gs=Ew`nZ2 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%0D9xPja>&jtO`MW@8~uUPXL8Hc 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 T@{KIFh;tcjlwC)mZXV@7vNRiw literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5e32d5760ea578e3d0d9f2e3eddac6318885d166 GIT binary patch literal 633096 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»nukeS8vw*XSiFIB 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..e88a4ed42605fc0efbffc4a9db352b34b9957ba1 GIT binary patch literal 7024 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 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json new file mode 100644 index 000000000..62a7efaa7 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "1": "--target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-x86": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" cw_zano", + "buildType": "release", + "toolchain": "520418125", + "abi": "x86", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt new file mode 100644 index 000000000..d69a72b0a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt new file mode 100644 index 000000000..c3fe098cb --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt @@ -0,0 +1,7 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86' +[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o +/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] + std::set::iterator it = transaction->subaddrIndex().begin(); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 warning generated. +[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt new file mode 100644 index 000000000..d69a72b0a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt new file mode 100644 index 000000000..7b863ed05 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json new file mode 100644 index 000000000..e944d8f91 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-x86": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" cw_zano", + "abi": "x86", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/build.ninja b/cw_zano/android/.cxx/cmake/release/x86/build.ninja new file mode 100644 index 000000000..7fe96541b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/x86/build_command.txt b/cw_zano/android/.cxx/cmake/release/x86/build_command.txt new file mode 100644 index 000000000..f18581448 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86/prefab +-DCMAKE_BUILD_TYPE=Release +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=x86 +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=x86 +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86 +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/x86/build_model.json b/cw_zano/android/.cxx/cmake/release/x86/build_model.json new file mode 100644 index 000000000..b669a9254 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "X86", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/x86", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Release" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "x86" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "x86" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "info": { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": false, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", + "variantName": "release", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/build_output.txt b/cw_zano/android/.cxx/cmake/release/x86/build_output.txt new file mode 100644 index 000000000..6afe46439 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/build_output.txt @@ -0,0 +1,12 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + + +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake new file mode 100644 index 000000000..2e559f844 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt new file mode 100644 index 000000000..788111d18 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt @@ -0,0 +1,170 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86/prefab", + "-DCMAKE_BUILD_TYPE\u003dRelease", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003dx86", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003dx86", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/release/x86/compile_commands.json b/cw_zano/android/.cxx/cmake/release/x86/compile_commands.json new file mode 100644 index 000000000..481267419 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json new file mode 100644 index 000000000..0f709e45b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: x86", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/prefab_config.json b/cw_zano/android/.cxx/cmake/release/x86/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/rules.ninja b/cw_zano/android/.cxx/cmake/release/x86/rules.ninja new file mode 100644 index 000000000..b7682581e --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/.ninja_deps b/cw_zano/android/.cxx/cmake/release/x86_64/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..2ed94785fde52b165be999001c4966785ad9fffa GIT binary patch literal 24844 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 M9AE=J2cN3`4chHX6aWAK literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake new file mode 100644 index 000000000..67917a306 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt new file mode 100644 index 000000000..44ed8f9b4 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/edit_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/rebuild_cache.dir +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache new file mode 100644 index 000000000..3dccd7317 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c2827e0441315d1970d62989fa35e57ed076767a GIT binary patch literal 950624 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f38bedf83bdef77886ac0cc303c41ef5064bed01 GIT binary patch literal 950608 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%0A4I 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

bFBK4P15d!aufr0l1DID#CUAPy_zL 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..35d7dc9fefc14e30c66ce810b1bdd0bc56b581aa GIT binary patch literal 8216 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 literal 0 HcmV?d00001 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c new file mode 100644 index 000000000..90a87b17a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx new file mode 100644 index 000000000..703b33501 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json new file mode 100644 index 000000000..a87f65fd8 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json @@ -0,0 +1,45 @@ +{ + "stringTable": { + "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "1": "--target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" + }, + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-x86_64": { + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" cw_zano", + "buildType": "release", + "toolchain": "520418125", + "abi": "x86_64", + "artifactName": "cw_zano", + "files": [ + { + "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "flagsOrdinal": 1, + "workingDirectoryOrdinal": 0 + } + ], + "headers": [], + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "520418125": { + "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" + } + }, + "cFileExtensions": [], + "cppFileExtensions": [ + "cpp" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt new file mode 100644 index 000000000..0e98c7ba5 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt new file mode 100644 index 000000000..2ab941f52 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt @@ -0,0 +1,7 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64' +[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o +/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] + std::set::iterator it = transaction->subaddrIndex().begin(); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 warning generated. +[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt new file mode 100644 index 000000000..0e98c7ba5 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt @@ -0,0 +1,7 @@ +Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +arguments : +-C +/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 +cw_zano +jvmArgs : + diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt new file mode 100644 index 000000000..09c4af59b --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt @@ -0,0 +1,2 @@ +ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64' +ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json new file mode 100644 index 000000000..72f3647b7 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json @@ -0,0 +1,22 @@ +{ + "buildFiles": [ + "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", + "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" + ], + "cleanCommands": [ + "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" clean" + ], + "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", + "libraries": { + "cw_zano-Release-x86_64": { + "artifactName": "cw_zano", + "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" cw_zano", + "abi": "x86_64", + "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build.ninja b/cw_zano/android/.cxx/cmake/release/x86_64/build.ninja new file mode 100644 index 000000000..e24e6de3f --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/build.ninja @@ -0,0 +1,127 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include rules.ninja + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 +build edit_cache: phony CMakeFiles/edit_cache.util + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 +build rebuild_cache: phony CMakeFiles/rebuild_cache.util +# ============================================================================= +# Object build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Order-only phony target for cw_zano + +build cmake_object_order_depends_target_cw_zano: phony +build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano + DEFINES = -Dcw_zano_EXPORTS + DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC + INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86_64/include + OBJECT_DIR = CMakeFiles/cw_zano.dir + OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target cw_zano + + +############################################# +# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so + +build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG + LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/cw_zano.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libcw_zano.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so + TARGET_PDB = cw_zano.so.dbg +# ============================================================================= +# Target aliases. + +build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so +build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so +# ============================================================================= +# Folder targets. + +# ============================================================================= +# ============================================================================= +# Built-in targets + + +############################################# +# The main all target. + +build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so + +############################################# +# Make the all target the default. + +default all + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake + pool = console + +############################################# +# A missing CMake input file is not an error. + +build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony + +############################################# +# Clean all the built files. + +build clean: CLEAN + +############################################# +# Print all primary targets available. + +build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt b/cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt new file mode 100644 index 000000000..1877eeee1 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt @@ -0,0 +1,21 @@ + Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake +arguments : +-H/opt/android/cake_wallet/cw_zano/android +-DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64/prefab +-DCMAKE_BUILD_TYPE=Release +-DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake +-DANDROID_ABI=x86_64 +-DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DANDROID_PLATFORM=android-21 +-DCMAKE_ANDROID_ARCH_ABI=x86_64 +-DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 +-DCMAKE_EXPORT_COMPILE_COMMANDS=ON +-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64 +-DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja +-DCMAKE_SYSTEM_NAME=Android +-DCMAKE_SYSTEM_VERSION=21 +-B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 +-GNinja +jvmArgs : + +Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build_model.json b/cw_zano/android/.cxx/cmake/release/x86_64/build_model.json new file mode 100644 index 000000000..b18d05145 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/build_model.json @@ -0,0 +1,208 @@ +{ + "abi": "X86_64", + "abiPlatformVersion": 21, + "buildSettings": { + "environmentVariables": [] + }, + "cmake": { + "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt", + "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/x86_64", + "effectiveConfiguration": { + "name": "traditional-android-studio-cmake-environment", + "description": "Composite reified CMakeSettings configuration", + "generator": "Ninja", + "inheritEnvironments": [ + "ndk" + ], + "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "variables": [ + { + "name": "CMAKE_FIND_ROOT_PATH", + "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64/prefab" + }, + { + "name": "CMAKE_BUILD_TYPE", + "value": "Release" + }, + { + "name": "CMAKE_TOOLCHAIN_FILE", + "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" + }, + { + "name": "ANDROID_ABI", + "value": "x86_64" + }, + { + "name": "ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "ANDROID_PLATFORM", + "value": "android-21" + }, + { + "name": "CMAKE_ANDROID_ARCH_ABI", + "value": "x86_64" + }, + { + "name": "CMAKE_ANDROID_NDK", + "value": "/home/leo/android-sdk/ndk/25.1.8937393" + }, + { + "name": "CMAKE_EXPORT_COMPILE_COMMANDS", + "value": "ON" + }, + { + "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64" + }, + { + "name": "CMAKE_MAKE_PROGRAM", + "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + { + "name": "CMAKE_SYSTEM_NAME", + "value": "Android" + }, + { + "name": "CMAKE_SYSTEM_VERSION", + "value": "21" + } + ] + } + }, + "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "info": { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + }, + "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "variant": { + "buildSystemArgumentList": [], + "buildTargetSet": [], + "implicitBuildTargetSet": [], + "cFlagsList": [], + "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", + "cppFlagsList": [], + "isDebuggableEnabled": false, + "module": { + "buildSystem": "CMAKE", + "cmake": { + "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", + "minimumCmakeVersion": "3.10.2", + "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" + }, + "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", + "gradleModulePathName": ":cw_zano", + "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", + "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", + "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", + "ndkDefaultAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", + "ndkMetaAbiList": [ + { + "abi": "ARMEABI_V7A", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "ARM64_V8A", + "bitness": 64, + "deprecated": false, + "default": true + }, + { + "abi": "X86", + "bitness": 32, + "deprecated": false, + "default": true + }, + { + "abi": "X86_64", + "bitness": 64, + "deprecated": false, + "default": true + } + ], + "ndkMetaPlatforms": { + "min": 19, + "max": 33, + "aliases": { + "20": 19, + "25": 24, + "J": 16, + "J-MR1": 17, + "J-MR2": 18, + "K": 19, + "L": 21, + "L-MR1": 22, + "M": 23, + "N": 24, + "N-MR1": 24, + "O": 26, + "O-MR1": 27, + "P": 28, + "Q": 29, + "R": 30, + "S": 31, + "Sv2": 32, + "Tiramisu": 33 + } + }, + "ndkSupportedAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "ndkDefaultStl": "LIBCXX_STATIC", + "ndkVersion": "25.1.8937393", + "project": { + "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", + "cxxFolder": "/opt/android/cake_wallet/android/.cxx", + "isBuildOnlyTargetAbiEnabled": true, + "isCmakeBuildCohabitationEnabled": false, + "isNativeCompilerSettingsCacheEnabled": false, + "rootBuildGradleFolder": "/opt/android/cake_wallet/android", + "sdkFolder": "/home/leo/android-sdk", + "isPrefabEnabled": false + }, + "splitsAbiFilterSet": [], + "stlSharedObjectMap": { + "LIBCXX_SHARED": { + "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", + "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", + "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", + "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" + }, + "LIBCXX_STATIC": {}, + "NONE": {}, + "SYSTEM": {} + } + }, + "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", + "variantName": "release", + "validAbiList": [ + "ARMEABI_V7A", + "ARM64_V8A", + "X86", + "X86_64" + ], + "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", + "prefabPackageDirectoryList": [] + }, + "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64" +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt b/cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt new file mode 100644 index 000000000..54a0e3e82 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt @@ -0,0 +1,12 @@ +CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + + +Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake new file mode 100644 index 000000000..b52b2bd7d --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /opt/android/cake_wallet/cw_zano/android + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Release") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt new file mode 100644 index 000000000..1e9abb905 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt @@ -0,0 +1,170 @@ +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "handshake", + "cookie": "gradle-cmake-cookie", + "protocolVersion": { + "isExperimental": true, + "major": 1, + "minor": 1 + }, + "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", + "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "generator": "Ninja" +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: { + "type": "configure", + "cacheArguments": [ + "", + "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64/prefab", + "-DCMAKE_BUILD_TYPE\u003dRelease", + "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", + "-DANDROID_ABI\u003dx86_64", + "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DANDROID_PLATFORM\u003dandroid-21", + "-DCMAKE_ANDROID_ARCH_ABI\u003dx86_64", + "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", + "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", + "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64", + "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", + "-DCMAKE_SYSTEM_NAME\u003dAndroid", + "-DCMAKE_SYSTEM_VERSION\u003d21" + ] +} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): + An old version of CMake is being used that cannot automatically detect + compiler attributes. Compiler identification is being bypassed. Some + values may be wrong or missing. Update to CMake 3.19 or newer to use + CMake's built-in compiler identification. +Call Stack (most recent call first): + /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) + .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) + CMakeLists.txt + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Configuring done +CMAKE SERVER: Configuring done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"compute"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: Generating done +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"cmakeInputs"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"type":"codemodel"} + +CMAKE SERVER: ]== "CMake Server" ==] + +CMAKE SERVER: + +CMAKE SERVER: [== "CMake Server" ==[ + +CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86_64/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} + +CMAKE SERVER: ]== "CMake Server" ==] + diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json b/cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json new file mode 100644 index 000000000..2d63b53dc --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json @@ -0,0 +1,7 @@ +[ +{ + "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", + "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", + "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" +} +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json new file mode 100644 index 000000000..d8bfaf476 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json @@ -0,0 +1,38 @@ +[ + { + "level": "INFO", + "message": "Start JSON generation. Platform version: 21 min SDK version: x86_64", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86_64" + }, + { + "level": "INFO", + "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86_64" + }, + { + "level": "INFO", + "message": "Trying to locate CMake in local SDK repository.", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86_64" + }, + { + "level": "INFO", + "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86_64" + }, + { + "level": "INFO", + "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json\u0027 was up-to-date", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86_64" + }, + { + "level": "INFO", + "message": "JSON generation completed without problems", + "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", + "tag": "release|x86_64" + } +] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json b/cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json new file mode 100644 index 000000000..e799de86a --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json @@ -0,0 +1,4 @@ +{ + "enabled": false, + "packages": [] +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja b/cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja new file mode 100644 index 000000000..af2d58df1 --- /dev/null +++ b/cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.10 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: Project +# Configuration: Release +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for compiling CXX files. + +rule CXX_COMPILER__cw_zano + depfile = $DEP_FILE + deps = gcc + command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building CXX object $out + + +############################################# +# Rule for linking CXX shared library. + +rule CXX_SHARED_LIBRARY_LINKER__cw_zano + command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking CXX shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets + description = All primary targets available: + diff --git a/cw_zano/android/.cxx/ndk_locator_record_713q3b26.json b/cw_zano/android/.cxx/ndk_locator_record_713q3b26.json new file mode 100644 index 000000000..f18868f49 --- /dev/null +++ b/cw_zano/android/.cxx/ndk_locator_record_713q3b26.json @@ -0,0 +1,11 @@ +{ + "ndk": "/home/leo/android-sdk/ndk/25.1.8937393", + "revision": { + "mMajor": 25, + "mMinor": 1, + "mMicro": 8937393, + "mPreview": 0, + "mPrecision": "MICRO", + "mPreviewSeparator": " " + } +} \ No newline at end of file diff --git a/cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json b/cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json new file mode 100644 index 000000000..3f7d5536f --- /dev/null +++ b/cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json @@ -0,0 +1,7 @@ +{ + "ndkVersionFromDsl": "25.1.8937393", + "sdkFolder": "/home/leo/android-sdk", + "sideBySideNdkFolderNames": [ + "25.1.8937393" + ] +} \ No newline at end of file diff --git a/cw_zano/android/.gitignore b/cw_zano/android/.gitignore new file mode 100644 index 000000000..c6cbe562a --- /dev/null +++ b/cw_zano/android/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/cw_zano/android/CMakeLists.txt b/cw_zano/android/CMakeLists.txt new file mode 100644 index 000000000..4ba87d89a --- /dev/null +++ b/cw_zano/android/CMakeLists.txt @@ -0,0 +1,220 @@ +cmake_minimum_required(VERSION 3.4.1) + +add_library( cw_zano + SHARED + ../ios/Classes/zano_api.cpp) + + find_library( log-lib log ) + +set(EXTERNAL_LIBS_DIR ${CMAKE_SOURCE_DIR}/../../cw_shared_external/ios/External/android) + +############ +# libsodium +############ + +add_library(sodium STATIC IMPORTED) +set_target_properties(sodium PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libsodium.a) + +############ +# OpenSSL +############ + +add_library(crypto STATIC IMPORTED) +set_target_properties(crypto PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libcrypto.a) + +add_library(ssl STATIC IMPORTED) +set_target_properties(ssl PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libssl.a) + +############ +# Boost +############ + +add_library(boost_chrono STATIC IMPORTED) +set_target_properties(boost_chrono PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_chrono.a) + +add_library(boost_date_time STATIC IMPORTED) +set_target_properties(boost_date_time PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_date_time.a) + +add_library(boost_filesystem STATIC IMPORTED) +set_target_properties(boost_filesystem PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_filesystem.a) + +add_library(boost_program_options STATIC IMPORTED) +set_target_properties(boost_program_options PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_program_options.a) + +add_library(boost_regex STATIC IMPORTED) +set_target_properties(boost_regex PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_regex.a) + +add_library(boost_serialization STATIC IMPORTED) +set_target_properties(boost_serialization PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_serialization.a) + +add_library(boost_system STATIC IMPORTED) +set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_system.a) + +add_library(boost_thread STATIC IMPORTED) +set_target_properties(boost_thread PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_thread.a) + +add_library(boost_wserialization STATIC IMPORTED) +set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_wserialization.a) + +############# +# Zano +############# + +add_library(wallet_api STATIC IMPORTED) +set_target_properties(wallet_api PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libwallet_api.a) + +add_library(wallet STATIC IMPORTED) +set_target_properties(wallet PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libwallet.a) + +add_library(cryptonote_core STATIC IMPORTED) +set_target_properties(cryptonote_core PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcryptonote_core.a) + +add_library(cryptonote_basic STATIC IMPORTED) +set_target_properties(cryptonote_basic PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcryptonote_basic.a) + +add_library(mnemonics STATIC IMPORTED) +set_target_properties(mnemonics PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libmnemonics.a) + +add_library(common STATIC IMPORTED) +set_target_properties(common PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcommon.a) + +add_library(cncrypto STATIC IMPORTED) +set_target_properties(cncrypto PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcncrypto.a) + +add_library(ringct STATIC IMPORTED) +set_target_properties(ringct PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libringct.a) + +add_library(ringct_basic STATIC IMPORTED) +set_target_properties(ringct_basic PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libringct_basic.a) + +add_library(blockchain_db STATIC IMPORTED) +set_target_properties(blockchain_db PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libblockchain_db.a) + +add_library(lmdb STATIC IMPORTED) +set_target_properties(lmdb PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/liblmdb.a) + +add_library(easylogging STATIC IMPORTED) +set_target_properties(easylogging PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libeasylogging.a) + +add_library(unbound STATIC IMPORTED) +set_target_properties(unbound PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libunbound.a) + +add_library(epee STATIC IMPORTED) +set_target_properties(epee PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libepee.a) + +add_library(checkpoints STATIC IMPORTED) +set_target_properties(checkpoints PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcheckpoints.a) + +add_library(device STATIC IMPORTED) +set_target_properties(device PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libdevice.a) + +add_library(device_trezor STATIC IMPORTED) +set_target_properties(device_trezor PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libdevice_trezor.a) + +add_library(multisig STATIC IMPORTED) +set_target_properties(multisig PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libmultisig.a) + +add_library(version STATIC IMPORTED) +set_target_properties(version PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libversion.a) + +add_library(net STATIC IMPORTED) +set_target_properties(net PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libnet.a) + +add_library(hardforks STATIC IMPORTED) +set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libhardforks.a) + +add_library(randomx STATIC IMPORTED) +set_target_properties(randomx PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/librandomx.a) + +add_library(offshore STATIC IMPORTED) +set_target_properties(offshore PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/liboffshore.a) + + +add_library(rpc_base STATIC IMPORTED) +set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/librpc_base.a) + +add_library(wallet-crypto STATIC IMPORTED) +set_target_properties(wallet-crypto PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libwallet-crypto.a) + +include_directories( ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/include ) + +target_link_libraries( cw_zano + + wallet_api + wallet + cryptonote_core + cryptonote_basic + mnemonics + ringct + ringct_basic + net + common + cncrypto + blockchain_db + lmdb + easylogging + unbound + epee + checkpoints + device + device_trezor + multisig + version + randomx + offshore + hardforks + rpc_base + + boost_chrono + boost_date_time + boost_filesystem + boost_program_options + boost_regex + boost_serialization + boost_system + boost_thread + boost_wserialization + + ssl + crypto + + sodium + + ${log-lib} ) \ No newline at end of file diff --git a/cw_zano/android/build.gradle b/cw_zano/android/build.gradle new file mode 100644 index 000000000..8ebce9580 --- /dev/null +++ b/cw_zano/android/build.gradle @@ -0,0 +1,45 @@ +group 'com.cakewallet.cw_zano' +version '1.0-SNAPSHOT' + +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +rootProject.allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 28 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + defaultConfig { + minSdkVersion 21 + } + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/cw_zano/android/gradle.properties b/cw_zano/android/gradle.properties new file mode 100644 index 000000000..94adc3a3f --- /dev/null +++ b/cw_zano/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/cw_zano/android/gradle/wrapper/gradle-wrapper.properties b/cw_zano/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..3c9d0852b --- /dev/null +++ b/cw_zano/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/cw_zano/android/settings.gradle b/cw_zano/android/settings.gradle new file mode 100644 index 000000000..7c4d5263b --- /dev/null +++ b/cw_zano/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'cw_zano' diff --git a/cw_zano/android/src/main/AndroidManifest.xml b/cw_zano/android/src/main/AndroidManifest.xml new file mode 100644 index 000000000..26903e6c0 --- /dev/null +++ b/cw_zano/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/cw_zano/android/src/main/kotlin/com/cakewallet/cw_zano/CwZanoPlugin.kt b/cw_zano/android/src/main/kotlin/com/cakewallet/cw_zano/CwZanoPlugin.kt new file mode 100644 index 000000000..95df8ae7b --- /dev/null +++ b/cw_zano/android/src/main/kotlin/com/cakewallet/cw_zano/CwZanoPlugin.kt @@ -0,0 +1,36 @@ +package com.cakewallet.cw_zano + +import androidx.annotation.NonNull + +import io.flutter.embedding.engine.plugins.FlutterPlugin +import io.flutter.plugin.common.MethodCall +import io.flutter.plugin.common.MethodChannel +import io.flutter.plugin.common.MethodChannel.MethodCallHandler +import io.flutter.plugin.common.MethodChannel.Result +import io.flutter.plugin.common.PluginRegistry.Registrar + +/** CwZanoPlugin */ +class CwZanoPlugin: FlutterPlugin, MethodCallHandler { + /// The MethodChannel that will the communication between Flutter and native Android + /// + /// This local reference serves to register the plugin with the Flutter Engine and unregister it + /// when the Flutter Engine is detached from the Activity + private lateinit var channel : MethodChannel + + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) { + channel = MethodChannel(flutterPluginBinding.binaryMessenger, "cw_zano") + channel.setMethodCallHandler(this) + } + + override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) { + if (call.method == "getPlatformVersion") { + result.success("Android ${android.os.Build.VERSION.RELEASE}") + } else { + result.notImplemented() + } + } + + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) { + channel.setMethodCallHandler(null) + } +} diff --git a/cw_zano/ios/.gitignore b/cw_zano/ios/.gitignore new file mode 100644 index 000000000..aa479fd3c --- /dev/null +++ b/cw_zano/ios/.gitignore @@ -0,0 +1,37 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/Generated.xcconfig +/Flutter/flutter_export_environment.sh \ No newline at end of file diff --git a/cw_zano/ios/Assets/.gitkeep b/cw_zano/ios/Assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/cw_zano/ios/Classes/CwHavenPlugin.h b/cw_zano/ios/Classes/CwHavenPlugin.h new file mode 100644 index 000000000..ee043b49c --- /dev/null +++ b/cw_zano/ios/Classes/CwHavenPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface CwZanoPlugin : NSObject +@end diff --git a/cw_zano/ios/Classes/CwHavenPlugin.m b/cw_zano/ios/Classes/CwHavenPlugin.m new file mode 100644 index 000000000..987663b56 --- /dev/null +++ b/cw_zano/ios/Classes/CwHavenPlugin.m @@ -0,0 +1,15 @@ +#import "CwZanoPlugin.h" +#if __has_include() +#import +#else +// Support project import fallback if the generated compatibility header +// is not copied when this plugin is created as a library. +// https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 +#import "cw_zano-Swift.h" +#endif + +@implementation CwZanoPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + [SwiftCwZanoPlugin registerWithRegistrar:registrar]; +} +@end diff --git a/cw_zano/ios/Classes/SwiftCwHavenPlugin.swift b/cw_zano/ios/Classes/SwiftCwHavenPlugin.swift new file mode 100644 index 000000000..9c789d8a6 --- /dev/null +++ b/cw_zano/ios/Classes/SwiftCwHavenPlugin.swift @@ -0,0 +1,14 @@ +import Flutter +import UIKit + +public class SwiftCwZanoPlugin: NSObject, FlutterPlugin { + public static func register(with registrar: FlutterPluginRegistrar) { + let channel = FlutterMethodChannel(name: "cw_zano", binaryMessenger: registrar.messenger()) + let instance = SwiftCwZanoPlugin() + registrar.addMethodCallDelegate(instance, channel: channel) + } + + public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) { + result("iOS " + UIDevice.current.systemVersion) + } +} diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp new file mode 100644 index 000000000..aecaf0016 --- /dev/null +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -0,0 +1,942 @@ +#include +#include "cstdlib" +#include +#include +#include +#include +#include +#include "thread" +#if __APPLE__ +// Fix for randomx on ios +void __clear_cache(void* start, void* end) { } +#include "../External/ios/include/wallet2_api.h" +#else +#include "../External/android/include/wallet2_api.h" +#endif + +using namespace std::chrono_literals; + +#ifdef __cplusplus +extern "C" +{ +#endif + const uint64_t MONERO_BLOCK_SIZE = 1000; + + struct Utf8Box + { + char *value; + + Utf8Box(char *_value) + { + value = _value; + } + }; + + + struct SubaddressRow + { + uint64_t id; + char *address; + char *label; + + SubaddressRow(std::size_t _id, char *_address, char *_label) + { + id = static_cast(_id); + address = _address; + label = _label; + } + }; + + struct AccountRow + { + uint64_t id; + char *label; + + AccountRow(std::size_t _id, char *_label) + { + id = static_cast(_id); + label = _label; + } + }; + + struct HavenBalance + { + uint64_t amount; + char *assetType; + + HavenBalance(char *_assetType, uint64_t _amount) + { + amount = _amount; + assetType = _assetType; + } + }; + + struct HavenRate + { + uint64_t rate; + char *assetType; + + HavenRate(char *_assetType, uint64_t _rate) + { + rate = _rate; + assetType = _assetType; + } + }; + + struct MoneroWalletListener : Monero::WalletListener + { + uint64_t m_height; + bool m_need_to_refresh; + bool m_new_transaction; + + MoneroWalletListener() + { + m_height = 0; + m_need_to_refresh = false; + m_new_transaction = false; + } + + void moneySpent(const std::string &txId, uint64_t amount, std::string assetType) + { + m_new_transaction = true; + } + + void moneyReceived(const std::string &txId, uint64_t amount, std::string assetType) + { + m_new_transaction = true; + } + + void unconfirmedMoneyReceived(const std::string &txId, uint64_t amount) + { + m_new_transaction = true; + } + + void newBlock(uint64_t height) + { + m_height = height; + } + + void updated() + { + m_new_transaction = true; + } + + void refreshed() + { + m_need_to_refresh = true; + } + + void resetNeedToRefresh() + { + m_need_to_refresh = false; + } + + bool isNeedToRefresh() + { + return m_need_to_refresh; + } + + bool isNewTransactionExist() + { + return m_new_transaction; + } + + void resetIsNewTransactionExist() + { + m_new_transaction = false; + } + + uint64_t height() + { + return m_height; + } + }; + + struct TransactionInfoRow + { + uint64_t amount; + uint64_t fee; + uint64_t blockHeight; + uint64_t confirmations; + uint32_t subaddrAccount; + int8_t direction; + int8_t isPending; + uint32_t subaddrIndex; + + char *hash; + char *paymentId; + char *assetType; + + int64_t datetime; + + TransactionInfoRow(Monero::TransactionInfo *transaction) + { + amount = transaction->amount(); + fee = transaction->fee(); + blockHeight = transaction->blockHeight(); + subaddrAccount = transaction->subaddrAccount(); + std::set::iterator it = transaction->subaddrIndex().begin(); + subaddrIndex = *it; + confirmations = transaction->confirmations(); + datetime = static_cast(transaction->timestamp()); + direction = transaction->direction(); + isPending = static_cast(transaction->isPending()); + std::string *hash_str = new std::string(transaction->hash()); + hash = strdup(hash_str->c_str()); + paymentId = strdup(transaction->paymentId().c_str()); + assetType = strdup(transaction->assetType().c_str()); + } + }; + + struct PendingTransactionRaw + { + uint64_t amount; + uint64_t fee; + char *hash; + Monero::PendingTransaction *transaction; + + PendingTransactionRaw(Monero::PendingTransaction *_transaction) + { + transaction = _transaction; + amount = _transaction->amount(); + fee = _transaction->fee(); + hash = strdup(_transaction->txid()[0].c_str()); + } + }; + + Monero::Wallet *m_wallet; + Monero::TransactionHistory *m_transaction_history; + MoneroWalletListener *m_listener; + Monero::Subaddress *m_subaddress; + Monero::SubaddressAccount *m_account; + uint64_t m_last_known_wallet_height; + uint64_t m_cached_syncing_blockchain_height = 0; + std::mutex store_lock; + bool is_storing = false; + + void change_current_wallet(Monero::Wallet *wallet) + { + m_wallet = wallet; + m_listener = nullptr; + + + if (wallet != nullptr) + { + m_transaction_history = wallet->history(); + } + else + { + m_transaction_history = nullptr; + } + + if (wallet != nullptr) + { + m_account = wallet->subaddressAccount(); + } + else + { + m_account = nullptr; + } + + if (wallet != nullptr) + { + m_subaddress = wallet->subaddress(); + } + else + { + m_subaddress = nullptr; + } + } + + Monero::Wallet *get_current_wallet() + { + return m_wallet; + } + + bool create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) + { + Monero::WalletManagerFactory::setLogLevel(4); + + Monero::NetworkType _networkType = static_cast(networkType); + Monero::WalletManager *walletManager = Monero::WalletManagerFactory::getWalletManager(); + Monero::Wallet *wallet = walletManager->createWallet(path, password, language, _networkType); + + int status; + std::string errorString; + + wallet->statusWithErrorString(status, errorString); + + if (wallet->status() != Monero::Wallet::Status_Ok) + { + error = strdup(wallet->errorString().c_str()); + return false; + } + + change_current_wallet(wallet); + + return true; + } + + bool restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) + { + Monero::NetworkType _networkType = static_cast(networkType); + Monero::Wallet *wallet = Monero::WalletManagerFactory::getWalletManager()->recoveryWallet( + std::string(path), + std::string(password), + std::string(seed), + _networkType, + (uint64_t)restoreHeight); + + int status; + std::string errorString; + + wallet->statusWithErrorString(status, errorString); + + if (status != Monero::Wallet::Status_Ok || !errorString.empty()) + { + error = strdup(errorString.c_str()); + return false; + } + + change_current_wallet(wallet); + return true; + } + + bool restore_wallet_from_keys(char *path, char *password, char *language, char *address, char *viewKey, char *spendKey, int32_t networkType, uint64_t restoreHeight, char *error) + { + Monero::NetworkType _networkType = static_cast(networkType); + Monero::Wallet *wallet = Monero::WalletManagerFactory::getWalletManager()->createWalletFromKeys( + std::string(path), + std::string(password), + std::string(language), + _networkType, + (uint64_t)restoreHeight, + std::string(address), + std::string(viewKey), + std::string(spendKey)); + + int status; + std::string errorString; + + wallet->statusWithErrorString(status, errorString); + + if (status != Monero::Wallet::Status_Ok || !errorString.empty()) + { + error = strdup(errorString.c_str()); + return false; + } + + change_current_wallet(wallet); + return true; + } + + bool load_wallet(char *path, char *password, int32_t nettype) + { + nice(19); + Monero::NetworkType networkType = static_cast(nettype); + Monero::WalletManager *walletManager = Monero::WalletManagerFactory::getWalletManager(); + Monero::Wallet *wallet = walletManager->openWallet(std::string(path), std::string(password), networkType); + int status; + std::string errorString; + + wallet->statusWithErrorString(status, errorString); + change_current_wallet(wallet); + + return !(status != Monero::Wallet::Status_Ok || !errorString.empty()); + } + + char *error_string() { + return strdup(get_current_wallet()->errorString().c_str()); + } + + + bool is_wallet_exist(char *path) + { + return Monero::WalletManagerFactory::getWalletManager()->walletExists(std::string(path)); + } + + void close_current_wallet() + { + Monero::WalletManagerFactory::getWalletManager()->closeWallet(get_current_wallet()); + change_current_wallet(nullptr); + } + + char *get_filename() + { + return strdup(get_current_wallet()->filename().c_str()); + } + + char *secret_view_key() + { + return strdup(get_current_wallet()->secretViewKey().c_str()); + } + + char *public_view_key() + { + return strdup(get_current_wallet()->publicViewKey().c_str()); + } + + char *secret_spend_key() + { + return strdup(get_current_wallet()->secretSpendKey().c_str()); + } + + char *public_spend_key() + { + return strdup(get_current_wallet()->publicSpendKey().c_str()); + } + + char *get_address(uint32_t account_index, uint32_t address_index) + { + return strdup(get_current_wallet()->address(account_index, address_index).c_str()); + } + + + const char *seed() + { + return strdup(get_current_wallet()->seed().c_str()); + } + + int64_t *get_full_balance(uint32_t account_index) + { + std::map accountBalance; + std::map> balanceSubaddresses = get_current_wallet()->balance(account_index); + std::vector assetList = Monero::Assets::list(); + //prefill balances + for (const auto &asset_type : assetList) { + + accountBalance[asset_type] = 0; + } + // balances are mapped to their subaddress + // we compute total balances of account + for (auto const& balanceSubaddress : balanceSubaddresses) + { + + std::map balanceOfSubaddress = balanceSubaddress.second; + + for (auto const& balance : balanceOfSubaddress) + { + + const std::string &assetType = balance.first; + const uint64_t &amount = balance.second; + accountBalance[assetType] +=amount; + } + } + + size_t size = accountBalance.size(); + int64_t *balanceAddresses = (int64_t *)malloc(size * sizeof(int64_t)); + int i = 0; + + for (auto const& balance : accountBalance) + { + char *assetType = strdup(balance.first.c_str()); + HavenBalance *hb = new HavenBalance(assetType, balance.second); + balanceAddresses[i] = reinterpret_cast(hb); + i++; + } + return balanceAddresses; + } + + int64_t *get_unlocked_balance(uint32_t account_index) + { + std::map accountBalance; + std::map> balanceSubaddresses = get_current_wallet()->unlockedBalance(account_index); + std::vector assetList = Monero::Assets::list(); + + //prefill balances + for (const auto &asset_type : assetList) { + + accountBalance[asset_type] = 0; + } + // balances are mapped to their subaddress + // we compute total balances of account + for (auto const& balanceSubaddress : balanceSubaddresses) + { + + std::map balanceOfSubaddress = balanceSubaddress.second; + + for (auto const& balance : balanceOfSubaddress) + { + + const std::string &assetType = balance.first; + const uint64_t &amount = balance.second; + accountBalance[assetType] +=amount; + } + } + + size_t size = accountBalance.size(); + int64_t *balanceAddresses = (int64_t *)malloc(size * sizeof(int64_t)); + int i = 0; + + for (auto const& balance : accountBalance) + { + char *assetType = strdup(balance.first.c_str()); + HavenBalance *hb = new HavenBalance(assetType, balance.second); + balanceAddresses[i] = reinterpret_cast(hb); + i++; + } + return balanceAddresses; + } + + uint64_t get_current_height() + { + return get_current_wallet()->blockChainHeight(); + } + + uint64_t get_node_height() + { + return get_current_wallet()->daemonBlockChainHeight(); + } + + bool connect_to_node(char *error) + { + nice(19); + bool is_connected = get_current_wallet()->connectToDaemon(); + + if (!is_connected) + { + error = strdup(get_current_wallet()->errorString().c_str()); + } + + return is_connected; + } + + bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) + { + nice(19); + Monero::Wallet *wallet = get_current_wallet(); + + std::string _login = ""; + std::string _password = ""; + + if (login != nullptr) + { + _login = std::string(login); + } + + if (password != nullptr) + { + _password = std::string(password); + } + + bool inited = wallet->init(std::string(address), 0, _login, _password, use_ssl, is_light_wallet); + + if (!inited) + { + error = strdup(wallet->errorString().c_str()); + } else if (!wallet->connectToDaemon()) { + error = strdup(wallet->errorString().c_str()); + } + + return inited; + } + + bool is_connected() + { + return get_current_wallet()->connected(); + } + + void start_refresh() + { + get_current_wallet()->refreshAsync(); + get_current_wallet()->startRefresh(); + } + + void set_refresh_from_block_height(uint64_t height) + { + get_current_wallet()->setRefreshFromBlockHeight(height); + } + + void set_recovering_from_seed(bool is_recovery) + { + get_current_wallet()->setRecoveringFromSeed(is_recovery); + } + + void store(char *path) + { + store_lock.lock(); + if (is_storing) { + return; + } + + is_storing = true; + get_current_wallet()->store(std::string(path)); + is_storing = false; + store_lock.unlock(); + } + + bool set_password(char *password, Utf8Box &error) { + bool is_changed = get_current_wallet()->setPassword(std::string(password)); + + if (!is_changed) { + error = Utf8Box(strdup(get_current_wallet()->errorString().c_str())); + } + + return is_changed; + } + + bool transaction_create(char *address, char *asset_type, char *payment_id, char *amount, + uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) + { + nice(19); + + auto priority = static_cast(priority_raw); + std::string _payment_id; + Monero::PendingTransaction *transaction; + + if (payment_id != nullptr) + { + _payment_id = std::string(payment_id); + } + + if (amount != nullptr) + { + uint64_t _amount = Monero::Wallet::amountFromString(std::string(amount)); + transaction = m_wallet->createTransaction(std::string(address), _payment_id, _amount, std::string(asset_type), std::string(asset_type), m_wallet->defaultMixin(), priority, subaddr_account, {}); + } + else + { + transaction = m_wallet->createTransaction(std::string(address), _payment_id, Monero::optional(),std::string(asset_type), std::string(asset_type), m_wallet->defaultMixin(), priority, subaddr_account, {}); + } + + int status = transaction->status(); + + if (status == Monero::PendingTransaction::Status::Status_Error || status == Monero::PendingTransaction::Status::Status_Critical) + { + error = Utf8Box(strdup(transaction->errorString().c_str())); + return false; + } + + if (m_listener != nullptr) { + m_listener->m_new_transaction = true; + } + + pendingTransaction = PendingTransactionRaw(transaction); + return true; + } + + bool transaction_create_mult_dest(char **addresses, char *asset_type, char *payment_id, char **amounts, uint32_t size, + uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) + { + nice(19); + + std::vector _addresses; + std::vector _amounts; + + for (int i = 0; i < size; i++) { + _addresses.push_back(std::string(*addresses)); + _amounts.push_back(Monero::Wallet::amountFromString(std::string(*amounts))); + addresses++; + amounts++; + } + + auto priority = static_cast(priority_raw); + std::string _payment_id; + Monero::PendingTransaction *transaction; + + if (payment_id != nullptr) + { + _payment_id = std::string(payment_id); + } + + transaction = m_wallet->createTransactionMultDest(_addresses, _payment_id, _amounts, + std::string(asset_type), std::string(asset_type), m_wallet->defaultMixin(), priority, subaddr_account,{}); + + int status = transaction->status(); + + if (status == Monero::PendingTransaction::Status::Status_Error || status == Monero::PendingTransaction::Status::Status_Critical) + { + error = Utf8Box(strdup(transaction->errorString().c_str())); + return false; + } + + if (m_listener != nullptr) { + m_listener->m_new_transaction = true; + } + + pendingTransaction = PendingTransactionRaw(transaction); + return true; + } + + bool transaction_commit(PendingTransactionRaw *transaction, Utf8Box &error) + { + bool committed = transaction->transaction->commit(); + + if (!committed) + { + error = Utf8Box(strdup(transaction->transaction->errorString().c_str())); + } else if (m_listener != nullptr) { + m_listener->m_new_transaction = true; + } + + return committed; + } + + uint64_t get_node_height_or_update(uint64_t base_eight) + { + if (m_cached_syncing_blockchain_height < base_eight) { + m_cached_syncing_blockchain_height = base_eight; + } + + return m_cached_syncing_blockchain_height; + } + + uint64_t get_syncing_height() + { + if (m_listener == nullptr) { + return 0; + } + + uint64_t height = m_listener->height(); + + if (height <= 1) { + return 0; + } + + if (height != m_last_known_wallet_height) + { + m_last_known_wallet_height = height; + } + + return height; + } + + uint64_t is_needed_to_refresh() + { + if (m_listener == nullptr) { + return false; + } + + bool should_refresh = m_listener->isNeedToRefresh(); + + if (should_refresh) { + m_listener->resetNeedToRefresh(); + } + + return should_refresh; + } + + uint8_t is_new_transaction_exist() + { + if (m_listener == nullptr) { + return false; + } + + bool is_new_transaction_exist = m_listener->isNewTransactionExist(); + + if (is_new_transaction_exist) + { + m_listener->resetIsNewTransactionExist(); + } + + return is_new_transaction_exist; + } + + void set_listener() + { + m_last_known_wallet_height = 0; + + if (m_listener != nullptr) + { + free(m_listener); + } + + m_listener = new MoneroWalletListener(); + get_current_wallet()->setListener(m_listener); + } + + int64_t *subaddrress_get_all() + { + std::vector _subaddresses = m_subaddress->getAll(); + size_t size = _subaddresses.size(); + int64_t *subaddresses = (int64_t *)malloc(size * sizeof(int64_t)); + + for (int i = 0; i < size; i++) + { + Monero::SubaddressRow *row = _subaddresses[i]; + SubaddressRow *_row = new SubaddressRow(row->getRowId(), strdup(row->getAddress().c_str()), strdup(row->getLabel().c_str())); + subaddresses[i] = reinterpret_cast(_row); + } + + return subaddresses; + } + + int32_t subaddrress_size() + { + std::vector _subaddresses = m_subaddress->getAll(); + return _subaddresses.size(); + } + + void subaddress_add_row(uint32_t accountIndex, char *label) + { + m_subaddress->addRow(accountIndex, std::string(label)); + } + + void subaddress_set_label(uint32_t accountIndex, uint32_t addressIndex, char *label) + { + m_subaddress->setLabel(accountIndex, addressIndex, std::string(label)); + } + + void subaddress_refresh(uint32_t accountIndex) + { + m_subaddress->refresh(accountIndex); + } + + int32_t account_size() + { + std::vector _accocunts = m_account->getAll(); + return _accocunts.size(); + } + + int64_t *account_get_all() + { + std::vector _accocunts = m_account->getAll(); + size_t size = _accocunts.size(); + int64_t *accocunts = (int64_t *)malloc(size * sizeof(int64_t)); + + for (int i = 0; i < size; i++) + { + Monero::SubaddressAccountRow *row = _accocunts[i]; + AccountRow *_row = new AccountRow(row->getRowId(), strdup(row->getLabel().c_str())); + accocunts[i] = reinterpret_cast(_row); + } + + return accocunts; + } + + void account_add_row(char *label) + { + m_account->addRow(std::string(label)); + } + + void account_set_label_row(uint32_t account_index, char *label) + { + m_account->setLabel(account_index, label); + } + + void account_refresh() + { + m_account->refresh(); + } + + int64_t *transactions_get_all() + { + std::vector transactions = m_transaction_history->getAll(); + size_t size = transactions.size(); + int64_t *transactionAddresses = (int64_t *)malloc(size * sizeof(int64_t)); + + for (int i = 0; i < size; i++) + { + Monero::TransactionInfo *row = transactions[i]; + TransactionInfoRow *tx = new TransactionInfoRow(row); + transactionAddresses[i] = reinterpret_cast(tx); + } + + return transactionAddresses; + } + + void transactions_refresh() + { + m_transaction_history->refresh(); + } + + int64_t transactions_count() + { + return m_transaction_history->count(); + } + + int LedgerExchange( + unsigned char *command, + unsigned int cmd_len, + unsigned char *response, + unsigned int max_resp_len) + { + return -1; + } + + int LedgerFind(char *buffer, size_t len) + { + return -1; + } + + void on_startup() + { + Monero::Utils::onStartup(); + Monero::WalletManagerFactory::setLogLevel(4); + } + + void rescan_blockchain() + { + m_wallet->rescanBlockchainAsync(); + } + + char * get_tx_key(char * txId) + { + return strdup(m_wallet->getTxKey(std::string(txId)).c_str()); + } + + int32_t asset_types_size() + { + return Monero::Assets::list().size(); + } + + char **asset_types() + { + size_t size = Monero::Assets::list().size(); + std::vector assetList = Monero::Assets::list(); + char **assetTypesPts; + assetTypesPts = (char **) malloc( size * sizeof(char*)); + + for (int i = 0; i < size; i++) + { + + std::string asset = assetList[i]; + //assetTypes[i] = (char *)malloc( 5 * sizeof(char)); + assetTypesPts[i] = strdup(asset.c_str()); + } + + return assetTypesPts; + } + + std::map rates; + + void update_rate() + { + rates = get_current_wallet()->oracleRates(); + } + + int64_t *get_rate() + { + size_t size = rates.size(); + int64_t *havenRates = (int64_t *)malloc(size * sizeof(int64_t)); + int i = 0; + + for (auto const& rate : rates) + { + char *assetType = strdup(rate.first.c_str()); + HavenRate *havenRate = new HavenRate(assetType, rate.second); + havenRates[i] = reinterpret_cast(havenRate); + i++; + } + + return havenRates; + } + + int32_t size_of_rate() + { + return static_cast(rates.size()); + } + + void set_trusted_daemon(bool arg) + { + m_wallet->setTrustedDaemon(arg); + } + + bool trusted_daemon() + { + return m_wallet->trustedDaemon(); + } + +#ifdef __cplusplus +} +#endif diff --git a/cw_zano/ios/External/android/include/wallet2_api.h b/cw_zano/ios/External/android/include/wallet2_api.h new file mode 100644 index 000000000..1065f8f84 --- /dev/null +++ b/cw_zano/ios/External/android/include/wallet2_api.h @@ -0,0 +1,1333 @@ +// Copyright (c) 2014-2019, The Monero Project +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without modification, are +// permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, this list of +// conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright notice, this list +// of conditions and the following disclaimer in the documentation and/or other +// materials provided with the distribution. +// +// 3. Neither the name of the copyright holder nor the names of its contributors may be +// used to endorse or promote products derived from this software without specific +// prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +// THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers + +#pragma once + + +#include +#include +#include +#include +#include +#include +#include +#include + +// Public interface for libwallet library +namespace Monero { + +enum NetworkType : uint8_t { + MAINNET = 0, + TESTNET, + STAGENET +}; + + + namespace Assets { + + std::vector list(); + } + + namespace Utils { + bool isAddressLocal(const std::string &hostaddr); + void onStartup(); + } + + template + class optional { + public: + optional(): set(false) {} + optional(const T &t): t(t), set(true) {} + const T &operator*() const { return t; } + T &operator*() { return t; } + operator bool() const { return set; } + private: + T t; + bool set; + }; + +/** + * @brief Transaction-like interface for sending money + */ +struct PendingTransaction +{ + enum Status { + Status_Ok, + Status_Error, + Status_Critical + }; + + enum Priority { + Priority_Default = 0, + Priority_Low = 1, + Priority_Medium = 2, + Priority_High = 3, + Priority_Last + }; + + virtual ~PendingTransaction() = 0; + virtual int status() const = 0; + virtual std::string errorString() const = 0; + // commit transaction or save to file if filename is provided. + virtual bool commit(const std::string &filename = "", bool overwrite = false) = 0; + virtual uint64_t amount() const = 0; + virtual std::string assetType() const = 0; + virtual uint64_t dust() const = 0; + virtual uint64_t fee() const = 0; + virtual std::vector txid() const = 0; + /*! + * \brief txCount - number of transactions current transaction will be splitted to + * \return + */ + virtual uint64_t txCount() const = 0; + virtual std::vector subaddrAccount() const = 0; + virtual std::vector> subaddrIndices() const = 0; + + /** + * @brief multisigSignData + * @return encoded multisig transaction with signers' keys. + * Transfer this data to another wallet participant to sign it. + * Assumed use case is: + * 1. Initiator: + * auto data = pendingTransaction->multisigSignData(); + * 2. Signer1: + * pendingTransaction = wallet->restoreMultisigTransaction(data); + * pendingTransaction->signMultisigTx(); + * auto signed = pendingTransaction->multisigSignData(); + * 3. Signer2: + * pendingTransaction = wallet->restoreMultisigTransaction(signed); + * pendingTransaction->signMultisigTx(); + * pendingTransaction->commit(); + */ + virtual std::string multisigSignData() = 0; + virtual void signMultisigTx() = 0; + /** + * @brief signersKeys + * @return vector of base58-encoded signers' public keys + */ + virtual std::vector signersKeys() const = 0; +}; + +/** + * @brief Transaction-like interface for sending money + */ +struct UnsignedTransaction +{ + enum Status { + Status_Ok, + Status_Error, + Status_Critical + }; + + virtual ~UnsignedTransaction() = 0; + virtual int status() const = 0; + virtual std::string errorString() const = 0; + virtual std::vector amount() const = 0; + virtual std::vector fee() const = 0; + virtual std::vector mixin() const = 0; + // returns a string with information about all transactions. + virtual std::string confirmationMessage() const = 0; + virtual std::vector paymentId() const = 0; + virtual std::vector recipientAddress() const = 0; + virtual uint64_t minMixinCount() const = 0; + /*! + * \brief txCount - number of transactions current transaction will be splitted to + * \return + */ + virtual uint64_t txCount() const = 0; + /*! + * @brief sign - Sign txs and saves to file + * @param signedFileName + * return - true on success + */ + virtual bool sign(const std::string &signedFileName) = 0; +}; + +/** + * @brief The TransactionInfo - interface for displaying transaction information + */ +struct TransactionInfo +{ + enum Direction { + Direction_In, + Direction_Out + }; + + struct Transfer { + Transfer(uint64_t _amount, const std::string &address); + const uint64_t amount; + const std::string address; + }; + + virtual ~TransactionInfo() = 0; + virtual int direction() const = 0; + virtual bool isPending() const = 0; + virtual bool isFailed() const = 0; + virtual uint64_t amount() const = 0; + virtual uint64_t fee() const = 0; + virtual uint64_t blockHeight() const = 0; + virtual std::set subaddrIndex() const = 0; + virtual uint32_t subaddrAccount() const = 0; + virtual std::string label() const = 0; + virtual uint64_t confirmations() const = 0; + virtual uint64_t unlockTime() const = 0; + //! transaction_id + virtual std::string hash() const = 0; + virtual std::time_t timestamp() const = 0; + virtual std::string paymentId() const = 0; + virtual std::string assetType() const = 0; + //! only applicable for output transactions + virtual const std::vector & transfers() const = 0; +}; +/** + * @brief The TransactionHistory - interface for displaying transaction history + */ +struct TransactionHistory +{ + virtual ~TransactionHistory() = 0; + virtual int count() const = 0; + virtual TransactionInfo * transaction(int index) const = 0; + virtual TransactionInfo * transaction(const std::string &id) const = 0; + virtual std::vector getAll() const = 0; + virtual void refresh() = 0; +}; + +/** + * @brief AddressBookRow - provides functions to manage address book + */ +struct AddressBookRow { +public: + AddressBookRow(std::size_t _rowId, const std::string &_address, const std::string &_paymentId, const std::string &_description): + m_rowId(_rowId), + m_address(_address), + m_paymentId(_paymentId), + m_description(_description) {} + +private: + std::size_t m_rowId; + std::string m_address; + std::string m_paymentId; + std::string m_description; +public: + std::string extra; + std::string getAddress() const {return m_address;} + std::string getDescription() const {return m_description;} + std::string getPaymentId() const {return m_paymentId;} + std::size_t getRowId() const {return m_rowId;} +}; + +/** + * @brief The AddressBook - interface for +Book + */ +struct AddressBook +{ + enum ErrorCode { + Status_Ok, + General_Error, + Invalid_Address, + Invalid_Payment_Id + }; + virtual ~AddressBook() = 0; + virtual std::vector getAll() const = 0; + virtual bool addRow(const std::string &dst_addr , const std::string &payment_id, const std::string &description) = 0; + virtual bool deleteRow(std::size_t rowId) = 0; + virtual void refresh() = 0; + virtual std::string errorString() const = 0; + virtual int errorCode() const = 0; + virtual int lookupPaymentID(const std::string &payment_id) const = 0; +}; + +struct SubaddressRow { +public: + SubaddressRow(std::size_t _rowId, const std::string &_address, const std::string &_label): + m_rowId(_rowId), + m_address(_address), + m_label(_label) {} + +private: + std::size_t m_rowId; + std::string m_address; + std::string m_label; +public: + std::string extra; + std::string getAddress() const {return m_address;} + std::string getLabel() const {return m_label;} + std::size_t getRowId() const {return m_rowId;} +}; + +struct Subaddress +{ + virtual ~Subaddress() = 0; + virtual std::vector getAll() const = 0; + virtual void addRow(uint32_t accountIndex, const std::string &label) = 0; + virtual void setLabel(uint32_t accountIndex, uint32_t addressIndex, const std::string &label) = 0; + virtual void refresh(uint32_t accountIndex) = 0; +}; + +struct SubaddressAccountRow { +public: + SubaddressAccountRow(std::size_t _rowId, const std::string &_address, const std::string &_label, const std::map> &_balance, const std::map> &_unlockedBalance): + m_rowId(_rowId), + m_address(_address), + m_label(_label), + m_balance(_balance), + m_unlockedBalance(_unlockedBalance) {} + +private: + std::size_t m_rowId; + std::string m_address; + std::string m_label; + std::map> m_balance; + std::map> m_unlockedBalance; +public: + std::string extra; + std::string getAddress() const {return m_address;} + std::string getLabel() const {return m_label;} + std::map> getBalance() const {return m_balance;} + std::map> getUnlockedBalance() const {return m_unlockedBalance;} + std::size_t getRowId() const {return m_rowId;} +}; + +struct SubaddressAccount +{ + virtual ~SubaddressAccount() = 0; + virtual std::vector getAll() const = 0; + virtual void addRow(const std::string &label) = 0; + virtual void setLabel(uint32_t accountIndex, const std::string &label) = 0; + virtual void refresh() = 0; +}; + +struct MultisigState { + MultisigState() : isMultisig(false), isReady(false), threshold(0), total(0) {} + + bool isMultisig; + bool isReady; + uint32_t threshold; + uint32_t total; +}; + + +struct DeviceProgress { + DeviceProgress(): m_progress(0), m_indeterminate(false) {} + DeviceProgress(double progress, bool indeterminate=false): m_progress(progress), m_indeterminate(indeterminate) {} + + virtual double progress() const { return m_progress; } + virtual bool indeterminate() const { return m_indeterminate; } + +protected: + double m_progress; + bool m_indeterminate; +}; + +struct Wallet; +struct WalletListener +{ + virtual ~WalletListener() = 0; + /** + * @brief moneySpent - called when money spent + * @param txId - transaction id + * @param amount - amount + */ + virtual void moneySpent(const std::string &txId, uint64_t amount, std::string asset_type) = 0; + + /** + * @brief moneyReceived - called when money received + * @param txId - transaction id + * @param amount - amount + */ + virtual void moneyReceived(const std::string &txId, uint64_t amount, std::string asset_type) = 0; + + /** + * @brief unconfirmedMoneyReceived - called when payment arrived in tx pool + * @param txId - transaction id + * @param amount - amount + */ + virtual void unconfirmedMoneyReceived(const std::string &txId, uint64_t amount) = 0; + + /** + * @brief newBlock - called when new block received + * @param height - block height + */ + virtual void newBlock(uint64_t height) = 0; + + /** + * @brief updated - generic callback, called when any event (sent/received/block reveived/etc) happened with the wallet; + */ + virtual void updated() = 0; + + + /** + * @brief refreshed - called when wallet refreshed by background thread or explicitly refreshed by calling "refresh" synchronously + */ + virtual void refreshed() = 0; + + /** + * @brief called by device if the action is required + */ + virtual void onDeviceButtonRequest(uint64_t code) { (void)code; } + + /** + * @brief called by device if the button was pressed + */ + virtual void onDeviceButtonPressed() { } + + /** + * @brief called by device when PIN is needed + */ + virtual optional onDevicePinRequest() { + throw std::runtime_error("Not supported"); + } + + /** + * @brief called by device when passphrase entry is needed + */ + virtual optional onDevicePassphraseRequest(bool & on_device) { + on_device = true; + return optional(); + } + + /** + * @brief Signalizes device operation progress + */ + virtual void onDeviceProgress(const DeviceProgress & event) { (void)event; }; + + /** + * @brief If the listener is created before the wallet this enables to set created wallet object + */ + virtual void onSetWallet(Wallet * wallet) { (void)wallet; }; +}; + + +/** + * @brief Interface for wallet operations. + * TODO: check if /include/IWallet.h is still actual + */ +struct Wallet +{ + enum Device { + Device_Software = 0, + Device_Ledger = 1, + Device_Trezor = 2 + }; + + enum Status { + Status_Ok, + Status_Error, + Status_Critical + }; + + enum ConnectionStatus { + ConnectionStatus_Disconnected, + ConnectionStatus_Connected, + ConnectionStatus_WrongVersion + }; + + virtual ~Wallet() = 0; + virtual std::string seed() const = 0; + virtual std::string getSeedLanguage() const = 0; + virtual void setSeedLanguage(const std::string &arg) = 0; + //! returns wallet status (Status_Ok | Status_Error) + virtual int status() const = 0; //deprecated: use safe alternative statusWithErrorString + //! in case error status, returns error string + virtual std::string errorString() const = 0; //deprecated: use safe alternative statusWithErrorString + //! returns both error and error string atomically. suggested to use in instead of status() and errorString() + virtual void statusWithErrorString(int& status, std::string& errorString) const = 0; + virtual bool setPassword(const std::string &password) = 0; + virtual bool setDevicePin(const std::string &pin) { (void)pin; return false; }; + virtual bool setDevicePassphrase(const std::string &passphrase) { (void)passphrase; return false; }; + virtual std::string address(uint32_t accountIndex = 0, uint32_t addressIndex = 0) const = 0; + std::string mainAddress() const { return address(0, 0); } + virtual std::string path() const = 0; + virtual NetworkType nettype() const = 0; + bool mainnet() const { return nettype() == MAINNET; } + bool testnet() const { return nettype() == TESTNET; } + bool stagenet() const { return nettype() == STAGENET; } + //! returns current hard fork info + virtual void hardForkInfo(uint8_t &version, uint64_t &earliest_height) const = 0; + //! check if hard fork rules should be used + virtual bool useForkRules(uint8_t version, int64_t early_blocks) const = 0; + /*! + * \brief integratedAddress - returns integrated address for current wallet address and given payment_id. + * if passed "payment_id" param is an empty string or not-valid payment id string + * (16 characters hexadecimal string) - random payment_id will be generated + * + * \param payment_id - 16 characters hexadecimal string or empty string if new random payment id needs to be + * generated + * \return - 106 characters string representing integrated address + */ + virtual std::string integratedAddress(const std::string &payment_id) const = 0; + + /*! + * \brief secretViewKey - returns secret view key + * \return - secret view key + */ + virtual std::string secretViewKey() const = 0; + + /*! + * \brief publicViewKey - returns public view key + * \return - public view key + */ + virtual std::string publicViewKey() const = 0; + + /*! + * \brief secretSpendKey - returns secret spend key + * \return - secret spend key + */ + virtual std::string secretSpendKey() const = 0; + + /*! + * \brief publicSpendKey - returns public spend key + * \return - public spend key + */ + virtual std::string publicSpendKey() const = 0; + + /*! + * \brief publicMultisigSignerKey - returns public signer key + * \return - public multisignature signer key or empty string if wallet is not multisig + */ + virtual std::string publicMultisigSignerKey() const = 0; + + /*! + * \brief store - stores wallet to file. + * \param path - main filename to store wallet to. additionally stores address file and keys file. + * to store to the same file - just pass empty string; + * \return + */ + virtual bool store(const std::string &path) = 0; + /*! + * \brief filename - returns wallet filename + * \return + */ + virtual std::string filename() const = 0; + /*! + * \brief keysFilename - returns keys filename. usually this formed as "wallet_filename".keys + * \return + */ + virtual std::string keysFilename() const = 0; + /*! + * \brief init - initializes wallet with daemon connection params. + * if daemon_address is local address, "trusted daemon" will be set to true forcibly + * startRefresh() should be called when wallet is initialized. + * + * \param daemon_address - daemon address in "hostname:port" format + * \param upper_transaction_size_limit + * \param daemon_username + * \param daemon_password + * \param lightWallet - start wallet in light mode, connect to a openmonero compatible server. + * \return - true on success + */ + virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit = 0, const std::string &daemon_username = "", const std::string &daemon_password = "", bool use_ssl = false, bool lightWallet = false) = 0; + + /*! + * \brief createWatchOnly - Creates a watch only wallet + * \param path - where to store the wallet + * \param password + * \param language + * \return - true if created successfully + */ + virtual bool createWatchOnly(const std::string &path, const std::string &password, const std::string &language) const = 0; + + /*! + * \brief setRefreshFromBlockHeight - start refresh from block height on recover + * + * \param refresh_from_block_height - blockchain start height + */ + virtual void setRefreshFromBlockHeight(uint64_t refresh_from_block_height) = 0; + + /*! + * \brief getRestoreHeight - get wallet creation height + * + */ + virtual uint64_t getRefreshFromBlockHeight() const = 0; + + /*! + * \brief setRecoveringFromSeed - set state recover form seed + * + * \param recoveringFromSeed - true/false + */ + virtual void setRecoveringFromSeed(bool recoveringFromSeed) = 0; + + /*! + * \brief setRecoveringFromDevice - set state to recovering from device + * + * \param recoveringFromDevice - true/false + */ + virtual void setRecoveringFromDevice(bool recoveringFromDevice) = 0; + + /*! + * \brief setSubaddressLookahead - set size of subaddress lookahead + * + * \param major - size fot the major index + * \param minor - size fot the minor index + */ + virtual void setSubaddressLookahead(uint32_t major, uint32_t minor) = 0; + + /** + * @brief connectToDaemon - connects to the daemon. TODO: check if it can be removed + * @return + */ + virtual bool connectToDaemon() = 0; + + /** + * @brief connected - checks if the wallet connected to the daemon + * @return - true if connected + */ + virtual ConnectionStatus connected() const = 0; + virtual void setTrustedDaemon(bool arg) = 0; + virtual bool trustedDaemon() const = 0; + virtual std::map> balance(uint32_t accountIndex = 0) const = 0; + virtual uint64_t balance(std::string asset_type, uint32_t accountIndex) const = 0; + virtual std::map balanceAll() const = 0; + virtual std::map> unlockedBalance(uint32_t accountIndex = 0) const = 0; + virtual uint64_t unlockedBalance(std::string asset_type, uint32_t accountIndex) const = 0; + virtual std::map unlockedBalanceAll() const = 0; + virtual std::map oracleRates() const = 0; + + /** + * @brief watchOnly - checks if wallet is watch only + * @return - true if watch only + */ + virtual bool watchOnly() const = 0; + + /** + * @brief blockChainHeight - returns current blockchain height + * @return + */ + virtual uint64_t blockChainHeight() const = 0; + + /** + * @brief approximateBlockChainHeight - returns approximate blockchain height calculated from date/time + * @return + */ + virtual uint64_t approximateBlockChainHeight() const = 0; + + /** + * @brief estimateBlockChainHeight - returns estimate blockchain height. More accurate than approximateBlockChainHeight, + * uses daemon height and falls back to calculation from date/time + * @return + **/ + virtual uint64_t estimateBlockChainHeight() const = 0; + /** + * @brief daemonBlockChainHeight - returns daemon blockchain height + * @return 0 - in case error communicating with the daemon. + * status() will return Status_Error and errorString() will return verbose error description + */ + virtual uint64_t daemonBlockChainHeight() const = 0; + + /** + * @brief daemonBlockChainTargetHeight - returns daemon blockchain target height + * @return 0 - in case error communicating with the daemon. + * status() will return Status_Error and errorString() will return verbose error description + */ + virtual uint64_t daemonBlockChainTargetHeight() const = 0; + + /** + * @brief synchronized - checks if wallet was ever synchronized + * @return + */ + virtual bool synchronized() const = 0; + + static std::string displayAmount(uint64_t amount); + static uint64_t amountFromString(const std::string &amount); + static uint64_t amountFromDouble(double amount); + static std::string genPaymentId(); + static bool paymentIdValid(const std::string &paiment_id); + static bool addressValid(const std::string &str, NetworkType nettype); + static bool addressValid(const std::string &str, bool testnet) // deprecated + { + return addressValid(str, testnet ? TESTNET : MAINNET); + } + static bool keyValid(const std::string &secret_key_string, const std::string &address_string, bool isViewKey, NetworkType nettype, std::string &error); + static bool keyValid(const std::string &secret_key_string, const std::string &address_string, bool isViewKey, bool testnet, std::string &error) // deprecated + { + return keyValid(secret_key_string, address_string, isViewKey, testnet ? TESTNET : MAINNET, error); + } + static std::string paymentIdFromAddress(const std::string &str, NetworkType nettype); + static std::string paymentIdFromAddress(const std::string &str, bool testnet) // deprecated + { + return paymentIdFromAddress(str, testnet ? TESTNET : MAINNET); + } + static uint64_t maximumAllowedAmount(); + // Easylogger wrapper + static void init(const char *argv0, const char *default_log_base_name) { init(argv0, default_log_base_name, "", true); } + static void init(const char *argv0, const char *default_log_base_name, const std::string &log_path, bool console); + static void debug(const std::string &category, const std::string &str); + static void info(const std::string &category, const std::string &str); + static void warning(const std::string &category, const std::string &str); + static void error(const std::string &category, const std::string &str); + + /** + * @brief StartRefresh - Start/resume refresh thread (refresh every 10 seconds) + */ + virtual void startRefresh() = 0; + /** + * @brief pauseRefresh - pause refresh thread + */ + virtual void pauseRefresh() = 0; + + /** + * @brief refresh - refreshes the wallet, updating transactions from daemon + * @return - true if refreshed successfully; + */ + virtual bool refresh() = 0; + + /** + * @brief refreshAsync - refreshes wallet asynchronously. + */ + virtual void refreshAsync() = 0; + + /** + * @brief rescanBlockchain - rescans the wallet, updating transactions from daemon + * @return - true if refreshed successfully; + */ + virtual bool rescanBlockchain() = 0; + + /** + * @brief rescanBlockchainAsync - rescans wallet asynchronously, starting from genesys + */ + virtual void rescanBlockchainAsync() = 0; + + /** + * @brief setAutoRefreshInterval - setup interval for automatic refresh. + * @param seconds - interval in millis. if zero or less than zero - automatic refresh disabled; + */ + virtual void setAutoRefreshInterval(int millis) = 0; + + /** + * @brief autoRefreshInterval - returns automatic refresh interval in millis + * @return + */ + virtual int autoRefreshInterval() const = 0; + + /** + * @brief addSubaddressAccount - appends a new subaddress account at the end of the last major index of existing subaddress accounts + * @param label - the label for the new account (which is the as the label of the primary address (accountIndex,0)) + */ + virtual void addSubaddressAccount(const std::string& label) = 0; + /** + * @brief numSubaddressAccounts - returns the number of existing subaddress accounts + */ + virtual size_t numSubaddressAccounts() const = 0; + /** + * @brief numSubaddresses - returns the number of existing subaddresses associated with the specified subaddress account + * @param accountIndex - the major index specifying the subaddress account + */ + virtual size_t numSubaddresses(uint32_t accountIndex) const = 0; + /** + * @brief addSubaddress - appends a new subaddress at the end of the last minor index of the specified subaddress account + * @param accountIndex - the major index specifying the subaddress account + * @param label - the label for the new subaddress + */ + virtual void addSubaddress(uint32_t accountIndex, const std::string& label) = 0; + /** + * @brief getSubaddressLabel - gets the label of the specified subaddress + * @param accountIndex - the major index specifying the subaddress account + * @param addressIndex - the minor index specifying the subaddress + */ + virtual std::string getSubaddressLabel(uint32_t accountIndex, uint32_t addressIndex) const = 0; + /** + * @brief setSubaddressLabel - sets the label of the specified subaddress + * @param accountIndex - the major index specifying the subaddress account + * @param addressIndex - the minor index specifying the subaddress + * @param label - the new label for the specified subaddress + */ + virtual void setSubaddressLabel(uint32_t accountIndex, uint32_t addressIndex, const std::string &label) = 0; + + /** + * @brief multisig - returns current state of multisig wallet creation process + * @return MultisigState struct + */ + virtual MultisigState multisig() const = 0; + /** + * @brief getMultisigInfo + * @return serialized and signed multisig info string + */ + virtual std::string getMultisigInfo() const = 0; + /** + * @brief makeMultisig - switches wallet in multisig state. The one and only creation phase for N / N wallets + * @param info - vector of multisig infos from other participants obtained with getMulitisInfo call + * @param threshold - number of required signers to make valid transaction. Must be equal to number of participants (N) or N - 1 + * @return in case of N / N wallets returns empty string since no more key exchanges needed. For N - 1 / N wallets returns base58 encoded extra multisig info + */ + virtual std::string makeMultisig(const std::vector& info, uint32_t threshold) = 0; + /** + * @brief exchange_multisig_keys - provides additional key exchange round for arbitrary multisig schemes (like N-1/N, M/N) + * @param info - base58 encoded key derivations returned by makeMultisig or exchangeMultisigKeys function call + * @return new info string if more rounds required or an empty string if wallet creation is done + */ + virtual std::string exchangeMultisigKeys(const std::vector &info) = 0; + /** + * @brief finalizeMultisig - finalizes N - 1 / N multisig wallets creation + * @param extraMultisigInfo - wallet participants' extra multisig info obtained with makeMultisig call + * @return true if success + */ + virtual bool finalizeMultisig(const std::vector& extraMultisigInfo) = 0; + /** + * @brief exportMultisigImages - exports transfers' key images + * @param images - output paramter for hex encoded array of images + * @return true if success + */ + virtual bool exportMultisigImages(std::string& images) = 0; + /** + * @brief importMultisigImages - imports other participants' multisig images + * @param images - array of hex encoded arrays of images obtained with exportMultisigImages + * @return number of imported images + */ + virtual size_t importMultisigImages(const std::vector& images) = 0; + /** + * @brief hasMultisigPartialKeyImages - checks if wallet needs to import multisig key images from other participants + * @return true if there are partial key images + */ + virtual bool hasMultisigPartialKeyImages() const = 0; + + /** + * @brief restoreMultisigTransaction creates PendingTransaction from signData + * @param signData encrypted unsigned transaction. Obtained with PendingTransaction::multisigSignData + * @return PendingTransaction + */ + virtual PendingTransaction* restoreMultisigTransaction(const std::string& signData) = 0; + + /*! + * \brief createTransactionMultDest creates transaction with multiple destinations. if dst_addr is an integrated address, payment_id is ignored + * \param dst_addr vector of destination address as string + * \param payment_id optional payment_id, can be empty string + * \param amount vector of amounts + * \param mixin_count mixin count. if 0 passed, wallet will use default value + * \param subaddr_account subaddress account from which the input funds are taken + * \param subaddr_indices set of subaddress indices to use for transfer or sweeping. if set empty, all are chosen when sweeping, and one or more are automatically chosen when transferring. after execution, returns the set of actually used indices + * \param priority + * \return PendingTransaction object. caller is responsible to check PendingTransaction::status() + * after object returned + */ + + virtual PendingTransaction * createTransactionMultDest(const std::vector &dst_addr, const std::string &payment_id, + optional> amount, + const std::string &str_source, const std::string &str_dest, + uint32_t mixin_count, + PendingTransaction::Priority = PendingTransaction::Priority_Low, + uint32_t subaddr_account = 0, + std::set subaddr_indices = {}) = 0; + + /*! + * \brief createTransaction creates transaction. if dst_addr is an integrated address, payment_id is ignored + * \param dst_addr destination address as string + * \param payment_id optional payment_id, can be empty string + * \param amount amount + * \param mixin_count mixin count. if 0 passed, wallet will use default value + * \param subaddr_account subaddress account from which the input funds are taken + * \param subaddr_indices set of subaddress indices to use for transfer or sweeping. if set empty, all are chosen when sweeping, and one or more are automatically chosen when transferring. after execution, returns the set of actually used indices + * \param priority + * \return PendingTransaction object. caller is responsible to check PendingTransaction::status() + * after object returned + */ + + virtual PendingTransaction * createTransaction(const std::string &dst_addr, const std::string &payment_id, + optional amount, + const std::string &str_source, const std::string &str_dest, + uint32_t mixin_count, + PendingTransaction::Priority = PendingTransaction::Priority_Low, + uint32_t subaddr_account = 0, + std::set subaddr_indices = {}) = 0; + + /*! + * \brief createSweepUnmixableTransaction creates transaction with unmixable outputs. + * \return PendingTransaction object. caller is responsible to check PendingTransaction::status() + * after object returned + */ + + virtual PendingTransaction * createSweepUnmixableTransaction() = 0; + + /*! + * \brief loadUnsignedTx - creates transaction from unsigned tx file + * \return - UnsignedTransaction object. caller is responsible to check UnsignedTransaction::status() + * after object returned + */ + virtual UnsignedTransaction * loadUnsignedTx(const std::string &unsigned_filename) = 0; + + /*! + * \brief submitTransaction - submits transaction in signed tx file + * \return - true on success + */ + virtual bool submitTransaction(const std::string &fileName) = 0; + + + /*! + * \brief disposeTransaction - destroys transaction object + * \param t - pointer to the "PendingTransaction" object. Pointer is not valid after function returned; + */ + virtual void disposeTransaction(PendingTransaction * t) = 0; + + /*! + * \brief Estimates transaction fee. + * \param destinations Vector consisting of pairs. + * \return Estimated fee. + */ + virtual uint64_t estimateTransactionFee(const std::vector> &destinations, + PendingTransaction::Priority priority) const = 0; + + /*! + * \brief exportKeyImages - exports key images to file + * \param filename + * \return - true on success + */ + virtual bool exportKeyImages(const std::string &filename) = 0; + + /*! + * \brief importKeyImages - imports key images from file + * \param filename + * \return - true on success + */ + virtual bool importKeyImages(const std::string &filename) = 0; + + + virtual TransactionHistory * history() = 0; + virtual AddressBook * addressBook() = 0; + virtual Subaddress * subaddress() = 0; + virtual SubaddressAccount * subaddressAccount() = 0; + virtual void setListener(WalletListener *) = 0; + /*! + * \brief defaultMixin - returns number of mixins used in transactions + * \return + */ + virtual uint32_t defaultMixin() const = 0; + /*! + * \brief setDefaultMixin - setum number of mixins to be used for new transactions + * \param arg + */ + virtual void setDefaultMixin(uint32_t arg) = 0; + + /*! + * \brief setCacheAttribute - attach an arbitrary string to a wallet cache attribute + * \param key - the key + * \param val - the value + * \return true if successful, false otherwise + */ + virtual bool setCacheAttribute(const std::string &key, const std::string &val) = 0; + /*! + * \brief getCacheAttribute - return an arbitrary string attached to a wallet cache attribute + * \param key - the key + * \return the attached string, or empty string if there is none + */ + virtual std::string getCacheAttribute(const std::string &key) const = 0; + /*! + * \brief setUserNote - attach an arbitrary string note to a txid + * \param txid - the transaction id to attach the note to + * \param note - the note + * \return true if successful, false otherwise + */ + virtual bool setUserNote(const std::string &txid, const std::string ¬e) = 0; + /*! + * \brief getUserNote - return an arbitrary string note attached to a txid + * \param txid - the transaction id to attach the note to + * \return the attached note, or empty string if there is none + */ + virtual std::string getUserNote(const std::string &txid) const = 0; + virtual std::string getTxKey(const std::string &txid) const = 0; + virtual bool checkTxKey(const std::string &txid, std::string tx_key, const std::string &address, std::map &received, bool &in_pool, uint64_t &confirmations) = 0; + virtual std::string getTxProof(const std::string &txid, const std::string &address, const std::string &message) const = 0; + virtual bool checkTxProof(const std::string &txid, const std::string &address, const std::string &message, const std::string &signature, bool &good, std::map &received, bool &in_pool, uint64_t &confirmations) = 0; + virtual std::string getSpendProof(const std::string &txid, const std::string &message) const = 0; + virtual bool checkSpendProof(const std::string &txid, const std::string &message, const std::string &signature, bool &good) const = 0; + /*! + * \brief getReserveProof - Generates a proof that proves the reserve of unspent funds + * Parameters `account_index` and `amount` are ignored when `all` is true + */ + virtual std::string getReserveProof(bool all, uint32_t account_index, uint64_t amount, const std::string &message) const = 0; + virtual bool checkReserveProof(const std::string &address, const std::string &message, const std::string &signature, bool &good, uint64_t &total, uint64_t &spent) const = 0; + + /* + * \brief signMessage - sign a message with the spend private key + * \param message - the message to sign (arbitrary byte data) + * \return the signature + */ + virtual std::string signMessage(const std::string &message) = 0; + /*! + * \brief verifySignedMessage - verify a signature matches a given message + * \param message - the message (arbitrary byte data) + * \param address - the address the signature claims to be made with + * \param signature - the signature + * \return true if the signature verified, false otherwise + */ + virtual bool verifySignedMessage(const std::string &message, const std::string &addres, const std::string &signature) const = 0; + + /*! + * \brief signMultisigParticipant signs given message with the multisig public signer key + * \param message message to sign + * \return signature in case of success. Sets status to Error and return empty string in case of error + */ + virtual std::string signMultisigParticipant(const std::string &message) const = 0; + /*! + * \brief verifyMessageWithPublicKey verifies that message was signed with the given public key + * \param message message + * \param publicKey hex encoded public key + * \param signature signature of the message + * \return true if the signature is correct. false and sets error state in case of error + */ + virtual bool verifyMessageWithPublicKey(const std::string &message, const std::string &publicKey, const std::string &signature) const = 0; + + virtual bool parse_uri(const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector &unknown_parameters, std::string &error) = 0; + + virtual std::string getDefaultDataDir() const = 0; + + /* + * \brief rescanSpent - Rescan spent outputs - Can only be used with trusted daemon + * \return true on success + */ + virtual bool rescanSpent() = 0; + + //! blackballs a set of outputs + virtual bool blackballOutputs(const std::vector &outputs, bool add) = 0; + + //! blackballs an output + virtual bool blackballOutput(const std::string &amount, const std::string &offset) = 0; + + //! unblackballs an output + virtual bool unblackballOutput(const std::string &amount, const std::string &offset) = 0; + + //! gets the ring used for a key image, if any + virtual bool getRing(const std::string &key_image, std::vector &ring) const = 0; + + //! gets the rings used for a txid, if any + virtual bool getRings(const std::string &txid, std::vector>> &rings) const = 0; + + //! sets the ring used for a key image + virtual bool setRing(const std::string &key_image, const std::vector &ring, bool relative) = 0; + + //! sets whether pre-fork outs are to be segregated + virtual void segregatePreForkOutputs(bool segregate) = 0; + + //! sets the height where segregation should occur + virtual void segregationHeight(uint64_t height) = 0; + + //! secondary key reuse mitigation + virtual void keyReuseMitigation2(bool mitigation) = 0; + + //! Light wallet authenticate and login + virtual bool lightWalletLogin(bool &isNewWallet) const = 0; + + //! Initiates a light wallet import wallet request + virtual bool lightWalletImportWalletRequest(std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status) = 0; + + //! locks/unlocks the keys file; returns true on success + virtual bool lockKeysFile() = 0; + virtual bool unlockKeysFile() = 0; + //! returns true if the keys file is locked + virtual bool isKeysFileLocked() = 0; + + /*! + * \brief Queries backing device for wallet keys + * \return Device they are on + */ + virtual Device getDeviceType() const = 0; + + //! cold-device protocol key image sync + virtual uint64_t coldKeyImageSync(uint64_t &spent, uint64_t &unspent) = 0; + + //! shows address on device display + virtual void deviceShowAddress(uint32_t accountIndex, uint32_t addressIndex, const std::string &paymentId) = 0; +}; + +/** + * @brief WalletManager - provides functions to manage wallets + */ +struct WalletManager +{ + + /*! + * \brief Creates new wallet + * \param path Name of wallet file + * \param password Password of wallet file + * \param language Language to be used to generate electrum seed mnemonic + * \param nettype Network type + * \param kdf_rounds Number of rounds for key derivation function + * \return Wallet instance (Wallet::status() needs to be called to check if created successfully) + */ + virtual Wallet * createWallet(const std::string &path, const std::string &password, const std::string &language, NetworkType nettype, uint64_t kdf_rounds = 1) = 0; + Wallet * createWallet(const std::string &path, const std::string &password, const std::string &language, bool testnet = false) // deprecated + { + return createWallet(path, password, language, testnet ? TESTNET : MAINNET); + } + + /*! + * \brief Opens existing wallet + * \param path Name of wallet file + * \param password Password of wallet file + * \param nettype Network type + * \param kdf_rounds Number of rounds for key derivation function + * \param listener Wallet listener to set to the wallet after creation + * \return Wallet instance (Wallet::status() needs to be called to check if opened successfully) + */ + virtual Wallet * openWallet(const std::string &path, const std::string &password, NetworkType nettype, uint64_t kdf_rounds = 1, WalletListener * listener = nullptr) = 0; + Wallet * openWallet(const std::string &path, const std::string &password, bool testnet = false) // deprecated + { + return openWallet(path, password, testnet ? TESTNET : MAINNET); + } + + /*! + * \brief recovers existing wallet using mnemonic (electrum seed) + * \param path Name of wallet file to be created + * \param password Password of wallet file + * \param mnemonic mnemonic (25 words electrum seed) + * \param nettype Network type + * \param restoreHeight restore from start height + * \param kdf_rounds Number of rounds for key derivation function + * \param seed_offset Seed offset passphrase (optional) + * \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully) + */ + virtual Wallet * recoveryWallet(const std::string &path, const std::string &password, const std::string &mnemonic, + NetworkType nettype = MAINNET, uint64_t restoreHeight = 0, uint64_t kdf_rounds = 1, + const std::string &seed_offset = {}) = 0; + Wallet * recoveryWallet(const std::string &path, const std::string &password, const std::string &mnemonic, + bool testnet = false, uint64_t restoreHeight = 0) // deprecated + { + return recoveryWallet(path, password, mnemonic, testnet ? TESTNET : MAINNET, restoreHeight); + } + + /*! + * \deprecated this method creates a wallet WITHOUT a passphrase, use the alternate recoverWallet() method + * \brief recovers existing wallet using mnemonic (electrum seed) + * \param path Name of wallet file to be created + * \param mnemonic mnemonic (25 words electrum seed) + * \param nettype Network type + * \param restoreHeight restore from start height + * \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully) + */ + virtual Wallet * recoveryWallet(const std::string &path, const std::string &mnemonic, NetworkType nettype, uint64_t restoreHeight = 0) = 0; + Wallet * recoveryWallet(const std::string &path, const std::string &mnemonic, bool testnet = false, uint64_t restoreHeight = 0) // deprecated + { + return recoveryWallet(path, mnemonic, testnet ? TESTNET : MAINNET, restoreHeight); + } + + /*! + * \brief recovers existing wallet using keys. Creates a view only wallet if spend key is omitted + * \param path Name of wallet file to be created + * \param password Password of wallet file + * \param language language + * \param nettype Network type + * \param restoreHeight restore from start height + * \param addressString public address + * \param viewKeyString view key + * \param spendKeyString spend key (optional) + * \param kdf_rounds Number of rounds for key derivation function + * \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully) + */ + virtual Wallet * createWalletFromKeys(const std::string &path, + const std::string &password, + const std::string &language, + NetworkType nettype, + uint64_t restoreHeight, + const std::string &addressString, + const std::string &viewKeyString, + const std::string &spendKeyString = "", + uint64_t kdf_rounds = 1) = 0; + Wallet * createWalletFromKeys(const std::string &path, + const std::string &password, + const std::string &language, + bool testnet, + uint64_t restoreHeight, + const std::string &addressString, + const std::string &viewKeyString, + const std::string &spendKeyString = "") // deprecated + { + return createWalletFromKeys(path, password, language, testnet ? TESTNET : MAINNET, restoreHeight, addressString, viewKeyString, spendKeyString); + } + + /*! + * \deprecated this method creates a wallet WITHOUT a passphrase, use createWalletFromKeys(..., password, ...) instead + * \brief recovers existing wallet using keys. Creates a view only wallet if spend key is omitted + * \param path Name of wallet file to be created + * \param language language + * \param nettype Network type + * \param restoreHeight restore from start height + * \param addressString public address + * \param viewKeyString view key + * \param spendKeyString spend key (optional) + * \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully) + */ + virtual Wallet * createWalletFromKeys(const std::string &path, + const std::string &language, + NetworkType nettype, + uint64_t restoreHeight, + const std::string &addressString, + const std::string &viewKeyString, + const std::string &spendKeyString = "") = 0; + Wallet * createWalletFromKeys(const std::string &path, + const std::string &language, + bool testnet, + uint64_t restoreHeight, + const std::string &addressString, + const std::string &viewKeyString, + const std::string &spendKeyString = "") // deprecated + { + return createWalletFromKeys(path, language, testnet ? TESTNET : MAINNET, restoreHeight, addressString, viewKeyString, spendKeyString); + } + + /*! + * \brief creates wallet using hardware device. + * \param path Name of wallet file to be created + * \param password Password of wallet file + * \param nettype Network type + * \param deviceName Device name + * \param restoreHeight restore from start height (0 sets to current height) + * \param subaddressLookahead Size of subaddress lookahead (empty sets to some default low value) + * \param kdf_rounds Number of rounds for key derivation function + * \param listener Wallet listener to set to the wallet after creation + * \return Wallet instance (Wallet::status() needs to be called to check if recovered successfully) + */ + virtual Wallet * createWalletFromDevice(const std::string &path, + const std::string &password, + NetworkType nettype, + const std::string &deviceName, + uint64_t restoreHeight = 0, + const std::string &subaddressLookahead = "", + uint64_t kdf_rounds = 1, + WalletListener * listener = nullptr) = 0; + + /*! + * \brief Closes wallet. In case operation succeeded, wallet object deleted. in case operation failed, wallet object not deleted + * \param wallet previously opened / created wallet instance + * \return None + */ + virtual bool closeWallet(Wallet *wallet, bool store = true) = 0; + + /* + * ! checks if wallet with the given name already exists + */ + + /*! + * @brief TODO: delme walletExists - check if the given filename is the wallet + * @param path - filename + * @return - true if wallet exists + */ + virtual bool walletExists(const std::string &path) = 0; + + /*! + * @brief verifyWalletPassword - check if the given filename is the wallet + * @param keys_file_name - location of keys file + * @param password - password to verify + * @param no_spend_key - verify only view keys? + * @param kdf_rounds - number of rounds for key derivation function + * @return - true if password is correct + * + * @note + * This function will fail when the wallet keys file is opened because the wallet program locks the keys file. + * In this case, Wallet::unlockKeysFile() and Wallet::lockKeysFile() need to be called before and after the call to this function, respectively. + */ + virtual bool verifyWalletPassword(const std::string &keys_file_name, const std::string &password, bool no_spend_key, uint64_t kdf_rounds = 1) const = 0; + + /*! + * \brief determine the key storage for the specified wallet file + * \param device_type (OUT) wallet backend as enumerated in Wallet::Device + * \param keys_file_name Keys file to verify password for + * \param password Password to verify + * \return true if password correct, else false + * + * for verification only - determines key storage hardware + * + */ + virtual bool queryWalletDevice(Wallet::Device& device_type, const std::string &keys_file_name, const std::string &password, uint64_t kdf_rounds = 1) const = 0; + + /*! + * \brief findWallets - searches for the wallet files by given path name recursively + * \param path - starting point to search + * \return - list of strings with found wallets (absolute paths); + */ + virtual std::vector findWallets(const std::string &path) = 0; + + //! returns verbose error string regarding last error; + virtual std::string errorString() const = 0; + + //! set the daemon address (hostname and port) + virtual void setDaemonAddress(const std::string &address) = 0; + + //! returns whether the daemon can be reached, and its version number + virtual bool connected(uint32_t *version = NULL) = 0; + + //! returns current blockchain height + virtual uint64_t blockchainHeight() = 0; + + //! returns current blockchain target height + virtual uint64_t blockchainTargetHeight() = 0; + + //! returns current network difficulty + virtual uint64_t networkDifficulty() = 0; + + //! returns current mining hash rate (0 if not mining) + virtual double miningHashRate() = 0; + + //! returns current block target + virtual uint64_t blockTarget() = 0; + + //! returns true iff mining + virtual bool isMining() = 0; + + //! starts mining with the set number of threads + virtual bool startMining(const std::string &address, uint32_t threads = 1, bool background_mining = false, bool ignore_battery = true) = 0; + + //! stops mining + virtual bool stopMining() = 0; + + //! resolves an OpenAlias address to a monero address + virtual std::string resolveOpenAlias(const std::string &address, bool &dnssec_valid) const = 0; + + //! checks for an update and returns version, hash and url + static std::tuple checkUpdates( + const std::string &software, + std::string subdir, + const char *buildtag = nullptr, + const char *current_version = nullptr); +}; + + +struct WalletManagerFactory +{ + // logging levels for underlying library + enum LogLevel { + LogLevel_Silent = -1, + LogLevel_0 = 0, + LogLevel_1 = 1, + LogLevel_2 = 2, + LogLevel_3 = 3, + LogLevel_4 = 4, + LogLevel_Min = LogLevel_Silent, + LogLevel_Max = LogLevel_4 + }; + + static WalletManager * getWalletManager(); + static void setLogLevel(int level); + static void setLogCategories(const std::string &categories); +}; + + +} + +namespace Bitmonero = Monero; + diff --git a/cw_zano/ios/cw_haven.podspec b/cw_zano/ios/cw_haven.podspec new file mode 100644 index 000000000..b95eef75d --- /dev/null +++ b/cw_zano/ios/cw_haven.podspec @@ -0,0 +1,50 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint cw_zano.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'cw_zano' + s.version = '0.0.1' + s.summary = 'Cake Wallet Zano' + s.description = 'Cake Wallet wrapper over Zano project' + s.homepage = 'http://cakewallet.com' + s.license = { :file => '../LICENSE' } + s.author = { 'Cake Wallet' => 'support@cakewallet.com' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.public_header_files = 'Classes/**/*.h, Classes/*.h, ../shared_external/ios/libs/monero/include/src/**/*.h, ../shared_external/ios/libs/monero/include/contrib/**/*.h, ../shared_external/ios/libs/monero/include/../shared_external/ios/**/*.h' + s.dependency 'Flutter' + s.dependency 'cw_shared_external' + s.platform = :ios, '10.0' + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'arm64', 'ENABLE_BITCODE' => 'NO' } + s.swift_version = '5.0' + s.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/Classes/*.h" } + + s.subspec 'OpenSSL' do |openssl| + openssl.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h' + openssl.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libcrypto.a', '../../../../../cw_shared_external/ios/External/ios/lib/libssl.a' + openssl.libraries = 'ssl', 'crypto' + openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } + end + + s.subspec 'Sodium' do |sodium| + sodium.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h' + sodium.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libsodium.a' + sodium.libraries = 'sodium' + sodium.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } + end + + s.subspec 'Boost' do |boost| + boost.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h', + boost.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libboost.a', + boost.libraries = 'boost' + boost.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } + end + + s.subspec 'Zano' do |zano| + zano.preserve_paths = 'External/ios/include/**/*.h' + zano.vendored_libraries = 'External/ios/lib/libzano.a' + zano.libraries = 'zano' + zano.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include" } + end +end diff --git a/cw_zano/lib/api/account_list.dart b/cw_zano/lib/api/account_list.dart new file mode 100644 index 000000000..90ef6809b --- /dev/null +++ b/cw_zano/lib/api/account_list.dart @@ -0,0 +1,85 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/structs/account_row.dart'; +import 'package:flutter/foundation.dart'; +import 'package:cw_zano/api/wallet.dart'; + +final accountSizeNative = zanoApi + .lookup>('account_size') + .asFunction(); + +final accountRefreshNative = zanoApi + .lookup>('account_refresh') + .asFunction(); + +final accountGetAllNative = zanoApi + .lookup>('account_get_all') + .asFunction(); + +final accountAddNewNative = zanoApi + .lookup>('account_add_row') + .asFunction(); + +final accountSetLabelNative = zanoApi + .lookup>('account_set_label_row') + .asFunction(); + +bool isUpdating = false; + +void refreshAccounts() { + try { + isUpdating = true; + accountRefreshNative(); + isUpdating = false; + } catch (e) { + isUpdating = false; + rethrow; + } +} + +List getAllAccount() { + final size = accountSizeNative(); + final accountAddressesPointer = accountGetAllNative(); + final accountAddresses = accountAddressesPointer.asTypedList(size); + + return accountAddresses + .map((addr) => Pointer.fromAddress(addr).ref) + .toList(); +} + +void addAccountSync({required String label}) { + final labelPointer = label.toNativeUtf8(); + accountAddNewNative(labelPointer); + calloc.free(labelPointer); +} + +void setLabelForAccountSync( + {required int accountIndex, required String label}) { + final labelPointer = label.toNativeUtf8(); + accountSetLabelNative(accountIndex, labelPointer); + calloc.free(labelPointer); +} + +void _addAccount(String label) => addAccountSync(label: label); + +void _setLabelForAccount(Map args) { + final label = args['label'] as String; + final accountIndex = args['accountIndex'] as int; + + setLabelForAccountSync(label: label, accountIndex: accountIndex); +} + +Future addAccount({required String label}) async { + await compute(_addAccount, label); + await store(); +} + +Future setLabelForAccount( + {required int accountIndex, required String label}) async { + await compute( + _setLabelForAccount, {'accountIndex': accountIndex, 'label': label}); + await store(); +} diff --git a/cw_zano/lib/api/asset_types.dart b/cw_zano/lib/api/asset_types.dart new file mode 100644 index 000000000..1ccfbec49 --- /dev/null +++ b/cw_zano/lib/api/asset_types.dart @@ -0,0 +1,23 @@ +import 'dart:ffi'; +import 'package:cw_zano/api/convert_utf8_to_string.dart'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:ffi/ffi.dart'; + +final assetTypesSizeNative = zanoApi + .lookup>('asset_types_size') + .asFunction(); + +final getAssetTypesNative = zanoApi + .lookup>('asset_types') + .asFunction(); + +List getAssetTypes() { + List assetTypes = []; + Pointer> assetTypePointers = getAssetTypesNative(); + Pointer assetpointer = assetTypePointers.elementAt(0)[0]; + String asset = convertUTF8ToString(pointer: assetpointer); + + return assetTypes; +} diff --git a/cw_zano/lib/api/balance_list.dart b/cw_zano/lib/api/balance_list.dart new file mode 100644 index 000000000..c391dc8ff --- /dev/null +++ b/cw_zano/lib/api/balance_list.dart @@ -0,0 +1,55 @@ +import 'dart:ffi'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/structs/zano_balance_row.dart'; +import 'package:cw_zano/api/structs/zano_rate.dart'; +import 'asset_types.dart'; + +List getZanoFullBalance({int accountIndex = 0}) { + final size = assetTypesSizeNative(); + final balanceAddressesPointer = getZanoFullBalanceNative(accountIndex); + final balanceAddresses = balanceAddressesPointer.asTypedList(size); + + return balanceAddresses + .map((addr) => Pointer.fromAddress(addr).ref) + .toList(); +} + +List getZanoUnlockedBalance({int accountIndex = 0}) { + final size = assetTypesSizeNative(); + final balanceAddressesPointer = getZanoUnlockedBalanceNative(accountIndex); + final balanceAddresses = balanceAddressesPointer.asTypedList(size); + + return balanceAddresses + .map((addr) => Pointer.fromAddress(addr).ref) + .toList(); +} + +List getRate() { + updateRateNative(); + final size = sizeOfRateNative(); + final ratePointer = getRateNative(); + final rate = ratePointer.asTypedList(size); + + return rate.map((addr) => Pointer.fromAddress(addr).ref).toList(); +} + +final getZanoFullBalanceNative = zanoApi + .lookup>('get_full_balance') + .asFunction(); + +final getZanoUnlockedBalanceNative = zanoApi + .lookup>('get_unlocked_balance') + .asFunction(); + +final getRateNative = + zanoApi.lookup>('get_rate').asFunction(); + +final sizeOfRateNative = zanoApi + .lookup>('size_of_rate') + .asFunction(); + +final updateRateNative = zanoApi + .lookup>('update_rate') + .asFunction(); diff --git a/cw_zano/lib/api/convert_utf8_to_string.dart b/cw_zano/lib/api/convert_utf8_to_string.dart new file mode 100644 index 000000000..41a6b648a --- /dev/null +++ b/cw_zano/lib/api/convert_utf8_to_string.dart @@ -0,0 +1,8 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +String convertUTF8ToString({required Pointer pointer}) { + final str = pointer.toDartString(); + calloc.free(pointer); + return str; +} \ No newline at end of file diff --git a/cw_zano/lib/api/cw_zano.dart b/cw_zano/lib/api/cw_zano.dart new file mode 100644 index 000000000..6ea49ef28 --- /dev/null +++ b/cw_zano/lib/api/cw_zano.dart @@ -0,0 +1,13 @@ +import 'dart:async'; + +import 'package:flutter/services.dart'; + +class CwZano { + static const MethodChannel _channel = const MethodChannel('cw_zano'); + + static Future get platformVersion async { + final String version = + await _channel.invokeMethod('getPlatformVersion') ?? ''; + return version; + } +} diff --git a/cw_zano/lib/api/exceptions/connection_to_node_exception.dart b/cw_zano/lib/api/exceptions/connection_to_node_exception.dart new file mode 100644 index 000000000..483b0a174 --- /dev/null +++ b/cw_zano/lib/api/exceptions/connection_to_node_exception.dart @@ -0,0 +1,5 @@ +class ConnectionToNodeException implements Exception { + ConnectionToNodeException({required this.message}); + + final String message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/creation_transaction_exception.dart b/cw_zano/lib/api/exceptions/creation_transaction_exception.dart new file mode 100644 index 000000000..7b55ec074 --- /dev/null +++ b/cw_zano/lib/api/exceptions/creation_transaction_exception.dart @@ -0,0 +1,8 @@ +class CreationTransactionException implements Exception { + CreationTransactionException({required this.message}); + + final String message; + + @override + String toString() => message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/setup_wallet_exception.dart b/cw_zano/lib/api/exceptions/setup_wallet_exception.dart new file mode 100644 index 000000000..b6e0c1f18 --- /dev/null +++ b/cw_zano/lib/api/exceptions/setup_wallet_exception.dart @@ -0,0 +1,5 @@ +class SetupWalletException implements Exception { + SetupWalletException({required this.message}); + + final String message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_creation_exception.dart b/cw_zano/lib/api/exceptions/wallet_creation_exception.dart new file mode 100644 index 000000000..6052366b9 --- /dev/null +++ b/cw_zano/lib/api/exceptions/wallet_creation_exception.dart @@ -0,0 +1,8 @@ +class WalletCreationException implements Exception { + WalletCreationException({required this.message}); + + final String message; + + @override + String toString() => message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_opening_exception.dart b/cw_zano/lib/api/exceptions/wallet_opening_exception.dart new file mode 100644 index 000000000..df7a850a4 --- /dev/null +++ b/cw_zano/lib/api/exceptions/wallet_opening_exception.dart @@ -0,0 +1,8 @@ +class WalletOpeningException implements Exception { + WalletOpeningException({required this.message}); + + final String message; + + @override + String toString() => message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart b/cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart new file mode 100644 index 000000000..c6b6c6ef7 --- /dev/null +++ b/cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart @@ -0,0 +1,5 @@ +class WalletRestoreFromKeysException implements Exception { + WalletRestoreFromKeysException({required this.message}); + + final String message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart b/cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart new file mode 100644 index 000000000..004cd7958 --- /dev/null +++ b/cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart @@ -0,0 +1,5 @@ +class WalletRestoreFromSeedException implements Exception { + WalletRestoreFromSeedException({required this.message}); + + final String message; +} \ No newline at end of file diff --git a/cw_zano/lib/api/monero_output.dart b/cw_zano/lib/api/monero_output.dart new file mode 100644 index 000000000..a6d735bd3 --- /dev/null +++ b/cw_zano/lib/api/monero_output.dart @@ -0,0 +1,8 @@ +import 'package:flutter/foundation.dart'; + +class MoneroOutput { + MoneroOutput({required this.address, required this.amount}); + + final String address; + final String amount; +} \ No newline at end of file diff --git a/cw_zano/lib/api/signatures.dart b/cw_zano/lib/api/signatures.dart new file mode 100644 index 000000000..8ebf42e6f --- /dev/null +++ b/cw_zano/lib/api/signatures.dart @@ -0,0 +1,154 @@ +import 'dart:ffi'; +import 'package:cw_zano/api/structs/pending_transaction.dart'; +import 'package:cw_zano/api/structs/ut8_box.dart'; +import 'package:ffi/ffi.dart'; + +typedef create_wallet = Int8 Function( + Pointer, Pointer, Pointer, Int32, Pointer); + +typedef restore_wallet_from_seed = Int8 Function( + Pointer, Pointer, Pointer, Int32, Int64, Pointer); + +typedef restore_wallet_from_keys = Int8 Function( + Pointer, + Pointer, + Pointer, + Pointer, + Pointer, + Pointer, + Int32, + Int64, + Pointer); + +typedef is_wallet_exist = Int8 Function(Pointer); + +typedef load_wallet = Int8 Function(Pointer, Pointer, Int8); + +typedef error_string = Pointer Function(); + +typedef get_filename = Pointer Function(); + +typedef get_seed = Pointer Function(); + +typedef get_address = Pointer Function(Int32, Int32); + +typedef get_full_balance = Pointer Function(Int32); + +typedef get_unlocked_balance = Pointer Function(Int32); + +typedef get_full_balanace = Int64 Function(Int32); + +typedef get_unlocked_balanace = Int64 Function(Int32); + +typedef get_current_height = Int64 Function(); + +typedef get_node_height = Int64 Function(); + +typedef is_connected = Int8 Function(); + +typedef setup_node = Int8 Function(Pointer, Pointer?, + Pointer?, Int8, Int8, Pointer?, Pointer); + +typedef start_refresh = Void Function(); + +typedef connect_to_node = Int8 Function(); + +typedef set_refresh_from_block_height = Void Function(Int64); + +typedef set_recovering_from_seed = Void Function(Int8); + +typedef store_c = Void Function(Pointer); + +typedef set_password = Int8 Function( + Pointer password, Pointer error); + +typedef set_listener = Void Function(); + +typedef get_syncing_height = Int64 Function(); + +typedef is_needed_to_refresh = Int8 Function(); + +typedef is_new_transaction_exist = Int8 Function(); + +typedef subaddrress_size = Int32 Function(); + +typedef subaddrress_refresh = Void Function(Int32); + +typedef subaddress_get_all = Pointer Function(); + +typedef subaddress_add_new = Void Function( + Int32 accountIndex, Pointer label); + +typedef subaddress_set_label = Void Function( + Int32 accountIndex, Int32 addressIndex, Pointer label); + +typedef account_size = Int32 Function(); + +typedef account_refresh = Void Function(); + +typedef account_get_all = Pointer Function(); + +typedef account_add_new = Void Function(Pointer label); + +typedef account_set_label = Void Function( + Int32 accountIndex, Pointer label); + +typedef transactions_refresh = Void Function(); + +typedef get_tx_key = Pointer? Function(Pointer txId); + +typedef transactions_count = Int64 Function(); + +typedef transactions_get_all = Pointer Function(); + +typedef transaction_create = Int8 Function( + Pointer address, + Pointer assetType, + Pointer paymentId, + Pointer amount, + Int8 priorityRaw, + Int32 subaddrAccount, + Pointer error, + Pointer pendingTransaction); + +typedef transaction_create_mult_dest = Int8 Function( + Pointer> addresses, + Pointer assetType, + Pointer paymentId, + Pointer> amounts, + Int32 size, + Int8 priorityRaw, + Int32 subaddrAccount, + Pointer error, + Pointer pendingTransaction); + +typedef transaction_commit = Int8 Function( + Pointer, Pointer); + +typedef secret_view_key = Pointer Function(); + +typedef public_view_key = Pointer Function(); + +typedef secret_spend_key = Pointer Function(); + +typedef public_spend_key = Pointer Function(); + +typedef close_current_wallet = Void Function(); + +typedef on_startup = Void Function(); + +typedef rescan_blockchain = Void Function(); + +typedef asset_types = Pointer> Function(); + +typedef asset_types_size = Int32 Function(); + +typedef get_rate = Pointer Function(); + +typedef size_of_rate = Int32 Function(); + +typedef update_rate = Void Function(); + +typedef set_trusted_daemon = Void Function(Int8 trusted); + +typedef trusted_daemon = Int8 Function(); diff --git a/cw_zano/lib/api/structs/account_row.dart b/cw_zano/lib/api/structs/account_row.dart new file mode 100644 index 000000000..aa492ee0f --- /dev/null +++ b/cw_zano/lib/api/structs/account_row.dart @@ -0,0 +1,12 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class AccountRow extends Struct { + @Int64() + external int id; + + external Pointer label; + + String getLabel() => label.toDartString(); + int getId() => id; +} diff --git a/cw_zano/lib/api/structs/pending_transaction.dart b/cw_zano/lib/api/structs/pending_transaction.dart new file mode 100644 index 000000000..12e5233f1 --- /dev/null +++ b/cw_zano/lib/api/structs/pending_transaction.dart @@ -0,0 +1,27 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class PendingTransactionRaw extends Struct { + @Int64() + external int amount; + + @Int64() + external int fee; + + external Pointer hash; + + String getHash() => hash.toDartString(); +} + +class PendingTransactionDescription { + PendingTransactionDescription({ + required this.amount, + required this.fee, + required this.hash, + required this.pointerAddress}); + + final int amount; + final int fee; + final String hash; + final int pointerAddress; +} \ No newline at end of file diff --git a/cw_zano/lib/api/structs/subaddress_row.dart b/cw_zano/lib/api/structs/subaddress_row.dart new file mode 100644 index 000000000..d593a793d --- /dev/null +++ b/cw_zano/lib/api/structs/subaddress_row.dart @@ -0,0 +1,15 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class SubaddressRow extends Struct { + @Int64() + external int id; + + external Pointer address; + + external Pointer label; + + String getLabel() => label.toDartString(); + String getAddress() => address.toDartString(); + int getId() => id; +} \ No newline at end of file diff --git a/cw_zano/lib/api/structs/transaction_info_row.dart b/cw_zano/lib/api/structs/transaction_info_row.dart new file mode 100644 index 000000000..177cdfde7 --- /dev/null +++ b/cw_zano/lib/api/structs/transaction_info_row.dart @@ -0,0 +1,44 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class TransactionInfoRow extends Struct { + @Uint64() + external int amount; + + @Uint64() + external int fee; + + @Uint64() + external int blockHeight; + + @Uint64() + external int confirmations; + + @Uint32() + external int subaddrAccount; + + @Int8() + external int direction; + + @Int8() + external int isPending; + + @Uint32() + external int subaddrIndex; + + external Pointer hash; + + external Pointer paymentId; + + external Pointer assetType; + + @Int64() + external int datetime; + + int getDatetime() => datetime; + int getAmount() => amount >= 0 ? amount : amount * -1; + bool getIsPending() => isPending != 0; + String getHash() => hash.toDartString(); + String getPaymentId() => paymentId.toDartString(); + String getAssetType() => assetType.toDartString(); +} diff --git a/cw_zano/lib/api/structs/ut8_box.dart b/cw_zano/lib/api/structs/ut8_box.dart new file mode 100644 index 000000000..53e678c88 --- /dev/null +++ b/cw_zano/lib/api/structs/ut8_box.dart @@ -0,0 +1,8 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class Utf8Box extends Struct { + external Pointer value; + + String getValue() => value.toDartString(); +} diff --git a/cw_zano/lib/api/structs/zano_balance_row.dart b/cw_zano/lib/api/structs/zano_balance_row.dart new file mode 100644 index 000000000..ca7658ba1 --- /dev/null +++ b/cw_zano/lib/api/structs/zano_balance_row.dart @@ -0,0 +1,12 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class ZanoBalanceRow extends Struct { + @Int64() + external int amount; + + external Pointer assetType; + + int getAmount() => amount; + String getAssetType() => assetType.toDartString(); +} diff --git a/cw_zano/lib/api/structs/zano_rate.dart b/cw_zano/lib/api/structs/zano_rate.dart new file mode 100644 index 000000000..baff78727 --- /dev/null +++ b/cw_zano/lib/api/structs/zano_rate.dart @@ -0,0 +1,12 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; + +class ZanoRate extends Struct { + @Int64() + external int rate; + + external Pointer assetType; + + int getRate() => rate; + String getAssetType() => assetType.toDartString(); +} diff --git a/cw_zano/lib/api/subaddress_list.dart b/cw_zano/lib/api/subaddress_list.dart new file mode 100644 index 000000000..31fd5e2bf --- /dev/null +++ b/cw_zano/lib/api/subaddress_list.dart @@ -0,0 +1,101 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; +import 'package:flutter/foundation.dart'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/structs/subaddress_row.dart'; +import 'package:cw_zano/api/wallet.dart'; + +final subaddressSizeNative = zanoApi + .lookup>('subaddrress_size') + .asFunction(); + +final subaddressRefreshNative = zanoApi + .lookup>('subaddress_refresh') + .asFunction(); + +final subaddrressGetAllNative = zanoApi + .lookup>('subaddrress_get_all') + .asFunction(); + +final subaddrressAddNewNative = zanoApi + .lookup>('subaddress_add_row') + .asFunction(); + +final subaddrressSetLabelNative = zanoApi + .lookup>('subaddress_set_label') + .asFunction(); + +bool isUpdating = false; + +void refreshSubaddresses({required int accountIndex}) { + try { + isUpdating = true; + subaddressRefreshNative(accountIndex); + isUpdating = false; + } catch (e) { + isUpdating = false; + rethrow; + } +} + +List getAllSubaddresses() { + final size = subaddressSizeNative(); + final subaddressAddressesPointer = subaddrressGetAllNative(); + final subaddressAddresses = subaddressAddressesPointer.asTypedList(size); + + return subaddressAddresses + .map((addr) => Pointer.fromAddress(addr).ref) + .toList(); +} + +void addSubaddressSync({required int accountIndex, required String label}) { + final labelPointer = label.toNativeUtf8(); + subaddrressAddNewNative(accountIndex, labelPointer); + calloc.free(labelPointer); +} + +void setLabelForSubaddressSync( + {required int accountIndex, + required int addressIndex, + required String label}) { + final labelPointer = label.toNativeUtf8(); + + subaddrressSetLabelNative(accountIndex, addressIndex, labelPointer); + calloc.free(labelPointer); +} + +void _addSubaddress(Map args) { + final label = args['label'] as String; + final accountIndex = args['accountIndex'] as int; + + addSubaddressSync(accountIndex: accountIndex, label: label); +} + +void _setLabelForSubaddress(Map args) { + final label = args['label'] as String; + final accountIndex = args['accountIndex'] as int; + final addressIndex = args['addressIndex'] as int; + + setLabelForSubaddressSync( + accountIndex: accountIndex, addressIndex: addressIndex, label: label); +} + +Future addSubaddress({required int accountIndex, required String label}) async { + await compute, void>( + _addSubaddress, {'accountIndex': accountIndex, 'label': label}); + await store(); +} + +Future setLabelForSubaddress( + {required int accountIndex, + required int addressIndex, + required String label}) async { + await compute, void>(_setLabelForSubaddress, { + 'accountIndex': accountIndex, + 'addressIndex': addressIndex, + 'label': label + }); + await store(); +} diff --git a/cw_zano/lib/api/transaction_history.dart b/cw_zano/lib/api/transaction_history.dart new file mode 100644 index 000000000..35fa9472a --- /dev/null +++ b/cw_zano/lib/api/transaction_history.dart @@ -0,0 +1,250 @@ +import 'dart:ffi'; +import 'package:cw_zano/api/convert_utf8_to_string.dart'; +import 'package:cw_zano/api/monero_output.dart'; +import 'package:cw_zano/api/structs/ut8_box.dart'; +import 'package:ffi/ffi.dart'; +import 'package:flutter/foundation.dart'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/structs/transaction_info_row.dart'; +import 'package:cw_zano/api/structs/pending_transaction.dart'; +import 'package:cw_zano/api/exceptions/creation_transaction_exception.dart'; + +final transactionsRefreshNative = zanoApi + .lookup>('transactions_refresh') + .asFunction(); + +final transactionsCountNative = zanoApi + .lookup>('transactions_count') + .asFunction(); + +final transactionsGetAllNative = zanoApi + .lookup>('transactions_get_all') + .asFunction(); + +final transactionCreateNative = zanoApi + .lookup>('transaction_create') + .asFunction(); + +final transactionCreateMultDestNative = zanoApi + .lookup>( + 'transaction_create_mult_dest') + .asFunction(); + +final transactionCommitNative = zanoApi + .lookup>('transaction_commit') + .asFunction(); + +final getTxKeyNative = zanoApi + .lookup>('get_tx_key') + .asFunction(); + +String getTxKey(String txId) { + final txIdPointer = txId.toNativeUtf8(); + final keyPointer = getTxKeyNative(txIdPointer); + + calloc.free(txIdPointer); + + if (keyPointer != null) { + return convertUTF8ToString(pointer: keyPointer); + } + + return ''; +} + +void refreshTransactions() => transactionsRefreshNative(); + +int countOfTransactions() => transactionsCountNative(); + +List getAllTransations() { + final size = transactionsCountNative(); + final transactionsPointer = transactionsGetAllNative(); + final transactionsAddresses = transactionsPointer.asTypedList(size); + + return transactionsAddresses + .map((addr) => Pointer.fromAddress(addr).ref) + .toList(); +} + +PendingTransactionDescription createTransactionSync( + {required String address, + required String assetType, + required String paymentId, + required int priorityRaw, + String? amount, + int accountIndex = 0}) { + final addressPointer = address.toNativeUtf8(); + final assetTypePointer = assetType.toNativeUtf8(); + final paymentIdPointer = paymentId.toNativeUtf8(); + final amountPointer = amount != null ? amount.toNativeUtf8() : nullptr; + final errorMessagePointer = calloc(); + final pendingTransactionRawPointer = calloc(); + final created = transactionCreateNative( + addressPointer, + assetTypePointer, + paymentIdPointer, + amountPointer, + priorityRaw, + accountIndex, + errorMessagePointer, + pendingTransactionRawPointer) != + 0; + + calloc.free(addressPointer); + calloc.free(assetTypePointer); + calloc.free(paymentIdPointer); + + if (amountPointer != nullptr) { + calloc.free(amountPointer); + } + + if (!created) { + final message = errorMessagePointer.ref.getValue(); + calloc.free(errorMessagePointer); + throw CreationTransactionException(message: message); + } + + return PendingTransactionDescription( + amount: pendingTransactionRawPointer.ref.amount, + fee: pendingTransactionRawPointer.ref.fee, + hash: pendingTransactionRawPointer.ref.getHash(), + pointerAddress: pendingTransactionRawPointer.address); +} + +PendingTransactionDescription createTransactionMultDestSync( + {required List outputs, + required String assetType, + required String paymentId, + required int priorityRaw, + int accountIndex = 0}) { + final int size = outputs.length; + final List> addressesPointers = + outputs.map((output) => output.address.toNativeUtf8()).toList(); + final Pointer> addressesPointerPointer = calloc(size); + final List> amountsPointers = + outputs.map((output) => output.amount.toNativeUtf8()).toList(); + final Pointer> amountsPointerPointer = calloc(size); + + for (int i = 0; i < size; i++) { + addressesPointerPointer[i] = addressesPointers[i]; + amountsPointerPointer[i] = amountsPointers[i]; + } + + final assetTypePointer = assetType.toNativeUtf8(); + final paymentIdPointer = paymentId.toNativeUtf8(); + final errorMessagePointer = calloc(); + final pendingTransactionRawPointer = calloc(); + final created = transactionCreateMultDestNative( + addressesPointerPointer, + assetTypePointer, + paymentIdPointer, + amountsPointerPointer, + size, + priorityRaw, + accountIndex, + errorMessagePointer, + pendingTransactionRawPointer) != + 0; + + calloc.free(addressesPointerPointer); + calloc.free(assetTypePointer); + calloc.free(amountsPointerPointer); + + addressesPointers.forEach((element) => calloc.free(element)); + amountsPointers.forEach((element) => calloc.free(element)); + + calloc.free(paymentIdPointer); + + if (!created) { + final message = errorMessagePointer.ref.getValue(); + calloc.free(errorMessagePointer); + throw CreationTransactionException(message: message); + } + + return PendingTransactionDescription( + amount: pendingTransactionRawPointer.ref.amount, + fee: pendingTransactionRawPointer.ref.fee, + hash: pendingTransactionRawPointer.ref.getHash(), + pointerAddress: pendingTransactionRawPointer.address); +} + +void commitTransactionFromPointerAddress({required int address}) => + commitTransaction( + transactionPointer: + Pointer.fromAddress(address)); + +void commitTransaction( + {required Pointer transactionPointer}) { + final errorMessagePointer = calloc(); + final isCommited = + transactionCommitNative(transactionPointer, errorMessagePointer) != 0; + + if (!isCommited) { + final message = errorMessagePointer.ref.getValue(); + calloc.free(errorMessagePointer); + throw CreationTransactionException(message: message); + } +} + +PendingTransactionDescription _createTransactionSync(Map args) { + final address = args['address'] as String; + final assetType = args['assetType'] as String; + final paymentId = args['paymentId'] as String; + final amount = args['amount'] as String; + final priorityRaw = args['priorityRaw'] as int; + final accountIndex = args['accountIndex'] as int; + + return createTransactionSync( + address: address, + assetType: assetType, + paymentId: paymentId, + amount: amount, + priorityRaw: priorityRaw, + accountIndex: accountIndex); +} + +PendingTransactionDescription _createTransactionMultDestSync(Map args) { + final outputs = args['outputs'] as List; + final assetType = args['assetType'] as String; + final paymentId = args['paymentId'] as String; + final priorityRaw = args['priorityRaw'] as int; + final accountIndex = args['accountIndex'] as int; + + return createTransactionMultDestSync( + outputs: outputs, + assetType: assetType, + paymentId: paymentId, + priorityRaw: priorityRaw, + accountIndex: accountIndex); +} + +Future createTransaction( + {required String address, + required String assetType, + required int priorityRaw, + String? amount, + String paymentId = '', + int accountIndex = 0}) => + compute(_createTransactionSync, { + 'address': address, + 'assetType': assetType, + 'paymentId': paymentId, + 'amount': amount, + 'priorityRaw': priorityRaw, + 'accountIndex': accountIndex + }); + +Future createTransactionMultDest( + {required List outputs, + required int priorityRaw, + String? assetType, + String paymentId = '', + int accountIndex = 0}) => + compute(_createTransactionMultDestSync, { + 'outputs': outputs, + 'assetType': assetType, + 'paymentId': paymentId, + 'priorityRaw': priorityRaw, + 'accountIndex': accountIndex + }); diff --git a/cw_zano/lib/api/types.dart b/cw_zano/lib/api/types.dart new file mode 100644 index 000000000..9ee6f70b4 --- /dev/null +++ b/cw_zano/lib/api/types.dart @@ -0,0 +1,152 @@ +import 'dart:ffi'; +import 'package:cw_zano/api/structs/pending_transaction.dart'; +import 'package:cw_zano/api/structs/ut8_box.dart'; +import 'package:ffi/ffi.dart'; + +typedef CreateWallet = int Function( + Pointer, Pointer, Pointer, int, Pointer); + +typedef RestoreWalletFromSeed = int Function( + Pointer, Pointer, Pointer, int, int, Pointer); + +typedef RestoreWalletFromKeys = int Function( + Pointer, + Pointer, + Pointer, + Pointer, + Pointer, + Pointer, + int, + int, + Pointer); + +typedef IsWalletExist = int Function(Pointer); + +typedef LoadWallet = int Function(Pointer, Pointer, int); + +typedef ErrorString = Pointer Function(); + +typedef GetFilename = Pointer Function(); + +typedef GetSeed = Pointer Function(); + +typedef GetAddress = Pointer Function(int, int); + +typedef GetZanoFullBalance = Pointer Function(int); + +typedef GetZanoUnlockedBalance = Pointer Function(int); + +typedef GetFullBalance = int Function(int); + +typedef GetUnlockedBalance = int Function(int); + +typedef GetCurrentHeight = int Function(); + +typedef GetNodeHeight = int Function(); + +typedef IsConnected = int Function(); + +typedef SetupNode = int Function(Pointer, Pointer?, Pointer?, + int, int, Pointer?, Pointer); + +typedef StartRefresh = void Function(); + +typedef ConnectToNode = int Function(); + +typedef SetRefreshFromBlockHeight = void Function(int); + +typedef SetRecoveringFromSeed = void Function(int); + +typedef Store = void Function(Pointer); + +typedef SetPassword = int Function( + Pointer password, Pointer error); + +typedef SetListener = void Function(); + +typedef GetSyncingHeight = int Function(); + +typedef IsNeededToRefresh = int Function(); + +typedef IsNewTransactionExist = int Function(); + +typedef SubaddressSize = int Function(); + +typedef SubaddressRefresh = void Function(int); + +typedef SubaddressGetAll = Pointer Function(); + +typedef SubaddressAddNew = void Function(int accountIndex, Pointer label); + +typedef SubaddressSetLabel = void Function( + int accountIndex, int addressIndex, Pointer label); + +typedef AccountSize = int Function(); + +typedef AccountRefresh = void Function(); + +typedef AccountGetAll = Pointer Function(); + +typedef AccountAddNew = void Function(Pointer label); + +typedef AccountSetLabel = void Function(int accountIndex, Pointer label); + +typedef TransactionsRefresh = void Function(); + +typedef GetTxKey = Pointer? Function(Pointer txId); + +typedef TransactionsCount = int Function(); + +typedef TransactionsGetAll = Pointer Function(); + +typedef TransactionCreate = int Function( + Pointer address, + Pointer assetType, + Pointer paymentId, + Pointer amount, + int priorityRaw, + int subaddrAccount, + Pointer error, + Pointer pendingTransaction); + +typedef TransactionCreateMultDest = int Function( + Pointer> addresses, + Pointer assetType, + Pointer paymentId, + Pointer> amounts, + int size, + int priorityRaw, + int subaddrAccount, + Pointer error, + Pointer pendingTransaction); + +typedef TransactionCommit = int Function( + Pointer, Pointer); + +typedef SecretViewKey = Pointer Function(); + +typedef PublicViewKey = Pointer Function(); + +typedef SecretSpendKey = Pointer Function(); + +typedef PublicSpendKey = Pointer Function(); + +typedef CloseCurrentWallet = void Function(); + +typedef OnStartup = void Function(); + +typedef RescanBlockchainAsync = void Function(); + +typedef AssetTypes = Pointer> Function(); + +typedef AssetTypesSize = int Function(); + +typedef GetRate = Pointer Function(); + +typedef SizeOfRate = int Function(); + +typedef UpdateRate = void Function(); + +typedef SetTrustedDaemon = void Function(int); + +typedef TrustedDaemon = int Function(); diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart new file mode 100644 index 000000000..0a61ec92b --- /dev/null +++ b/cw_zano/lib/api/wallet.dart @@ -0,0 +1,378 @@ +import 'dart:async'; +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; +import 'package:cw_zano/api/structs/ut8_box.dart'; +import 'package:cw_zano/api/convert_utf8_to_string.dart'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/exceptions/setup_wallet_exception.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; + +int _boolToInt(bool value) => value ? 1 : 0; + +final getFileNameNative = zanoApi + .lookup>('get_filename') + .asFunction(); + +final getSeedNative = + zanoApi.lookup>('seed').asFunction(); + +final getAddressNative = zanoApi + .lookup>('get_address') + .asFunction(); + +final getFullBalanceNative = zanoApi + .lookup>('get_full_balance') + .asFunction(); + +final getUnlockedBalanceNative = zanoApi + .lookup>('get_unlocked_balance') + .asFunction(); + +final getCurrentHeightNative = zanoApi + .lookup>('get_current_height') + .asFunction(); + +final getNodeHeightNative = zanoApi + .lookup>('get_node_height') + .asFunction(); + +final isConnectedNative = zanoApi + .lookup>('is_connected') + .asFunction(); + +final setupNodeNative = zanoApi + .lookup>('setup_node') + .asFunction(); + +final startRefreshNative = zanoApi + .lookup>('start_refresh') + .asFunction(); + +final connecToNodeNative = zanoApi + .lookup>('connect_to_node') + .asFunction(); + +final setRefreshFromBlockHeightNative = zanoApi + .lookup>( + 'set_refresh_from_block_height') + .asFunction(); + +final setRecoveringFromSeedNative = zanoApi + .lookup>( + 'set_recovering_from_seed') + .asFunction(); + +final storeNative = + zanoApi.lookup>('store').asFunction(); + +final setPasswordNative = zanoApi + .lookup>('set_password') + .asFunction(); + +final setListenerNative = zanoApi + .lookup>('set_listener') + .asFunction(); + +final getSyncingHeightNative = zanoApi + .lookup>('get_syncing_height') + .asFunction(); + +final isNeededToRefreshNative = zanoApi + .lookup>('is_needed_to_refresh') + .asFunction(); + +final isNewTransactionExistNative = zanoApi + .lookup>( + 'is_new_transaction_exist') + .asFunction(); + +final getSecretViewKeyNative = zanoApi + .lookup>('secret_view_key') + .asFunction(); + +final getPublicViewKeyNative = zanoApi + .lookup>('public_view_key') + .asFunction(); + +final getSecretSpendKeyNative = zanoApi + .lookup>('secret_spend_key') + .asFunction(); + +final getPublicSpendKeyNative = zanoApi + .lookup>('public_spend_key') + .asFunction(); + +final closeCurrentWalletNative = zanoApi + .lookup>('close_current_wallet') + .asFunction(); + +final onStartupNative = zanoApi + .lookup>('on_startup') + .asFunction(); + +final rescanBlockchainAsyncNative = zanoApi + .lookup>('rescan_blockchain') + .asFunction(); + +final setTrustedDaemonNative = zanoApi + .lookup>('set_trusted_daemon') + .asFunction(); + +final trustedDaemonNative = zanoApi + .lookup>('trusted_daemon') + .asFunction(); + +int getSyncingHeight() => getSyncingHeightNative(); + +bool isNeededToRefresh() => isNeededToRefreshNative() != 0; + +bool isNewTransactionExist() => isNewTransactionExistNative() != 0; + +String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); + +String getSeed() => convertUTF8ToString(pointer: getSeedNative()); + +String getAddress({int accountIndex = 0, int addressIndex = 0}) => + convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); + +int getFullBalance({int accountIndex = 0}) => + getFullBalanceNative(accountIndex); + +int getUnlockedBalance({int accountIndex = 0}) => + getUnlockedBalanceNative(accountIndex); + +int getCurrentHeight() => getCurrentHeightNative(); + +int getNodeHeightSync() => getNodeHeightNative(); + +bool isConnectedSync() => isConnectedNative() != 0; + +bool setupNodeSync( + {required String address, + String? login, + String? password, + bool useSSL = false, + bool isLightWallet = false, + String? socksProxyAddress}) { + final addressPointer = address.toNativeUtf8(); + Pointer? loginPointer; + Pointer? socksProxyAddressPointer; + Pointer? passwordPointer; + + if (login != null) { + loginPointer = login.toNativeUtf8(); + } + + if (password != null) { + passwordPointer = password.toNativeUtf8(); + } + + if (socksProxyAddress != null) { + socksProxyAddressPointer = socksProxyAddress.toNativeUtf8(); + } + + final errorMessagePointer = ''.toNativeUtf8(); + final isSetupNode = setupNodeNative( + addressPointer, + loginPointer, + passwordPointer, + _boolToInt(useSSL), + _boolToInt(isLightWallet), + socksProxyAddressPointer, + errorMessagePointer) != + 0; + + calloc.free(addressPointer); + + if (loginPointer != null) { + calloc.free(loginPointer); + } + + if (passwordPointer != null) { + calloc.free(passwordPointer); + } + + if (!isSetupNode) { + throw SetupWalletException( + message: convertUTF8ToString(pointer: errorMessagePointer)); + } + + return isSetupNode; +} + +void startRefreshSync() => startRefreshNative(); + +Future connectToNode() async => connecToNodeNative() != 0; + +void setRefreshFromBlockHeight({required int height}) => + setRefreshFromBlockHeightNative(height); + +void setRecoveringFromSeed({required bool isRecovery}) => + setRecoveringFromSeedNative(_boolToInt(isRecovery)); + +void storeSync() { + final pathPointer = ''.toNativeUtf8(); + storeNative(pathPointer); + calloc.free(pathPointer); +} + +void setPasswordSync(String password) { + final passwordPointer = password.toNativeUtf8(); + final errorMessagePointer = calloc(); + final changed = setPasswordNative(passwordPointer, errorMessagePointer) != 0; + calloc.free(passwordPointer); + + if (!changed) { + final message = errorMessagePointer.ref.getValue(); + calloc.free(errorMessagePointer); + throw Exception(message); + } + + calloc.free(errorMessagePointer); +} + +void closeCurrentWallet() => closeCurrentWalletNative(); + +String getSecretViewKey() => + convertUTF8ToString(pointer: getSecretViewKeyNative()); + +String getPublicViewKey() => + convertUTF8ToString(pointer: getPublicViewKeyNative()); + +String getSecretSpendKey() => + convertUTF8ToString(pointer: getSecretSpendKeyNative()); + +String getPublicSpendKey() => + convertUTF8ToString(pointer: getPublicSpendKeyNative()); + +class SyncListener { + SyncListener(this.onNewBlock, this.onNewTransaction) + : _cachedBlockchainHeight = 0, + _lastKnownBlockHeight = 0, + _initialSyncHeight = 0; + + void Function(int, int, double) onNewBlock; + void Function() onNewTransaction; + + Timer? _updateSyncInfoTimer; + int _cachedBlockchainHeight; + int _lastKnownBlockHeight; + int _initialSyncHeight; + + Future getNodeHeightOrUpdate(int baseHeight) async { + if (_cachedBlockchainHeight < baseHeight || _cachedBlockchainHeight == 0) { + _cachedBlockchainHeight = await getNodeHeight(); + } + + return _cachedBlockchainHeight; + } + + void start() { + _cachedBlockchainHeight = 0; + _lastKnownBlockHeight = 0; + _initialSyncHeight = 0; + _updateSyncInfoTimer ??= + Timer.periodic(Duration(milliseconds: 1200), (_) async { + if (isNewTransactionExist()) { + onNewTransaction?.call(); + } + + var syncHeight = getSyncingHeight(); + + if (syncHeight <= 0) { + syncHeight = getCurrentHeight(); + } + + if (_initialSyncHeight <= 0) { + _initialSyncHeight = syncHeight; + } + + final bchHeight = await getNodeHeightOrUpdate(syncHeight); + + if (_lastKnownBlockHeight == syncHeight || syncHeight == null) { + return; + } + + _lastKnownBlockHeight = syncHeight; + final track = bchHeight - _initialSyncHeight; + final diff = track - (bchHeight - syncHeight); + final ptc = diff <= 0 ? 0.0 : diff / track; + final left = bchHeight - syncHeight; + + if (syncHeight < 0 || left < 0) { + return; + } + + // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; + onNewBlock?.call(syncHeight, left, ptc); + }); + } + + void stop() => _updateSyncInfoTimer?.cancel(); +} + +SyncListener setListeners(void Function(int, int, double) onNewBlock, + void Function() onNewTransaction) { + final listener = SyncListener(onNewBlock, onNewTransaction); + setListenerNative(); + return listener; +} + +void onStartup() => onStartupNative(); + +void _storeSync(Object _) => storeSync(); + +bool _setupNodeSync(Map args) { + final address = args['address'] as String; + final login = (args['login'] ?? '') as String; + final password = (args['password'] ?? '') as String; + final useSSL = args['useSSL'] as bool; + final isLightWallet = args['isLightWallet'] as bool; + final socksProxyAddress = (args['socksProxyAddress'] ?? '') as String; + + return setupNodeSync( + address: address, + login: login, + password: password, + useSSL: useSSL, + isLightWallet: isLightWallet, + socksProxyAddress: socksProxyAddress); +} + +bool _isConnected(Object _) => isConnectedSync(); + +int _getNodeHeight(Object _) => getNodeHeightSync(); + +void startRefresh() => startRefreshSync(); + +Future setupNode( + {required String address, + String? login, + String? password, + bool useSSL = false, + String? socksProxyAddress, + bool isLightWallet = false}) => + compute, void>(_setupNodeSync, { + 'address': address, + 'login': login, + 'password': password, + 'useSSL': useSSL, + 'isLightWallet': isLightWallet, + 'socksProxyAddress': socksProxyAddress + }); + +Future store() => compute(_storeSync, 0); + +Future isConnected() => compute(_isConnected, 0); + +Future getNodeHeight() => compute(_getNodeHeight, 0); + +void rescanBlockchainAsync() => rescanBlockchainAsyncNative(); + +Future setTrustedDaemon(bool trusted) async => + setTrustedDaemonNative(_boolToInt(trusted)); + +Future trustedDaemon() async => trustedDaemonNative() != 0; diff --git a/cw_zano/lib/api/wallet_manager.dart b/cw_zano/lib/api/wallet_manager.dart new file mode 100644 index 000000000..1b4569172 --- /dev/null +++ b/cw_zano/lib/api/wallet_manager.dart @@ -0,0 +1,256 @@ +import 'dart:ffi'; +import 'package:ffi/ffi.dart'; +import 'package:flutter/foundation.dart'; +import 'package:cw_zano/api/convert_utf8_to_string.dart'; +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/wallet.dart'; +import 'package:cw_zano/api/exceptions/wallet_opening_exception.dart'; +import 'package:cw_zano/api/exceptions/wallet_creation_exception.dart'; +import 'package:cw_zano/api/exceptions/wallet_restore_from_keys_exception.dart'; +import 'package:cw_zano/api/exceptions/wallet_restore_from_seed_exception.dart'; + +final createWalletNative = zanoApi + .lookup>('create_wallet') + .asFunction(); + +final restoreWalletFromSeedNative = zanoApi + .lookup>( + 'restore_wallet_from_seed') + .asFunction(); + +final restoreWalletFromKeysNative = zanoApi + .lookup>( + 'restore_wallet_from_keys') + .asFunction(); + +final isWalletExistNative = zanoApi + .lookup>('is_wallet_exist') + .asFunction(); + +final loadWalletNative = zanoApi + .lookup>('load_wallet') + .asFunction(); + +final errorStringNative = zanoApi + .lookup>('error_string') + .asFunction(); + +void createWalletSync( + {required String path, + required String password, + required String language, + int nettype = 0}) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final languagePointer = language.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final isWalletCreated = createWalletNative(pathPointer, passwordPointer, + languagePointer, nettype, errorMessagePointer) != + 0; + + calloc.free(pathPointer); + calloc.free(passwordPointer); + calloc.free(languagePointer); + + if (!isWalletCreated) { + throw WalletCreationException( + message: convertUTF8ToString(pointer: errorMessagePointer)); + } + + // setupNodeSync(address: "node.moneroworld.com:18089"); +} + +bool isWalletExistSync({required String path}) { + final pathPointer = path.toNativeUtf8(); + final isExist = isWalletExistNative(pathPointer) != 0; + + calloc.free(pathPointer); + + return isExist; +} + +void restoreWalletFromSeedSync( + {required String path, + required String password, + required String seed, + int nettype = 0, + int restoreHeight = 0}) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final seedPointer = seed.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final isWalletRestored = restoreWalletFromSeedNative( + pathPointer, + passwordPointer, + seedPointer, + nettype, + restoreHeight, + errorMessagePointer) != + 0; + + calloc.free(pathPointer); + calloc.free(passwordPointer); + calloc.free(seedPointer); + + if (!isWalletRestored) { + throw WalletRestoreFromSeedException( + message: convertUTF8ToString(pointer: errorMessagePointer)); + } +} + +void restoreWalletFromKeysSync( + {required String path, + required String password, + required String language, + required String address, + required String viewKey, + required String spendKey, + int nettype = 0, + int restoreHeight = 0}) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final languagePointer = language.toNativeUtf8(); + final addressPointer = address.toNativeUtf8(); + final viewKeyPointer = viewKey.toNativeUtf8(); + final spendKeyPointer = spendKey.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final isWalletRestored = restoreWalletFromKeysNative( + pathPointer, + passwordPointer, + languagePointer, + addressPointer, + viewKeyPointer, + spendKeyPointer, + nettype, + restoreHeight, + errorMessagePointer) != + 0; + + calloc.free(pathPointer); + calloc.free(passwordPointer); + calloc.free(languagePointer); + calloc.free(addressPointer); + calloc.free(viewKeyPointer); + calloc.free(spendKeyPointer); + + if (!isWalletRestored) { + throw WalletRestoreFromKeysException( + message: convertUTF8ToString(pointer: errorMessagePointer)); + } +} + +void loadWallet( + {required String path, required String password, int nettype = 0}) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final loaded = loadWalletNative(pathPointer, passwordPointer, nettype) != 0; + calloc.free(pathPointer); + calloc.free(passwordPointer); + + if (!loaded) { + throw WalletOpeningException( + message: convertUTF8ToString(pointer: errorStringNative())); + } +} + +void _createWallet(Map args) { + final path = args['path'] as String; + final password = args['password'] as String; + final language = args['language'] as String; + + createWalletSync(path: path, password: password, language: language); +} + +void _restoreFromSeed(Map args) { + final path = args['path'] as String; + final password = args['password'] as String; + final seed = args['seed'] as String; + final restoreHeight = args['restoreHeight'] as int; + + restoreWalletFromSeedSync( + path: path, password: password, seed: seed, restoreHeight: restoreHeight); +} + +void _restoreFromKeys(Map args) { + final path = args['path'] as String; + final password = args['password'] as String; + final language = args['language'] as String; + final restoreHeight = args['restoreHeight'] as int; + final address = args['address'] as String; + final viewKey = args['viewKey'] as String; + final spendKey = args['spendKey'] as String; + + restoreWalletFromKeysSync( + path: path, + password: password, + language: language, + restoreHeight: restoreHeight, + address: address, + viewKey: viewKey, + spendKey: spendKey); +} + +Future _openWallet(Map args) async => loadWallet( + path: args['path'] as String, password: args['password'] as String); + +bool _isWalletExist(String path) => isWalletExistSync(path: path); + +void openWallet( + {required String path, + required String password, + int nettype = 0}) async => + loadWallet(path: path, password: password, nettype: nettype); + +Future openWalletAsync(Map args) async => + compute(_openWallet, args); + +Future createWallet( + {required String path, + required String password, + required String language, + int nettype = 0}) async => + compute(_createWallet, { + 'path': path, + 'password': password, + 'language': language, + 'nettype': nettype + }); + +Future restoreFromSeed( + {required String path, + required String password, + required String seed, + int nettype = 0, + int restoreHeight = 0}) async => + compute, void>(_restoreFromSeed, { + 'path': path, + 'password': password, + 'seed': seed, + 'nettype': nettype, + 'restoreHeight': restoreHeight + }); + +Future restoreFromKeys( + {required String path, + required String password, + required String language, + required String address, + required String viewKey, + required String spendKey, + int nettype = 0, + int restoreHeight = 0}) async => + compute, void>(_restoreFromKeys, { + 'path': path, + 'password': password, + 'language': language, + 'address': address, + 'viewKey': viewKey, + 'spendKey': spendKey, + 'nettype': nettype, + 'restoreHeight': restoreHeight + }); + +Future isWalletExist({required String path}) => + compute(_isWalletExist, path); diff --git a/cw_zano/lib/api/zano_api.dart b/cw_zano/lib/api/zano_api.dart new file mode 100644 index 000000000..e135c4128 --- /dev/null +++ b/cw_zano/lib/api/zano_api.dart @@ -0,0 +1,6 @@ +import 'dart:ffi'; +import 'dart:io'; + +final DynamicLibrary zanoApi = Platform.isAndroid + ? DynamicLibrary.open("libcw_zano.so") + : DynamicLibrary.open("cw_zano.framework/cw_zano"); diff --git a/cw_zano/lib/mnemonics/chinese_simplified.dart b/cw_zano/lib/mnemonics/chinese_simplified.dart new file mode 100644 index 000000000..da3225041 --- /dev/null +++ b/cw_zano/lib/mnemonics/chinese_simplified.dart @@ -0,0 +1,1630 @@ +class ChineseSimplifiedMnemonics { + static const words = [ + "的", + "一", + "是", + "在", + "不", + "了", + "有", + "和", + "人", + "这", + "中", + "大", + "为", + "上", + "个", + "国", + "我", + "以", + "要", + "他", + "时", + "来", + "用", + "们", + "生", + "到", + "作", + "地", + "于", + "出", + "就", + "分", + "对", + "成", + "会", + "可", + "主", + "发", + "年", + "动", + "同", + "工", + "也", + "能", + "下", + "过", + "子", + "说", + "产", + "种", + "面", + "而", + "方", + "后", + "多", + "定", + "行", + "学", + "法", + "所", + "民", + "得", + "经", + "十", + "三", + "之", + "进", + "着", + "等", + "部", + "度", + "家", + "电", + "力", + "里", + "如", + "水", + "化", + "高", + "自", + "二", + "理", + "起", + "小", + "物", + "现", + "实", + "加", + "量", + "都", + "两", + "体", + "制", + "机", + "当", + "使", + "点", + "从", + "业", + "本", + "去", + "把", + "性", + "好", + "应", + "开", + "它", + "合", + "还", + "因", + "由", + "其", + "些", + "然", + "前", + "外", + "天", + "政", + "四", + "日", + "那", + "社", + "义", + "事", + "平", + "形", + "相", + "全", + "表", + "间", + "样", + "与", + "关", + "各", + "重", + "新", + "线", + "内", + "数", + "正", + "心", + "反", + "你", + "明", + "看", + "原", + "又", + "么", + "利", + "比", + "或", + "但", + "质", + "气", + "第", + "向", + "道", + "命", + "此", + "变", + "条", + "只", + "没", + "结", + "解", + "问", + "意", + "建", + "月", + "公", + "无", + "系", + "军", + "很", + "情", + "者", + "最", + "立", + "代", + "想", + "已", + "通", + "并", + "提", + "直", + "题", + "党", + "程", + "展", + "五", + "果", + "料", + "象", + "员", + "革", + "位", + "入", + "常", + "文", + "总", + "次", + "品", + "式", + "活", + "设", + "及", + "管", + "特", + "件", + "长", + "求", + "老", + "头", + "基", + "资", + "边", + "流", + "路", + "级", + "少", + "图", + "山", + "统", + "接", + "知", + "较", + "将", + "组", + "见", + "计", + "别", + "她", + "手", + "角", + "期", + "根", + "论", + "运", + "农", + "指", + "几", + "九", + "区", + "强", + "放", + "决", + "西", + "被", + "干", + "做", + "必", + "战", + "先", + "回", + "则", + "任", + "取", + "据", + "处", + "队", + "南", + "给", + "色", + "光", + "门", + "即", + "保", + "治", + "北", + "造", + "百", + "规", + "热", + "领", + "七", + "海", + "口", + "东", + "导", + "器", + "压", + "志", + "世", + "金", + "增", + "争", + "济", + "阶", + "油", + "思", + "术", + "极", + "交", + "受", + "联", + "什", + "认", + "六", + "共", + "权", + "收", + "证", + "改", + "清", + "美", + "再", + "采", + "转", + "更", + "单", + "风", + "切", + "打", + "白", + "教", + "速", + "花", + "带", + "安", + "场", + "身", + "车", + "例", + "真", + "务", + "具", + "万", + "每", + "目", + "至", + "达", + "走", + "积", + "示", + "议", + "声", + "报", + "斗", + "完", + "类", + "八", + "离", + "华", + "名", + "确", + "才", + "科", + "张", + "信", + "马", + "节", + "话", + "米", + "整", + "空", + "元", + "况", + "今", + "集", + "温", + "传", + "土", + "许", + "步", + "群", + "广", + "石", + "记", + "需", + "段", + "研", + "界", + "拉", + "林", + "律", + "叫", + "且", + "究", + "观", + "越", + "织", + "装", + "影", + "算", + "低", + "持", + "音", + "众", + "书", + "布", + "复", + "容", + "儿", + "须", + "际", + "商", + "非", + "验", + "连", + "断", + "深", + "难", + "近", + "矿", + "千", + "周", + "委", + "素", + "技", + "备", + "半", + "办", + "青", + "省", + "列", + "习", + "响", + "约", + "支", + "般", + "史", + "感", + "劳", + "便", + "团", + "往", + "酸", + "历", + "市", + "克", + "何", + "除", + "消", + "构", + "府", + "称", + "太", + "准", + "精", + "值", + "号", + "率", + "族", + "维", + "划", + "选", + "标", + "写", + "存", + "候", + "毛", + "亲", + "快", + "效", + "斯", + "院", + "查", + "江", + "型", + "眼", + "王", + "按", + "格", + "养", + "易", + "置", + "派", + "层", + "片", + "始", + "却", + "专", + "状", + "育", + "厂", + "京", + "识", + "适", + "属", + "圆", + "包", + "火", + "住", + "调", + "满", + "县", + "局", + "照", + "参", + "红", + "细", + "引", + "听", + "该", + "铁", + "价", + "严", + "首", + "底", + "液", + "官", + "德", + "随", + "病", + "苏", + "失", + "尔", + "死", + "讲", + "配", + "女", + "黄", + "推", + "显", + "谈", + "罪", + "神", + "艺", + "呢", + "席", + "含", + "企", + "望", + "密", + "批", + "营", + "项", + "防", + "举", + "球", + "英", + "氧", + "势", + "告", + "李", + "台", + "落", + "木", + "帮", + "轮", + "破", + "亚", + "师", + "围", + "注", + "远", + "字", + "材", + "排", + "供", + "河", + "态", + "封", + "另", + "施", + "减", + "树", + "溶", + "怎", + "止", + "案", + "言", + "士", + "均", + "武", + "固", + "叶", + "鱼", + "波", + "视", + "仅", + "费", + "紧", + "爱", + "左", + "章", + "早", + "朝", + "害", + "续", + "轻", + "服", + "试", + "食", + "充", + "兵", + "源", + "判", + "护", + "司", + "足", + "某", + "练", + "差", + "致", + "板", + "田", + "降", + "黑", + "犯", + "负", + "击", + "范", + "继", + "兴", + "似", + "余", + "坚", + "曲", + "输", + "修", + "故", + "城", + "夫", + "够", + "送", + "笔", + "船", + "占", + "右", + "财", + "吃", + "富", + "春", + "职", + "觉", + "汉", + "画", + "功", + "巴", + "跟", + "虽", + "杂", + "飞", + "检", + "吸", + "助", + "升", + "阳", + "互", + "初", + "创", + "抗", + "考", + "投", + "坏", + "策", + "古", + "径", + "换", + "未", + "跑", + "留", + "钢", + "曾", + "端", + "责", + "站", + "简", + "述", + "钱", + "副", + "尽", + "帝", + "射", + "草", + "冲", + "承", + "独", + "令", + "限", + "阿", + "宣", + "环", + "双", + "请", + "超", + "微", + "让", + "控", + "州", + "良", + "轴", + "找", + "否", + "纪", + "益", + "依", + "优", + "顶", + "础", + "载", + "倒", + "房", + "突", + "坐", + "粉", + "敌", + "略", + "客", + "袁", + "冷", + "胜", + "绝", + "析", + "块", + "剂", + "测", + "丝", + "协", + "诉", + "念", + "陈", + "仍", + "罗", + "盐", + "友", + "洋", + "错", + "苦", + "夜", + "刑", + "移", + "频", + "逐", + "靠", + "混", + "母", + "短", + "皮", + "终", + "聚", + "汽", + "村", + "云", + "哪", + "既", + "距", + "卫", + "停", + "烈", + "央", + "察", + "烧", + "迅", + "境", + "若", + "印", + "洲", + "刻", + "括", + "激", + "孔", + "搞", + "甚", + "室", + "待", + "核", + "校", + "散", + "侵", + "吧", + "甲", + "游", + "久", + "菜", + "味", + "旧", + "模", + "湖", + "货", + "损", + "预", + "阻", + "毫", + "普", + "稳", + "乙", + "妈", + "植", + "息", + "扩", + "银", + "语", + "挥", + "酒", + "守", + "拿", + "序", + "纸", + "医", + "缺", + "雨", + "吗", + "针", + "刘", + "啊", + "急", + "唱", + "误", + "训", + "愿", + "审", + "附", + "获", + "茶", + "鲜", + "粮", + "斤", + "孩", + "脱", + "硫", + "肥", + "善", + "龙", + "演", + "父", + "渐", + "血", + "欢", + "械", + "掌", + "歌", + "沙", + "刚", + "攻", + "谓", + "盾", + "讨", + "晚", + "粒", + "乱", + "燃", + "矛", + "乎", + "杀", + "药", + "宁", + "鲁", + "贵", + "钟", + "煤", + "读", + "班", + "伯", + "香", + "介", + "迫", + "句", + "丰", + "培", + "握", + "兰", + "担", + "弦", + "蛋", + "沉", + "假", + "穿", + "执", + "答", + "乐", + "谁", + "顺", + "烟", + "缩", + "征", + "脸", + "喜", + "松", + "脚", + "困", + "异", + "免", + "背", + "星", + "福", + "买", + "染", + "井", + "概", + "慢", + "怕", + "磁", + "倍", + "祖", + "皇", + "促", + "静", + "补", + "评", + "翻", + "肉", + "践", + "尼", + "衣", + "宽", + "扬", + "棉", + "希", + "伤", + "操", + "垂", + "秋", + "宜", + "氢", + "套", + "督", + "振", + "架", + "亮", + "末", + "宪", + "庆", + "编", + "牛", + "触", + "映", + "雷", + "销", + "诗", + "座", + "居", + "抓", + "裂", + "胞", + "呼", + "娘", + "景", + "威", + "绿", + "晶", + "厚", + "盟", + "衡", + "鸡", + "孙", + "延", + "危", + "胶", + "屋", + "乡", + "临", + "陆", + "顾", + "掉", + "呀", + "灯", + "岁", + "措", + "束", + "耐", + "剧", + "玉", + "赵", + "跳", + "哥", + "季", + "课", + "凯", + "胡", + "额", + "款", + "绍", + "卷", + "齐", + "伟", + "蒸", + "殖", + "永", + "宗", + "苗", + "川", + "炉", + "岩", + "弱", + "零", + "杨", + "奏", + "沿", + "露", + "杆", + "探", + "滑", + "镇", + "饭", + "浓", + "航", + "怀", + "赶", + "库", + "夺", + "伊", + "灵", + "税", + "途", + "灭", + "赛", + "归", + "召", + "鼓", + "播", + "盘", + "裁", + "险", + "康", + "唯", + "录", + "菌", + "纯", + "借", + "糖", + "盖", + "横", + "符", + "私", + "努", + "堂", + "域", + "枪", + "润", + "幅", + "哈", + "竟", + "熟", + "虫", + "泽", + "脑", + "壤", + "碳", + "欧", + "遍", + "侧", + "寨", + "敢", + "彻", + "虑", + "斜", + "薄", + "庭", + "纳", + "弹", + "饲", + "伸", + "折", + "麦", + "湿", + "暗", + "荷", + "瓦", + "塞", + "床", + "筑", + "恶", + "户", + "访", + "塔", + "奇", + "透", + "梁", + "刀", + "旋", + "迹", + "卡", + "氯", + "遇", + "份", + "毒", + "泥", + "退", + "洗", + "摆", + "灰", + "彩", + "卖", + "耗", + "夏", + "择", + "忙", + "铜", + "献", + "硬", + "予", + "繁", + "圈", + "雪", + "函", + "亦", + "抽", + "篇", + "阵", + "阴", + "丁", + "尺", + "追", + "堆", + "雄", + "迎", + "泛", + "爸", + "楼", + "避", + "谋", + "吨", + "野", + "猪", + "旗", + "累", + "偏", + "典", + "馆", + "索", + "秦", + "脂", + "潮", + "爷", + "豆", + "忽", + "托", + "惊", + "塑", + "遗", + "愈", + "朱", + "替", + "纤", + "粗", + "倾", + "尚", + "痛", + "楚", + "谢", + "奋", + "购", + "磨", + "君", + "池", + "旁", + "碎", + "骨", + "监", + "捕", + "弟", + "暴", + "割", + "贯", + "殊", + "释", + "词", + "亡", + "壁", + "顿", + "宝", + "午", + "尘", + "闻", + "揭", + "炮", + "残", + "冬", + "桥", + "妇", + "警", + "综", + "招", + "吴", + "付", + "浮", + "遭", + "徐", + "您", + "摇", + "谷", + "赞", + "箱", + "隔", + "订", + "男", + "吹", + "园", + "纷", + "唐", + "败", + "宋", + "玻", + "巨", + "耕", + "坦", + "荣", + "闭", + "湾", + "键", + "凡", + "驻", + "锅", + "救", + "恩", + "剥", + "凝", + "碱", + "齿", + "截", + "炼", + "麻", + "纺", + "禁", + "废", + "盛", + "版", + "缓", + "净", + "睛", + "昌", + "婚", + "涉", + "筒", + "嘴", + "插", + "岸", + "朗", + "庄", + "街", + "藏", + "姑", + "贸", + "腐", + "奴", + "啦", + "惯", + "乘", + "伙", + "恢", + "匀", + "纱", + "扎", + "辩", + "耳", + "彪", + "臣", + "亿", + "璃", + "抵", + "脉", + "秀", + "萨", + "俄", + "网", + "舞", + "店", + "喷", + "纵", + "寸", + "汗", + "挂", + "洪", + "贺", + "闪", + "柬", + "爆", + "烯", + "津", + "稻", + "墙", + "软", + "勇", + "像", + "滚", + "厘", + "蒙", + "芳", + "肯", + "坡", + "柱", + "荡", + "腿", + "仪", + "旅", + "尾", + "轧", + "冰", + "贡", + "登", + "黎", + "削", + "钻", + "勒", + "逃", + "障", + "氨", + "郭", + "峰", + "币", + "港", + "伏", + "轨", + "亩", + "毕", + "擦", + "莫", + "刺", + "浪", + "秘", + "援", + "株", + "健", + "售", + "股", + "岛", + "甘", + "泡", + "睡", + "童", + "铸", + "汤", + "阀", + "休", + "汇", + "舍", + "牧", + "绕", + "炸", + "哲", + "磷", + "绩", + "朋", + "淡", + "尖", + "启", + "陷", + "柴", + "呈", + "徒", + "颜", + "泪", + "稍", + "忘", + "泵", + "蓝", + "拖", + "洞", + "授", + "镜", + "辛", + "壮", + "锋", + "贫", + "虚", + "弯", + "摩", + "泰", + "幼", + "廷", + "尊", + "窗", + "纲", + "弄", + "隶", + "疑", + "氏", + "宫", + "姐", + "震", + "瑞", + "怪", + "尤", + "琴", + "循", + "描", + "膜", + "违", + "夹", + "腰", + "缘", + "珠", + "穷", + "森", + "枝", + "竹", + "沟", + "催", + "绳", + "忆", + "邦", + "剩", + "幸", + "浆", + "栏", + "拥", + "牙", + "贮", + "礼", + "滤", + "钠", + "纹", + "罢", + "拍", + "咱", + "喊", + "袖", + "埃", + "勤", + "罚", + "焦", + "潜", + "伍", + "墨", + "欲", + "缝", + "姓", + "刊", + "饱", + "仿", + "奖", + "铝", + "鬼", + "丽", + "跨", + "默", + "挖", + "链", + "扫", + "喝", + "袋", + "炭", + "污", + "幕", + "诸", + "弧", + "励", + "梅", + "奶", + "洁", + "灾", + "舟", + "鉴", + "苯", + "讼", + "抱", + "毁", + "懂", + "寒", + "智", + "埔", + "寄", + "届", + "跃", + "渡", + "挑", + "丹", + "艰", + "贝", + "碰", + "拔", + "爹", + "戴", + "码", + "梦", + "芽", + "熔", + "赤", + "渔", + "哭", + "敬", + "颗", + "奔", + "铅", + "仲", + "虎", + "稀", + "妹", + "乏", + "珍", + "申", + "桌", + "遵", + "允", + "隆", + "螺", + "仓", + "魏", + "锐", + "晓", + "氮", + "兼", + "隐", + "碍", + "赫", + "拨", + "忠", + "肃", + "缸", + "牵", + "抢", + "博", + "巧", + "壳", + "兄", + "杜", + "讯", + "诚", + "碧", + "祥", + "柯", + "页", + "巡", + "矩", + "悲", + "灌", + "龄", + "伦", + "票", + "寻", + "桂", + "铺", + "圣", + "恐", + "恰", + "郑", + "趣", + "抬", + "荒", + "腾", + "贴", + "柔", + "滴", + "猛", + "阔", + "辆", + "妻", + "填", + "撤", + "储", + "签", + "闹", + "扰", + "紫", + "砂", + "递", + "戏", + "吊", + "陶", + "伐", + "喂", + "疗", + "瓶", + "婆", + "抚", + "臂", + "摸", + "忍", + "虾", + "蜡", + "邻", + "胸", + "巩", + "挤", + "偶", + "弃", + "槽", + "劲", + "乳", + "邓", + "吉", + "仁", + "烂", + "砖", + "租", + "乌", + "舰", + "伴", + "瓜", + "浅", + "丙", + "暂", + "燥", + "橡", + "柳", + "迷", + "暖", + "牌", + "秧", + "胆", + "详", + "簧", + "踏", + "瓷", + "谱", + "呆", + "宾", + "糊", + "洛", + "辉", + "愤", + "竞", + "隙", + "怒", + "粘", + "乃", + "绪", + "肩", + "籍", + "敏", + "涂", + "熙", + "皆", + "侦", + "悬", + "掘", + "享", + "纠", + "醒", + "狂", + "锁", + "淀", + "恨", + "牲", + "霸", + "爬", + "赏", + "逆", + "玩", + "陵", + "祝", + "秒", + "浙", + "貌" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/dutch.dart b/cw_zano/lib/mnemonics/dutch.dart new file mode 100644 index 000000000..9dcb800cd --- /dev/null +++ b/cw_zano/lib/mnemonics/dutch.dart @@ -0,0 +1,1630 @@ +class DutchMnemonics { + static const words = [ + "aalglad", + "aalscholver", + "aambeeld", + "aangeef", + "aanlandig", + "aanvaard", + "aanwakker", + "aapmens", + "aarten", + "abdicatie", + "abnormaal", + "abrikoos", + "accu", + "acuut", + "adjudant", + "admiraal", + "advies", + "afbidding", + "afdracht", + "affaire", + "affiche", + "afgang", + "afkick", + "afknap", + "aflees", + "afmijner", + "afname", + "afpreekt", + "afrader", + "afspeel", + "aftocht", + "aftrek", + "afzijdig", + "ahornboom", + "aktetas", + "akzo", + "alchemist", + "alcohol", + "aldaar", + "alexander", + "alfabet", + "alfredo", + "alice", + "alikruik", + "allrisk", + "altsax", + "alufolie", + "alziend", + "amai", + "ambacht", + "ambieer", + "amina", + "amnestie", + "amok", + "ampul", + "amuzikaal", + "angela", + "aniek", + "antje", + "antwerpen", + "anya", + "aorta", + "apache", + "apekool", + "appelaar", + "arganolie", + "argeloos", + "armoede", + "arrenslee", + "artritis", + "arubaan", + "asbak", + "ascii", + "asgrauw", + "asjes", + "asml", + "aspunt", + "asurn", + "asveld", + "aterling", + "atomair", + "atrium", + "atsma", + "atypisch", + "auping", + "aura", + "avifauna", + "axiaal", + "azoriaan", + "azteek", + "azuur", + "bachelor", + "badderen", + "badhotel", + "badmantel", + "badsteden", + "balie", + "ballans", + "balvers", + "bamibal", + "banneling", + "barracuda", + "basaal", + "batelaan", + "batje", + "beambte", + "bedlamp", + "bedwelmd", + "befaamd", + "begierd", + "begraaf", + "behield", + "beijaard", + "bejaagd", + "bekaaid", + "beks", + "bektas", + "belaad", + "belboei", + "belderbos", + "beloerd", + "beluchten", + "bemiddeld", + "benadeeld", + "benijd", + "berechten", + "beroemd", + "besef", + "besseling", + "best", + "betichten", + "bevind", + "bevochten", + "bevraagd", + "bewust", + "bidplaats", + "biefstuk", + "biemans", + "biezen", + "bijbaan", + "bijeenkom", + "bijfiguur", + "bijkaart", + "bijlage", + "bijpaard", + "bijtgaar", + "bijweg", + "bimmel", + "binck", + "bint", + "biobak", + "biotisch", + "biseks", + "bistro", + "bitter", + "bitumen", + "bizar", + "blad", + "bleken", + "blender", + "bleu", + "blief", + "blijven", + "blozen", + "bock", + "boef", + "boei", + "boks", + "bolder", + "bolus", + "bolvormig", + "bomaanval", + "bombarde", + "bomma", + "bomtapijt", + "bookmaker", + "boos", + "borg", + "bosbes", + "boshuizen", + "bosloop", + "botanicus", + "bougie", + "bovag", + "boxspring", + "braad", + "brasem", + "brevet", + "brigade", + "brinckman", + "bruid", + "budget", + "buffel", + "buks", + "bulgaar", + "buma", + "butaan", + "butler", + "buuf", + "cactus", + "cafeetje", + "camcorder", + "cannabis", + "canyon", + "capoeira", + "capsule", + "carkit", + "casanova", + "catalaan", + "ceintuur", + "celdeling", + "celplasma", + "cement", + "censeren", + "ceramisch", + "cerberus", + "cerebraal", + "cesium", + "cirkel", + "citeer", + "civiel", + "claxon", + "clenbuterol", + "clicheren", + "clijsen", + "coalitie", + "coassistentschap", + "coaxiaal", + "codetaal", + "cofinanciering", + "cognac", + "coltrui", + "comfort", + "commandant", + "condensaat", + "confectie", + "conifeer", + "convector", + "copier", + "corfu", + "correct", + "coup", + "couvert", + "creatie", + "credit", + "crematie", + "cricket", + "croupier", + "cruciaal", + "cruijff", + "cuisine", + "culemborg", + "culinair", + "curve", + "cyrano", + "dactylus", + "dading", + "dagblind", + "dagje", + "daglicht", + "dagprijs", + "dagranden", + "dakdekker", + "dakpark", + "dakterras", + "dalgrond", + "dambord", + "damkat", + "damlengte", + "damman", + "danenberg", + "debbie", + "decibel", + "defect", + "deformeer", + "degelijk", + "degradant", + "dejonghe", + "dekken", + "deppen", + "derek", + "derf", + "derhalve", + "detineren", + "devalueer", + "diaken", + "dicht", + "dictaat", + "dief", + "digitaal", + "dijbreuk", + "dijkmans", + "dimbaar", + "dinsdag", + "diode", + "dirigeer", + "disbalans", + "dobermann", + "doenbaar", + "doerak", + "dogma", + "dokzano", + "dokwerker", + "doling", + "dolphijn", + "dolven", + "dombo", + "dooraderd", + "dopeling", + "doping", + "draderig", + "drama", + "drenkbak", + "dreumes", + "drol", + "drug", + "duaal", + "dublin", + "duplicaat", + "durven", + "dusdanig", + "dutchbat", + "dutje", + "dutten", + "duur", + "duwwerk", + "dwaal", + "dweil", + "dwing", + "dyslexie", + "ecostroom", + "ecotaks", + "educatie", + "eeckhout", + "eede", + "eemland", + "eencellig", + "eeneiig", + "eenruiter", + "eenwinter", + "eerenberg", + "eerrover", + "eersel", + "eetmaal", + "efteling", + "egaal", + "egtberts", + "eickhoff", + "eidooier", + "eiland", + "eind", + "eisden", + "ekster", + "elburg", + "elevatie", + "elfkoppig", + "elfrink", + "elftal", + "elimineer", + "elleboog", + "elma", + "elodie", + "elsa", + "embleem", + "embolie", + "emoe", + "emonds", + "emplooi", + "enduro", + "enfin", + "engageer", + "entourage", + "entstof", + "epileer", + "episch", + "eppo", + "erasmus", + "erboven", + "erebaan", + "erelijst", + "ereronden", + "ereteken", + "erfhuis", + "erfwet", + "erger", + "erica", + "ermitage", + "erna", + "ernie", + "erts", + "ertussen", + "eruitzien", + "ervaar", + "erven", + "erwt", + "esbeek", + "escort", + "esdoorn", + "essing", + "etage", + "eter", + "ethanol", + "ethicus", + "etholoog", + "eufonisch", + "eurocent", + "evacuatie", + "exact", + "examen", + "executant", + "exen", + "exit", + "exogeen", + "exotherm", + "expeditie", + "expletief", + "expres", + "extase", + "extinctie", + "faal", + "faam", + "fabel", + "facultair", + "fakir", + "fakkel", + "faliekant", + "fallisch", + "famke", + "fanclub", + "fase", + "fatsoen", + "fauna", + "federaal", + "feedback", + "feest", + "feilbaar", + "feitelijk", + "felblauw", + "figurante", + "fiod", + "fitheid", + "fixeer", + "flap", + "fleece", + "fleur", + "flexibel", + "flits", + "flos", + "flow", + "fluweel", + "foezelen", + "fokkelman", + "fokpaard", + "fokvee", + "folder", + "follikel", + "folmer", + "folteraar", + "fooi", + "foolen", + "forfait", + "forint", + "formule", + "fornuis", + "fosfaat", + "foxtrot", + "foyer", + "fragiel", + "frater", + "freak", + "freddie", + "fregat", + "freon", + "frijnen", + "fructose", + "frunniken", + "fuiven", + "funshop", + "furieus", + "fysica", + "gadget", + "galder", + "galei", + "galg", + "galvlieg", + "galzuur", + "ganesh", + "gaswet", + "gaza", + "gazelle", + "geaaid", + "gebiecht", + "gebufferd", + "gedijd", + "geef", + "geflanst", + "gefreesd", + "gegaan", + "gegijzeld", + "gegniffel", + "gegraaid", + "gehikt", + "gehobbeld", + "gehucht", + "geiser", + "geiten", + "gekaakt", + "gekheid", + "gekijf", + "gekmakend", + "gekocht", + "gekskap", + "gekte", + "gelubberd", + "gemiddeld", + "geordend", + "gepoederd", + "gepuft", + "gerda", + "gerijpt", + "geseald", + "geshockt", + "gesierd", + "geslaagd", + "gesnaaid", + "getracht", + "getwijfel", + "geuit", + "gevecht", + "gevlagd", + "gewicht", + "gezaagd", + "gezocht", + "ghanees", + "giebelen", + "giechel", + "giepmans", + "gips", + "giraal", + "gistachtig", + "gitaar", + "glaasje", + "gletsjer", + "gleuf", + "glibberen", + "glijbaan", + "gloren", + "gluipen", + "gluren", + "gluur", + "gnoe", + "goddelijk", + "godgans", + "godschalk", + "godzalig", + "goeierd", + "gogme", + "goklustig", + "gokwereld", + "gonggrijp", + "gonje", + "goor", + "grabbel", + "graf", + "graveer", + "grif", + "grolleman", + "grom", + "groosman", + "grubben", + "gruijs", + "grut", + "guacamole", + "guido", + "guppy", + "haazen", + "hachelijk", + "haex", + "haiku", + "hakhout", + "hakken", + "hanegem", + "hans", + "hanteer", + "harrie", + "hazebroek", + "hedonist", + "heil", + "heineken", + "hekhuis", + "hekman", + "helbig", + "helga", + "helwegen", + "hengelaar", + "herkansen", + "hermafrodiet", + "hertaald", + "hiaat", + "hikspoors", + "hitachi", + "hitparade", + "hobo", + "hoeve", + "holocaust", + "hond", + "honnepon", + "hoogacht", + "hotelbed", + "hufter", + "hugo", + "huilbier", + "hulk", + "humus", + "huwbaar", + "huwelijk", + "hype", + "iconisch", + "idema", + "ideogram", + "idolaat", + "ietje", + "ijker", + "ijkheid", + "ijklijn", + "ijkmaat", + "ijkwezen", + "ijmuiden", + "ijsbox", + "ijsdag", + "ijselijk", + "ijskoud", + "ilse", + "immuun", + "impliceer", + "impuls", + "inbijten", + "inbuigen", + "indijken", + "induceer", + "indy", + "infecteer", + "inhaak", + "inkijk", + "inluiden", + "inmijnen", + "inoefenen", + "inpolder", + "inrijden", + "inslaan", + "invitatie", + "inwaaien", + "ionisch", + "isaac", + "isolatie", + "isotherm", + "isra", + "italiaan", + "ivoor", + "jacobs", + "jakob", + "jammen", + "jampot", + "jarig", + "jehova", + "jenever", + "jezus", + "joana", + "jobdienst", + "josua", + "joule", + "juich", + "jurk", + "juut", + "kaas", + "kabelaar", + "kabinet", + "kagenaar", + "kajuit", + "kalebas", + "kalm", + "kanjer", + "kapucijn", + "karregat", + "kart", + "katvanger", + "katwijk", + "kegelaar", + "keiachtig", + "keizer", + "kenletter", + "kerdijk", + "keus", + "kevlar", + "kezen", + "kickback", + "kieviet", + "kijken", + "kikvors", + "kilheid", + "kilobit", + "kilsdonk", + "kipschnitzel", + "kissebis", + "klad", + "klagelijk", + "klak", + "klapbaar", + "klaver", + "klene", + "klets", + "klijnhout", + "klit", + "klok", + "klonen", + "klotefilm", + "kluif", + "klumper", + "klus", + "knabbel", + "knagen", + "knaven", + "kneedbaar", + "knmi", + "knul", + "knus", + "kokhals", + "komiek", + "komkommer", + "kompaan", + "komrij", + "komvormig", + "koning", + "kopbal", + "kopklep", + "kopnagel", + "koppejan", + "koptekst", + "kopwand", + "koraal", + "kosmisch", + "kostbaar", + "kram", + "kraneveld", + "kras", + "kreling", + "krengen", + "kribbe", + "krik", + "kruid", + "krulbol", + "kuijper", + "kuipbank", + "kuit", + "kuiven", + "kutsmoes", + "kuub", + "kwak", + "kwatong", + "kwetsbaar", + "kwezelaar", + "kwijnen", + "kwik", + "kwinkslag", + "kwitantie", + "lading", + "lakbeits", + "lakken", + "laklaag", + "lakmoes", + "lakwijk", + "lamheid", + "lamp", + "lamsbout", + "lapmiddel", + "larve", + "laser", + "latijn", + "latuw", + "lawaai", + "laxeerpil", + "lebberen", + "ledeboer", + "leefbaar", + "leeman", + "lefdoekje", + "lefhebber", + "legboor", + "legsel", + "leguaan", + "leiplaat", + "lekdicht", + "lekrijden", + "leksteen", + "lenen", + "leraar", + "lesbienne", + "leugenaar", + "leut", + "lexicaal", + "lezing", + "lieten", + "liggeld", + "lijdzaam", + "lijk", + "lijmstang", + "lijnschip", + "likdoorn", + "likken", + "liksteen", + "limburg", + "link", + "linoleum", + "lipbloem", + "lipman", + "lispelen", + "lissabon", + "litanie", + "liturgie", + "lochem", + "loempia", + "loesje", + "logheid", + "lonen", + "lonneke", + "loom", + "loos", + "losbaar", + "loslaten", + "losplaats", + "loting", + "lotnummer", + "lots", + "louie", + "lourdes", + "louter", + "lowbudget", + "luijten", + "luikenaar", + "luilak", + "luipaard", + "luizenbos", + "lulkoek", + "lumen", + "lunzen", + "lurven", + "lutjeboer", + "luttel", + "lutz", + "luuk", + "luwte", + "luyendijk", + "lyceum", + "lynx", + "maakbaar", + "magdalena", + "malheid", + "manchet", + "manfred", + "manhaftig", + "mank", + "mantel", + "marion", + "marxist", + "masmeijer", + "massaal", + "matsen", + "matverf", + "matze", + "maude", + "mayonaise", + "mechanica", + "meifeest", + "melodie", + "meppelink", + "midvoor", + "midweeks", + "midzomer", + "miezel", + "mijnraad", + "minus", + "mirck", + "mirte", + "mispakken", + "misraden", + "miswassen", + "mitella", + "moker", + "molecule", + "mombakkes", + "moonen", + "mopperaar", + "moraal", + "morgana", + "mormel", + "mosselaar", + "motregen", + "mouw", + "mufheid", + "mutueel", + "muzelman", + "naaidoos", + "naald", + "nadeel", + "nadruk", + "nagy", + "nahon", + "naima", + "nairobi", + "napalm", + "napels", + "napijn", + "napoleon", + "narigheid", + "narratief", + "naseizoen", + "nasibal", + "navigatie", + "nawijn", + "negatief", + "nekletsel", + "nekwervel", + "neolatijn", + "neonataal", + "neptunus", + "nerd", + "nest", + "neuzelaar", + "nihiliste", + "nijenhuis", + "nijging", + "nijhoff", + "nijl", + "nijptang", + "nippel", + "nokkenas", + "noordam", + "noren", + "normaal", + "nottelman", + "notulant", + "nout", + "nuance", + "nuchter", + "nudorp", + "nulde", + "nullijn", + "nulmeting", + "nunspeet", + "nylon", + "obelisk", + "object", + "oblie", + "obsceen", + "occlusie", + "oceaan", + "ochtend", + "ockhuizen", + "oerdom", + "oergezond", + "oerlaag", + "oester", + "okhuijsen", + "olifant", + "olijfboer", + "omaans", + "ombudsman", + "omdat", + "omdijken", + "omdoen", + "omgebouwd", + "omkeer", + "omkomen", + "ommegaand", + "ommuren", + "omroep", + "omruil", + "omslaan", + "omsmeden", + "omvaar", + "onaardig", + "onedel", + "onenig", + "onheilig", + "onrecht", + "onroerend", + "ontcijfer", + "onthaal", + "ontvallen", + "ontzadeld", + "onzacht", + "onzin", + "onzuiver", + "oogappel", + "ooibos", + "ooievaar", + "ooit", + "oorarts", + "oorhanger", + "oorijzer", + "oorklep", + "oorschelp", + "oorworm", + "oorzaak", + "opdagen", + "opdien", + "opdweilen", + "opel", + "opgebaard", + "opinie", + "opjutten", + "opkijken", + "opklaar", + "opkuisen", + "opkwam", + "opnaaien", + "opossum", + "opsieren", + "opsmeer", + "optreden", + "opvijzel", + "opvlammen", + "opwind", + "oraal", + "orchidee", + "orkest", + "ossuarium", + "ostendorf", + "oublie", + "oudachtig", + "oudbakken", + "oudnoors", + "oudshoorn", + "oudtante", + "oven", + "over", + "oxidant", + "pablo", + "pacht", + "paktafel", + "pakzadel", + "paljas", + "panharing", + "papfles", + "paprika", + "parochie", + "paus", + "pauze", + "paviljoen", + "peek", + "pegel", + "peigeren", + "pekela", + "pendant", + "penibel", + "pepmiddel", + "peptalk", + "periferie", + "perron", + "pessarium", + "peter", + "petfles", + "petgat", + "peuk", + "pfeifer", + "picknick", + "pief", + "pieneman", + "pijlkruid", + "pijnacker", + "pijpelink", + "pikdonker", + "pikeer", + "pilaar", + "pionier", + "pipet", + "piscine", + "pissebed", + "pitchen", + "pixel", + "plamuren", + "plan", + "plausibel", + "plegen", + "plempen", + "pleonasme", + "plezant", + "podoloog", + "pofmouw", + "pokdalig", + "ponywagen", + "popachtig", + "popidool", + "porren", + "positie", + "potten", + "pralen", + "prezen", + "prijzen", + "privaat", + "proef", + "prooi", + "prozawerk", + "pruik", + "prul", + "publiceer", + "puck", + "puilen", + "pukkelig", + "pulveren", + "pupil", + "puppy", + "purmerend", + "pustjens", + "putemmer", + "puzzelaar", + "queenie", + "quiche", + "raam", + "raar", + "raat", + "raes", + "ralf", + "rally", + "ramona", + "ramselaar", + "ranonkel", + "rapen", + "rapunzel", + "rarekiek", + "rarigheid", + "rattenhol", + "ravage", + "reactie", + "recreant", + "redacteur", + "redster", + "reewild", + "regie", + "reijnders", + "rein", + "replica", + "revanche", + "rigide", + "rijbaan", + "rijdansen", + "rijgen", + "rijkdom", + "rijles", + "rijnwijn", + "rijpma", + "rijstafel", + "rijtaak", + "rijzwepen", + "rioleer", + "ripdeal", + "riphagen", + "riskant", + "rits", + "rivaal", + "robbedoes", + "robot", + "rockact", + "rodijk", + "rogier", + "rohypnol", + "rollaag", + "rolpaal", + "roltafel", + "roof", + "roon", + "roppen", + "rosbief", + "rosharig", + "rosielle", + "rotan", + "rotleven", + "rotten", + "rotvaart", + "royaal", + "royeer", + "rubato", + "ruby", + "ruche", + "rudge", + "ruggetje", + "rugnummer", + "rugpijn", + "rugtitel", + "rugzak", + "ruilbaar", + "ruis", + "ruit", + "rukwind", + "rulijs", + "rumoeren", + "rumsdorp", + "rumtaart", + "runnen", + "russchen", + "ruwkruid", + "saboteer", + "saksisch", + "salade", + "salpeter", + "sambabal", + "samsam", + "satelliet", + "satineer", + "saus", + "scampi", + "scarabee", + "scenario", + "schobben", + "schubben", + "scout", + "secessie", + "secondair", + "seculair", + "sediment", + "seeland", + "settelen", + "setwinst", + "sheriff", + "shiatsu", + "siciliaan", + "sidderaal", + "sigma", + "sijben", + "silvana", + "simkaart", + "sinds", + "situatie", + "sjaak", + "sjardijn", + "sjezen", + "sjor", + "skinhead", + "skylab", + "slamixen", + "sleijpen", + "slijkerig", + "slordig", + "slowaak", + "sluieren", + "smadelijk", + "smiecht", + "smoel", + "smos", + "smukken", + "snackcar", + "snavel", + "sneaker", + "sneu", + "snijdbaar", + "snit", + "snorder", + "soapbox", + "soetekouw", + "soigneren", + "sojaboon", + "solo", + "solvabel", + "somber", + "sommatie", + "soort", + "soppen", + "sopraan", + "soundbar", + "spanen", + "spawater", + "spijgat", + "spinaal", + "spionage", + "spiraal", + "spleet", + "splijt", + "spoed", + "sporen", + "spul", + "spuug", + "spuw", + "stalen", + "standaard", + "star", + "stefan", + "stencil", + "stijf", + "stil", + "stip", + "stopdas", + "stoten", + "stoven", + "straat", + "strobbe", + "strubbel", + "stucadoor", + "stuif", + "stukadoor", + "subhoofd", + "subregent", + "sudoku", + "sukade", + "sulfaat", + "surinaams", + "suus", + "syfilis", + "symboliek", + "sympathie", + "synagoge", + "synchroon", + "synergie", + "systeem", + "taanderij", + "tabak", + "tachtig", + "tackelen", + "taiwanees", + "talman", + "tamheid", + "tangaslip", + "taps", + "tarkan", + "tarwe", + "tasman", + "tatjana", + "taxameter", + "teil", + "teisman", + "telbaar", + "telco", + "telganger", + "telstar", + "tenant", + "tepel", + "terzet", + "testament", + "ticket", + "tiesinga", + "tijdelijk", + "tika", + "tiksel", + "tilleman", + "timbaal", + "tinsteen", + "tiplijn", + "tippelaar", + "tjirpen", + "toezeggen", + "tolbaas", + "tolgeld", + "tolhek", + "tolo", + "tolpoort", + "toltarief", + "tolvrij", + "tomaat", + "tondeuse", + "toog", + "tooi", + "toonbaar", + "toos", + "topclub", + "toppen", + "toptalent", + "topvrouw", + "toque", + "torment", + "tornado", + "tosti", + "totdat", + "toucheer", + "toulouse", + "tournedos", + "tout", + "trabant", + "tragedie", + "trailer", + "traject", + "traktaat", + "trauma", + "tray", + "trechter", + "tred", + "tref", + "treur", + "troebel", + "tros", + "trucage", + "truffel", + "tsaar", + "tucht", + "tuenter", + "tuitelig", + "tukje", + "tuktuk", + "tulp", + "tuma", + "tureluurs", + "twijfel", + "twitteren", + "tyfoon", + "typograaf", + "ugandees", + "uiachtig", + "uier", + "uisnipper", + "ultiem", + "unitair", + "uranium", + "urbaan", + "urendag", + "ursula", + "uurcirkel", + "uurglas", + "uzelf", + "vaat", + "vakantie", + "vakleraar", + "valbijl", + "valpartij", + "valreep", + "valuatie", + "vanmiddag", + "vanonder", + "varaan", + "varken", + "vaten", + "veenbes", + "veeteler", + "velgrem", + "vellekoop", + "velvet", + "veneberg", + "venlo", + "vent", + "venusberg", + "venw", + "veredeld", + "verf", + "verhaaf", + "vermaak", + "vernaaid", + "verraad", + "vers", + "veruit", + "verzaagd", + "vetachtig", + "vetlok", + "vetmesten", + "veto", + "vetrek", + "vetstaart", + "vetten", + "veurink", + "viaduct", + "vibrafoon", + "vicariaat", + "vieux", + "vieveen", + "vijfvoud", + "villa", + "vilt", + "vimmetje", + "vindbaar", + "vips", + "virtueel", + "visdieven", + "visee", + "visie", + "vlaag", + "vleugel", + "vmbo", + "vocht", + "voesenek", + "voicemail", + "voip", + "volg", + "vork", + "vorselaar", + "voyeur", + "vracht", + "vrekkig", + "vreten", + "vrije", + "vrozen", + "vrucht", + "vucht", + "vugt", + "vulkaan", + "vulmiddel", + "vulva", + "vuren", + "waas", + "wacht", + "wadvogel", + "wafel", + "waffel", + "walhalla", + "walnoot", + "walraven", + "wals", + "walvis", + "wandaad", + "wanen", + "wanmolen", + "want", + "warklomp", + "warm", + "wasachtig", + "wasteil", + "watt", + "webhandel", + "weblog", + "webpagina", + "webzine", + "wedereis", + "wedstrijd", + "weeda", + "weert", + "wegmaaien", + "wegscheer", + "wekelijks", + "wekken", + "wekroep", + "wektoon", + "weldaad", + "welwater", + "wendbaar", + "wenkbrauw", + "wens", + "wentelaar", + "wervel", + "wesseling", + "wetboek", + "wetmatig", + "whirlpool", + "wijbrands", + "wijdbeens", + "wijk", + "wijnbes", + "wijting", + "wild", + "wimpelen", + "wingebied", + "winplaats", + "winter", + "winzucht", + "wipstaart", + "wisgerhof", + "withaar", + "witmaker", + "wokkel", + "wolf", + "wonenden", + "woning", + "worden", + "worp", + "wortel", + "wrat", + "wrijf", + "wringen", + "yoghurt", + "ypsilon", + "zaaijer", + "zaak", + "zacharias", + "zakelijk", + "zakkam", + "zakwater", + "zalf", + "zalig", + "zaniken", + "zebracode", + "zeeblauw", + "zeef", + "zeegaand", + "zeeuw", + "zege", + "zegje", + "zeil", + "zesbaans", + "zesenhalf", + "zeskantig", + "zesmaal", + "zetbaas", + "zetpil", + "zeulen", + "ziezo", + "zigzag", + "zijaltaar", + "zijbeuk", + "zijlijn", + "zijmuur", + "zijn", + "zijwaarts", + "zijzelf", + "zilt", + "zimmerman", + "zinledig", + "zinnelijk", + "zionist", + "zitdag", + "zitruimte", + "zitzak", + "zoal", + "zodoende", + "zoekbots", + "zoem", + "zoiets", + "zojuist", + "zondaar", + "zotskap", + "zottebol", + "zucht", + "zuivel", + "zulk", + "zult", + "zuster", + "zuur", + "zweedijk", + "zwendel", + "zwepen", + "zwiep", + "zwijmel", + "zworen" + ]; +} diff --git a/cw_zano/lib/mnemonics/english.dart b/cw_zano/lib/mnemonics/english.dart new file mode 100644 index 000000000..fb464d04e --- /dev/null +++ b/cw_zano/lib/mnemonics/english.dart @@ -0,0 +1,1630 @@ +class EnglishMnemonics { + static const words = [ + "abbey", + "abducts", + "ability", + "ablaze", + "abnormal", + "abort", + "abrasive", + "absorb", + "abyss", + "academy", + "aces", + "aching", + "acidic", + "acoustic", + "acquire", + "across", + "actress", + "acumen", + "adapt", + "addicted", + "adept", + "adhesive", + "adjust", + "adopt", + "adrenalin", + "adult", + "adventure", + "aerial", + "afar", + "affair", + "afield", + "afloat", + "afoot", + "afraid", + "after", + "against", + "agenda", + "aggravate", + "agile", + "aglow", + "agnostic", + "agony", + "agreed", + "ahead", + "aided", + "ailments", + "aimless", + "airport", + "aisle", + "ajar", + "akin", + "alarms", + "album", + "alchemy", + "alerts", + "algebra", + "alkaline", + "alley", + "almost", + "aloof", + "alpine", + "already", + "also", + "altitude", + "alumni", + "always", + "amaze", + "ambush", + "amended", + "amidst", + "ammo", + "amnesty", + "among", + "amply", + "amused", + "anchor", + "android", + "anecdote", + "angled", + "ankle", + "annoyed", + "answers", + "antics", + "anvil", + "anxiety", + "anybody", + "apart", + "apex", + "aphid", + "aplomb", + "apology", + "apply", + "apricot", + "aptitude", + "aquarium", + "arbitrary", + "archer", + "ardent", + "arena", + "argue", + "arises", + "army", + "around", + "arrow", + "arsenic", + "artistic", + "ascend", + "ashtray", + "aside", + "asked", + "asleep", + "aspire", + "assorted", + "asylum", + "athlete", + "atlas", + "atom", + "atrium", + "attire", + "auburn", + "auctions", + "audio", + "august", + "aunt", + "austere", + "autumn", + "avatar", + "avidly", + "avoid", + "awakened", + "awesome", + "awful", + "awkward", + "awning", + "awoken", + "axes", + "axis", + "axle", + "aztec", + "azure", + "baby", + "bacon", + "badge", + "baffles", + "bagpipe", + "bailed", + "bakery", + "balding", + "bamboo", + "banjo", + "baptism", + "basin", + "batch", + "bawled", + "bays", + "because", + "beer", + "befit", + "begun", + "behind", + "being", + "below", + "bemused", + "benches", + "berries", + "bested", + "betting", + "bevel", + "beware", + "beyond", + "bias", + "bicycle", + "bids", + "bifocals", + "biggest", + "bikini", + "bimonthly", + "binocular", + "biology", + "biplane", + "birth", + "biscuit", + "bite", + "biweekly", + "blender", + "blip", + "bluntly", + "boat", + "bobsled", + "bodies", + "bogeys", + "boil", + "boldly", + "bomb", + "border", + "boss", + "both", + "bounced", + "bovine", + "bowling", + "boxes", + "boyfriend", + "broken", + "brunt", + "bubble", + "buckets", + "budget", + "buffet", + "bugs", + "building", + "bulb", + "bumper", + "bunch", + "business", + "butter", + "buying", + "buzzer", + "bygones", + "byline", + "bypass", + "cabin", + "cactus", + "cadets", + "cafe", + "cage", + "cajun", + "cake", + "calamity", + "camp", + "candy", + "casket", + "catch", + "cause", + "cavernous", + "cease", + "cedar", + "ceiling", + "cell", + "cement", + "cent", + "certain", + "chlorine", + "chrome", + "cider", + "cigar", + "cinema", + "circle", + "cistern", + "citadel", + "civilian", + "claim", + "click", + "clue", + "coal", + "cobra", + "cocoa", + "code", + "coexist", + "coffee", + "cogs", + "cohesive", + "coils", + "colony", + "comb", + "cool", + "copy", + "corrode", + "costume", + "cottage", + "cousin", + "cowl", + "criminal", + "cube", + "cucumber", + "cuddled", + "cuffs", + "cuisine", + "cunning", + "cupcake", + "custom", + "cycling", + "cylinder", + "cynical", + "dabbing", + "dads", + "daft", + "dagger", + "daily", + "damp", + "dangerous", + "dapper", + "darted", + "dash", + "dating", + "dauntless", + "dawn", + "daytime", + "dazed", + "debut", + "decay", + "dedicated", + "deepest", + "deftly", + "degrees", + "dehydrate", + "deity", + "dejected", + "delayed", + "demonstrate", + "dented", + "deodorant", + "depth", + "desk", + "devoid", + "dewdrop", + "dexterity", + "dialect", + "dice", + "diet", + "different", + "digit", + "dilute", + "dime", + "dinner", + "diode", + "diplomat", + "directed", + "distance", + "ditch", + "divers", + "dizzy", + "doctor", + "dodge", + "does", + "dogs", + "doing", + "dolphin", + "domestic", + "donuts", + "doorway", + "dormant", + "dosage", + "dotted", + "double", + "dove", + "down", + "dozen", + "dreams", + "drinks", + "drowning", + "drunk", + "drying", + "dual", + "dubbed", + "duckling", + "dude", + "duets", + "duke", + "dullness", + "dummy", + "dunes", + "duplex", + "duration", + "dusted", + "duties", + "dwarf", + "dwelt", + "dwindling", + "dying", + "dynamite", + "dyslexic", + "each", + "eagle", + "earth", + "easy", + "eating", + "eavesdrop", + "eccentric", + "echo", + "eclipse", + "economics", + "ecstatic", + "eden", + "edgy", + "edited", + "educated", + "eels", + "efficient", + "eggs", + "egotistic", + "eight", + "either", + "eject", + "elapse", + "elbow", + "eldest", + "eleven", + "elite", + "elope", + "else", + "eluded", + "emails", + "ember", + "emerge", + "emit", + "emotion", + "empty", + "emulate", + "energy", + "enforce", + "enhanced", + "enigma", + "enjoy", + "enlist", + "enmity", + "enough", + "enraged", + "ensign", + "entrance", + "envy", + "epoxy", + "equip", + "erase", + "erected", + "erosion", + "error", + "eskimos", + "espionage", + "essential", + "estate", + "etched", + "eternal", + "ethics", + "etiquette", + "evaluate", + "evenings", + "evicted", + "evolved", + "examine", + "excess", + "exhale", + "exit", + "exotic", + "exquisite", + "extra", + "exult", + "fabrics", + "factual", + "fading", + "fainted", + "faked", + "fall", + "family", + "fancy", + "farming", + "fatal", + "faulty", + "fawns", + "faxed", + "fazed", + "feast", + "february", + "federal", + "feel", + "feline", + "females", + "fences", + "ferry", + "festival", + "fetches", + "fever", + "fewest", + "fiat", + "fibula", + "fictional", + "fidget", + "fierce", + "fifteen", + "fight", + "films", + "firm", + "fishing", + "fitting", + "five", + "fixate", + "fizzle", + "fleet", + "flippant", + "flying", + "foamy", + "focus", + "foes", + "foggy", + "foiled", + "folding", + "fonts", + "foolish", + "fossil", + "fountain", + "fowls", + "foxes", + "foyer", + "framed", + "friendly", + "frown", + "fruit", + "frying", + "fudge", + "fuel", + "fugitive", + "fully", + "fuming", + "fungal", + "furnished", + "fuselage", + "future", + "fuzzy", + "gables", + "gadget", + "gags", + "gained", + "galaxy", + "gambit", + "gang", + "gasp", + "gather", + "gauze", + "gave", + "gawk", + "gaze", + "gearbox", + "gecko", + "geek", + "gels", + "gemstone", + "general", + "geometry", + "germs", + "gesture", + "getting", + "geyser", + "ghetto", + "ghost", + "giant", + "giddy", + "gifts", + "gigantic", + "gills", + "gimmick", + "ginger", + "girth", + "giving", + "glass", + "gleeful", + "glide", + "gnaw", + "gnome", + "goat", + "goblet", + "godfather", + "goes", + "goggles", + "going", + "goldfish", + "gone", + "goodbye", + "gopher", + "gorilla", + "gossip", + "gotten", + "gourmet", + "governing", + "gown", + "greater", + "grunt", + "guarded", + "guest", + "guide", + "gulp", + "gumball", + "guru", + "gusts", + "gutter", + "guys", + "gymnast", + "gypsy", + "gyrate", + "habitat", + "hacksaw", + "haggled", + "hairy", + "hamburger", + "happens", + "hashing", + "hatchet", + "haunted", + "having", + "hawk", + "haystack", + "hazard", + "hectare", + "hedgehog", + "heels", + "hefty", + "height", + "hemlock", + "hence", + "heron", + "hesitate", + "hexagon", + "hickory", + "hiding", + "highway", + "hijack", + "hiker", + "hills", + "himself", + "hinder", + "hippo", + "hire", + "history", + "hitched", + "hive", + "hoax", + "hobby", + "hockey", + "hoisting", + "hold", + "honked", + "hookup", + "hope", + "hornet", + "hospital", + "hotel", + "hounded", + "hover", + "howls", + "hubcaps", + "huddle", + "huge", + "hull", + "humid", + "hunter", + "hurried", + "husband", + "huts", + "hybrid", + "hydrogen", + "hyper", + "iceberg", + "icing", + "icon", + "identity", + "idiom", + "idled", + "idols", + "igloo", + "ignore", + "iguana", + "illness", + "imagine", + "imbalance", + "imitate", + "impel", + "inactive", + "inbound", + "incur", + "industrial", + "inexact", + "inflamed", + "ingested", + "initiate", + "injury", + "inkling", + "inline", + "inmate", + "innocent", + "inorganic", + "input", + "inquest", + "inroads", + "insult", + "intended", + "inundate", + "invoke", + "inwardly", + "ionic", + "irate", + "iris", + "irony", + "irritate", + "island", + "isolated", + "issued", + "italics", + "itches", + "items", + "itinerary", + "itself", + "ivory", + "jabbed", + "jackets", + "jaded", + "jagged", + "jailed", + "jamming", + "january", + "jargon", + "jaunt", + "javelin", + "jaws", + "jazz", + "jeans", + "jeers", + "jellyfish", + "jeopardy", + "jerseys", + "jester", + "jetting", + "jewels", + "jigsaw", + "jingle", + "jittery", + "jive", + "jobs", + "jockey", + "jogger", + "joining", + "joking", + "jolted", + "jostle", + "journal", + "joyous", + "jubilee", + "judge", + "juggled", + "juicy", + "jukebox", + "july", + "jump", + "junk", + "jury", + "justice", + "juvenile", + "kangaroo", + "karate", + "keep", + "kennel", + "kept", + "kernels", + "kettle", + "keyboard", + "kickoff", + "kidneys", + "king", + "kiosk", + "kisses", + "kitchens", + "kiwi", + "knapsack", + "knee", + "knife", + "knowledge", + "knuckle", + "koala", + "laboratory", + "ladder", + "lagoon", + "lair", + "lakes", + "lamb", + "language", + "laptop", + "large", + "last", + "later", + "launching", + "lava", + "lawsuit", + "layout", + "lazy", + "lectures", + "ledge", + "leech", + "left", + "legion", + "leisure", + "lemon", + "lending", + "leopard", + "lesson", + "lettuce", + "lexicon", + "liar", + "library", + "licks", + "lids", + "lied", + "lifestyle", + "light", + "likewise", + "lilac", + "limits", + "linen", + "lion", + "lipstick", + "liquid", + "listen", + "lively", + "loaded", + "lobster", + "locker", + "lodge", + "lofty", + "logic", + "loincloth", + "long", + "looking", + "lopped", + "lordship", + "losing", + "lottery", + "loudly", + "love", + "lower", + "loyal", + "lucky", + "luggage", + "lukewarm", + "lullaby", + "lumber", + "lunar", + "lurk", + "lush", + "luxury", + "lymph", + "lynx", + "lyrics", + "macro", + "madness", + "magically", + "mailed", + "major", + "makeup", + "malady", + "mammal", + "maps", + "masterful", + "match", + "maul", + "maverick", + "maximum", + "mayor", + "maze", + "meant", + "mechanic", + "medicate", + "meeting", + "megabyte", + "melting", + "memoir", + "menu", + "merger", + "mesh", + "metro", + "mews", + "mice", + "midst", + "mighty", + "mime", + "mirror", + "misery", + "mittens", + "mixture", + "moat", + "mobile", + "mocked", + "mohawk", + "moisture", + "molten", + "moment", + "money", + "moon", + "mops", + "morsel", + "mostly", + "motherly", + "mouth", + "movement", + "mowing", + "much", + "muddy", + "muffin", + "mugged", + "mullet", + "mumble", + "mundane", + "muppet", + "mural", + "musical", + "muzzle", + "myriad", + "mystery", + "myth", + "nabbing", + "nagged", + "nail", + "names", + "nanny", + "napkin", + "narrate", + "nasty", + "natural", + "nautical", + "navy", + "nearby", + "necklace", + "needed", + "negative", + "neither", + "neon", + "nephew", + "nerves", + "nestle", + "network", + "neutral", + "never", + "newt", + "nexus", + "nibs", + "niche", + "niece", + "nifty", + "nightly", + "nimbly", + "nineteen", + "nirvana", + "nitrogen", + "nobody", + "nocturnal", + "nodes", + "noises", + "nomad", + "noodles", + "northern", + "nostril", + "noted", + "nouns", + "novelty", + "nowhere", + "nozzle", + "nuance", + "nucleus", + "nudged", + "nugget", + "nuisance", + "null", + "number", + "nuns", + "nurse", + "nutshell", + "nylon", + "oaks", + "oars", + "oasis", + "oatmeal", + "obedient", + "object", + "obliged", + "obnoxious", + "observant", + "obtains", + "obvious", + "occur", + "ocean", + "october", + "odds", + "odometer", + "offend", + "often", + "oilfield", + "ointment", + "okay", + "older", + "olive", + "olympics", + "omega", + "omission", + "omnibus", + "onboard", + "oncoming", + "oneself", + "ongoing", + "onion", + "online", + "onslaught", + "onto", + "onward", + "oozed", + "opacity", + "opened", + "opposite", + "optical", + "opus", + "orange", + "orbit", + "orchid", + "orders", + "organs", + "origin", + "ornament", + "orphans", + "oscar", + "ostrich", + "otherwise", + "otter", + "ouch", + "ought", + "ounce", + "ourselves", + "oust", + "outbreak", + "oval", + "oven", + "owed", + "owls", + "owner", + "oxidant", + "oxygen", + "oyster", + "ozone", + "pact", + "paddles", + "pager", + "pairing", + "palace", + "pamphlet", + "pancakes", + "paper", + "paradise", + "pastry", + "patio", + "pause", + "pavements", + "pawnshop", + "payment", + "peaches", + "pebbles", + "peculiar", + "pedantic", + "peeled", + "pegs", + "pelican", + "pencil", + "people", + "pepper", + "perfect", + "pests", + "petals", + "phase", + "pheasants", + "phone", + "phrases", + "physics", + "piano", + "picked", + "pierce", + "pigment", + "piloted", + "pimple", + "pinched", + "pioneer", + "pipeline", + "pirate", + "pistons", + "pitched", + "pivot", + "pixels", + "pizza", + "playful", + "pledge", + "pliers", + "plotting", + "plus", + "plywood", + "poaching", + "pockets", + "podcast", + "poetry", + "point", + "poker", + "polar", + "ponies", + "pool", + "popular", + "portents", + "possible", + "potato", + "pouch", + "poverty", + "powder", + "pram", + "present", + "pride", + "problems", + "pruned", + "prying", + "psychic", + "public", + "puck", + "puddle", + "puffin", + "pulp", + "pumpkins", + "punch", + "puppy", + "purged", + "push", + "putty", + "puzzled", + "pylons", + "pyramid", + "python", + "queen", + "quick", + "quote", + "rabbits", + "racetrack", + "radar", + "rafts", + "rage", + "railway", + "raking", + "rally", + "ramped", + "randomly", + "rapid", + "rarest", + "rash", + "rated", + "ravine", + "rays", + "razor", + "react", + "rebel", + "recipe", + "reduce", + "reef", + "refer", + "regular", + "reheat", + "reinvest", + "rejoices", + "rekindle", + "relic", + "remedy", + "renting", + "reorder", + "repent", + "request", + "reruns", + "rest", + "return", + "reunion", + "revamp", + "rewind", + "rhino", + "rhythm", + "ribbon", + "richly", + "ridges", + "rift", + "rigid", + "rims", + "ringing", + "riots", + "ripped", + "rising", + "ritual", + "river", + "roared", + "robot", + "rockets", + "rodent", + "rogue", + "roles", + "romance", + "roomy", + "roped", + "roster", + "rotate", + "rounded", + "rover", + "rowboat", + "royal", + "ruby", + "rudely", + "ruffled", + "rugged", + "ruined", + "ruling", + "rumble", + "runway", + "rural", + "rustled", + "ruthless", + "sabotage", + "sack", + "sadness", + "safety", + "saga", + "sailor", + "sake", + "salads", + "sample", + "sanity", + "sapling", + "sarcasm", + "sash", + "satin", + "saucepan", + "saved", + "sawmill", + "saxophone", + "sayings", + "scamper", + "scenic", + "school", + "science", + "scoop", + "scrub", + "scuba", + "seasons", + "second", + "sedan", + "seeded", + "segments", + "seismic", + "selfish", + "semifinal", + "sensible", + "september", + "sequence", + "serving", + "session", + "setup", + "seventh", + "sewage", + "shackles", + "shelter", + "shipped", + "shocking", + "shrugged", + "shuffled", + "shyness", + "siblings", + "sickness", + "sidekick", + "sieve", + "sifting", + "sighting", + "silk", + "simplest", + "sincerely", + "sipped", + "siren", + "situated", + "sixteen", + "sizes", + "skater", + "skew", + "skirting", + "skulls", + "skydive", + "slackens", + "sleepless", + "slid", + "slower", + "slug", + "smash", + "smelting", + "smidgen", + "smog", + "smuggled", + "snake", + "sneeze", + "sniff", + "snout", + "snug", + "soapy", + "sober", + "soccer", + "soda", + "software", + "soggy", + "soil", + "solved", + "somewhere", + "sonic", + "soothe", + "soprano", + "sorry", + "southern", + "sovereign", + "sowed", + "soya", + "space", + "speedy", + "sphere", + "spiders", + "splendid", + "spout", + "sprig", + "spud", + "spying", + "square", + "stacking", + "stellar", + "stick", + "stockpile", + "strained", + "stunning", + "stylishly", + "subtly", + "succeed", + "suddenly", + "suede", + "suffice", + "sugar", + "suitcase", + "sulking", + "summon", + "sunken", + "superior", + "surfer", + "sushi", + "suture", + "swagger", + "swept", + "swiftly", + "sword", + "swung", + "syllabus", + "symptoms", + "syndrome", + "syringe", + "system", + "taboo", + "tacit", + "tadpoles", + "tagged", + "tail", + "taken", + "talent", + "tamper", + "tanks", + "tapestry", + "tarnished", + "tasked", + "tattoo", + "taunts", + "tavern", + "tawny", + "taxi", + "teardrop", + "technical", + "tedious", + "teeming", + "tell", + "template", + "tender", + "tepid", + "tequila", + "terminal", + "testing", + "tether", + "textbook", + "thaw", + "theatrics", + "thirsty", + "thorn", + "threaten", + "thumbs", + "thwart", + "ticket", + "tidy", + "tiers", + "tiger", + "tilt", + "timber", + "tinted", + "tipsy", + "tirade", + "tissue", + "titans", + "toaster", + "tobacco", + "today", + "toenail", + "toffee", + "together", + "toilet", + "token", + "tolerant", + "tomorrow", + "tonic", + "toolbox", + "topic", + "torch", + "tossed", + "total", + "touchy", + "towel", + "toxic", + "toyed", + "trash", + "trendy", + "tribal", + "trolling", + "truth", + "trying", + "tsunami", + "tubes", + "tucks", + "tudor", + "tuesday", + "tufts", + "tugs", + "tuition", + "tulips", + "tumbling", + "tunnel", + "turnip", + "tusks", + "tutor", + "tuxedo", + "twang", + "tweezers", + "twice", + "twofold", + "tycoon", + "typist", + "tyrant", + "ugly", + "ulcers", + "ultimate", + "umbrella", + "umpire", + "unafraid", + "unbending", + "uncle", + "under", + "uneven", + "unfit", + "ungainly", + "unhappy", + "union", + "unjustly", + "unknown", + "unlikely", + "unmask", + "unnoticed", + "unopened", + "unplugs", + "unquoted", + "unrest", + "unsafe", + "until", + "unusual", + "unveil", + "unwind", + "unzip", + "upbeat", + "upcoming", + "update", + "upgrade", + "uphill", + "upkeep", + "upload", + "upon", + "upper", + "upright", + "upstairs", + "uptight", + "upwards", + "urban", + "urchins", + "urgent", + "usage", + "useful", + "usher", + "using", + "usual", + "utensils", + "utility", + "utmost", + "utopia", + "uttered", + "vacation", + "vague", + "vain", + "value", + "vampire", + "vane", + "vapidly", + "vary", + "vastness", + "vats", + "vaults", + "vector", + "veered", + "vegan", + "vehicle", + "vein", + "velvet", + "venomous", + "verification", + "vessel", + "veteran", + "vexed", + "vials", + "vibrate", + "victim", + "video", + "viewpoint", + "vigilant", + "viking", + "village", + "vinegar", + "violin", + "vipers", + "virtual", + "visited", + "vitals", + "vivid", + "vixen", + "vocal", + "vogue", + "voice", + "volcano", + "vortex", + "voted", + "voucher", + "vowels", + "voyage", + "vulture", + "wade", + "waffle", + "wagtail", + "waist", + "waking", + "wallets", + "wanted", + "warped", + "washing", + "water", + "waveform", + "waxing", + "wayside", + "weavers", + "website", + "wedge", + "weekday", + "weird", + "welders", + "went", + "wept", + "were", + "western", + "wetsuit", + "whale", + "when", + "whipped", + "whole", + "wickets", + "width", + "wield", + "wife", + "wiggle", + "wildly", + "winter", + "wipeout", + "wiring", + "wise", + "withdrawn", + "wives", + "wizard", + "wobbly", + "woes", + "woken", + "wolf", + "womanly", + "wonders", + "woozy", + "worry", + "wounded", + "woven", + "wrap", + "wrist", + "wrong", + "yacht", + "yahoo", + "yanks", + "yard", + "yawning", + "yearbook", + "yellow", + "yesterday", + "yeti", + "yields", + "yodel", + "yoga", + "younger", + "yoyo", + "zapped", + "zeal", + "zebra", + "zero", + "zesty", + "zigzags", + "zinger", + "zippers", + "zodiac", + "zombie", + "zones", + "zoom" + ]; +} diff --git a/cw_zano/lib/mnemonics/french.dart b/cw_zano/lib/mnemonics/french.dart new file mode 100644 index 000000000..76d556f6a --- /dev/null +++ b/cw_zano/lib/mnemonics/french.dart @@ -0,0 +1,1630 @@ +class FrenchMnemonics { + static const words = [ + "abandon", + "abattre", + "aboi", + "abolir", + "aborder", + "abri", + "absence", + "absolu", + "abuser", + "acacia", + "acajou", + "accent", + "accord", + "accrocher", + "accuser", + "acerbe", + "achat", + "acheter", + "acide", + "acier", + "acquis", + "acte", + "action", + "adage", + "adepte", + "adieu", + "admettre", + "admis", + "adorer", + "adresser", + "aduler", + "affaire", + "affirmer", + "afin", + "agacer", + "agent", + "agir", + "agiter", + "agonie", + "agrafe", + "agrume", + "aider", + "aigle", + "aigre", + "aile", + "ailleurs", + "aimant", + "aimer", + "ainsi", + "aise", + "ajouter", + "alarme", + "album", + "alcool", + "alerte", + "algue", + "alibi", + "aller", + "allumer", + "alors", + "amande", + "amener", + "amie", + "amorcer", + "amour", + "ample", + "amuser", + "ananas", + "ancien", + "anglais", + "angoisse", + "animal", + "anneau", + "annoncer", + "apercevoir", + "apparence", + "appel", + "apporter", + "apprendre", + "appuyer", + "arbre", + "arcade", + "arceau", + "arche", + "ardeur", + "argent", + "argile", + "aride", + "arme", + "armure", + "arracher", + "arriver", + "article", + "asile", + "aspect", + "assaut", + "assez", + "assister", + "assurer", + "astre", + "astuce", + "atlas", + "atroce", + "attacher", + "attente", + "attirer", + "aube", + "aucun", + "audace", + "auparavant", + "auquel", + "aurore", + "aussi", + "autant", + "auteur", + "autoroute", + "autre", + "aval", + "avant", + "avec", + "avenir", + "averse", + "aveu", + "avide", + "avion", + "avis", + "avoir", + "avouer", + "avril", + "azote", + "azur", + "badge", + "bagage", + "bague", + "bain", + "baisser", + "balai", + "balcon", + "balise", + "balle", + "bambou", + "banane", + "banc", + "bandage", + "banjo", + "banlieue", + "bannir", + "banque", + "baobab", + "barbe", + "barque", + "barrer", + "bassine", + "bataille", + "bateau", + "battre", + "baver", + "bavoir", + "bazar", + "beau", + "beige", + "berger", + "besoin", + "beurre", + "biais", + "biceps", + "bidule", + "bien", + "bijou", + "bilan", + "billet", + "blanc", + "blason", + "bleu", + "bloc", + "blond", + "bocal", + "boire", + "boiserie", + "boiter", + "bonbon", + "bondir", + "bonheur", + "bordure", + "borgne", + "borner", + "bosse", + "bouche", + "bouder", + "bouger", + "boule", + "bourse", + "bout", + "boxe", + "brader", + "braise", + "branche", + "braquer", + "bras", + "brave", + "brebis", + "brevet", + "brider", + "briller", + "brin", + "brique", + "briser", + "broche", + "broder", + "bronze", + "brosser", + "brouter", + "bruit", + "brute", + "budget", + "buffet", + "bulle", + "bureau", + "buriner", + "buste", + "buter", + "butiner", + "cabas", + "cabinet", + "cabri", + "cacao", + "cacher", + "cadeau", + "cadre", + "cage", + "caisse", + "caler", + "calme", + "camarade", + "camion", + "campagne", + "canal", + "canif", + "capable", + "capot", + "carat", + "caresser", + "carie", + "carpe", + "cartel", + "casier", + "casque", + "casserole", + "cause", + "cavale", + "cave", + "ceci", + "cela", + "celui", + "cendre", + "cent", + "cependant", + "cercle", + "cerise", + "cerner", + "certes", + "cerveau", + "cesser", + "chacun", + "chair", + "chaleur", + "chamois", + "chanson", + "chaque", + "charge", + "chasse", + "chat", + "chaud", + "chef", + "chemin", + "cheveu", + "chez", + "chicane", + "chien", + "chiffre", + "chiner", + "chiot", + "chlore", + "choc", + "choix", + "chose", + "chou", + "chute", + "cibler", + "cidre", + "ciel", + "cigale", + "cinq", + "cintre", + "cirage", + "cirque", + "ciseau", + "citation", + "citer", + "citron", + "civet", + "clairon", + "clan", + "classe", + "clavier", + "clef", + "climat", + "cloche", + "cloner", + "clore", + "clos", + "clou", + "club", + "cobra", + "cocon", + "coiffer", + "coin", + "colline", + "colon", + "combat", + "comme", + "compte", + "conclure", + "conduire", + "confier", + "connu", + "conseil", + "contre", + "convenir", + "copier", + "cordial", + "cornet", + "corps", + "cosmos", + "coton", + "couche", + "coude", + "couler", + "coupure", + "cour", + "couteau", + "couvrir", + "crabe", + "crainte", + "crampe", + "cran", + "creuser", + "crever", + "crier", + "crime", + "crin", + "crise", + "crochet", + "croix", + "cruel", + "cuisine", + "cuite", + "culot", + "culte", + "cumul", + "cure", + "curieux", + "cuve", + "dame", + "danger", + "dans", + "davantage", + "debout", + "dedans", + "dehors", + "delta", + "demain", + "demeurer", + "demi", + "dense", + "dent", + "depuis", + "dernier", + "descendre", + "dessus", + "destin", + "dette", + "deuil", + "deux", + "devant", + "devenir", + "devin", + "devoir", + "dicton", + "dieu", + "difficile", + "digestion", + "digue", + "diluer", + "dimanche", + "dinde", + "diode", + "dire", + "diriger", + "discours", + "disposer", + "distance", + "divan", + "divers", + "docile", + "docteur", + "dodu", + "dogme", + "doigt", + "dominer", + "donation", + "donjon", + "donner", + "dopage", + "dorer", + "dormir", + "doseur", + "douane", + "double", + "douche", + "douleur", + "doute", + "doux", + "douzaine", + "draguer", + "drame", + "drap", + "dresser", + "droit", + "duel", + "dune", + "duper", + "durant", + "durcir", + "durer", + "eaux", + "effacer", + "effet", + "effort", + "effrayant", + "elle", + "embrasser", + "emmener", + "emparer", + "empire", + "employer", + "emporter", + "enclos", + "encore", + "endive", + "endormir", + "endroit", + "enduit", + "enfant", + "enfermer", + "enfin", + "enfler", + "enfoncer", + "enfuir", + "engager", + "engin", + "enjeu", + "enlever", + "ennemi", + "ennui", + "ensemble", + "ensuite", + "entamer", + "entendre", + "entier", + "entourer", + "entre", + "envelopper", + "envie", + "envoyer", + "erreur", + "escalier", + "espace", + "espoir", + "esprit", + "essai", + "essor", + "essuyer", + "estimer", + "exact", + "examiner", + "excuse", + "exemple", + "exiger", + "exil", + "exister", + "exode", + "expliquer", + "exposer", + "exprimer", + "extase", + "fable", + "facette", + "facile", + "fade", + "faible", + "faim", + "faire", + "fait", + "falloir", + "famille", + "faner", + "farce", + "farine", + "fatigue", + "faucon", + "faune", + "faute", + "faux", + "faveur", + "favori", + "faxer", + "feinter", + "femme", + "fendre", + "fente", + "ferme", + "festin", + "feuille", + "feutre", + "fiable", + "fibre", + "ficher", + "fier", + "figer", + "figure", + "filet", + "fille", + "filmer", + "fils", + "filtre", + "final", + "finesse", + "finir", + "fiole", + "firme", + "fixe", + "flacon", + "flair", + "flamme", + "flan", + "flaque", + "fleur", + "flocon", + "flore", + "flot", + "flou", + "fluide", + "fluor", + "flux", + "focus", + "foin", + "foire", + "foison", + "folie", + "fonction", + "fondre", + "fonte", + "force", + "forer", + "forger", + "forme", + "fort", + "fosse", + "fouet", + "fouine", + "foule", + "four", + "foyer", + "frais", + "franc", + "frapper", + "freiner", + "frimer", + "friser", + "frite", + "froid", + "froncer", + "fruit", + "fugue", + "fuir", + "fuite", + "fumer", + "fureur", + "furieux", + "fuser", + "fusil", + "futile", + "futur", + "gagner", + "gain", + "gala", + "galet", + "galop", + "gamme", + "gant", + "garage", + "garde", + "garer", + "gauche", + "gaufre", + "gaule", + "gaver", + "gazon", + "geler", + "genou", + "genre", + "gens", + "gercer", + "germer", + "geste", + "gibier", + "gicler", + "gilet", + "girafe", + "givre", + "glace", + "glisser", + "globe", + "gloire", + "gluant", + "gober", + "golf", + "gommer", + "gorge", + "gosier", + "goutte", + "grain", + "gramme", + "grand", + "gras", + "grave", + "gredin", + "griffure", + "griller", + "gris", + "gronder", + "gros", + "grotte", + "groupe", + "grue", + "guerrier", + "guetter", + "guider", + "guise", + "habiter", + "hache", + "haie", + "haine", + "halte", + "hamac", + "hanche", + "hangar", + "hanter", + "haras", + "hareng", + "harpe", + "hasard", + "hausse", + "haut", + "havre", + "herbe", + "heure", + "hibou", + "hier", + "histoire", + "hiver", + "hochet", + "homme", + "honneur", + "honte", + "horde", + "horizon", + "hormone", + "houle", + "housse", + "hublot", + "huile", + "huit", + "humain", + "humble", + "humide", + "humour", + "hurler", + "idole", + "igloo", + "ignorer", + "illusion", + "image", + "immense", + "immobile", + "imposer", + "impression", + "incapable", + "inconnu", + "index", + "indiquer", + "infime", + "injure", + "inox", + "inspirer", + "instant", + "intention", + "intime", + "inutile", + "inventer", + "inviter", + "iode", + "iris", + "issue", + "ivre", + "jade", + "jadis", + "jamais", + "jambe", + "janvier", + "jardin", + "jauge", + "jaunisse", + "jeter", + "jeton", + "jeudi", + "jeune", + "joie", + "joindre", + "joli", + "joueur", + "journal", + "judo", + "juge", + "juillet", + "juin", + "jument", + "jungle", + "jupe", + "jupon", + "jurer", + "juron", + "jury", + "jusque", + "juste", + "kayak", + "ketchup", + "kilo", + "kiwi", + "koala", + "label", + "lacet", + "lacune", + "laine", + "laisse", + "lait", + "lame", + "lancer", + "lande", + "laque", + "lard", + "largeur", + "larme", + "larve", + "lasso", + "laver", + "lendemain", + "lentement", + "lequel", + "lettre", + "leur", + "lever", + "levure", + "liane", + "libre", + "lien", + "lier", + "lieutenant", + "ligne", + "ligoter", + "liguer", + "limace", + "limer", + "limite", + "lingot", + "lion", + "lire", + "lisser", + "litre", + "livre", + "lobe", + "local", + "logis", + "loin", + "loisir", + "long", + "loque", + "lors", + "lotus", + "louer", + "loup", + "lourd", + "louve", + "loyer", + "lubie", + "lucide", + "lueur", + "luge", + "luire", + "lundi", + "lune", + "lustre", + "lutin", + "lutte", + "luxe", + "machine", + "madame", + "magie", + "magnifique", + "magot", + "maigre", + "main", + "mairie", + "maison", + "malade", + "malheur", + "malin", + "manche", + "manger", + "manier", + "manoir", + "manquer", + "marche", + "mardi", + "marge", + "mariage", + "marquer", + "mars", + "masque", + "masse", + "matin", + "mauvais", + "meilleur", + "melon", + "membre", + "menacer", + "mener", + "mensonge", + "mentir", + "menu", + "merci", + "merlu", + "mesure", + "mettre", + "meuble", + "meunier", + "meute", + "miche", + "micro", + "midi", + "miel", + "miette", + "mieux", + "milieu", + "mille", + "mimer", + "mince", + "mineur", + "ministre", + "minute", + "mirage", + "miroir", + "miser", + "mite", + "mixte", + "mobile", + "mode", + "module", + "moins", + "mois", + "moment", + "momie", + "monde", + "monsieur", + "monter", + "moquer", + "moral", + "morceau", + "mordre", + "morose", + "morse", + "mortier", + "morue", + "motif", + "motte", + "moudre", + "moule", + "mourir", + "mousse", + "mouton", + "mouvement", + "moyen", + "muer", + "muette", + "mugir", + "muguet", + "mulot", + "multiple", + "munir", + "muret", + "muse", + "musique", + "muter", + "nacre", + "nager", + "nain", + "naissance", + "narine", + "narrer", + "naseau", + "nasse", + "nation", + "nature", + "naval", + "navet", + "naviguer", + "navrer", + "neige", + "nerf", + "nerveux", + "neuf", + "neutre", + "neuve", + "neveu", + "niche", + "nier", + "niveau", + "noble", + "noce", + "nocif", + "noir", + "nomade", + "nombre", + "nommer", + "nord", + "norme", + "notaire", + "notice", + "notre", + "nouer", + "nougat", + "nourrir", + "nous", + "nouveau", + "novice", + "noyade", + "noyer", + "nuage", + "nuance", + "nuire", + "nuit", + "nulle", + "nuque", + "oasis", + "objet", + "obliger", + "obscur", + "observer", + "obtenir", + "obus", + "occasion", + "occuper", + "ocre", + "octet", + "odeur", + "odorat", + "offense", + "officier", + "offrir", + "ogive", + "oiseau", + "olive", + "ombre", + "onctueux", + "onduler", + "ongle", + "onze", + "opter", + "option", + "orageux", + "oral", + "orange", + "orbite", + "ordinaire", + "ordre", + "oreille", + "organe", + "orgie", + "orgueil", + "orient", + "origan", + "orner", + "orteil", + "ortie", + "oser", + "osselet", + "otage", + "otarie", + "ouate", + "oublier", + "ouest", + "ours", + "outil", + "outre", + "ouvert", + "ouvrir", + "ovale", + "ozone", + "pacte", + "page", + "paille", + "pain", + "paire", + "paix", + "palace", + "palissade", + "palmier", + "palpiter", + "panda", + "panneau", + "papa", + "papier", + "paquet", + "parc", + "pardi", + "parfois", + "parler", + "parmi", + "parole", + "partir", + "parvenir", + "passer", + "pastel", + "patin", + "patron", + "paume", + "pause", + "pauvre", + "paver", + "pavot", + "payer", + "pays", + "peau", + "peigne", + "peinture", + "pelage", + "pelote", + "pencher", + "pendre", + "penser", + "pente", + "percer", + "perdu", + "perle", + "permettre", + "personne", + "perte", + "peser", + "pesticide", + "petit", + "peuple", + "peur", + "phase", + "photo", + "phrase", + "piano", + "pied", + "pierre", + "pieu", + "pile", + "pilier", + "pilote", + "pilule", + "piment", + "pincer", + "pinson", + "pinte", + "pion", + "piquer", + "pirate", + "pire", + "piste", + "piton", + "pitre", + "pivot", + "pizza", + "placer", + "plage", + "plaire", + "plan", + "plaque", + "plat", + "plein", + "pleurer", + "pliage", + "plier", + "plonger", + "plot", + "pluie", + "plume", + "plus", + "pneu", + "poche", + "podium", + "poids", + "poil", + "point", + "poire", + "poison", + "poitrine", + "poivre", + "police", + "pollen", + "pomme", + "pompier", + "poncer", + "pondre", + "pont", + "portion", + "poser", + "position", + "possible", + "poste", + "potage", + "potin", + "pouce", + "poudre", + "poulet", + "poumon", + "poupe", + "pour", + "pousser", + "poutre", + "pouvoir", + "prairie", + "premier", + "prendre", + "presque", + "preuve", + "prier", + "primeur", + "prince", + "prison", + "priver", + "prix", + "prochain", + "produire", + "profond", + "proie", + "projet", + "promener", + "prononcer", + "propre", + "prose", + "prouver", + "prune", + "public", + "puce", + "pudeur", + "puiser", + "pull", + "pulpe", + "puma", + "punir", + "purge", + "putois", + "quand", + "quartier", + "quasi", + "quatre", + "quel", + "question", + "queue", + "quiche", + "quille", + "quinze", + "quitter", + "quoi", + "rabais", + "raboter", + "race", + "racheter", + "racine", + "racler", + "raconter", + "radar", + "radio", + "rafale", + "rage", + "ragot", + "raideur", + "raie", + "rail", + "raison", + "ramasser", + "ramener", + "rampe", + "rance", + "rang", + "rapace", + "rapide", + "rapport", + "rarement", + "rasage", + "raser", + "rasoir", + "rassurer", + "rater", + "ratio", + "rature", + "ravage", + "ravir", + "rayer", + "rayon", + "rebond", + "recevoir", + "recherche", + "record", + "reculer", + "redevenir", + "refuser", + "regard", + "regretter", + "rein", + "rejeter", + "rejoindre", + "relation", + "relever", + "religion", + "remarquer", + "remettre", + "remise", + "remonter", + "remplir", + "remuer", + "rencontre", + "rendre", + "renier", + "renoncer", + "rentrer", + "renverser", + "repas", + "repli", + "reposer", + "reproche", + "requin", + "respect", + "ressembler", + "reste", + "retard", + "retenir", + "retirer", + "retour", + "retrouver", + "revenir", + "revoir", + "revue", + "rhume", + "ricaner", + "riche", + "rideau", + "ridicule", + "rien", + "rigide", + "rincer", + "rire", + "risquer", + "rituel", + "rivage", + "rive", + "robe", + "robot", + "robuste", + "rocade", + "roche", + "rodeur", + "rogner", + "roman", + "rompre", + "ronce", + "rondeur", + "ronger", + "roque", + "rose", + "rosir", + "rotation", + "rotule", + "roue", + "rouge", + "rouler", + "route", + "ruban", + "rubis", + "ruche", + "rude", + "ruelle", + "ruer", + "rugby", + "rugir", + "ruine", + "rumeur", + "rural", + "ruse", + "rustre", + "sable", + "sabot", + "sabre", + "sacre", + "sage", + "saint", + "saisir", + "salade", + "salive", + "salle", + "salon", + "salto", + "salut", + "salve", + "samba", + "sandale", + "sanguin", + "sapin", + "sarcasme", + "satisfaire", + "sauce", + "sauf", + "sauge", + "saule", + "sauna", + "sauter", + "sauver", + "savoir", + "science", + "scoop", + "score", + "second", + "secret", + "secte", + "seigneur", + "sein", + "seize", + "selle", + "selon", + "semaine", + "sembler", + "semer", + "semis", + "sensuel", + "sentir", + "sept", + "serpe", + "serrer", + "sertir", + "service", + "seuil", + "seulement", + "short", + "sien", + "sigle", + "signal", + "silence", + "silo", + "simple", + "singe", + "sinon", + "sinus", + "sioux", + "sirop", + "site", + "situation", + "skier", + "snob", + "sobre", + "social", + "socle", + "sodium", + "soigner", + "soir", + "soixante", + "soja", + "solaire", + "soldat", + "soleil", + "solide", + "solo", + "solvant", + "sombre", + "somme", + "somnoler", + "sondage", + "songeur", + "sonner", + "sorte", + "sosie", + "sottise", + "souci", + "soudain", + "souffrir", + "souhaiter", + "soulever", + "soumettre", + "soupe", + "sourd", + "soustraire", + "soutenir", + "souvent", + "soyeux", + "spectacle", + "sport", + "stade", + "stagiaire", + "stand", + "star", + "statue", + "stock", + "stop", + "store", + "style", + "suave", + "subir", + "sucre", + "suer", + "suffire", + "suie", + "suite", + "suivre", + "sujet", + "sulfite", + "supposer", + "surf", + "surprendre", + "surtout", + "surveiller", + "tabac", + "table", + "tabou", + "tache", + "tacler", + "tacot", + "tact", + "taie", + "taille", + "taire", + "talon", + "talus", + "tandis", + "tango", + "tanin", + "tant", + "taper", + "tapis", + "tard", + "tarif", + "tarot", + "tarte", + "tasse", + "taureau", + "taux", + "taverne", + "taxer", + "taxi", + "tellement", + "temple", + "tendre", + "tenir", + "tenter", + "tenu", + "terme", + "ternir", + "terre", + "test", + "texte", + "thym", + "tibia", + "tiers", + "tige", + "tipi", + "tique", + "tirer", + "tissu", + "titre", + "toast", + "toge", + "toile", + "toiser", + "toiture", + "tomber", + "tome", + "tonne", + "tonte", + "toque", + "torse", + "tortue", + "totem", + "toucher", + "toujours", + "tour", + "tousser", + "tout", + "toux", + "trace", + "train", + "trame", + "tranquille", + "travail", + "trembler", + "trente", + "tribu", + "trier", + "trio", + "tripe", + "triste", + "troc", + "trois", + "tromper", + "tronc", + "trop", + "trotter", + "trouer", + "truc", + "truite", + "tuba", + "tuer", + "tuile", + "turbo", + "tutu", + "tuyau", + "type", + "union", + "unique", + "unir", + "unisson", + "untel", + "urne", + "usage", + "user", + "usiner", + "usure", + "utile", + "vache", + "vague", + "vaincre", + "valeur", + "valoir", + "valser", + "valve", + "vampire", + "vaseux", + "vaste", + "veau", + "veille", + "veine", + "velours", + "velu", + "vendre", + "venir", + "vent", + "venue", + "verbe", + "verdict", + "version", + "vertige", + "verve", + "veste", + "veto", + "vexer", + "vice", + "victime", + "vide", + "vieil", + "vieux", + "vigie", + "vigne", + "ville", + "vingt", + "violent", + "virer", + "virus", + "visage", + "viser", + "visite", + "visuel", + "vitamine", + "vitrine", + "vivant", + "vivre", + "vocal", + "vodka", + "vogue", + "voici", + "voile", + "voir", + "voisin", + "voiture", + "volaille", + "volcan", + "voler", + "volt", + "votant", + "votre", + "vouer", + "vouloir", + "vous", + "voyage", + "voyou", + "vrac", + "vrai", + "yacht", + "yeti", + "yeux", + "yoga", + "zeste", + "zinc", + "zone", + "zoom" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/german.dart b/cw_zano/lib/mnemonics/german.dart new file mode 100644 index 000000000..1491c9b0e --- /dev/null +++ b/cw_zano/lib/mnemonics/german.dart @@ -0,0 +1,1630 @@ +class GermanMnemonics { + static const words = [ + "Abakus", + "Abart", + "abbilden", + "Abbruch", + "Abdrift", + "Abendrot", + "Abfahrt", + "abfeuern", + "Abflug", + "abfragen", + "Abglanz", + "abhärten", + "abheben", + "Abhilfe", + "Abitur", + "Abkehr", + "Ablauf", + "ablecken", + "Ablösung", + "Abnehmer", + "abnutzen", + "Abonnent", + "Abrasion", + "Abrede", + "abrüsten", + "Absicht", + "Absprung", + "Abstand", + "absuchen", + "Abteil", + "Abundanz", + "abwarten", + "Abwurf", + "Abzug", + "Achse", + "Achtung", + "Acker", + "Aderlass", + "Adler", + "Admiral", + "Adresse", + "Affe", + "Affront", + "Afrika", + "Aggregat", + "Agilität", + "ähneln", + "Ahnung", + "Ahorn", + "Akazie", + "Akkord", + "Akrobat", + "Aktfoto", + "Aktivist", + "Albatros", + "Alchimie", + "Alemanne", + "Alibi", + "Alkohol", + "Allee", + "Allüre", + "Almosen", + "Almweide", + "Aloe", + "Alpaka", + "Alpental", + "Alphabet", + "Alpinist", + "Alraune", + "Altbier", + "Alter", + "Altflöte", + "Altruist", + "Alublech", + "Aludose", + "Amateur", + "Amazonas", + "Ameise", + "Amnesie", + "Amok", + "Ampel", + "Amphibie", + "Ampulle", + "Amsel", + "Amulett", + "Anakonda", + "Analogie", + "Ananas", + "Anarchie", + "Anatomie", + "Anbau", + "Anbeginn", + "anbieten", + "Anblick", + "ändern", + "andocken", + "Andrang", + "anecken", + "Anflug", + "Anfrage", + "Anführer", + "Angebot", + "Angler", + "Anhalter", + "Anhöhe", + "Animator", + "Anis", + "Anker", + "ankleben", + "Ankunft", + "Anlage", + "anlocken", + "Anmut", + "Annahme", + "Anomalie", + "Anonymus", + "Anorak", + "anpeilen", + "Anrecht", + "Anruf", + "Ansage", + "Anschein", + "Ansicht", + "Ansporn", + "Anteil", + "Antlitz", + "Antrag", + "Antwort", + "Anwohner", + "Aorta", + "Apfel", + "Appetit", + "Applaus", + "Aquarium", + "Arbeit", + "Arche", + "Argument", + "Arktis", + "Armband", + "Aroma", + "Asche", + "Askese", + "Asphalt", + "Asteroid", + "Ästhetik", + "Astronom", + "Atelier", + "Athlet", + "Atlantik", + "Atmung", + "Audienz", + "aufatmen", + "Auffahrt", + "aufholen", + "aufregen", + "Aufsatz", + "Auftritt", + "Aufwand", + "Augapfel", + "Auktion", + "Ausbruch", + "Ausflug", + "Ausgabe", + "Aushilfe", + "Ausland", + "Ausnahme", + "Aussage", + "Autobahn", + "Avocado", + "Axthieb", + "Bach", + "backen", + "Badesee", + "Bahnhof", + "Balance", + "Balkon", + "Ballett", + "Balsam", + "Banane", + "Bandage", + "Bankett", + "Barbar", + "Barde", + "Barett", + "Bargeld", + "Barkasse", + "Barriere", + "Bart", + "Bass", + "Bastler", + "Batterie", + "Bauch", + "Bauer", + "Bauholz", + "Baujahr", + "Baum", + "Baustahl", + "Bauteil", + "Bauweise", + "Bazar", + "beachten", + "Beatmung", + "beben", + "Becher", + "Becken", + "bedanken", + "beeilen", + "beenden", + "Beere", + "befinden", + "Befreier", + "Begabung", + "Begierde", + "begrüßen", + "Beiboot", + "Beichte", + "Beifall", + "Beigabe", + "Beil", + "Beispiel", + "Beitrag", + "beizen", + "bekommen", + "beladen", + "Beleg", + "bellen", + "belohnen", + "Bemalung", + "Bengel", + "Benutzer", + "Benzin", + "beraten", + "Bereich", + "Bergluft", + "Bericht", + "Bescheid", + "Besitz", + "besorgen", + "Bestand", + "Besuch", + "betanken", + "beten", + "betören", + "Bett", + "Beule", + "Beute", + "Bewegung", + "bewirken", + "Bewohner", + "bezahlen", + "Bezug", + "biegen", + "Biene", + "Bierzelt", + "bieten", + "Bikini", + "Bildung", + "Billard", + "binden", + "Biobauer", + "Biologe", + "Bionik", + "Biotop", + "Birke", + "Bison", + "Bitte", + "Biwak", + "Bizeps", + "blasen", + "Blatt", + "Blauwal", + "Blende", + "Blick", + "Blitz", + "Blockade", + "Blödelei", + "Blondine", + "Blues", + "Blume", + "Blut", + "Bodensee", + "Bogen", + "Boje", + "Bollwerk", + "Bonbon", + "Bonus", + "Boot", + "Bordarzt", + "Börse", + "Böschung", + "Boudoir", + "Boxkampf", + "Boykott", + "Brahms", + "Brandung", + "Brauerei", + "Brecher", + "Breitaxt", + "Bremse", + "brennen", + "Brett", + "Brief", + "Brigade", + "Brillanz", + "bringen", + "brodeln", + "Brosche", + "Brötchen", + "Brücke", + "Brunnen", + "Brüste", + "Brutofen", + "Buch", + "Büffel", + "Bugwelle", + "Bühne", + "Buletten", + "Bullauge", + "Bumerang", + "bummeln", + "Buntglas", + "Bürde", + "Burgherr", + "Bursche", + "Busen", + "Buslinie", + "Bussard", + "Butangas", + "Butter", + "Cabrio", + "campen", + "Captain", + "Cartoon", + "Cello", + "Chalet", + "Charisma", + "Chefarzt", + "Chiffon", + "Chipsatz", + "Chirurg", + "Chor", + "Chronik", + "Chuzpe", + "Clubhaus", + "Cockpit", + "Codewort", + "Cognac", + "Coladose", + "Computer", + "Coupon", + "Cousin", + "Cracking", + "Crash", + "Curry", + "Dach", + "Dackel", + "daddeln", + "daliegen", + "Dame", + "Dammbau", + "Dämon", + "Dampflok", + "Dank", + "Darm", + "Datei", + "Datsche", + "Datteln", + "Datum", + "Dauer", + "Daunen", + "Deckel", + "Decoder", + "Defekt", + "Degen", + "Dehnung", + "Deiche", + "Dekade", + "Dekor", + "Delfin", + "Demut", + "denken", + "Deponie", + "Design", + "Desktop", + "Dessert", + "Detail", + "Detektiv", + "Dezibel", + "Diadem", + "Diagnose", + "Dialekt", + "Diamant", + "Dichter", + "Dickicht", + "Diesel", + "Diktat", + "Diplom", + "Direktor", + "Dirne", + "Diskurs", + "Distanz", + "Docht", + "Dohle", + "Dolch", + "Domäne", + "Donner", + "Dorade", + "Dorf", + "Dörrobst", + "Dorsch", + "Dossier", + "Dozent", + "Drachen", + "Draht", + "Drama", + "Drang", + "Drehbuch", + "Dreieck", + "Dressur", + "Drittel", + "Drossel", + "Druck", + "Duell", + "Duft", + "Düne", + "Dünung", + "dürfen", + "Duschbad", + "Düsenjet", + "Dynamik", + "Ebbe", + "Echolot", + "Echse", + "Eckball", + "Edding", + "Edelweiß", + "Eden", + "Edition", + "Efeu", + "Effekte", + "Egoismus", + "Ehre", + "Eiablage", + "Eiche", + "Eidechse", + "Eidotter", + "Eierkopf", + "Eigelb", + "Eiland", + "Eilbote", + "Eimer", + "einatmen", + "Einband", + "Eindruck", + "Einfall", + "Eingang", + "Einkauf", + "einladen", + "Einöde", + "Einrad", + "Eintopf", + "Einwurf", + "Einzug", + "Eisbär", + "Eisen", + "Eishöhle", + "Eismeer", + "Eiweiß", + "Ekstase", + "Elan", + "Elch", + "Elefant", + "Eleganz", + "Element", + "Elfe", + "Elite", + "Elixier", + "Ellbogen", + "Eloquenz", + "Emigrant", + "Emission", + "Emotion", + "Empathie", + "Empfang", + "Endzeit", + "Energie", + "Engpass", + "Enkel", + "Enklave", + "Ente", + "entheben", + "Entität", + "entladen", + "Entwurf", + "Episode", + "Epoche", + "erachten", + "Erbauer", + "erblühen", + "Erdbeere", + "Erde", + "Erdgas", + "Erdkunde", + "Erdnuss", + "Erdöl", + "Erdteil", + "Ereignis", + "Eremit", + "erfahren", + "Erfolg", + "erfreuen", + "erfüllen", + "Ergebnis", + "erhitzen", + "erkalten", + "erkennen", + "erleben", + "Erlösung", + "ernähren", + "erneuern", + "Ernte", + "Eroberer", + "eröffnen", + "Erosion", + "Erotik", + "Erpel", + "erraten", + "Erreger", + "erröten", + "Ersatz", + "Erstflug", + "Ertrag", + "Eruption", + "erwarten", + "erwidern", + "Erzbau", + "Erzeuger", + "erziehen", + "Esel", + "Eskimo", + "Eskorte", + "Espe", + "Espresso", + "essen", + "Etage", + "Etappe", + "Etat", + "Ethik", + "Etikett", + "Etüde", + "Eule", + "Euphorie", + "Europa", + "Everest", + "Examen", + "Exil", + "Exodus", + "Extrakt", + "Fabel", + "Fabrik", + "Fachmann", + "Fackel", + "Faden", + "Fagott", + "Fahne", + "Faible", + "Fairness", + "Fakt", + "Fakultät", + "Falke", + "Fallobst", + "Fälscher", + "Faltboot", + "Familie", + "Fanclub", + "Fanfare", + "Fangarm", + "Fantasie", + "Farbe", + "Farmhaus", + "Farn", + "Fasan", + "Faser", + "Fassung", + "fasten", + "Faulheit", + "Fauna", + "Faust", + "Favorit", + "Faxgerät", + "Fazit", + "fechten", + "Federboa", + "Fehler", + "Feier", + "Feige", + "feilen", + "Feinripp", + "Feldbett", + "Felge", + "Fellpony", + "Felswand", + "Ferien", + "Ferkel", + "Fernweh", + "Ferse", + "Fest", + "Fettnapf", + "Feuer", + "Fiasko", + "Fichte", + "Fiktion", + "Film", + "Filter", + "Filz", + "Finanzen", + "Findling", + "Finger", + "Fink", + "Finnwal", + "Fisch", + "Fitness", + "Fixpunkt", + "Fixstern", + "Fjord", + "Flachbau", + "Flagge", + "Flamenco", + "Flanke", + "Flasche", + "Flaute", + "Fleck", + "Flegel", + "flehen", + "Fleisch", + "fliegen", + "Flinte", + "Flirt", + "Flocke", + "Floh", + "Floskel", + "Floß", + "Flöte", + "Flugzeug", + "Flunder", + "Flusstal", + "Flutung", + "Fockmast", + "Fohlen", + "Föhnlage", + "Fokus", + "folgen", + "Foliant", + "Folklore", + "Fontäne", + "Förde", + "Forelle", + "Format", + "Forscher", + "Fortgang", + "Forum", + "Fotograf", + "Frachter", + "Fragment", + "Fraktion", + "fräsen", + "Frauenpo", + "Freak", + "Fregatte", + "Freiheit", + "Freude", + "Frieden", + "Frohsinn", + "Frosch", + "Frucht", + "Frühjahr", + "Fuchs", + "Fügung", + "fühlen", + "Füller", + "Fundbüro", + "Funkboje", + "Funzel", + "Furnier", + "Fürsorge", + "Fusel", + "Fußbad", + "Futteral", + "Gabelung", + "gackern", + "Gage", + "gähnen", + "Galaxie", + "Galeere", + "Galopp", + "Gameboy", + "Gamsbart", + "Gandhi", + "Gang", + "Garage", + "Gardine", + "Garküche", + "Garten", + "Gasthaus", + "Gattung", + "gaukeln", + "Gazelle", + "Gebäck", + "Gebirge", + "Gebräu", + "Geburt", + "Gedanke", + "Gedeck", + "Gedicht", + "Gefahr", + "Gefieder", + "Geflügel", + "Gefühl", + "Gegend", + "Gehirn", + "Gehöft", + "Gehweg", + "Geige", + "Geist", + "Gelage", + "Geld", + "Gelenk", + "Gelübde", + "Gemälde", + "Gemeinde", + "Gemüse", + "genesen", + "Genuss", + "Gepäck", + "Geranie", + "Gericht", + "Germane", + "Geruch", + "Gesang", + "Geschenk", + "Gesetz", + "Gesindel", + "Gesöff", + "Gespan", + "Gestade", + "Gesuch", + "Getier", + "Getränk", + "Getümmel", + "Gewand", + "Geweih", + "Gewitter", + "Gewölbe", + "Geysir", + "Giftzahn", + "Gipfel", + "Giraffe", + "Gitarre", + "glänzen", + "Glasauge", + "Glatze", + "Gleis", + "Globus", + "Glück", + "glühen", + "Glutofen", + "Goldzahn", + "Gondel", + "gönnen", + "Gottheit", + "graben", + "Grafik", + "Grashalm", + "Graugans", + "greifen", + "Grenze", + "grillen", + "Groschen", + "Grotte", + "Grube", + "Grünalge", + "Gruppe", + "gruseln", + "Gulasch", + "Gummibär", + "Gurgel", + "Gürtel", + "Güterzug", + "Haarband", + "Habicht", + "hacken", + "hadern", + "Hafen", + "Hagel", + "Hähnchen", + "Haifisch", + "Haken", + "Halbaffe", + "Halsader", + "halten", + "Halunke", + "Handbuch", + "Hanf", + "Harfe", + "Harnisch", + "härten", + "Harz", + "Hasenohr", + "Haube", + "hauchen", + "Haupt", + "Haut", + "Havarie", + "Hebamme", + "hecheln", + "Heck", + "Hedonist", + "Heiler", + "Heimat", + "Heizung", + "Hektik", + "Held", + "helfen", + "Helium", + "Hemd", + "hemmen", + "Hengst", + "Herd", + "Hering", + "Herkunft", + "Hermelin", + "Herrchen", + "Herzdame", + "Heulboje", + "Hexe", + "Hilfe", + "Himbeere", + "Himmel", + "Hingabe", + "hinhören", + "Hinweis", + "Hirsch", + "Hirte", + "Hitzkopf", + "Hobel", + "Hochform", + "Hocker", + "hoffen", + "Hofhund", + "Hofnarr", + "Höhenzug", + "Hohlraum", + "Hölle", + "Holzboot", + "Honig", + "Honorar", + "horchen", + "Hörprobe", + "Höschen", + "Hotel", + "Hubraum", + "Hufeisen", + "Hügel", + "huldigen", + "Hülle", + "Humbug", + "Hummer", + "Humor", + "Hund", + "Hunger", + "Hupe", + "Hürde", + "Hurrikan", + "Hydrant", + "Hypnose", + "Ibis", + "Idee", + "Idiot", + "Igel", + "Illusion", + "Imitat", + "impfen", + "Import", + "Inferno", + "Ingwer", + "Inhalte", + "Inland", + "Insekt", + "Ironie", + "Irrfahrt", + "Irrtum", + "Isolator", + "Istwert", + "Jacke", + "Jade", + "Jagdhund", + "Jäger", + "Jaguar", + "Jahr", + "Jähzorn", + "Jazzfest", + "Jetpilot", + "jobben", + "Jochbein", + "jodeln", + "Jodsalz", + "Jolle", + "Journal", + "Jubel", + "Junge", + "Junimond", + "Jupiter", + "Jutesack", + "Juwel", + "Kabarett", + "Kabine", + "Kabuff", + "Käfer", + "Kaffee", + "Kahlkopf", + "Kaimauer", + "Kajüte", + "Kaktus", + "Kaliber", + "Kaltluft", + "Kamel", + "kämmen", + "Kampagne", + "Kanal", + "Känguru", + "Kanister", + "Kanone", + "Kante", + "Kanu", + "kapern", + "Kapitän", + "Kapuze", + "Karneval", + "Karotte", + "Käsebrot", + "Kasper", + "Kastanie", + "Katalog", + "Kathode", + "Katze", + "kaufen", + "Kaugummi", + "Kauz", + "Kehle", + "Keilerei", + "Keksdose", + "Kellner", + "Keramik", + "Kerze", + "Kessel", + "Kette", + "keuchen", + "kichern", + "Kielboot", + "Kindheit", + "Kinnbart", + "Kinosaal", + "Kiosk", + "Kissen", + "Klammer", + "Klang", + "Klapprad", + "Klartext", + "kleben", + "Klee", + "Kleinod", + "Klima", + "Klingel", + "Klippe", + "Klischee", + "Kloster", + "Klugheit", + "Klüngel", + "kneten", + "Knie", + "Knöchel", + "knüpfen", + "Kobold", + "Kochbuch", + "Kohlrabi", + "Koje", + "Kokosöl", + "Kolibri", + "Kolumne", + "Kombüse", + "Komiker", + "kommen", + "Konto", + "Konzept", + "Kopfkino", + "Kordhose", + "Korken", + "Korsett", + "Kosename", + "Krabbe", + "Krach", + "Kraft", + "Krähe", + "Kralle", + "Krapfen", + "Krater", + "kraulen", + "Kreuz", + "Krokodil", + "Kröte", + "Kugel", + "Kuhhirt", + "Kühnheit", + "Künstler", + "Kurort", + "Kurve", + "Kurzfilm", + "kuscheln", + "küssen", + "Kutter", + "Labor", + "lachen", + "Lackaffe", + "Ladeluke", + "Lagune", + "Laib", + "Lakritze", + "Lammfell", + "Land", + "Langmut", + "Lappalie", + "Last", + "Laterne", + "Latzhose", + "Laubsäge", + "laufen", + "Laune", + "Lausbub", + "Lavasee", + "Leben", + "Leder", + "Leerlauf", + "Lehm", + "Lehrer", + "leihen", + "Lektüre", + "Lenker", + "Lerche", + "Leseecke", + "Leuchter", + "Lexikon", + "Libelle", + "Libido", + "Licht", + "Liebe", + "liefern", + "Liftboy", + "Limonade", + "Lineal", + "Linoleum", + "List", + "Liveband", + "Lobrede", + "locken", + "Löffel", + "Logbuch", + "Logik", + "Lohn", + "Loipe", + "Lokal", + "Lorbeer", + "Lösung", + "löten", + "Lottofee", + "Löwe", + "Luchs", + "Luder", + "Luftpost", + "Luke", + "Lümmel", + "Lunge", + "lutschen", + "Luxus", + "Macht", + "Magazin", + "Magier", + "Magnet", + "mähen", + "Mahlzeit", + "Mahnmal", + "Maibaum", + "Maisbrei", + "Makel", + "malen", + "Mammut", + "Maniküre", + "Mantel", + "Marathon", + "Marder", + "Marine", + "Marke", + "Marmor", + "Märzluft", + "Maske", + "Maßanzug", + "Maßkrug", + "Mastkorb", + "Material", + "Matratze", + "Mauerbau", + "Maulkorb", + "Mäuschen", + "Mäzen", + "Medium", + "Meinung", + "melden", + "Melodie", + "Mensch", + "Merkmal", + "Messe", + "Metall", + "Meteor", + "Methode", + "Metzger", + "Mieze", + "Milchkuh", + "Mimose", + "Minirock", + "Minute", + "mischen", + "Missetat", + "mitgehen", + "Mittag", + "Mixtape", + "Möbel", + "Modul", + "mögen", + "Möhre", + "Molch", + "Moment", + "Monat", + "Mondflug", + "Monitor", + "Monokini", + "Monster", + "Monument", + "Moorhuhn", + "Moos", + "Möpse", + "Moral", + "Mörtel", + "Motiv", + "Motorrad", + "Möwe", + "Mühe", + "Mulatte", + "Müller", + "Mumie", + "Mund", + "Münze", + "Muschel", + "Muster", + "Mythos", + "Nabel", + "Nachtzug", + "Nackedei", + "Nagel", + "Nähe", + "Nähnadel", + "Namen", + "Narbe", + "Narwal", + "Nasenbär", + "Natur", + "Nebel", + "necken", + "Neffe", + "Neigung", + "Nektar", + "Nenner", + "Neptun", + "Nerz", + "Nessel", + "Nestbau", + "Netz", + "Neubau", + "Neuerung", + "Neugier", + "nicken", + "Niere", + "Nilpferd", + "nisten", + "Nocke", + "Nomade", + "Nordmeer", + "Notdurft", + "Notstand", + "Notwehr", + "Nudismus", + "Nuss", + "Nutzhanf", + "Oase", + "Obdach", + "Oberarzt", + "Objekt", + "Oboe", + "Obsthain", + "Ochse", + "Odyssee", + "Ofenholz", + "öffnen", + "Ohnmacht", + "Ohrfeige", + "Ohrwurm", + "Ökologie", + "Oktave", + "Ölberg", + "Olive", + "Ölkrise", + "Omelett", + "Onkel", + "Oper", + "Optiker", + "Orange", + "Orchidee", + "ordnen", + "Orgasmus", + "Orkan", + "Ortskern", + "Ortung", + "Ostasien", + "Ozean", + "Paarlauf", + "Packeis", + "paddeln", + "Paket", + "Palast", + "Pandabär", + "Panik", + "Panorama", + "Panther", + "Papagei", + "Papier", + "Paprika", + "Paradies", + "Parka", + "Parodie", + "Partner", + "Passant", + "Patent", + "Patzer", + "Pause", + "Pavian", + "Pedal", + "Pegel", + "peilen", + "Perle", + "Person", + "Pfad", + "Pfau", + "Pferd", + "Pfleger", + "Physik", + "Pier", + "Pilotwal", + "Pinzette", + "Piste", + "Plakat", + "Plankton", + "Platin", + "Plombe", + "plündern", + "Pobacke", + "Pokal", + "polieren", + "Popmusik", + "Porträt", + "Posaune", + "Postamt", + "Pottwal", + "Pracht", + "Pranke", + "Preis", + "Primat", + "Prinzip", + "Protest", + "Proviant", + "Prüfung", + "Pubertät", + "Pudding", + "Pullover", + "Pulsader", + "Punkt", + "Pute", + "Putsch", + "Puzzle", + "Python", + "quaken", + "Qualle", + "Quark", + "Quellsee", + "Querkopf", + "Quitte", + "Quote", + "Rabauke", + "Rache", + "Radclub", + "Radhose", + "Radio", + "Radtour", + "Rahmen", + "Rampe", + "Randlage", + "Ranzen", + "Rapsöl", + "Raserei", + "rasten", + "Rasur", + "Rätsel", + "Raubtier", + "Raumzeit", + "Rausch", + "Reaktor", + "Realität", + "Rebell", + "Rede", + "Reetdach", + "Regatta", + "Regen", + "Rehkitz", + "Reifen", + "Reim", + "Reise", + "Reizung", + "Rekord", + "Relevanz", + "Rennboot", + "Respekt", + "Restmüll", + "retten", + "Reue", + "Revolte", + "Rhetorik", + "Rhythmus", + "Richtung", + "Riegel", + "Rindvieh", + "Rippchen", + "Ritter", + "Robbe", + "Roboter", + "Rockband", + "Rohdaten", + "Roller", + "Roman", + "röntgen", + "Rose", + "Rosskur", + "Rost", + "Rotahorn", + "Rotglut", + "Rotznase", + "Rubrik", + "Rückweg", + "Rufmord", + "Ruhe", + "Ruine", + "Rumpf", + "Runde", + "Rüstung", + "rütteln", + "Saaltür", + "Saatguts", + "Säbel", + "Sachbuch", + "Sack", + "Saft", + "sagen", + "Sahneeis", + "Salat", + "Salbe", + "Salz", + "Sammlung", + "Samt", + "Sandbank", + "Sanftmut", + "Sardine", + "Satire", + "Sattel", + "Satzbau", + "Sauerei", + "Saum", + "Säure", + "Schall", + "Scheitel", + "Schiff", + "Schlager", + "Schmied", + "Schnee", + "Scholle", + "Schrank", + "Schulbus", + "Schwan", + "Seeadler", + "Seefahrt", + "Seehund", + "Seeufer", + "segeln", + "Sehnerv", + "Seide", + "Seilzug", + "Senf", + "Sessel", + "Seufzer", + "Sexgott", + "Sichtung", + "Signal", + "Silber", + "singen", + "Sinn", + "Sirup", + "Sitzbank", + "Skandal", + "Skikurs", + "Skipper", + "Skizze", + "Smaragd", + "Socke", + "Sohn", + "Sommer", + "Songtext", + "Sorte", + "Spagat", + "Spannung", + "Spargel", + "Specht", + "Speiseöl", + "Spiegel", + "Sport", + "spülen", + "Stadtbus", + "Stall", + "Stärke", + "Stativ", + "staunen", + "Stern", + "Stiftung", + "Stollen", + "Strömung", + "Sturm", + "Substanz", + "Südalpen", + "Sumpf", + "surfen", + "Tabak", + "Tafel", + "Tagebau", + "takeln", + "Taktung", + "Talsohle", + "Tand", + "Tanzbär", + "Tapir", + "Tarantel", + "Tarnname", + "Tasse", + "Tatnacht", + "Tatsache", + "Tatze", + "Taube", + "tauchen", + "Taufpate", + "Taumel", + "Teelicht", + "Teich", + "teilen", + "Tempo", + "Tenor", + "Terrasse", + "Testflug", + "Theater", + "Thermik", + "ticken", + "Tiefflug", + "Tierart", + "Tigerhai", + "Tinte", + "Tischler", + "toben", + "Toleranz", + "Tölpel", + "Tonband", + "Topf", + "Topmodel", + "Torbogen", + "Torlinie", + "Torte", + "Tourist", + "Tragesel", + "trampeln", + "Trapez", + "Traum", + "treffen", + "Trennung", + "Treue", + "Trick", + "trimmen", + "Trödel", + "Trost", + "Trumpf", + "tüfteln", + "Turban", + "Turm", + "Übermut", + "Ufer", + "Uhrwerk", + "umarmen", + "Umbau", + "Umfeld", + "Umgang", + "Umsturz", + "Unart", + "Unfug", + "Unimog", + "Unruhe", + "Unwucht", + "Uranerz", + "Urlaub", + "Urmensch", + "Utopie", + "Vakuum", + "Valuta", + "Vandale", + "Vase", + "Vektor", + "Ventil", + "Verb", + "Verdeck", + "Verfall", + "Vergaser", + "verhexen", + "Verlag", + "Vers", + "Vesper", + "Vieh", + "Viereck", + "Vinyl", + "Virus", + "Vitrine", + "Vollblut", + "Vorbote", + "Vorrat", + "Vorsicht", + "Vulkan", + "Wachstum", + "Wade", + "Wagemut", + "Wahlen", + "Wahrheit", + "Wald", + "Walhai", + "Wallach", + "Walnuss", + "Walzer", + "wandeln", + "Wanze", + "wärmen", + "Warnruf", + "Wäsche", + "Wasser", + "Weberei", + "wechseln", + "Wegegeld", + "wehren", + "Weiher", + "Weinglas", + "Weißbier", + "Weitwurf", + "Welle", + "Weltall", + "Werkbank", + "Werwolf", + "Wetter", + "wiehern", + "Wildgans", + "Wind", + "Wohl", + "Wohnort", + "Wolf", + "Wollust", + "Wortlaut", + "Wrack", + "Wunder", + "Wurfaxt", + "Wurst", + "Yacht", + "Yeti", + "Zacke", + "Zahl", + "zähmen", + "Zahnfee", + "Zäpfchen", + "Zaster", + "Zaumzeug", + "Zebra", + "zeigen", + "Zeitlupe", + "Zellkern", + "Zeltdach", + "Zensor", + "Zerfall", + "Zeug", + "Ziege", + "Zielfoto", + "Zimteis", + "Zobel", + "Zollhund", + "Zombie", + "Zöpfe", + "Zucht", + "Zufahrt", + "Zugfahrt", + "Zugvogel", + "Zündung", + "Zweck", + "Zyklop" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/italian.dart b/cw_zano/lib/mnemonics/italian.dart new file mode 100644 index 000000000..275f85bf4 --- /dev/null +++ b/cw_zano/lib/mnemonics/italian.dart @@ -0,0 +1,1630 @@ +class ItalianMnemonics { + static const words = [ + "abbinare", + "abbonato", + "abisso", + "abitare", + "abominio", + "accadere", + "accesso", + "acciaio", + "accordo", + "accumulo", + "acido", + "acqua", + "acrobata", + "acustico", + "adattare", + "addetto", + "addio", + "addome", + "adeguato", + "aderire", + "adorare", + "adottare", + "adozione", + "adulto", + "aereo", + "aerobica", + "affare", + "affetto", + "affidare", + "affogato", + "affronto", + "africano", + "afrodite", + "agenzia", + "aggancio", + "aggeggio", + "aggiunta", + "agio", + "agire", + "agitare", + "aglio", + "agnello", + "agosto", + "aiutare", + "albero", + "albo", + "alce", + "alchimia", + "alcool", + "alfabeto", + "algebra", + "alimento", + "allarme", + "alleanza", + "allievo", + "alloggio", + "alluce", + "alpi", + "alterare", + "altro", + "aluminio", + "amante", + "amarezza", + "ambiente", + "ambrosia", + "america", + "amico", + "ammalare", + "ammirare", + "amnesia", + "amnistia", + "amore", + "ampliare", + "amputare", + "analisi", + "anamnesi", + "ananas", + "anarchia", + "anatra", + "anca", + "ancorato", + "andare", + "androide", + "aneddoto", + "anello", + "angelo", + "angolino", + "anguilla", + "anidride", + "anima", + "annegare", + "anno", + "annuncio", + "anomalia", + "antenna", + "anticipo", + "aperto", + "apostolo", + "appalto", + "appello", + "appiglio", + "applauso", + "appoggio", + "appurare", + "aprile", + "aquila", + "arabo", + "arachidi", + "aragosta", + "arancia", + "arbitrio", + "archivio", + "arco", + "argento", + "argilla", + "aria", + "ariete", + "arma", + "armonia", + "aroma", + "arrivare", + "arrosto", + "arsenale", + "arte", + "artiglio", + "asfalto", + "asfissia", + "asino", + "asparagi", + "aspirina", + "assalire", + "assegno", + "assolto", + "assurdo", + "asta", + "astratto", + "atlante", + "atletica", + "atomo", + "atropina", + "attacco", + "attesa", + "attico", + "atto", + "attrarre", + "auguri", + "aula", + "aumento", + "aurora", + "auspicio", + "autista", + "auto", + "autunno", + "avanzare", + "avarizia", + "avere", + "aviatore", + "avido", + "avorio", + "avvenire", + "avviso", + "avvocato", + "azienda", + "azione", + "azzardo", + "azzurro", + "babbuino", + "bacio", + "badante", + "baffi", + "bagaglio", + "bagliore", + "bagno", + "balcone", + "balena", + "ballare", + "balordo", + "balsamo", + "bambola", + "bancomat", + "banda", + "barato", + "barba", + "barista", + "barriera", + "basette", + "basilico", + "bassista", + "bastare", + "battello", + "bavaglio", + "beccare", + "beduino", + "bellezza", + "bene", + "benzina", + "berretto", + "bestia", + "bevitore", + "bianco", + "bibbia", + "biberon", + "bibita", + "bici", + "bidone", + "bilancia", + "biliardo", + "binario", + "binocolo", + "biologia", + "biondina", + "biopsia", + "biossido", + "birbante", + "birra", + "biscotto", + "bisogno", + "bistecca", + "bivio", + "blindare", + "bloccare", + "bocca", + "bollire", + "bombola", + "bonifico", + "borghese", + "borsa", + "bottino", + "botulino", + "braccio", + "bradipo", + "branco", + "bravo", + "bresaola", + "bretelle", + "brevetto", + "briciola", + "brigante", + "brillare", + "brindare", + "brivido", + "broccoli", + "brontolo", + "bruciare", + "brufolo", + "bucare", + "buddista", + "budino", + "bufera", + "buffo", + "bugiardo", + "buio", + "buono", + "burrone", + "bussola", + "bustina", + "buttare", + "cabernet", + "cabina", + "cacao", + "cacciare", + "cactus", + "cadavere", + "caffe", + "calamari", + "calcio", + "caldaia", + "calmare", + "calunnia", + "calvario", + "calzone", + "cambiare", + "camera", + "camion", + "cammello", + "campana", + "canarino", + "cancello", + "candore", + "cane", + "canguro", + "cannone", + "canoa", + "cantare", + "canzone", + "caos", + "capanna", + "capello", + "capire", + "capo", + "capperi", + "capra", + "capsula", + "caraffa", + "carbone", + "carciofo", + "cardigan", + "carenza", + "caricare", + "carota", + "carrello", + "carta", + "casa", + "cascare", + "caserma", + "cashmere", + "casino", + "cassetta", + "castello", + "catalogo", + "catena", + "catorcio", + "cattivo", + "causa", + "cauzione", + "cavallo", + "caverna", + "caviglia", + "cavo", + "cazzotto", + "celibato", + "cemento", + "cenare", + "centrale", + "ceramica", + "cercare", + "ceretta", + "cerniera", + "certezza", + "cervello", + "cessione", + "cestino", + "cetriolo", + "chiave", + "chiedere", + "chilo", + "chimera", + "chiodo", + "chirurgo", + "chitarra", + "chiudere", + "ciabatta", + "ciao", + "cibo", + "ciccia", + "cicerone", + "ciclone", + "cicogna", + "cielo", + "cifra", + "cigno", + "ciliegia", + "cimitero", + "cinema", + "cinque", + "cintura", + "ciondolo", + "ciotola", + "cipolla", + "cippato", + "circuito", + "cisterna", + "citofono", + "ciuccio", + "civetta", + "civico", + "clausola", + "cliente", + "clima", + "clinica", + "cobra", + "coccole", + "cocktail", + "cocomero", + "codice", + "coesione", + "cogliere", + "cognome", + "colla", + "colomba", + "colpire", + "coltello", + "comando", + "comitato", + "commedia", + "comodino", + "compagna", + "comune", + "concerto", + "condotto", + "conforto", + "congiura", + "coniglio", + "consegna", + "conto", + "convegno", + "coperta", + "copia", + "coprire", + "corazza", + "corda", + "corleone", + "cornice", + "corona", + "corpo", + "corrente", + "corsa", + "cortesia", + "corvo", + "coso", + "costume", + "cotone", + "cottura", + "cozza", + "crampo", + "cratere", + "cravatta", + "creare", + "credere", + "crema", + "crescere", + "crimine", + "criterio", + "croce", + "crollare", + "cronaca", + "crostata", + "croupier", + "cubetto", + "cucciolo", + "cucina", + "cultura", + "cuoco", + "cuore", + "cupido", + "cupola", + "cura", + "curva", + "cuscino", + "custode", + "danzare", + "data", + "decennio", + "decidere", + "decollo", + "dedicare", + "dedurre", + "definire", + "delegare", + "delfino", + "delitto", + "demone", + "dentista", + "denuncia", + "deposito", + "derivare", + "deserto", + "designer", + "destino", + "detonare", + "dettagli", + "diagnosi", + "dialogo", + "diamante", + "diario", + "diavolo", + "dicembre", + "difesa", + "digerire", + "digitare", + "diluvio", + "dinamica", + "dipinto", + "diploma", + "diramare", + "dire", + "dirigere", + "dirupo", + "discesa", + "disdetta", + "disegno", + "disporre", + "dissenso", + "distacco", + "dito", + "ditta", + "diva", + "divenire", + "dividere", + "divorare", + "docente", + "dolcetto", + "dolore", + "domatore", + "domenica", + "dominare", + "donatore", + "donna", + "dorato", + "dormire", + "dorso", + "dosaggio", + "dottore", + "dovere", + "download", + "dragone", + "dramma", + "dubbio", + "dubitare", + "duetto", + "durata", + "ebbrezza", + "eccesso", + "eccitare", + "eclissi", + "economia", + "edera", + "edificio", + "editore", + "edizione", + "educare", + "effetto", + "egitto", + "egiziano", + "elastico", + "elefante", + "eleggere", + "elemento", + "elenco", + "elezione", + "elmetto", + "elogio", + "embrione", + "emergere", + "emettere", + "eminenza", + "emisfero", + "emozione", + "empatia", + "energia", + "enfasi", + "enigma", + "entrare", + "enzima", + "epidemia", + "epilogo", + "episodio", + "epoca", + "equivoco", + "erba", + "erede", + "eroe", + "erotico", + "errore", + "eruzione", + "esaltare", + "esame", + "esaudire", + "eseguire", + "esempio", + "esigere", + "esistere", + "esito", + "esperto", + "espresso", + "essere", + "estasi", + "esterno", + "estrarre", + "eterno", + "etica", + "euforico", + "europa", + "evacuare", + "evasione", + "evento", + "evidenza", + "evitare", + "evolvere", + "fabbrica", + "facciata", + "fagiano", + "fagotto", + "falco", + "fame", + "famiglia", + "fanale", + "fango", + "fantasia", + "farfalla", + "farmacia", + "faro", + "fase", + "fastidio", + "faticare", + "fatto", + "favola", + "febbre", + "femmina", + "femore", + "fenomeno", + "fermata", + "feromoni", + "ferrari", + "fessura", + "festa", + "fiaba", + "fiamma", + "fianco", + "fiat", + "fibbia", + "fidare", + "fieno", + "figa", + "figlio", + "figura", + "filetto", + "filmato", + "filosofo", + "filtrare", + "finanza", + "finestra", + "fingere", + "finire", + "finta", + "finzione", + "fiocco", + "fioraio", + "firewall", + "firmare", + "fisico", + "fissare", + "fittizio", + "fiume", + "flacone", + "flagello", + "flirtare", + "flusso", + "focaccia", + "foglio", + "fognario", + "follia", + "fonderia", + "fontana", + "forbici", + "forcella", + "foresta", + "forgiare", + "formare", + "fornace", + "foro", + "fortuna", + "forzare", + "fosforo", + "fotoni", + "fracasso", + "fragola", + "frantumi", + "fratello", + "frazione", + "freccia", + "freddo", + "frenare", + "fresco", + "friggere", + "frittata", + "frivolo", + "frizione", + "fronte", + "frullato", + "frumento", + "frusta", + "frutto", + "fucile", + "fuggire", + "fulmine", + "fumare", + "funzione", + "fuoco", + "furbizia", + "furgone", + "furia", + "furore", + "fusibile", + "fuso", + "futuro", + "gabbiano", + "galassia", + "gallina", + "gamba", + "gancio", + "garanzia", + "garofano", + "gasolio", + "gatto", + "gazebo", + "gazzetta", + "gelato", + "gemelli", + "generare", + "genitori", + "gennaio", + "geologia", + "germania", + "gestire", + "gettare", + "ghepardo", + "ghiaccio", + "giaccone", + "giaguaro", + "giallo", + "giappone", + "giardino", + "gigante", + "gioco", + "gioiello", + "giorno", + "giovane", + "giraffa", + "giudizio", + "giurare", + "giusto", + "globo", + "gloria", + "glucosio", + "gnocca", + "gocciola", + "godere", + "gomito", + "gomma", + "gonfiare", + "gorilla", + "governo", + "gradire", + "graffiti", + "granchio", + "grappolo", + "grasso", + "grattare", + "gridare", + "grissino", + "grondaia", + "grugnito", + "gruppo", + "guadagno", + "guaio", + "guancia", + "guardare", + "gufo", + "guidare", + "guscio", + "gusto", + "icona", + "idea", + "identico", + "idolo", + "idoneo", + "idrante", + "idrogeno", + "igiene", + "ignoto", + "imbarco", + "immagine", + "immobile", + "imparare", + "impedire", + "impianto", + "importo", + "impresa", + "impulso", + "incanto", + "incendio", + "incidere", + "incontro", + "incrocia", + "incubo", + "indagare", + "indice", + "indotto", + "infanzia", + "inferno", + "infinito", + "infranto", + "ingerire", + "inglese", + "ingoiare", + "ingresso", + "iniziare", + "innesco", + "insalata", + "inserire", + "insicuro", + "insonnia", + "insulto", + "interno", + "introiti", + "invasori", + "inverno", + "invito", + "invocare", + "ipnosi", + "ipocrita", + "ipotesi", + "ironia", + "irrigare", + "iscritto", + "isola", + "ispirare", + "isterico", + "istinto", + "istruire", + "italiano", + "jazz", + "labbra", + "labrador", + "ladro", + "lago", + "lamento", + "lampone", + "lancetta", + "lanterna", + "lapide", + "larva", + "lasagne", + "lasciare", + "lastra", + "latte", + "laurea", + "lavagna", + "lavorare", + "leccare", + "legare", + "leggere", + "lenzuolo", + "leone", + "lepre", + "letargo", + "lettera", + "levare", + "levitare", + "lezione", + "liberare", + "libidine", + "libro", + "licenza", + "lievito", + "limite", + "lince", + "lingua", + "liquore", + "lire", + "listino", + "litigare", + "litro", + "locale", + "lottare", + "lucciola", + "lucidare", + "luglio", + "luna", + "macchina", + "madama", + "madre", + "maestro", + "maggio", + "magico", + "maglione", + "magnolia", + "mago", + "maialino", + "maionese", + "malattia", + "male", + "malloppo", + "mancare", + "mandorla", + "mangiare", + "manico", + "manopola", + "mansarda", + "mantello", + "manubrio", + "manzo", + "mappa", + "mare", + "margine", + "marinaio", + "marmotta", + "marocco", + "martello", + "marzo", + "maschera", + "matrice", + "maturare", + "mazzetta", + "meandri", + "medaglia", + "medico", + "medusa", + "megafono", + "melone", + "membrana", + "menta", + "mercato", + "meritare", + "merluzzo", + "mese", + "mestiere", + "metafora", + "meteo", + "metodo", + "mettere", + "miele", + "miglio", + "miliardo", + "mimetica", + "minatore", + "minuto", + "miracolo", + "mirtillo", + "missile", + "mistero", + "misura", + "mito", + "mobile", + "moda", + "moderare", + "moglie", + "molecola", + "molle", + "momento", + "moneta", + "mongolia", + "monologo", + "montagna", + "morale", + "morbillo", + "mordere", + "mosaico", + "mosca", + "mostro", + "motivare", + "moto", + "mulino", + "mulo", + "muovere", + "muraglia", + "muscolo", + "museo", + "musica", + "mutande", + "nascere", + "nastro", + "natale", + "natura", + "nave", + "navigare", + "negare", + "negozio", + "nemico", + "nero", + "nervo", + "nessuno", + "nettare", + "neutroni", + "neve", + "nevicare", + "nicotina", + "nido", + "nipote", + "nocciola", + "noleggio", + "nome", + "nonno", + "norvegia", + "notare", + "notizia", + "nove", + "nucleo", + "nuda", + "nuotare", + "nutrire", + "obbligo", + "occhio", + "occupare", + "oceano", + "odissea", + "odore", + "offerta", + "officina", + "offrire", + "oggetto", + "oggi", + "olfatto", + "olio", + "oliva", + "ombelico", + "ombrello", + "omuncolo", + "ondata", + "onore", + "opera", + "opinione", + "opuscolo", + "opzione", + "orario", + "orbita", + "orchidea", + "ordine", + "orecchio", + "orgasmo", + "orgoglio", + "origine", + "orologio", + "oroscopo", + "orso", + "oscurare", + "ospedale", + "ospite", + "ossigeno", + "ostacolo", + "ostriche", + "ottenere", + "ottimo", + "ottobre", + "ovest", + "pacco", + "pace", + "pacifico", + "padella", + "pagare", + "pagina", + "pagnotta", + "palazzo", + "palestra", + "palpebre", + "pancetta", + "panfilo", + "panino", + "pannello", + "panorama", + "papa", + "paperino", + "paradiso", + "parcella", + "parente", + "parlare", + "parodia", + "parrucca", + "partire", + "passare", + "pasta", + "patata", + "patente", + "patogeno", + "patriota", + "pausa", + "pazienza", + "peccare", + "pecora", + "pedalare", + "pelare", + "pena", + "pendenza", + "penisola", + "pennello", + "pensare", + "pentirsi", + "percorso", + "perdono", + "perfetto", + "perizoma", + "perla", + "permesso", + "persona", + "pesare", + "pesce", + "peso", + "petardo", + "petrolio", + "pezzo", + "piacere", + "pianeta", + "piastra", + "piatto", + "piazza", + "piccolo", + "piede", + "piegare", + "pietra", + "pigiama", + "pigliare", + "pigrizia", + "pilastro", + "pilota", + "pinguino", + "pioggia", + "piombo", + "pionieri", + "piovra", + "pipa", + "pirata", + "pirolisi", + "piscina", + "pisolino", + "pista", + "pitone", + "piumino", + "pizza", + "plastica", + "platino", + "poesia", + "poiana", + "polaroid", + "polenta", + "polimero", + "pollo", + "polmone", + "polpetta", + "poltrona", + "pomodoro", + "pompa", + "popolo", + "porco", + "porta", + "porzione", + "possesso", + "postino", + "potassio", + "potere", + "poverino", + "pranzo", + "prato", + "prefisso", + "prelievo", + "premio", + "prendere", + "prestare", + "pretesa", + "prezzo", + "primario", + "privacy", + "problema", + "processo", + "prodotto", + "profeta", + "progetto", + "promessa", + "pronto", + "proposta", + "proroga", + "prossimo", + "proteina", + "prova", + "prudenza", + "pubblico", + "pudore", + "pugilato", + "pulire", + "pulsante", + "puntare", + "pupazzo", + "puzzle", + "quaderno", + "qualcuno", + "quarzo", + "quercia", + "quintale", + "rabbia", + "racconto", + "radice", + "raffica", + "ragazza", + "ragione", + "rammento", + "ramo", + "rana", + "randagio", + "rapace", + "rapinare", + "rapporto", + "rasatura", + "ravioli", + "reagire", + "realista", + "reattore", + "reazione", + "recitare", + "recluso", + "record", + "recupero", + "redigere", + "regalare", + "regina", + "regola", + "relatore", + "reliquia", + "remare", + "rendere", + "reparto", + "resina", + "resto", + "rete", + "retorica", + "rettile", + "revocare", + "riaprire", + "ribadire", + "ribelle", + "ricambio", + "ricetta", + "richiamo", + "ricordo", + "ridurre", + "riempire", + "riferire", + "riflesso", + "righello", + "rilancio", + "rilevare", + "rilievo", + "rimanere", + "rimborso", + "rinforzo", + "rinuncia", + "riparo", + "ripetere", + "riposare", + "ripulire", + "risalita", + "riscatto", + "riserva", + "riso", + "rispetto", + "ritaglio", + "ritmo", + "ritorno", + "ritratto", + "rituale", + "riunione", + "riuscire", + "riva", + "robotica", + "rondine", + "rosa", + "rospo", + "rosso", + "rotonda", + "rotta", + "roulotte", + "rubare", + "rubrica", + "ruffiano", + "rumore", + "ruota", + "ruscello", + "sabbia", + "sacco", + "saggio", + "sale", + "salire", + "salmone", + "salto", + "salutare", + "salvia", + "sangue", + "sanzioni", + "sapere", + "sapienza", + "sarcasmo", + "sardine", + "sartoria", + "sbalzo", + "sbarcare", + "sberla", + "sborsare", + "scadenza", + "scafo", + "scala", + "scambio", + "scappare", + "scarpa", + "scatola", + "scelta", + "scena", + "sceriffo", + "scheggia", + "schiuma", + "sciarpa", + "scienza", + "scimmia", + "sciopero", + "scivolo", + "sclerare", + "scolpire", + "sconto", + "scopa", + "scordare", + "scossa", + "scrivere", + "scrupolo", + "scuderia", + "scultore", + "scuola", + "scusare", + "sdraiare", + "secolo", + "sedativo", + "sedere", + "sedia", + "segare", + "segreto", + "seguire", + "semaforo", + "seme", + "senape", + "seno", + "sentiero", + "separare", + "sepolcro", + "sequenza", + "serata", + "serpente", + "servizio", + "sesso", + "seta", + "settore", + "sfamare", + "sfera", + "sfidare", + "sfiorare", + "sfogare", + "sgabello", + "sicuro", + "siepe", + "sigaro", + "silenzio", + "silicone", + "simbiosi", + "simpatia", + "simulare", + "sinapsi", + "sindrome", + "sinergia", + "sinonimo", + "sintonia", + "sirena", + "siringa", + "sistema", + "sito", + "smalto", + "smentire", + "smontare", + "soccorso", + "socio", + "soffitto", + "software", + "soggetto", + "sogliola", + "sognare", + "soldi", + "sole", + "sollievo", + "solo", + "sommario", + "sondare", + "sonno", + "sorpresa", + "sorriso", + "sospiro", + "sostegno", + "sovrano", + "spaccare", + "spada", + "spagnolo", + "spalla", + "sparire", + "spavento", + "spazio", + "specchio", + "spedire", + "spegnere", + "spendere", + "speranza", + "spessore", + "spezzare", + "spiaggia", + "spiccare", + "spiegare", + "spiffero", + "spingere", + "sponda", + "sporcare", + "spostare", + "spremuta", + "spugna", + "spumante", + "spuntare", + "squadra", + "squillo", + "staccare", + "stadio", + "stagione", + "stallone", + "stampa", + "stancare", + "starnuto", + "statura", + "stella", + "stendere", + "sterzo", + "stilista", + "stimolo", + "stinco", + "stiva", + "stoffa", + "storia", + "strada", + "stregone", + "striscia", + "studiare", + "stufa", + "stupendo", + "subire", + "successo", + "sudare", + "suono", + "superare", + "supporto", + "surfista", + "sussurro", + "svelto", + "svenire", + "sviluppo", + "svolta", + "svuotare", + "tabacco", + "tabella", + "tabu", + "tacchino", + "tacere", + "taglio", + "talento", + "tangente", + "tappeto", + "tartufo", + "tassello", + "tastiera", + "tavolo", + "tazza", + "teatro", + "tedesco", + "telaio", + "telefono", + "tema", + "temere", + "tempo", + "tendenza", + "tenebre", + "tensione", + "tentare", + "teologia", + "teorema", + "termica", + "terrazzo", + "teschio", + "tesi", + "tesoro", + "tessera", + "testa", + "thriller", + "tifoso", + "tigre", + "timbrare", + "timido", + "tinta", + "tirare", + "tisana", + "titano", + "titolo", + "toccare", + "togliere", + "topolino", + "torcia", + "torrente", + "tovaglia", + "traffico", + "tragitto", + "training", + "tramonto", + "transito", + "trapezio", + "trasloco", + "trattore", + "trazione", + "treccia", + "tregua", + "treno", + "triciclo", + "tridente", + "trilogia", + "tromba", + "troncare", + "trota", + "trovare", + "trucco", + "tubo", + "tulipano", + "tumulto", + "tunisia", + "tuono", + "turista", + "tuta", + "tutelare", + "tutore", + "ubriaco", + "uccello", + "udienza", + "udito", + "uffa", + "umanoide", + "umore", + "unghia", + "unguento", + "unicorno", + "unione", + "universo", + "uomo", + "uragano", + "uranio", + "urlare", + "uscire", + "utente", + "utilizzo", + "vacanza", + "vacca", + "vaglio", + "vagonata", + "valle", + "valore", + "valutare", + "valvola", + "vampiro", + "vaniglia", + "vanto", + "vapore", + "variante", + "vasca", + "vaselina", + "vassoio", + "vedere", + "vegetale", + "veglia", + "veicolo", + "vela", + "veleno", + "velivolo", + "velluto", + "vendere", + "venerare", + "venire", + "vento", + "veranda", + "verbo", + "verdura", + "vergine", + "verifica", + "vernice", + "vero", + "verruca", + "versare", + "vertebra", + "vescica", + "vespaio", + "vestito", + "vesuvio", + "veterano", + "vetro", + "vetta", + "viadotto", + "viaggio", + "vibrare", + "vicenda", + "vichingo", + "vietare", + "vigilare", + "vigneto", + "villa", + "vincere", + "violino", + "vipera", + "virgola", + "virtuoso", + "visita", + "vita", + "vitello", + "vittima", + "vivavoce", + "vivere", + "viziato", + "voglia", + "volare", + "volpe", + "volto", + "volume", + "vongole", + "voragine", + "vortice", + "votare", + "vulcano", + "vuotare", + "zabaione", + "zaffiro", + "zainetto", + "zampa", + "zanzara", + "zattera", + "zavorra", + "zenzero", + "zero", + "zingaro", + "zittire", + "zoccolo", + "zolfo", + "zombie", + "zucchero" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/japanese.dart b/cw_zano/lib/mnemonics/japanese.dart new file mode 100644 index 000000000..5d17fdb14 --- /dev/null +++ b/cw_zano/lib/mnemonics/japanese.dart @@ -0,0 +1,1630 @@ +class JapaneseMnemonics { + static const words = [ + "あいこくしん", + "あいさつ", + "あいだ", + "あおぞら", + "あかちゃん", + "あきる", + "あけがた", + "あける", + "あこがれる", + "あさい", + "あさひ", + "あしあと", + "あじわう", + "あずかる", + "あずき", + "あそぶ", + "あたえる", + "あたためる", + "あたりまえ", + "あたる", + "あつい", + "あつかう", + "あっしゅく", + "あつまり", + "あつめる", + "あてな", + "あてはまる", + "あひる", + "あぶら", + "あぶる", + "あふれる", + "あまい", + "あまど", + "あまやかす", + "あまり", + "あみもの", + "あめりか", + "あやまる", + "あゆむ", + "あらいぐま", + "あらし", + "あらすじ", + "あらためる", + "あらゆる", + "あらわす", + "ありがとう", + "あわせる", + "あわてる", + "あんい", + "あんがい", + "あんこ", + "あんぜん", + "あんてい", + "あんない", + "あんまり", + "いいだす", + "いおん", + "いがい", + "いがく", + "いきおい", + "いきなり", + "いきもの", + "いきる", + "いくじ", + "いくぶん", + "いけばな", + "いけん", + "いこう", + "いこく", + "いこつ", + "いさましい", + "いさん", + "いしき", + "いじゅう", + "いじょう", + "いじわる", + "いずみ", + "いずれ", + "いせい", + "いせえび", + "いせかい", + "いせき", + "いぜん", + "いそうろう", + "いそがしい", + "いだい", + "いだく", + "いたずら", + "いたみ", + "いたりあ", + "いちおう", + "いちじ", + "いちど", + "いちば", + "いちぶ", + "いちりゅう", + "いつか", + "いっしゅん", + "いっせい", + "いっそう", + "いったん", + "いっち", + "いってい", + "いっぽう", + "いてざ", + "いてん", + "いどう", + "いとこ", + "いない", + "いなか", + "いねむり", + "いのち", + "いのる", + "いはつ", + "いばる", + "いはん", + "いびき", + "いひん", + "いふく", + "いへん", + "いほう", + "いみん", + "いもうと", + "いもたれ", + "いもり", + "いやがる", + "いやす", + "いよかん", + "いよく", + "いらい", + "いらすと", + "いりぐち", + "いりょう", + "いれい", + "いれもの", + "いれる", + "いろえんぴつ", + "いわい", + "いわう", + "いわかん", + "いわば", + "いわゆる", + "いんげんまめ", + "いんさつ", + "いんしょう", + "いんよう", + "うえき", + "うえる", + "うおざ", + "うがい", + "うかぶ", + "うかべる", + "うきわ", + "うくらいな", + "うくれれ", + "うけたまわる", + "うけつけ", + "うけとる", + "うけもつ", + "うける", + "うごかす", + "うごく", + "うこん", + "うさぎ", + "うしなう", + "うしろがみ", + "うすい", + "うすぎ", + "うすぐらい", + "うすめる", + "うせつ", + "うちあわせ", + "うちがわ", + "うちき", + "うちゅう", + "うっかり", + "うつくしい", + "うったえる", + "うつる", + "うどん", + "うなぎ", + "うなじ", + "うなずく", + "うなる", + "うねる", + "うのう", + "うぶげ", + "うぶごえ", + "うまれる", + "うめる", + "うもう", + "うやまう", + "うよく", + "うらがえす", + "うらぐち", + "うらない", + "うりあげ", + "うりきれ", + "うるさい", + "うれしい", + "うれゆき", + "うれる", + "うろこ", + "うわき", + "うわさ", + "うんこう", + "うんちん", + "うんてん", + "うんどう", + "えいえん", + "えいが", + "えいきょう", + "えいご", + "えいせい", + "えいぶん", + "えいよう", + "えいわ", + "えおり", + "えがお", + "えがく", + "えきたい", + "えくせる", + "えしゃく", + "えすて", + "えつらん", + "えのぐ", + "えほうまき", + "えほん", + "えまき", + "えもじ", + "えもの", + "えらい", + "えらぶ", + "えりあ", + "えんえん", + "えんかい", + "えんぎ", + "えんげき", + "えんしゅう", + "えんぜつ", + "えんそく", + "えんちょう", + "えんとつ", + "おいかける", + "おいこす", + "おいしい", + "おいつく", + "おうえん", + "おうさま", + "おうじ", + "おうせつ", + "おうたい", + "おうふく", + "おうべい", + "おうよう", + "おえる", + "おおい", + "おおう", + "おおどおり", + "おおや", + "おおよそ", + "おかえり", + "おかず", + "おがむ", + "おかわり", + "おぎなう", + "おきる", + "おくさま", + "おくじょう", + "おくりがな", + "おくる", + "おくれる", + "おこす", + "おこなう", + "おこる", + "おさえる", + "おさない", + "おさめる", + "おしいれ", + "おしえる", + "おじぎ", + "おじさん", + "おしゃれ", + "おそらく", + "おそわる", + "おたがい", + "おたく", + "おだやか", + "おちつく", + "おっと", + "おつり", + "おでかけ", + "おとしもの", + "おとなしい", + "おどり", + "おどろかす", + "おばさん", + "おまいり", + "おめでとう", + "おもいで", + "おもう", + "おもたい", + "おもちゃ", + "おやつ", + "おやゆび", + "およぼす", + "おらんだ", + "おろす", + "おんがく", + "おんけい", + "おんしゃ", + "おんせん", + "おんだん", + "おんちゅう", + "おんどけい", + "かあつ", + "かいが", + "がいき", + "がいけん", + "がいこう", + "かいさつ", + "かいしゃ", + "かいすいよく", + "かいぜん", + "かいぞうど", + "かいつう", + "かいてん", + "かいとう", + "かいふく", + "がいへき", + "かいほう", + "かいよう", + "がいらい", + "かいわ", + "かえる", + "かおり", + "かかえる", + "かがく", + "かがし", + "かがみ", + "かくご", + "かくとく", + "かざる", + "がぞう", + "かたい", + "かたち", + "がちょう", + "がっきゅう", + "がっこう", + "がっさん", + "がっしょう", + "かなざわし", + "かのう", + "がはく", + "かぶか", + "かほう", + "かほご", + "かまう", + "かまぼこ", + "かめれおん", + "かゆい", + "かようび", + "からい", + "かるい", + "かろう", + "かわく", + "かわら", + "がんか", + "かんけい", + "かんこう", + "かんしゃ", + "かんそう", + "かんたん", + "かんち", + "がんばる", + "きあい", + "きあつ", + "きいろ", + "ぎいん", + "きうい", + "きうん", + "きえる", + "きおう", + "きおく", + "きおち", + "きおん", + "きかい", + "きかく", + "きかんしゃ", + "ききて", + "きくばり", + "きくらげ", + "きけんせい", + "きこう", + "きこえる", + "きこく", + "きさい", + "きさく", + "きさま", + "きさらぎ", + "ぎじかがく", + "ぎしき", + "ぎじたいけん", + "ぎじにってい", + "ぎじゅつしゃ", + "きすう", + "きせい", + "きせき", + "きせつ", + "きそう", + "きぞく", + "きぞん", + "きたえる", + "きちょう", + "きつえん", + "ぎっちり", + "きつつき", + "きつね", + "きてい", + "きどう", + "きどく", + "きない", + "きなが", + "きなこ", + "きぬごし", + "きねん", + "きのう", + "きのした", + "きはく", + "きびしい", + "きひん", + "きふく", + "きぶん", + "きぼう", + "きほん", + "きまる", + "きみつ", + "きむずかしい", + "きめる", + "きもだめし", + "きもち", + "きもの", + "きゃく", + "きやく", + "ぎゅうにく", + "きよう", + "きょうりゅう", + "きらい", + "きらく", + "きりん", + "きれい", + "きれつ", + "きろく", + "ぎろん", + "きわめる", + "ぎんいろ", + "きんかくじ", + "きんじょ", + "きんようび", + "ぐあい", + "くいず", + "くうかん", + "くうき", + "くうぐん", + "くうこう", + "ぐうせい", + "くうそう", + "ぐうたら", + "くうふく", + "くうぼ", + "くかん", + "くきょう", + "くげん", + "ぐこう", + "くさい", + "くさき", + "くさばな", + "くさる", + "くしゃみ", + "くしょう", + "くすのき", + "くすりゆび", + "くせげ", + "くせん", + "ぐたいてき", + "くださる", + "くたびれる", + "くちこみ", + "くちさき", + "くつした", + "ぐっすり", + "くつろぐ", + "くとうてん", + "くどく", + "くなん", + "くねくね", + "くのう", + "くふう", + "くみあわせ", + "くみたてる", + "くめる", + "くやくしょ", + "くらす", + "くらべる", + "くるま", + "くれる", + "くろう", + "くわしい", + "ぐんかん", + "ぐんしょく", + "ぐんたい", + "ぐんて", + "けあな", + "けいかく", + "けいけん", + "けいこ", + "けいさつ", + "げいじゅつ", + "けいたい", + "げいのうじん", + "けいれき", + "けいろ", + "けおとす", + "けおりもの", + "げきか", + "げきげん", + "げきだん", + "げきちん", + "げきとつ", + "げきは", + "げきやく", + "げこう", + "げこくじょう", + "げざい", + "けさき", + "げざん", + "けしき", + "けしごむ", + "けしょう", + "げすと", + "けたば", + "けちゃっぷ", + "けちらす", + "けつあつ", + "けつい", + "けつえき", + "けっこん", + "けつじょ", + "けっせき", + "けってい", + "けつまつ", + "げつようび", + "げつれい", + "けつろん", + "げどく", + "けとばす", + "けとる", + "けなげ", + "けなす", + "けなみ", + "けぬき", + "げねつ", + "けねん", + "けはい", + "げひん", + "けぶかい", + "げぼく", + "けまり", + "けみかる", + "けむし", + "けむり", + "けもの", + "けらい", + "けろけろ", + "けわしい", + "けんい", + "けんえつ", + "けんお", + "けんか", + "げんき", + "けんげん", + "けんこう", + "けんさく", + "けんしゅう", + "けんすう", + "げんそう", + "けんちく", + "けんてい", + "けんとう", + "けんない", + "けんにん", + "げんぶつ", + "けんま", + "けんみん", + "けんめい", + "けんらん", + "けんり", + "こあくま", + "こいぬ", + "こいびと", + "ごうい", + "こうえん", + "こうおん", + "こうかん", + "ごうきゅう", + "ごうけい", + "こうこう", + "こうさい", + "こうじ", + "こうすい", + "ごうせい", + "こうそく", + "こうたい", + "こうちゃ", + "こうつう", + "こうてい", + "こうどう", + "こうない", + "こうはい", + "ごうほう", + "ごうまん", + "こうもく", + "こうりつ", + "こえる", + "こおり", + "ごかい", + "ごがつ", + "ごかん", + "こくご", + "こくさい", + "こくとう", + "こくない", + "こくはく", + "こぐま", + "こけい", + "こける", + "ここのか", + "こころ", + "こさめ", + "こしつ", + "こすう", + "こせい", + "こせき", + "こぜん", + "こそだて", + "こたい", + "こたえる", + "こたつ", + "こちょう", + "こっか", + "こつこつ", + "こつばん", + "こつぶ", + "こてい", + "こてん", + "ことがら", + "ことし", + "ことば", + "ことり", + "こなごな", + "こねこね", + "このまま", + "このみ", + "このよ", + "ごはん", + "こひつじ", + "こふう", + "こふん", + "こぼれる", + "ごまあぶら", + "こまかい", + "ごますり", + "こまつな", + "こまる", + "こむぎこ", + "こもじ", + "こもち", + "こもの", + "こもん", + "こやく", + "こやま", + "こゆう", + "こゆび", + "こよい", + "こよう", + "こりる", + "これくしょん", + "ころっけ", + "こわもて", + "こわれる", + "こんいん", + "こんかい", + "こんき", + "こんしゅう", + "こんすい", + "こんだて", + "こんとん", + "こんなん", + "こんびに", + "こんぽん", + "こんまけ", + "こんや", + "こんれい", + "こんわく", + "ざいえき", + "さいかい", + "さいきん", + "ざいげん", + "ざいこ", + "さいしょ", + "さいせい", + "ざいたく", + "ざいちゅう", + "さいてき", + "ざいりょう", + "さうな", + "さかいし", + "さがす", + "さかな", + "さかみち", + "さがる", + "さぎょう", + "さくし", + "さくひん", + "さくら", + "さこく", + "さこつ", + "さずかる", + "ざせき", + "さたん", + "さつえい", + "ざつおん", + "ざっか", + "ざつがく", + "さっきょく", + "ざっし", + "さつじん", + "ざっそう", + "さつたば", + "さつまいも", + "さてい", + "さといも", + "さとう", + "さとおや", + "さとし", + "さとる", + "さのう", + "さばく", + "さびしい", + "さべつ", + "さほう", + "さほど", + "さます", + "さみしい", + "さみだれ", + "さむけ", + "さめる", + "さやえんどう", + "さゆう", + "さよう", + "さよく", + "さらだ", + "ざるそば", + "さわやか", + "さわる", + "さんいん", + "さんか", + "さんきゃく", + "さんこう", + "さんさい", + "ざんしょ", + "さんすう", + "さんせい", + "さんそ", + "さんち", + "さんま", + "さんみ", + "さんらん", + "しあい", + "しあげ", + "しあさって", + "しあわせ", + "しいく", + "しいん", + "しうち", + "しえい", + "しおけ", + "しかい", + "しかく", + "じかん", + "しごと", + "しすう", + "じだい", + "したうけ", + "したぎ", + "したて", + "したみ", + "しちょう", + "しちりん", + "しっかり", + "しつじ", + "しつもん", + "してい", + "してき", + "してつ", + "じてん", + "じどう", + "しなぎれ", + "しなもの", + "しなん", + "しねま", + "しねん", + "しのぐ", + "しのぶ", + "しはい", + "しばかり", + "しはつ", + "しはらい", + "しはん", + "しひょう", + "しふく", + "じぶん", + "しへい", + "しほう", + "しほん", + "しまう", + "しまる", + "しみん", + "しむける", + "じむしょ", + "しめい", + "しめる", + "しもん", + "しゃいん", + "しゃうん", + "しゃおん", + "じゃがいも", + "しやくしょ", + "しゃくほう", + "しゃけん", + "しゃこ", + "しゃざい", + "しゃしん", + "しゃせん", + "しゃそう", + "しゃたい", + "しゃちょう", + "しゃっきん", + "じゃま", + "しゃりん", + "しゃれい", + "じゆう", + "じゅうしょ", + "しゅくはく", + "じゅしん", + "しゅっせき", + "しゅみ", + "しゅらば", + "じゅんばん", + "しょうかい", + "しょくたく", + "しょっけん", + "しょどう", + "しょもつ", + "しらせる", + "しらべる", + "しんか", + "しんこう", + "じんじゃ", + "しんせいじ", + "しんちく", + "しんりん", + "すあげ", + "すあし", + "すあな", + "ずあん", + "すいえい", + "すいか", + "すいとう", + "ずいぶん", + "すいようび", + "すうがく", + "すうじつ", + "すうせん", + "すおどり", + "すきま", + "すくう", + "すくない", + "すける", + "すごい", + "すこし", + "ずさん", + "すずしい", + "すすむ", + "すすめる", + "すっかり", + "ずっしり", + "ずっと", + "すてき", + "すてる", + "すねる", + "すのこ", + "すはだ", + "すばらしい", + "ずひょう", + "ずぶぬれ", + "すぶり", + "すふれ", + "すべて", + "すべる", + "ずほう", + "すぼん", + "すまい", + "すめし", + "すもう", + "すやき", + "すらすら", + "するめ", + "すれちがう", + "すろっと", + "すわる", + "すんぜん", + "すんぽう", + "せあぶら", + "せいかつ", + "せいげん", + "せいじ", + "せいよう", + "せおう", + "せかいかん", + "せきにん", + "せきむ", + "せきゆ", + "せきらんうん", + "せけん", + "せこう", + "せすじ", + "せたい", + "せたけ", + "せっかく", + "せっきゃく", + "ぜっく", + "せっけん", + "せっこつ", + "せっさたくま", + "せつぞく", + "せつだん", + "せつでん", + "せっぱん", + "せつび", + "せつぶん", + "せつめい", + "せつりつ", + "せなか", + "せのび", + "せはば", + "せびろ", + "せぼね", + "せまい", + "せまる", + "せめる", + "せもたれ", + "せりふ", + "ぜんあく", + "せんい", + "せんえい", + "せんか", + "せんきょ", + "せんく", + "せんげん", + "ぜんご", + "せんさい", + "せんしゅ", + "せんすい", + "せんせい", + "せんぞ", + "せんたく", + "せんちょう", + "せんてい", + "せんとう", + "せんぬき", + "せんねん", + "せんぱい", + "ぜんぶ", + "ぜんぽう", + "せんむ", + "せんめんじょ", + "せんもん", + "せんやく", + "せんゆう", + "せんよう", + "ぜんら", + "ぜんりゃく", + "せんれい", + "せんろ", + "そあく", + "そいとげる", + "そいね", + "そうがんきょう", + "そうき", + "そうご", + "そうしん", + "そうだん", + "そうなん", + "そうび", + "そうめん", + "そうり", + "そえもの", + "そえん", + "そがい", + "そげき", + "そこう", + "そこそこ", + "そざい", + "そしな", + "そせい", + "そせん", + "そそぐ", + "そだてる", + "そつう", + "そつえん", + "そっかん", + "そつぎょう", + "そっけつ", + "そっこう", + "そっせん", + "そっと", + "そとがわ", + "そとづら", + "そなえる", + "そなた", + "そふぼ", + "そぼく", + "そぼろ", + "そまつ", + "そまる", + "そむく", + "そむりえ", + "そめる", + "そもそも", + "そよかぜ", + "そらまめ", + "そろう", + "そんかい", + "そんけい", + "そんざい", + "そんしつ", + "そんぞく", + "そんちょう", + "ぞんび", + "ぞんぶん", + "そんみん", + "たあい", + "たいいん", + "たいうん", + "たいえき", + "たいおう", + "だいがく", + "たいき", + "たいぐう", + "たいけん", + "たいこ", + "たいざい", + "だいじょうぶ", + "だいすき", + "たいせつ", + "たいそう", + "だいたい", + "たいちょう", + "たいてい", + "だいどころ", + "たいない", + "たいねつ", + "たいのう", + "たいはん", + "だいひょう", + "たいふう", + "たいへん", + "たいほ", + "たいまつばな", + "たいみんぐ", + "たいむ", + "たいめん", + "たいやき", + "たいよう", + "たいら", + "たいりょく", + "たいる", + "たいわん", + "たうえ", + "たえる", + "たおす", + "たおる", + "たおれる", + "たかい", + "たかね", + "たきび", + "たくさん", + "たこく", + "たこやき", + "たさい", + "たしざん", + "だじゃれ", + "たすける", + "たずさわる", + "たそがれ", + "たたかう", + "たたく", + "ただしい", + "たたみ", + "たちばな", + "だっかい", + "だっきゃく", + "だっこ", + "だっしゅつ", + "だったい", + "たてる", + "たとえる", + "たなばた", + "たにん", + "たぬき", + "たのしみ", + "たはつ", + "たぶん", + "たべる", + "たぼう", + "たまご", + "たまる", + "だむる", + "ためいき", + "ためす", + "ためる", + "たもつ", + "たやすい", + "たよる", + "たらす", + "たりきほんがん", + "たりょう", + "たりる", + "たると", + "たれる", + "たれんと", + "たろっと", + "たわむれる", + "だんあつ", + "たんい", + "たんおん", + "たんか", + "たんき", + "たんけん", + "たんご", + "たんさん", + "たんじょうび", + "だんせい", + "たんそく", + "たんたい", + "だんち", + "たんてい", + "たんとう", + "だんな", + "たんにん", + "だんねつ", + "たんのう", + "たんぴん", + "だんぼう", + "たんまつ", + "たんめい", + "だんれつ", + "だんろ", + "だんわ", + "ちあい", + "ちあん", + "ちいき", + "ちいさい", + "ちえん", + "ちかい", + "ちから", + "ちきゅう", + "ちきん", + "ちけいず", + "ちけん", + "ちこく", + "ちさい", + "ちしき", + "ちしりょう", + "ちせい", + "ちそう", + "ちたい", + "ちたん", + "ちちおや", + "ちつじょ", + "ちてき", + "ちてん", + "ちぬき", + "ちぬり", + "ちのう", + "ちひょう", + "ちへいせん", + "ちほう", + "ちまた", + "ちみつ", + "ちみどろ", + "ちめいど", + "ちゃんこなべ", + "ちゅうい", + "ちゆりょく", + "ちょうし", + "ちょさくけん", + "ちらし", + "ちらみ", + "ちりがみ", + "ちりょう", + "ちるど", + "ちわわ", + "ちんたい", + "ちんもく", + "ついか", + "ついたち", + "つうか", + "つうじょう", + "つうはん", + "つうわ", + "つかう", + "つかれる", + "つくね", + "つくる", + "つけね", + "つける", + "つごう", + "つたえる", + "つづく", + "つつじ", + "つつむ", + "つとめる", + "つながる", + "つなみ", + "つねづね", + "つのる", + "つぶす", + "つまらない", + "つまる", + "つみき", + "つめたい", + "つもり", + "つもる", + "つよい", + "つるぼ", + "つるみく", + "つわもの", + "つわり", + "てあし", + "てあて", + "てあみ", + "ていおん", + "ていか", + "ていき", + "ていけい", + "ていこく", + "ていさつ", + "ていし", + "ていせい", + "ていたい", + "ていど", + "ていねい", + "ていひょう", + "ていへん", + "ていぼう", + "てうち", + "ておくれ", + "てきとう", + "てくび", + "でこぼこ", + "てさぎょう", + "てさげ", + "てすり", + "てそう", + "てちがい", + "てちょう", + "てつがく", + "てつづき", + "でっぱ", + "てつぼう", + "てつや", + "でぬかえ", + "てぬき", + "てぬぐい", + "てのひら", + "てはい", + "てぶくろ", + "てふだ", + "てほどき", + "てほん", + "てまえ", + "てまきずし", + "てみじか", + "てみやげ", + "てらす", + "てれび", + "てわけ", + "てわたし", + "でんあつ", + "てんいん", + "てんかい", + "てんき", + "てんぐ", + "てんけん", + "てんごく", + "てんさい", + "てんし", + "てんすう", + "でんち", + "てんてき", + "てんとう", + "てんない", + "てんぷら", + "てんぼうだい", + "てんめつ", + "てんらんかい", + "でんりょく", + "でんわ", + "どあい", + "といれ", + "どうかん", + "とうきゅう", + "どうぐ", + "とうし", + "とうむぎ", + "とおい", + "とおか", + "とおく", + "とおす", + "とおる", + "とかい", + "とかす", + "ときおり", + "ときどき", + "とくい", + "とくしゅう", + "とくてん", + "とくに", + "とくべつ", + "とけい", + "とける", + "とこや", + "とさか", + "としょかん", + "とそう", + "とたん", + "とちゅう", + "とっきゅう", + "とっくん", + "とつぜん", + "とつにゅう", + "とどける", + "ととのえる", + "とない", + "となえる", + "となり", + "とのさま", + "とばす", + "どぶがわ", + "とほう", + "とまる", + "とめる", + "ともだち", + "ともる", + "どようび", + "とらえる", + "とんかつ", + "どんぶり", + "ないかく", + "ないこう", + "ないしょ", + "ないす", + "ないせん", + "ないそう", + "なおす", + "ながい", + "なくす", + "なげる", + "なこうど", + "なさけ", + "なたでここ", + "なっとう", + "なつやすみ", + "ななおし", + "なにごと", + "なにもの", + "なにわ", + "なのか", + "なふだ", + "なまいき", + "なまえ", + "なまみ", + "なみだ", + "なめらか", + "なめる", + "なやむ", + "ならう", + "ならび", + "ならぶ", + "なれる", + "なわとび", + "なわばり", + "にあう", + "にいがた", + "にうけ", + "におい", + "にかい", + "にがて", + "にきび", + "にくしみ", + "にくまん", + "にげる", + "にさんかたんそ", + "にしき", + "にせもの", + "にちじょう", + "にちようび", + "にっか", + "にっき", + "にっけい", + "にっこう", + "にっさん", + "にっしょく", + "にっすう", + "にっせき", + "にってい", + "になう", + "にほん", + "にまめ", + "にもつ", + "にやり", + "にゅういん", + "にりんしゃ", + "にわとり", + "にんい", + "にんか", + "にんき", + "にんげん", + "にんしき", + "にんずう", + "にんそう", + "にんたい", + "にんち", + "にんてい", + "にんにく", + "にんぷ", + "にんまり", + "にんむ", + "にんめい", + "にんよう", + "ぬいくぎ", + "ぬかす", + "ぬぐいとる", + "ぬぐう", + "ぬくもり", + "ぬすむ", + "ぬまえび", + "ぬめり", + "ぬらす", + "ぬんちゃく", + "ねあげ", + "ねいき", + "ねいる", + "ねいろ", + "ねぐせ", + "ねくたい", + "ねくら", + "ねこぜ", + "ねこむ", + "ねさげ", + "ねすごす", + "ねそべる", + "ねだん", + "ねつい", + "ねっしん", + "ねつぞう", + "ねったいぎょ", + "ねぶそく", + "ねふだ", + "ねぼう", + "ねほりはほり", + "ねまき", + "ねまわし", + "ねみみ", + "ねむい", + "ねむたい", + "ねもと", + "ねらう", + "ねわざ", + "ねんいり", + "ねんおし", + "ねんかん", + "ねんきん", + "ねんぐ", + "ねんざ", + "ねんし", + "ねんちゃく", + "ねんど", + "ねんぴ", + "ねんぶつ", + "ねんまつ", + "ねんりょう", + "ねんれい", + "のいず", + "のおづま", + "のがす", + "のきなみ", + "のこぎり", + "のこす", + "のこる", + "のせる", + "のぞく", + "のぞむ", + "のたまう", + "のちほど", + "のっく", + "のばす", + "のはら", + "のべる", + "のぼる", + "のみもの", + "のやま", + "のらいぬ", + "のらねこ", + "のりもの", + "のりゆき", + "のれん", + "のんき", + "ばあい", + "はあく", + "ばあさん", + "ばいか", + "ばいく", + "はいけん", + "はいご", + "はいしん", + "はいすい", + "はいせん", + "はいそう", + "はいち", + "ばいばい", + "はいれつ", + "はえる", + "はおる", + "はかい", + "ばかり", + "はかる", + "はくしゅ", + "はけん", + "はこぶ", + "はさみ", + "はさん", + "はしご", + "ばしょ", + "はしる", + "はせる", + "ぱそこん", + "はそん", + "はたん", + "はちみつ", + "はつおん", + "はっかく", + "はづき", + "はっきり", + "はっくつ", + "はっけん", + "はっこう", + "はっさん", + "はっしん", + "はったつ", + "はっちゅう", + "はってん", + "はっぴょう", + "はっぽう", + "はなす", + "はなび", + "はにかむ", + "はぶらし", + "はみがき", + "はむかう", + "はめつ", + "はやい", + "はやし", + "はらう", + "はろうぃん", + "はわい", + "はんい", + "はんえい", + "はんおん", + "はんかく", + "はんきょう", + "ばんぐみ", + "はんこ", + "はんしゃ", + "はんすう", + "はんだん", + "ぱんち", + "ぱんつ", + "はんてい", + "はんとし", + "はんのう", + "はんぱ", + "はんぶん", + "はんぺん", + "はんぼうき", + "はんめい", + "はんらん", + "はんろん", + "ひいき", + "ひうん", + "ひえる", + "ひかく", + "ひかり", + "ひかる", + "ひかん", + "ひくい", + "ひけつ", + "ひこうき", + "ひこく", + "ひさい", + "ひさしぶり", + "ひさん", + "びじゅつかん", + "ひしょ" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/portuguese.dart b/cw_zano/lib/mnemonics/portuguese.dart new file mode 100644 index 000000000..4428ac8f4 --- /dev/null +++ b/cw_zano/lib/mnemonics/portuguese.dart @@ -0,0 +1,1630 @@ +class PortugueseMnemonics { + static const words = [ + "abaular", + "abdominal", + "abeto", + "abissinio", + "abjeto", + "ablucao", + "abnegar", + "abotoar", + "abrutalhar", + "absurdo", + "abutre", + "acautelar", + "accessorios", + "acetona", + "achocolatado", + "acirrar", + "acne", + "acovardar", + "acrostico", + "actinomicete", + "acustico", + "adaptavel", + "adeus", + "adivinho", + "adjunto", + "admoestar", + "adnominal", + "adotivo", + "adquirir", + "adriatico", + "adsorcao", + "adutora", + "advogar", + "aerossol", + "afazeres", + "afetuoso", + "afixo", + "afluir", + "afortunar", + "afrouxar", + "aftosa", + "afunilar", + "agentes", + "agito", + "aglutinar", + "aiatola", + "aimore", + "aino", + "aipo", + "airoso", + "ajeitar", + "ajoelhar", + "ajudante", + "ajuste", + "alazao", + "albumina", + "alcunha", + "alegria", + "alexandre", + "alforriar", + "alguns", + "alhures", + "alivio", + "almoxarife", + "alotropico", + "alpiste", + "alquimista", + "alsaciano", + "altura", + "aluviao", + "alvura", + "amazonico", + "ambulatorio", + "ametodico", + "amizades", + "amniotico", + "amovivel", + "amurada", + "anatomico", + "ancorar", + "anexo", + "anfora", + "aniversario", + "anjo", + "anotar", + "ansioso", + "anturio", + "anuviar", + "anverso", + "anzol", + "aonde", + "apaziguar", + "apito", + "aplicavel", + "apoteotico", + "aprimorar", + "aprumo", + "apto", + "apuros", + "aquoso", + "arauto", + "arbusto", + "arduo", + "aresta", + "arfar", + "arguto", + "aritmetico", + "arlequim", + "armisticio", + "aromatizar", + "arpoar", + "arquivo", + "arrumar", + "arsenio", + "arturiano", + "aruaque", + "arvores", + "asbesto", + "ascorbico", + "aspirina", + "asqueroso", + "assustar", + "astuto", + "atazanar", + "ativo", + "atletismo", + "atmosferico", + "atormentar", + "atroz", + "aturdir", + "audivel", + "auferir", + "augusto", + "aula", + "aumento", + "aurora", + "autuar", + "avatar", + "avexar", + "avizinhar", + "avolumar", + "avulso", + "axiomatico", + "azerbaijano", + "azimute", + "azoto", + "azulejo", + "bacteriologista", + "badulaque", + "baforada", + "baixote", + "bajular", + "balzaquiana", + "bambuzal", + "banzo", + "baoba", + "baqueta", + "barulho", + "bastonete", + "batuta", + "bauxita", + "bavaro", + "bazuca", + "bcrepuscular", + "beato", + "beduino", + "begonia", + "behaviorista", + "beisebol", + "belzebu", + "bemol", + "benzido", + "beocio", + "bequer", + "berro", + "besuntar", + "betume", + "bexiga", + "bezerro", + "biatlon", + "biboca", + "bicuspide", + "bidirecional", + "bienio", + "bifurcar", + "bigorna", + "bijuteria", + "bimotor", + "binormal", + "bioxido", + "bipolarizacao", + "biquini", + "birutice", + "bisturi", + "bituca", + "biunivoco", + "bivalve", + "bizarro", + "blasfemo", + "blenorreia", + "blindar", + "bloqueio", + "blusao", + "boazuda", + "bofete", + "bojudo", + "bolso", + "bombordo", + "bonzo", + "botina", + "boquiaberto", + "bostoniano", + "botulismo", + "bourbon", + "bovino", + "boximane", + "bravura", + "brevidade", + "britar", + "broxar", + "bruno", + "bruxuleio", + "bubonico", + "bucolico", + "buda", + "budista", + "bueiro", + "buffer", + "bugre", + "bujao", + "bumerangue", + "burundines", + "busto", + "butique", + "buzios", + "caatinga", + "cabuqui", + "cacunda", + "cafuzo", + "cajueiro", + "camurca", + "canudo", + "caquizeiro", + "carvoeiro", + "casulo", + "catuaba", + "cauterizar", + "cebolinha", + "cedula", + "ceifeiro", + "celulose", + "cerzir", + "cesto", + "cetro", + "ceus", + "cevar", + "czanoa", + "cheroqui", + "chita", + "chovido", + "chuvoso", + "ciatico", + "cibernetico", + "cicuta", + "cidreira", + "cientistas", + "cifrar", + "cigarro", + "cilio", + "cimo", + "cinzento", + "cioso", + "cipriota", + "cirurgico", + "cisto", + "citrico", + "ciumento", + "civismo", + "clavicula", + "clero", + "clitoris", + "cluster", + "coaxial", + "cobrir", + "cocota", + "codorniz", + "coexistir", + "cogumelo", + "coito", + "colusao", + "compaixao", + "comutativo", + "contentamento", + "convulsivo", + "coordenativa", + "coquetel", + "correto", + "corvo", + "costureiro", + "cotovia", + "covil", + "cozinheiro", + "cretino", + "cristo", + "crivo", + "crotalo", + "cruzes", + "cubo", + "cucuia", + "cueiro", + "cuidar", + "cujo", + "cultural", + "cunilingua", + "cupula", + "curvo", + "custoso", + "cutucar", + "czarismo", + "dablio", + "dacota", + "dados", + "daguerreotipo", + "daiquiri", + "daltonismo", + "damista", + "dantesco", + "daquilo", + "darwinista", + "dasein", + "dativo", + "deao", + "debutantes", + "decurso", + "deduzir", + "defunto", + "degustar", + "dejeto", + "deltoide", + "demover", + "denunciar", + "deputado", + "deque", + "dervixe", + "desvirtuar", + "deturpar", + "deuteronomio", + "devoto", + "dextrose", + "dezoito", + "diatribe", + "dicotomico", + "didatico", + "dietista", + "difuso", + "digressao", + "diluvio", + "diminuto", + "dinheiro", + "dinossauro", + "dioxido", + "diplomatico", + "dique", + "dirimivel", + "disturbio", + "diurno", + "divulgar", + "dizivel", + "doar", + "dobro", + "docura", + "dodoi", + "doer", + "dogue", + "doloso", + "domo", + "donzela", + "doping", + "dorsal", + "dossie", + "dote", + "doutro", + "doze", + "dravidico", + "dreno", + "driver", + "dropes", + "druso", + "dubnio", + "ducto", + "dueto", + "dulija", + "dundum", + "duodeno", + "duquesa", + "durou", + "duvidoso", + "duzia", + "ebano", + "ebrio", + "eburneo", + "echarpe", + "eclusa", + "ecossistema", + "ectoplasma", + "ecumenismo", + "eczema", + "eden", + "editorial", + "edredom", + "edulcorar", + "efetuar", + "efigie", + "efluvio", + "egiptologo", + "egresso", + "egua", + "einsteiniano", + "eira", + "eivar", + "eixos", + "ejetar", + "elastomero", + "eldorado", + "elixir", + "elmo", + "eloquente", + "elucidativo", + "emaranhar", + "embutir", + "emerito", + "emfa", + "emitir", + "emotivo", + "empuxo", + "emulsao", + "enamorar", + "encurvar", + "enduro", + "enevoar", + "enfurnar", + "enguico", + "enho", + "enigmista", + "enlutar", + "enormidade", + "enpreendimento", + "enquanto", + "enriquecer", + "enrugar", + "entusiastico", + "enunciar", + "envolvimento", + "enxuto", + "enzimatico", + "eolico", + "epiteto", + "epoxi", + "epura", + "equivoco", + "erario", + "erbio", + "ereto", + "erguido", + "erisipela", + "ermo", + "erotizar", + "erros", + "erupcao", + "ervilha", + "esburacar", + "escutar", + "esfuziante", + "esguio", + "esloveno", + "esmurrar", + "esoterismo", + "esperanca", + "espirito", + "espurio", + "essencialmente", + "esturricar", + "esvoacar", + "etario", + "eterno", + "etiquetar", + "etnologo", + "etos", + "etrusco", + "euclidiano", + "euforico", + "eugenico", + "eunuco", + "europio", + "eustaquio", + "eutanasia", + "evasivo", + "eventualidade", + "evitavel", + "evoluir", + "exaustor", + "excursionista", + "exercito", + "exfoliado", + "exito", + "exotico", + "expurgo", + "exsudar", + "extrusora", + "exumar", + "fabuloso", + "facultativo", + "fado", + "fagulha", + "faixas", + "fajuto", + "faltoso", + "famoso", + "fanzine", + "fapesp", + "faquir", + "fartura", + "fastio", + "faturista", + "fausto", + "favorito", + "faxineira", + "fazer", + "fealdade", + "febril", + "fecundo", + "fedorento", + "feerico", + "feixe", + "felicidade", + "felpudo", + "feltro", + "femur", + "fenotipo", + "fervura", + "festivo", + "feto", + "feudo", + "fevereiro", + "fezinha", + "fiasco", + "fibra", + "ficticio", + "fiduciario", + "fiesp", + "fifa", + "figurino", + "fijiano", + "filtro", + "finura", + "fiorde", + "fiquei", + "firula", + "fissurar", + "fitoteca", + "fivela", + "fixo", + "flavio", + "flexor", + "flibusteiro", + "flotilha", + "fluxograma", + "fobos", + "foco", + "fofura", + "foguista", + "foie", + "foliculo", + "fominha", + "fonte", + "forum", + "fosso", + "fotossintese", + "foxtrote", + "fraudulento", + "frevo", + "frivolo", + "frouxo", + "frutose", + "fuba", + "fucsia", + "fugitivo", + "fuinha", + "fujao", + "fulustreco", + "fumo", + "funileiro", + "furunculo", + "fustigar", + "futurologo", + "fuxico", + "fuzue", + "gabriel", + "gado", + "gaelico", + "gafieira", + "gaguejo", + "gaivota", + "gajo", + "galvanoplastico", + "gamo", + "ganso", + "garrucha", + "gastronomo", + "gatuno", + "gaussiano", + "gaviao", + "gaxeta", + "gazeteiro", + "gear", + "geiser", + "geminiano", + "generoso", + "genuino", + "geossinclinal", + "gerundio", + "gestual", + "getulista", + "gibi", + "gigolo", + "gilete", + "ginseng", + "giroscopio", + "glaucio", + "glacial", + "gleba", + "glifo", + "glote", + "glutonia", + "gnostico", + "goela", + "gogo", + "goitaca", + "golpista", + "gomo", + "gonzo", + "gorro", + "gostou", + "goticula", + "gourmet", + "governo", + "gozo", + "graxo", + "grevista", + "grito", + "grotesco", + "gruta", + "guaxinim", + "gude", + "gueto", + "guizo", + "guloso", + "gume", + "guru", + "gustativo", + "grelhado", + "gutural", + "habitue", + "haitiano", + "halterofilista", + "hamburguer", + "hanseniase", + "happening", + "harpista", + "hastear", + "haveres", + "hebreu", + "hectometro", + "hedonista", + "hegira", + "helena", + "helminto", + "hemorroidas", + "henrique", + "heptassilabo", + "hertziano", + "hesitar", + "heterossexual", + "heuristico", + "hexagono", + "hiato", + "hibrido", + "hidrostatico", + "hieroglifo", + "hifenizar", + "higienizar", + "hilario", + "himen", + "hino", + "hippie", + "hirsuto", + "historiografia", + "hitlerista", + "hodometro", + "hoje", + "holograma", + "homus", + "honroso", + "hoquei", + "horto", + "hostilizar", + "hotentote", + "huguenote", + "humilde", + "huno", + "hurra", + "hutu", + "iaia", + "ialorixa", + "iambico", + "iansa", + "iaque", + "iara", + "iatista", + "iberico", + "ibis", + "icar", + "iceberg", + "icosagono", + "idade", + "ideologo", + "idiotice", + "idoso", + "iemenita", + "iene", + "igarape", + "iglu", + "ignorar", + "igreja", + "iguaria", + "iidiche", + "ilativo", + "iletrado", + "ilharga", + "ilimitado", + "ilogismo", + "ilustrissimo", + "imaturo", + "imbuzeiro", + "imerso", + "imitavel", + "imovel", + "imputar", + "imutavel", + "inaveriguavel", + "incutir", + "induzir", + "inextricavel", + "infusao", + "ingua", + "inhame", + "iniquo", + "injusto", + "inning", + "inoxidavel", + "inquisitorial", + "insustentavel", + "intumescimento", + "inutilizavel", + "invulneravel", + "inzoneiro", + "iodo", + "iogurte", + "ioio", + "ionosfera", + "ioruba", + "iota", + "ipsilon", + "irascivel", + "iris", + "irlandes", + "irmaos", + "iroques", + "irrupcao", + "isca", + "isento", + "islandes", + "isotopo", + "isqueiro", + "israelita", + "isso", + "isto", + "iterbio", + "itinerario", + "itrio", + "iuane", + "iugoslavo", + "jabuticabeira", + "jacutinga", + "jade", + "jagunco", + "jainista", + "jaleco", + "jambo", + "jantarada", + "japones", + "jaqueta", + "jarro", + "jasmim", + "jato", + "jaula", + "javel", + "jazz", + "jegue", + "jeitoso", + "jejum", + "jenipapo", + "jeova", + "jequitiba", + "jersei", + "jesus", + "jetom", + "jiboia", + "jihad", + "jilo", + "jingle", + "jipe", + "jocoso", + "joelho", + "joguete", + "joio", + "jojoba", + "jorro", + "jota", + "joule", + "joviano", + "jubiloso", + "judoca", + "jugular", + "juizo", + "jujuba", + "juliano", + "jumento", + "junto", + "jururu", + "justo", + "juta", + "juventude", + "labutar", + "laguna", + "laico", + "lajota", + "lanterninha", + "lapso", + "laquear", + "lastro", + "lauto", + "lavrar", + "laxativo", + "lazer", + "leasing", + "lebre", + "lecionar", + "ledo", + "leguminoso", + "leitura", + "lele", + "lemure", + "lento", + "leonardo", + "leopardo", + "lepton", + "leque", + "leste", + "letreiro", + "leucocito", + "levitico", + "lexicologo", + "lhama", + "lhufas", + "liame", + "licoroso", + "lidocaina", + "liliputiano", + "limusine", + "linotipo", + "lipoproteina", + "liquidos", + "lirismo", + "lisura", + "liturgico", + "livros", + "lixo", + "lobulo", + "locutor", + "lodo", + "logro", + "lojista", + "lombriga", + "lontra", + "loop", + "loquaz", + "lorota", + "losango", + "lotus", + "louvor", + "luar", + "lubrificavel", + "lucros", + "lugubre", + "luis", + "luminoso", + "luneta", + "lustroso", + "luto", + "luvas", + "luxuriante", + "luzeiro", + "maduro", + "maestro", + "mafioso", + "magro", + "maiuscula", + "majoritario", + "malvisto", + "mamute", + "manutencao", + "mapoteca", + "maquinista", + "marzipa", + "masturbar", + "matuto", + "mausoleu", + "mavioso", + "maxixe", + "mazurca", + "meandro", + "mecha", + "medusa", + "mefistofelico", + "megera", + "meirinho", + "melro", + "memorizar", + "menu", + "mequetrefe", + "mertiolate", + "mestria", + "metroviario", + "mexilhao", + "mezanino", + "miau", + "microssegundo", + "midia", + "migratorio", + "mimosa", + "minuto", + "miosotis", + "mirtilo", + "misturar", + "mitzvah", + "miudos", + "mixuruca", + "mnemonico", + "moagem", + "mobilizar", + "modulo", + "moer", + "mofo", + "mogno", + "moita", + "molusco", + "monumento", + "moqueca", + "morubixaba", + "mostruario", + "motriz", + "mouse", + "movivel", + "mozarela", + "muarra", + "muculmano", + "mudo", + "mugir", + "muitos", + "mumunha", + "munir", + "muon", + "muquira", + "murros", + "musselina", + "nacoes", + "nado", + "naftalina", + "nago", + "naipe", + "naja", + "nalgum", + "namoro", + "nanquim", + "napolitano", + "naquilo", + "nascimento", + "nautilo", + "navios", + "nazista", + "nebuloso", + "nectarina", + "nefrologo", + "negus", + "nelore", + "nenufar", + "nepotismo", + "nervura", + "neste", + "netuno", + "neutron", + "nevoeiro", + "newtoniano", + "nexo", + "nhenhenhem", + "nhoque", + "nigeriano", + "niilista", + "ninho", + "niobio", + "niponico", + "niquelar", + "nirvana", + "nisto", + "nitroglicerina", + "nivoso", + "nobreza", + "nocivo", + "noel", + "nogueira", + "noivo", + "nojo", + "nominativo", + "nonuplo", + "noruegues", + "nostalgico", + "noturno", + "nouveau", + "nuanca", + "nublar", + "nucleotideo", + "nudista", + "nulo", + "numismatico", + "nunquinha", + "nupcias", + "nutritivo", + "nuvens", + "oasis", + "obcecar", + "obeso", + "obituario", + "objetos", + "oblongo", + "obnoxio", + "obrigatorio", + "obstruir", + "obtuso", + "obus", + "obvio", + "ocaso", + "occipital", + "oceanografo", + "ocioso", + "oclusivo", + "ocorrer", + "ocre", + "octogono", + "odalisca", + "odisseia", + "odorifico", + "oersted", + "oeste", + "ofertar", + "ofidio", + "oftalmologo", + "ogiva", + "ogum", + "oigale", + "oitavo", + "oitocentos", + "ojeriza", + "olaria", + "oleoso", + "olfato", + "olhos", + "oliveira", + "olmo", + "olor", + "olvidavel", + "ombudsman", + "omeleteira", + "omitir", + "omoplata", + "onanismo", + "ondular", + "oneroso", + "onomatopeico", + "ontologico", + "onus", + "onze", + "opalescente", + "opcional", + "operistico", + "opio", + "oposto", + "oprobrio", + "optometrista", + "opusculo", + "oratorio", + "orbital", + "orcar", + "orfao", + "orixa", + "orla", + "ornitologo", + "orquidea", + "ortorrombico", + "orvalho", + "osculo", + "osmotico", + "ossudo", + "ostrogodo", + "otario", + "otite", + "ouro", + "ousar", + "outubro", + "ouvir", + "ovario", + "overnight", + "oviparo", + "ovni", + "ovoviviparo", + "ovulo", + "oxala", + "oxente", + "oxiuro", + "oxossi", + "ozonizar", + "paciente", + "pactuar", + "padronizar", + "paete", + "pagodeiro", + "paixao", + "pajem", + "paludismo", + "pampas", + "panturrilha", + "papudo", + "paquistanes", + "pastoso", + "patua", + "paulo", + "pauzinhos", + "pavoroso", + "paxa", + "pazes", + "peao", + "pecuniario", + "pedunculo", + "pegaso", + "peixinho", + "pejorativo", + "pelvis", + "penuria", + "pequno", + "petunia", + "pezada", + "piauiense", + "pictorico", + "pierro", + "pigmeu", + "pijama", + "pilulas", + "pimpolho", + "pintura", + "piorar", + "pipocar", + "piqueteiro", + "pirulito", + "pistoleiro", + "pituitaria", + "pivotar", + "pixote", + "pizzaria", + "plistoceno", + "plotar", + "pluviometrico", + "pneumonico", + "poco", + "podridao", + "poetisa", + "pogrom", + "pois", + "polvorosa", + "pomposo", + "ponderado", + "pontudo", + "populoso", + "poquer", + "porvir", + "posudo", + "potro", + "pouso", + "povoar", + "prazo", + "prezar", + "privilegios", + "proximo", + "prussiano", + "pseudopode", + "psoriase", + "pterossauros", + "ptialina", + "ptolemaico", + "pudor", + "pueril", + "pufe", + "pugilista", + "puir", + "pujante", + "pulverizar", + "pumba", + "punk", + "purulento", + "pustula", + "putsch", + "puxe", + "quatrocentos", + "quetzal", + "quixotesco", + "quotizavel", + "rabujice", + "racista", + "radonio", + "rafia", + "ragu", + "rajado", + "ralo", + "rampeiro", + "ranzinza", + "raptor", + "raquitismo", + "raro", + "rasurar", + "ratoeira", + "ravioli", + "razoavel", + "reavivar", + "rebuscar", + "recusavel", + "reduzivel", + "reexposicao", + "refutavel", + "regurgitar", + "reivindicavel", + "rejuvenescimento", + "relva", + "remuneravel", + "renunciar", + "reorientar", + "repuxo", + "requisito", + "resumo", + "returno", + "reutilizar", + "revolvido", + "rezonear", + "riacho", + "ribossomo", + "ricota", + "ridiculo", + "rifle", + "rigoroso", + "rijo", + "rimel", + "rins", + "rios", + "riqueza", + "respeito", + "rissole", + "ritualistico", + "rivalizar", + "rixa", + "robusto", + "rococo", + "rodoviario", + "roer", + "rogo", + "rojao", + "rolo", + "rompimento", + "ronronar", + "roqueiro", + "rorqual", + "rosto", + "rotundo", + "rouxinol", + "roxo", + "royal", + "ruas", + "rucula", + "rudimentos", + "ruela", + "rufo", + "rugoso", + "ruivo", + "rule", + "rumoroso", + "runico", + "ruptura", + "rural", + "rustico", + "rutilar", + "saariano", + "sabujo", + "sacudir", + "sadomasoquista", + "safra", + "sagui", + "sais", + "samurai", + "santuario", + "sapo", + "saquear", + "sartriano", + "saturno", + "saude", + "sauva", + "saveiro", + "saxofonista", + "sazonal", + "scherzo", + "script", + "seara", + "seborreia", + "secura", + "seduzir", + "sefardim", + "seguro", + "seja", + "selvas", + "sempre", + "senzala", + "sepultura", + "sequoia", + "sestercio", + "setuplo", + "seus", + "seviciar", + "sezonismo", + "shalom", + "siames", + "sibilante", + "sicrano", + "sidra", + "sifilitico", + "signos", + "silvo", + "simultaneo", + "sinusite", + "sionista", + "sirio", + "sisudo", + "situar", + "sivan", + "slide", + "slogan", + "soar", + "sobrio", + "socratico", + "sodomizar", + "soerguer", + "software", + "sogro", + "soja", + "solver", + "somente", + "sonso", + "sopro", + "soquete", + "sorveteiro", + "sossego", + "soturno", + "sousafone", + "sovinice", + "sozinho", + "suavizar", + "subverter", + "sucursal", + "sudoriparo", + "sufragio", + "sugestoes", + "suite", + "sujo", + "sultao", + "sumula", + "suntuoso", + "suor", + "supurar", + "suruba", + "susto", + "suturar", + "suvenir", + "tabuleta", + "taco", + "tadjique", + "tafeta", + "tagarelice", + "taitiano", + "talvez", + "tampouco", + "tanzaniano", + "taoista", + "tapume", + "taquion", + "tarugo", + "tascar", + "tatuar", + "tautologico", + "tavola", + "taxionomista", + "tchecoslovaco", + "teatrologo", + "tectonismo", + "tedioso", + "teflon", + "tegumento", + "teixo", + "telurio", + "temporas", + "tenue", + "teosofico", + "tepido", + "tequila", + "terrorista", + "testosterona", + "tetrico", + "teutonico", + "teve", + "texugo", + "tiara", + "tibia", + "tiete", + "tifoide", + "tigresa", + "tijolo", + "tilintar", + "timpano", + "tintureiro", + "tiquete", + "tiroteio", + "tisico", + "titulos", + "tive", + "toar", + "toboga", + "tofu", + "togoles", + "toicinho", + "tolueno", + "tomografo", + "tontura", + "toponimo", + "toquio", + "torvelinho", + "tostar", + "toto", + "touro", + "toxina", + "trazer", + "trezentos", + "trivialidade", + "trovoar", + "truta", + "tuaregue", + "tubular", + "tucano", + "tudo", + "tufo", + "tuiste", + "tulipa", + "tumultuoso", + "tunisino", + "tupiniquim", + "turvo", + "tutu", + "ucraniano", + "udenista", + "ufanista", + "ufologo", + "ugaritico", + "uiste", + "uivo", + "ulceroso", + "ulema", + "ultravioleta", + "umbilical", + "umero", + "umido", + "umlaut", + "unanimidade", + "unesco", + "ungulado", + "unheiro", + "univoco", + "untuoso", + "urano", + "urbano", + "urdir", + "uretra", + "urgente", + "urinol", + "urna", + "urologo", + "urro", + "ursulina", + "urtiga", + "urupe", + "usavel", + "usbeque", + "usei", + "usineiro", + "usurpar", + "utero", + "utilizar", + "utopico", + "uvular", + "uxoricidio", + "vacuo", + "vadio", + "vaguear", + "vaivem", + "valvula", + "vampiro", + "vantajoso", + "vaporoso", + "vaquinha", + "varziano", + "vasto", + "vaticinio", + "vaudeville", + "vazio", + "veado", + "vedico", + "veemente", + "vegetativo", + "veio", + "veja", + "veludo", + "venusiano", + "verdade", + "verve", + "vestuario", + "vetusto", + "vexatorio", + "vezes", + "viavel", + "vibratorio", + "victor", + "vicunha", + "vidros", + "vietnamita", + "vigoroso", + "vilipendiar", + "vime", + "vintem", + "violoncelo", + "viquingue", + "virus", + "visualizar", + "vituperio", + "viuvo", + "vivo", + "vizir", + "voar", + "vociferar", + "vodu", + "vogar", + "voile", + "volver", + "vomito", + "vontade", + "vortice", + "vosso", + "voto", + "vovozinha", + "voyeuse", + "vozes", + "vulva", + "vupt", + "western", + "xadrez", + "xale", + "xampu", + "xango", + "xarope", + "xaual", + "xavante", + "xaxim", + "xenonio", + "xepa", + "xerox", + "xicara", + "xifopago", + "xiita", + "xilogravura", + "xinxim", + "xistoso", + "xixi", + "xodo", + "xogum", + "xucro", + "zabumba", + "zagueiro", + "zambiano", + "zanzar", + "zarpar", + "zebu", + "zefiro", + "zeloso", + "zenite", + "zumbi" + ]; +} diff --git a/cw_zano/lib/mnemonics/russian.dart b/cw_zano/lib/mnemonics/russian.dart new file mode 100644 index 000000000..f10af0ff6 --- /dev/null +++ b/cw_zano/lib/mnemonics/russian.dart @@ -0,0 +1,1630 @@ +class RussianMnemonics { + static const words = [ + "абажур", + "абзац", + "абонент", + "абрикос", + "абсурд", + "авангард", + "август", + "авиация", + "авоська", + "автор", + "агат", + "агент", + "агитатор", + "агнец", + "агония", + "агрегат", + "адвокат", + "адмирал", + "адрес", + "ажиотаж", + "азарт", + "азбука", + "азот", + "аист", + "айсберг", + "академия", + "аквариум", + "аккорд", + "акробат", + "аксиома", + "актер", + "акула", + "акция", + "алгоритм", + "алебарда", + "аллея", + "алмаз", + "алтарь", + "алфавит", + "алхимик", + "алый", + "альбом", + "алюминий", + "амбар", + "аметист", + "амнезия", + "ампула", + "амфора", + "анализ", + "ангел", + "анекдот", + "анимация", + "анкета", + "аномалия", + "ансамбль", + "антенна", + "апатия", + "апельсин", + "апофеоз", + "аппарат", + "апрель", + "аптека", + "арабский", + "арбуз", + "аргумент", + "арест", + "ария", + "арка", + "армия", + "аромат", + "арсенал", + "артист", + "архив", + "аршин", + "асбест", + "аскетизм", + "аспект", + "ассорти", + "астроном", + "асфальт", + "атака", + "ателье", + "атлас", + "атом", + "атрибут", + "аудитор", + "аукцион", + "аура", + "афера", + "афиша", + "ахинея", + "ацетон", + "аэропорт", + "бабушка", + "багаж", + "бадья", + "база", + "баклажан", + "балкон", + "бампер", + "банк", + "барон", + "бассейн", + "батарея", + "бахрома", + "башня", + "баян", + "бегство", + "бедро", + "бездна", + "бекон", + "белый", + "бензин", + "берег", + "беседа", + "бетонный", + "биатлон", + "библия", + "бивень", + "бигуди", + "бидон", + "бизнес", + "бикини", + "билет", + "бинокль", + "биология", + "биржа", + "бисер", + "битва", + "бицепс", + "благо", + "бледный", + "близкий", + "блок", + "блуждать", + "блюдо", + "бляха", + "бобер", + "богатый", + "бодрый", + "боевой", + "бокал", + "большой", + "борьба", + "босой", + "ботинок", + "боцман", + "бочка", + "боярин", + "брать", + "бревно", + "бригада", + "бросать", + "брызги", + "брюки", + "бублик", + "бугор", + "будущее", + "буква", + "бульвар", + "бумага", + "бунт", + "бурный", + "бусы", + "бутылка", + "буфет", + "бухта", + "бушлат", + "бывалый", + "быль", + "быстрый", + "быть", + "бюджет", + "бюро", + "бюст", + "вагон", + "важный", + "ваза", + "вакцина", + "валюта", + "вампир", + "ванная", + "вариант", + "вассал", + "вата", + "вафля", + "вахта", + "вдова", + "вдыхать", + "ведущий", + "веер", + "вежливый", + "везти", + "веко", + "великий", + "вена", + "верить", + "веселый", + "ветер", + "вечер", + "вешать", + "вещь", + "веяние", + "взаимный", + "взбучка", + "взвод", + "взгляд", + "вздыхать", + "взлетать", + "взмах", + "взнос", + "взор", + "взрыв", + "взывать", + "взятка", + "вибрация", + "визит", + "вилка", + "вино", + "вирус", + "висеть", + "витрина", + "вихрь", + "вишневый", + "включать", + "вкус", + "власть", + "влечь", + "влияние", + "влюблять", + "внешний", + "внимание", + "внук", + "внятный", + "вода", + "воевать", + "вождь", + "воздух", + "войти", + "вокзал", + "волос", + "вопрос", + "ворота", + "восток", + "впадать", + "впускать", + "врач", + "время", + "вручать", + "всадник", + "всеобщий", + "вспышка", + "встреча", + "вторник", + "вулкан", + "вурдалак", + "входить", + "въезд", + "выбор", + "вывод", + "выгодный", + "выделять", + "выезжать", + "выживать", + "вызывать", + "выигрыш", + "вылезать", + "выносить", + "выпивать", + "высокий", + "выходить", + "вычет", + "вышка", + "выяснять", + "вязать", + "вялый", + "гавань", + "гадать", + "газета", + "гаишник", + "галстук", + "гамма", + "гарантия", + "гастроли", + "гвардия", + "гвоздь", + "гектар", + "гель", + "генерал", + "геолог", + "герой", + "гешефт", + "гибель", + "гигант", + "гильза", + "гимн", + "гипотеза", + "гитара", + "глаз", + "глина", + "глоток", + "глубокий", + "глыба", + "глядеть", + "гнать", + "гнев", + "гнить", + "гном", + "гнуть", + "говорить", + "годовой", + "голова", + "гонка", + "город", + "гость", + "готовый", + "граница", + "грех", + "гриб", + "громкий", + "группа", + "грызть", + "грязный", + "губа", + "гудеть", + "гулять", + "гуманный", + "густой", + "гуща", + "давать", + "далекий", + "дама", + "данные", + "дарить", + "дать", + "дача", + "дверь", + "движение", + "двор", + "дебют", + "девушка", + "дедушка", + "дежурный", + "дезертир", + "действие", + "декабрь", + "дело", + "демократ", + "день", + "депутат", + "держать", + "десяток", + "детский", + "дефицит", + "дешевый", + "деятель", + "джаз", + "джинсы", + "джунгли", + "диалог", + "диван", + "диета", + "дизайн", + "дикий", + "динамика", + "диплом", + "директор", + "диск", + "дитя", + "дичь", + "длинный", + "дневник", + "добрый", + "доверие", + "договор", + "дождь", + "доза", + "документ", + "должен", + "домашний", + "допрос", + "дорога", + "доход", + "доцент", + "дочь", + "дощатый", + "драка", + "древний", + "дрожать", + "друг", + "дрянь", + "дубовый", + "дуга", + "дудка", + "дукат", + "дуло", + "думать", + "дупло", + "дурак", + "дуть", + "духи", + "душа", + "дуэт", + "дымить", + "дыня", + "дыра", + "дыханье", + "дышать", + "дьявол", + "дюжина", + "дюйм", + "дюна", + "дядя", + "дятел", + "егерь", + "единый", + "едкий", + "ежевика", + "ежик", + "езда", + "елка", + "емкость", + "ерунда", + "ехать", + "жадный", + "жажда", + "жалеть", + "жанр", + "жара", + "жать", + "жгучий", + "ждать", + "жевать", + "желание", + "жемчуг", + "женщина", + "жертва", + "жесткий", + "жечь", + "живой", + "жидкость", + "жизнь", + "жилье", + "жирный", + "житель", + "журнал", + "жюри", + "забывать", + "завод", + "загадка", + "задача", + "зажечь", + "зайти", + "закон", + "замечать", + "занимать", + "западный", + "зарплата", + "засыпать", + "затрата", + "захват", + "зацепка", + "зачет", + "защита", + "заявка", + "звать", + "звезда", + "звонить", + "звук", + "здание", + "здешний", + "здоровье", + "зебра", + "зевать", + "зеленый", + "земля", + "зенит", + "зеркало", + "зефир", + "зигзаг", + "зима", + "зиять", + "злак", + "злой", + "змея", + "знать", + "зной", + "зодчий", + "золотой", + "зомби", + "зона", + "зоопарк", + "зоркий", + "зрачок", + "зрение", + "зритель", + "зубной", + "зыбкий", + "зять", + "игла", + "иголка", + "играть", + "идея", + "идиот", + "идол", + "идти", + "иерархия", + "избрать", + "известие", + "изгонять", + "издание", + "излагать", + "изменять", + "износ", + "изоляция", + "изрядный", + "изучать", + "изымать", + "изящный", + "икона", + "икра", + "иллюзия", + "имбирь", + "иметь", + "имидж", + "иммунный", + "империя", + "инвестор", + "индивид", + "инерция", + "инженер", + "иномарка", + "институт", + "интерес", + "инфекция", + "инцидент", + "ипподром", + "ирис", + "ирония", + "искать", + "история", + "исходить", + "исчезать", + "итог", + "июль", + "июнь", + "кабинет", + "кавалер", + "кадр", + "казарма", + "кайф", + "кактус", + "калитка", + "камень", + "канал", + "капитан", + "картина", + "касса", + "катер", + "кафе", + "качество", + "каша", + "каюта", + "квартира", + "квинтет", + "квота", + "кедр", + "кекс", + "кенгуру", + "кепка", + "керосин", + "кетчуп", + "кефир", + "кибитка", + "кивнуть", + "кидать", + "километр", + "кино", + "киоск", + "кипеть", + "кирпич", + "кисть", + "китаец", + "класс", + "клетка", + "клиент", + "клоун", + "клуб", + "клык", + "ключ", + "клятва", + "книга", + "кнопка", + "кнут", + "князь", + "кобура", + "ковер", + "коготь", + "кодекс", + "кожа", + "козел", + "койка", + "коктейль", + "колено", + "компания", + "конец", + "копейка", + "короткий", + "костюм", + "котел", + "кофе", + "кошка", + "красный", + "кресло", + "кричать", + "кровь", + "крупный", + "крыша", + "крючок", + "кубок", + "кувшин", + "кудрявый", + "кузов", + "кукла", + "культура", + "кумир", + "купить", + "курс", + "кусок", + "кухня", + "куча", + "кушать", + "кювет", + "лабиринт", + "лавка", + "лагерь", + "ладонь", + "лазерный", + "лайнер", + "лакей", + "лампа", + "ландшафт", + "лапа", + "ларек", + "ласковый", + "лауреат", + "лачуга", + "лаять", + "лгать", + "лебедь", + "левый", + "легкий", + "ледяной", + "лежать", + "лекция", + "лента", + "лепесток", + "лесной", + "лето", + "лечь", + "леший", + "лживый", + "либерал", + "ливень", + "лига", + "лидер", + "ликовать", + "лиловый", + "лимон", + "линия", + "липа", + "лирика", + "лист", + "литр", + "лифт", + "лихой", + "лицо", + "личный", + "лишний", + "лобовой", + "ловить", + "логика", + "лодка", + "ложка", + "лозунг", + "локоть", + "ломать", + "лоно", + "лопата", + "лорд", + "лось", + "лоток", + "лохматый", + "лошадь", + "лужа", + "лукавый", + "луна", + "лупить", + "лучший", + "лыжный", + "лысый", + "львиный", + "льгота", + "льдина", + "любить", + "людской", + "люстра", + "лютый", + "лягушка", + "магазин", + "мадам", + "мазать", + "майор", + "максимум", + "мальчик", + "манера", + "март", + "масса", + "мать", + "мафия", + "махать", + "мачта", + "машина", + "маэстро", + "маяк", + "мгла", + "мебель", + "медведь", + "мелкий", + "мемуары", + "менять", + "мера", + "место", + "метод", + "механизм", + "мечтать", + "мешать", + "миграция", + "мизинец", + "микрофон", + "миллион", + "минута", + "мировой", + "миссия", + "митинг", + "мишень", + "младший", + "мнение", + "мнимый", + "могила", + "модель", + "мозг", + "мойка", + "мокрый", + "молодой", + "момент", + "монах", + "море", + "мост", + "мотор", + "мохнатый", + "мочь", + "мошенник", + "мощный", + "мрачный", + "мстить", + "мудрый", + "мужчина", + "музыка", + "мука", + "мумия", + "мундир", + "муравей", + "мусор", + "мутный", + "муфта", + "муха", + "мучить", + "мушкетер", + "мыло", + "мысль", + "мыть", + "мычать", + "мышь", + "мэтр", + "мюзикл", + "мягкий", + "мякиш", + "мясо", + "мятый", + "мячик", + "набор", + "навык", + "нагрузка", + "надежда", + "наемный", + "нажать", + "называть", + "наивный", + "накрыть", + "налог", + "намерен", + "наносить", + "написать", + "народ", + "натура", + "наука", + "нация", + "начать", + "небо", + "невеста", + "негодяй", + "неделя", + "нежный", + "незнание", + "нелепый", + "немалый", + "неправда", + "нервный", + "нести", + "нефть", + "нехватка", + "нечистый", + "неясный", + "нива", + "нижний", + "низкий", + "никель", + "нирвана", + "нить", + "ничья", + "ниша", + "нищий", + "новый", + "нога", + "ножницы", + "ноздря", + "ноль", + "номер", + "норма", + "нота", + "ночь", + "ноша", + "ноябрь", + "нрав", + "нужный", + "нутро", + "нынешний", + "нырнуть", + "ныть", + "нюанс", + "нюхать", + "няня", + "оазис", + "обаяние", + "обвинять", + "обгонять", + "обещать", + "обжигать", + "обзор", + "обида", + "область", + "обмен", + "обнимать", + "оборона", + "образ", + "обучение", + "обходить", + "обширный", + "общий", + "объект", + "обычный", + "обязать", + "овальный", + "овес", + "овощи", + "овраг", + "овца", + "овчарка", + "огненный", + "огонь", + "огромный", + "огурец", + "одежда", + "одинокий", + "одобрить", + "ожидать", + "ожог", + "озарение", + "озеро", + "означать", + "оказать", + "океан", + "оклад", + "окно", + "округ", + "октябрь", + "окурок", + "олень", + "опасный", + "операция", + "описать", + "оплата", + "опора", + "оппонент", + "опрос", + "оптимизм", + "опускать", + "опыт", + "орать", + "орбита", + "орган", + "орден", + "орел", + "оригинал", + "оркестр", + "орнамент", + "оружие", + "осадок", + "освещать", + "осень", + "осина", + "осколок", + "осмотр", + "основной", + "особый", + "осуждать", + "отбор", + "отвечать", + "отдать", + "отец", + "отзыв", + "открытие", + "отмечать", + "относить", + "отпуск", + "отрасль", + "отставка", + "оттенок", + "отходить", + "отчет", + "отъезд", + "офицер", + "охапка", + "охота", + "охрана", + "оценка", + "очаг", + "очередь", + "очищать", + "очки", + "ошейник", + "ошибка", + "ощущение", + "павильон", + "падать", + "паек", + "пакет", + "палец", + "память", + "панель", + "папка", + "партия", + "паспорт", + "патрон", + "пауза", + "пафос", + "пахнуть", + "пациент", + "пачка", + "пашня", + "певец", + "педагог", + "пейзаж", + "пельмень", + "пенсия", + "пепел", + "период", + "песня", + "петля", + "пехота", + "печать", + "пешеход", + "пещера", + "пианист", + "пиво", + "пиджак", + "пиковый", + "пилот", + "пионер", + "пирог", + "писать", + "пить", + "пицца", + "пишущий", + "пища", + "план", + "плечо", + "плита", + "плохой", + "плыть", + "плюс", + "пляж", + "победа", + "повод", + "погода", + "подумать", + "поехать", + "пожимать", + "позиция", + "поиск", + "покой", + "получать", + "помнить", + "пони", + "поощрять", + "попадать", + "порядок", + "пост", + "поток", + "похожий", + "поцелуй", + "почва", + "пощечина", + "поэт", + "пояснить", + "право", + "предмет", + "проблема", + "пруд", + "прыгать", + "прямой", + "психолог", + "птица", + "публика", + "пугать", + "пудра", + "пузырь", + "пуля", + "пункт", + "пурга", + "пустой", + "путь", + "пухлый", + "пучок", + "пушистый", + "пчела", + "пшеница", + "пыль", + "пытка", + "пыхтеть", + "пышный", + "пьеса", + "пьяный", + "пятно", + "работа", + "равный", + "радость", + "развитие", + "район", + "ракета", + "рамка", + "ранний", + "рапорт", + "рассказ", + "раунд", + "рация", + "рвать", + "реальный", + "ребенок", + "реветь", + "регион", + "редакция", + "реестр", + "режим", + "резкий", + "рейтинг", + "река", + "религия", + "ремонт", + "рента", + "реплика", + "ресурс", + "реформа", + "рецепт", + "речь", + "решение", + "ржавый", + "рисунок", + "ритм", + "рифма", + "робкий", + "ровный", + "рогатый", + "родитель", + "рождение", + "розовый", + "роковой", + "роль", + "роман", + "ронять", + "рост", + "рота", + "роща", + "рояль", + "рубль", + "ругать", + "руда", + "ружье", + "руины", + "рука", + "руль", + "румяный", + "русский", + "ручка", + "рыба", + "рывок", + "рыдать", + "рыжий", + "рынок", + "рысь", + "рыть", + "рыхлый", + "рыцарь", + "рычаг", + "рюкзак", + "рюмка", + "рябой", + "рядовой", + "сабля", + "садовый", + "сажать", + "салон", + "самолет", + "сани", + "сапог", + "сарай", + "сатира", + "сауна", + "сахар", + "сбегать", + "сбивать", + "сбор", + "сбыт", + "свадьба", + "свет", + "свидание", + "свобода", + "связь", + "сгорать", + "сдвигать", + "сеанс", + "северный", + "сегмент", + "седой", + "сезон", + "сейф", + "секунда", + "сельский", + "семья", + "сентябрь", + "сердце", + "сеть", + "сечение", + "сеять", + "сигнал", + "сидеть", + "сизый", + "сила", + "символ", + "синий", + "сирота", + "система", + "ситуация", + "сиять", + "сказать", + "скважина", + "скелет", + "скидка", + "склад", + "скорый", + "скрывать", + "скучный", + "слава", + "слеза", + "слияние", + "слово", + "случай", + "слышать", + "слюна", + "смех", + "смирение", + "смотреть", + "смутный", + "смысл", + "смятение", + "снаряд", + "снег", + "снижение", + "сносить", + "снять", + "событие", + "совет", + "согласие", + "сожалеть", + "сойти", + "сокол", + "солнце", + "сомнение", + "сонный", + "сообщать", + "соперник", + "сорт", + "состав", + "сотня", + "соус", + "социолог", + "сочинять", + "союз", + "спать", + "спешить", + "спина", + "сплошной", + "способ", + "спутник", + "средство", + "срок", + "срывать", + "стать", + "ствол", + "стена", + "стихи", + "сторона", + "страна", + "студент", + "стыд", + "субъект", + "сувенир", + "сугроб", + "судьба", + "суета", + "суждение", + "сукно", + "сулить", + "сумма", + "сунуть", + "супруг", + "суровый", + "сустав", + "суть", + "сухой", + "суша", + "существо", + "сфера", + "схема", + "сцена", + "счастье", + "счет", + "считать", + "сшивать", + "съезд", + "сынок", + "сыпать", + "сырье", + "сытый", + "сыщик", + "сюжет", + "сюрприз", + "таблица", + "таежный", + "таинство", + "тайна", + "такси", + "талант", + "таможня", + "танец", + "тарелка", + "таскать", + "тахта", + "тачка", + "таять", + "тварь", + "твердый", + "творить", + "театр", + "тезис", + "текст", + "тело", + "тема", + "тень", + "теория", + "теплый", + "терять", + "тесный", + "тетя", + "техника", + "течение", + "тигр", + "типичный", + "тираж", + "титул", + "тихий", + "тишина", + "ткань", + "товарищ", + "толпа", + "тонкий", + "топливо", + "торговля", + "тоска", + "точка", + "тощий", + "традиция", + "тревога", + "трибуна", + "трогать", + "труд", + "трюк", + "тряпка", + "туалет", + "тугой", + "туловище", + "туман", + "тундра", + "тупой", + "турнир", + "тусклый", + "туфля", + "туча", + "туша", + "тыкать", + "тысяча", + "тьма", + "тюльпан", + "тюрьма", + "тяга", + "тяжелый", + "тянуть", + "убеждать", + "убирать", + "убогий", + "убыток", + "уважение", + "уверять", + "увлекать", + "угнать", + "угол", + "угроза", + "удар", + "удивлять", + "удобный", + "уезд", + "ужас", + "ужин", + "узел", + "узкий", + "узнавать", + "узор", + "уйма", + "уклон", + "укол", + "уксус", + "улетать", + "улица", + "улучшать", + "улыбка", + "уметь", + "умиление", + "умный", + "умолять", + "умысел", + "унижать", + "уносить", + "уныние", + "упасть", + "уплата", + "упор", + "упрекать", + "упускать", + "уран", + "урна", + "уровень", + "усадьба", + "усердие", + "усилие", + "ускорять", + "условие", + "усмешка", + "уснуть", + "успеть", + "усыпать", + "утешать", + "утка", + "уточнять", + "утро", + "утюг", + "уходить", + "уцелеть", + "участие", + "ученый", + "учитель", + "ушко", + "ущерб", + "уютный", + "уяснять", + "фабрика", + "фаворит", + "фаза", + "файл", + "факт", + "фамилия", + "фантазия", + "фара", + "фасад", + "февраль", + "фельдшер", + "феномен", + "ферма", + "фигура", + "физика", + "фильм", + "финал", + "фирма", + "фишка", + "флаг", + "флейта", + "флот", + "фокус", + "фольклор", + "фонд", + "форма", + "фото", + "фраза", + "фреска", + "фронт", + "фрукт", + "функция", + "фуражка", + "футбол", + "фыркать", + "халат", + "хамство", + "хаос", + "характер", + "хата", + "хватать", + "хвост", + "хижина", + "хилый", + "химия", + "хирург", + "хитрый", + "хищник", + "хлам", + "хлеб", + "хлопать", + "хмурый", + "ходить", + "хозяин", + "хоккей", + "холодный", + "хороший", + "хотеть", + "хохотать", + "храм", + "хрен", + "хриплый", + "хроника", + "хрупкий", + "художник", + "хулиган", + "хутор", + "царь", + "цвет", + "цель", + "цемент", + "центр", + "цепь", + "церковь", + "цикл", + "цилиндр", + "циничный", + "цирк", + "цистерна", + "цитата", + "цифра", + "цыпленок", + "чадо", + "чайник", + "часть", + "чашка", + "человек", + "чемодан", + "чепуха", + "черный", + "честь", + "четкий", + "чехол", + "чиновник", + "число", + "читать", + "членство", + "чреватый", + "чтение", + "чувство", + "чугунный", + "чудо", + "чужой", + "чукча", + "чулок", + "чума", + "чуткий", + "чучело", + "чушь", + "шаблон", + "шагать", + "шайка", + "шакал", + "шалаш", + "шампунь", + "шанс", + "шапка", + "шарик", + "шасси", + "шатер", + "шахта", + "шашлык", + "швейный", + "швырять", + "шевелить", + "шедевр", + "шейка", + "шелковый", + "шептать", + "шерсть", + "шестерка", + "шикарный", + "шинель", + "шипеть", + "широкий", + "шить", + "шишка", + "шкаф", + "школа", + "шкура", + "шланг", + "шлем", + "шлюпка", + "шляпа", + "шнур", + "шоколад", + "шорох", + "шоссе", + "шофер", + "шпага", + "шпион", + "шприц", + "шрам", + "шрифт", + "штаб", + "штора", + "штраф", + "штука", + "штык", + "шуба", + "шуметь", + "шуршать", + "шутка", + "щадить", + "щедрый", + "щека", + "щель", + "щенок", + "щепка", + "щетка", + "щука", + "эволюция", + "эгоизм", + "экзамен", + "экипаж", + "экономия", + "экран", + "эксперт", + "элемент", + "элита", + "эмблема", + "эмигрант", + "эмоция", + "энергия", + "эпизод", + "эпоха", + "эскиз", + "эссе", + "эстрада", + "этап", + "этика", + "этюд", + "эфир", + "эффект", + "эшелон", + "юбилей", + "юбка", + "южный", + "юмор", + "юноша", + "юрист", + "яблоко", + "явление", + "ягода", + "ядерный", + "ядовитый", + "ядро", + "язва", + "язык", + "яйцо", + "якорь", + "январь", + "японец", + "яркий", + "ярмарка", + "ярость", + "ярус", + "ясный", + "яхта", + "ячейка", + "ящик" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/spanish.dart b/cw_zano/lib/mnemonics/spanish.dart new file mode 100644 index 000000000..531eafd35 --- /dev/null +++ b/cw_zano/lib/mnemonics/spanish.dart @@ -0,0 +1,1630 @@ +class SpanishMnemonics { + static const words = [ + "ábaco", + "abdomen", + "abeja", + "abierto", + "abogado", + "abono", + "aborto", + "abrazo", + "abrir", + "abuelo", + "abuso", + "acabar", + "academia", + "acceso", + "acción", + "aceite", + "acelga", + "acento", + "aceptar", + "ácido", + "aclarar", + "acné", + "acoger", + "acoso", + "activo", + "acto", + "actriz", + "actuar", + "acudir", + "acuerdo", + "acusar", + "adicto", + "admitir", + "adoptar", + "adorno", + "aduana", + "adulto", + "aéreo", + "afectar", + "afición", + "afinar", + "afirmar", + "ágil", + "agitar", + "agonía", + "agosto", + "agotar", + "agregar", + "agrio", + "agua", + "agudo", + "águila", + "aguja", + "ahogo", + "ahorro", + "aire", + "aislar", + "ajedrez", + "ajeno", + "ajuste", + "alacrán", + "alambre", + "alarma", + "alba", + "álbum", + "alcalde", + "aldea", + "alegre", + "alejar", + "alerta", + "aleta", + "alfiler", + "alga", + "algodón", + "aliado", + "aliento", + "alivio", + "alma", + "almeja", + "almíbar", + "altar", + "alteza", + "altivo", + "alto", + "altura", + "alumno", + "alzar", + "amable", + "amante", + "amapola", + "amargo", + "amasar", + "ámbar", + "ámbito", + "ameno", + "amigo", + "amistad", + "amor", + "amparo", + "amplio", + "ancho", + "anciano", + "ancla", + "andar", + "andén", + "anemia", + "ángulo", + "anillo", + "ánimo", + "anís", + "anotar", + "antena", + "antiguo", + "antojo", + "anual", + "anular", + "anuncio", + "añadir", + "añejo", + "año", + "apagar", + "aparato", + "apetito", + "apio", + "aplicar", + "apodo", + "aporte", + "apoyo", + "aprender", + "aprobar", + "apuesta", + "apuro", + "arado", + "araña", + "arar", + "árbitro", + "árbol", + "arbusto", + "archivo", + "arco", + "arder", + "ardilla", + "arduo", + "área", + "árido", + "aries", + "armonía", + "arnés", + "aroma", + "arpa", + "arpón", + "arreglo", + "arroz", + "arruga", + "arte", + "artista", + "asa", + "asado", + "asalto", + "ascenso", + "asegurar", + "aseo", + "asesor", + "asiento", + "asilo", + "asistir", + "asno", + "asombro", + "áspero", + "astilla", + "astro", + "astuto", + "asumir", + "asunto", + "atajo", + "ataque", + "atar", + "atento", + "ateo", + "ático", + "atleta", + "átomo", + "atraer", + "atroz", + "atún", + "audaz", + "audio", + "auge", + "aula", + "aumento", + "ausente", + "autor", + "aval", + "avance", + "avaro", + "ave", + "avellana", + "avena", + "avestruz", + "avión", + "aviso", + "ayer", + "ayuda", + "ayuno", + "azafrán", + "azar", + "azote", + "azúcar", + "azufre", + "azul", + "baba", + "babor", + "bache", + "bahía", + "baile", + "bajar", + "balanza", + "balcón", + "balde", + "bambú", + "banco", + "banda", + "baño", + "barba", + "barco", + "barniz", + "barro", + "báscula", + "bastón", + "basura", + "batalla", + "batería", + "batir", + "batuta", + "baúl", + "bazar", + "bebé", + "bebida", + "bello", + "besar", + "beso", + "bestia", + "bicho", + "bien", + "bingo", + "blanco", + "bloque", + "blusa", + "boa", + "bobina", + "bobo", + "boca", + "bocina", + "boda", + "bodega", + "boina", + "bola", + "bolero", + "bolsa", + "bomba", + "bondad", + "bonito", + "bono", + "bonsái", + "borde", + "borrar", + "bosque", + "bote", + "botín", + "bóveda", + "bozal", + "bravo", + "brazo", + "brecha", + "breve", + "brillo", + "brinco", + "brisa", + "broca", + "broma", + "bronce", + "brote", + "bruja", + "brusco", + "bruto", + "buceo", + "bucle", + "bueno", + "buey", + "bufanda", + "bufón", + "búho", + "buitre", + "bulto", + "burbuja", + "burla", + "burro", + "buscar", + "butaca", + "buzón", + "caballo", + "cabeza", + "cabina", + "cabra", + "cacao", + "cadáver", + "cadena", + "caer", + "café", + "caída", + "caimán", + "caja", + "cajón", + "cal", + "calamar", + "calcio", + "caldo", + "calidad", + "calle", + "calma", + "calor", + "calvo", + "cama", + "cambio", + "camello", + "camino", + "campo", + "cáncer", + "candil", + "canela", + "canguro", + "canica", + "canto", + "caña", + "cañón", + "caoba", + "caos", + "capaz", + "capitán", + "capote", + "captar", + "capucha", + "cara", + "carbón", + "cárcel", + "careta", + "carga", + "cariño", + "carne", + "carpeta", + "carro", + "carta", + "casa", + "casco", + "casero", + "caspa", + "castor", + "catorce", + "catre", + "caudal", + "causa", + "cazo", + "cebolla", + "ceder", + "cedro", + "celda", + "célebre", + "celoso", + "célula", + "cemento", + "ceniza", + "centro", + "cerca", + "cerdo", + "cereza", + "cero", + "cerrar", + "certeza", + "césped", + "cetro", + "chacal", + "chaleco", + "champú", + "chancla", + "chapa", + "charla", + "chico", + "chiste", + "chivo", + "choque", + "choza", + "chuleta", + "chupar", + "ciclón", + "ciego", + "cielo", + "cien", + "cierto", + "cifra", + "cigarro", + "cima", + "cinco", + "cine", + "cinta", + "ciprés", + "circo", + "ciruela", + "cisne", + "cita", + "ciudad", + "clamor", + "clan", + "claro", + "clase", + "clave", + "cliente", + "clima", + "clínica", + "cobre", + "cocción", + "cochino", + "cocina", + "coco", + "código", + "codo", + "cofre", + "coger", + "cohete", + "cojín", + "cojo", + "cola", + "colcha", + "colegio", + "colgar", + "colina", + "collar", + "colmo", + "columna", + "combate", + "comer", + "comida", + "cómodo", + "compra", + "conde", + "conejo", + "conga", + "conocer", + "consejo", + "contar", + "copa", + "copia", + "corazón", + "corbata", + "corcho", + "cordón", + "corona", + "correr", + "coser", + "cosmos", + "costa", + "cráneo", + "cráter", + "crear", + "crecer", + "creído", + "crema", + "cría", + "crimen", + "cripta", + "crisis", + "cromo", + "crónica", + "croqueta", + "crudo", + "cruz", + "cuadro", + "cuarto", + "cuatro", + "cubo", + "cubrir", + "cuchara", + "cuello", + "cuento", + "cuerda", + "cuesta", + "cueva", + "cuidar", + "culebra", + "culpa", + "culto", + "cumbre", + "cumplir", + "cuna", + "cuneta", + "cuota", + "cupón", + "cúpula", + "curar", + "curioso", + "curso", + "curva", + "cutis", + "dama", + "danza", + "dar", + "dardo", + "dátil", + "deber", + "débil", + "década", + "decir", + "dedo", + "defensa", + "definir", + "dejar", + "delfín", + "delgado", + "delito", + "demora", + "denso", + "dental", + "deporte", + "derecho", + "derrota", + "desayuno", + "deseo", + "desfile", + "desnudo", + "destino", + "desvío", + "detalle", + "detener", + "deuda", + "día", + "diablo", + "diadema", + "diamante", + "diana", + "diario", + "dibujo", + "dictar", + "diente", + "dieta", + "diez", + "difícil", + "digno", + "dilema", + "diluir", + "dinero", + "directo", + "dirigir", + "disco", + "diseño", + "disfraz", + "diva", + "divino", + "doble", + "doce", + "dolor", + "domingo", + "don", + "donar", + "dorado", + "dormir", + "dorso", + "dos", + "dosis", + "dragón", + "droga", + "ducha", + "duda", + "duelo", + "dueño", + "dulce", + "dúo", + "duque", + "durar", + "dureza", + "duro", + "ébano", + "ebrio", + "echar", + "eco", + "ecuador", + "edad", + "edición", + "edificio", + "editor", + "educar", + "efecto", + "eficaz", + "eje", + "ejemplo", + "elefante", + "elegir", + "elemento", + "elevar", + "elipse", + "élite", + "elixir", + "elogio", + "eludir", + "embudo", + "emitir", + "emoción", + "empate", + "empeño", + "empleo", + "empresa", + "enano", + "encargo", + "enchufe", + "encía", + "enemigo", + "enero", + "enfado", + "enfermo", + "engaño", + "enigma", + "enlace", + "enorme", + "enredo", + "ensayo", + "enseñar", + "entero", + "entrar", + "envase", + "envío", + "época", + "equipo", + "erizo", + "escala", + "escena", + "escolar", + "escribir", + "escudo", + "esencia", + "esfera", + "esfuerzo", + "espada", + "espejo", + "espía", + "esposa", + "espuma", + "esquí", + "estar", + "este", + "estilo", + "estufa", + "etapa", + "eterno", + "ética", + "etnia", + "evadir", + "evaluar", + "evento", + "evitar", + "exacto", + "examen", + "exceso", + "excusa", + "exento", + "exigir", + "exilio", + "existir", + "éxito", + "experto", + "explicar", + "exponer", + "extremo", + "fábrica", + "fábula", + "fachada", + "fácil", + "factor", + "faena", + "faja", + "falda", + "fallo", + "falso", + "faltar", + "fama", + "familia", + "famoso", + "faraón", + "farmacia", + "farol", + "farsa", + "fase", + "fatiga", + "fauna", + "favor", + "fax", + "febrero", + "fecha", + "feliz", + "feo", + "feria", + "feroz", + "fértil", + "fervor", + "festín", + "fiable", + "fianza", + "fiar", + "fibra", + "ficción", + "ficha", + "fideo", + "fiebre", + "fiel", + "fiera", + "fiesta", + "figura", + "fijar", + "fijo", + "fila", + "filete", + "filial", + "filtro", + "fin", + "finca", + "fingir", + "finito", + "firma", + "flaco", + "flauta", + "flecha", + "flor", + "flota", + "fluir", + "flujo", + "flúor", + "fobia", + "foca", + "fogata", + "fogón", + "folio", + "folleto", + "fondo", + "forma", + "forro", + "fortuna", + "forzar", + "fosa", + "foto", + "fracaso", + "frágil", + "franja", + "frase", + "fraude", + "freír", + "freno", + "fresa", + "frío", + "frito", + "fruta", + "fuego", + "fuente", + "fuerza", + "fuga", + "fumar", + "función", + "funda", + "furgón", + "furia", + "fusil", + "fútbol", + "futuro", + "gacela", + "gafas", + "gaita", + "gajo", + "gala", + "galería", + "gallo", + "gamba", + "ganar", + "gancho", + "ganga", + "ganso", + "garaje", + "garza", + "gasolina", + "gastar", + "gato", + "gavilán", + "gemelo", + "gemir", + "gen", + "género", + "genio", + "gente", + "geranio", + "gerente", + "germen", + "gesto", + "gigante", + "gimnasio", + "girar", + "giro", + "glaciar", + "globo", + "gloria", + "gol", + "golfo", + "goloso", + "golpe", + "goma", + "gordo", + "gorila", + "gorra", + "gota", + "goteo", + "gozar", + "grada", + "gráfico", + "grano", + "grasa", + "gratis", + "grave", + "grieta", + "grillo", + "gripe", + "gris", + "grito", + "grosor", + "grúa", + "grueso", + "grumo", + "grupo", + "guante", + "guapo", + "guardia", + "guerra", + "guía", + "guiño", + "guion", + "guiso", + "guitarra", + "gusano", + "gustar", + "haber", + "hábil", + "hablar", + "hacer", + "hacha", + "hada", + "hallar", + "hamaca", + "harina", + "haz", + "hazaña", + "hebilla", + "hebra", + "hecho", + "helado", + "helio", + "hembra", + "herir", + "hermano", + "héroe", + "hervir", + "hielo", + "hierro", + "hígado", + "higiene", + "hijo", + "himno", + "historia", + "hocico", + "hogar", + "hoguera", + "hoja", + "hombre", + "hongo", + "honor", + "honra", + "hora", + "hormiga", + "horno", + "hostil", + "hoyo", + "hueco", + "huelga", + "huerta", + "hueso", + "huevo", + "huida", + "huir", + "humano", + "húmedo", + "humilde", + "humo", + "hundir", + "huracán", + "hurto", + "icono", + "ideal", + "idioma", + "ídolo", + "iglesia", + "iglú", + "igual", + "ilegal", + "ilusión", + "imagen", + "imán", + "imitar", + "impar", + "imperio", + "imponer", + "impulso", + "incapaz", + "índice", + "inerte", + "infiel", + "informe", + "ingenio", + "inicio", + "inmenso", + "inmune", + "innato", + "insecto", + "instante", + "interés", + "íntimo", + "intuir", + "inútil", + "invierno", + "ira", + "iris", + "ironía", + "isla", + "islote", + "jabalí", + "jabón", + "jamón", + "jarabe", + "jardín", + "jarra", + "jaula", + "jazmín", + "jefe", + "jeringa", + "jinete", + "jornada", + "joroba", + "joven", + "joya", + "juerga", + "jueves", + "juez", + "jugador", + "jugo", + "juguete", + "juicio", + "junco", + "jungla", + "junio", + "juntar", + "júpiter", + "jurar", + "justo", + "juvenil", + "juzgar", + "kilo", + "koala", + "labio", + "lacio", + "lacra", + "lado", + "ladrón", + "lagarto", + "lágrima", + "laguna", + "laico", + "lamer", + "lámina", + "lámpara", + "lana", + "lancha", + "langosta", + "lanza", + "lápiz", + "largo", + "larva", + "lástima", + "lata", + "látex", + "latir", + "laurel", + "lavar", + "lazo", + "leal", + "lección", + "leche", + "lector", + "leer", + "legión", + "legumbre", + "lejano", + "lengua", + "lento", + "leña", + "león", + "leopardo", + "lesión", + "letal", + "letra", + "leve", + "leyenda", + "libertad", + "libro", + "licor", + "líder", + "lidiar", + "lienzo", + "liga", + "ligero", + "lima", + "límite", + "limón", + "limpio", + "lince", + "lindo", + "línea", + "lingote", + "lino", + "linterna", + "líquido", + "liso", + "lista", + "litera", + "litio", + "litro", + "llaga", + "llama", + "llanto", + "llave", + "llegar", + "llenar", + "llevar", + "llorar", + "llover", + "lluvia", + "lobo", + "loción", + "loco", + "locura", + "lógica", + "logro", + "lombriz", + "lomo", + "lonja", + "lote", + "lucha", + "lucir", + "lugar", + "lujo", + "luna", + "lunes", + "lupa", + "lustro", + "luto", + "luz", + "maceta", + "macho", + "madera", + "madre", + "maduro", + "maestro", + "mafia", + "magia", + "mago", + "maíz", + "maldad", + "maleta", + "malla", + "malo", + "mamá", + "mambo", + "mamut", + "manco", + "mando", + "manejar", + "manga", + "maniquí", + "manjar", + "mano", + "manso", + "manta", + "mañana", + "mapa", + "máquina", + "mar", + "marco", + "marea", + "marfil", + "margen", + "marido", + "mármol", + "marrón", + "martes", + "marzo", + "masa", + "máscara", + "masivo", + "matar", + "materia", + "matiz", + "matriz", + "máximo", + "mayor", + "mazorca", + "mecha", + "medalla", + "medio", + "médula", + "mejilla", + "mejor", + "melena", + "melón", + "memoria", + "menor", + "mensaje", + "mente", + "menú", + "mercado", + "merengue", + "mérito", + "mes", + "mesón", + "meta", + "meter", + "método", + "metro", + "mezcla", + "miedo", + "miel", + "miembro", + "miga", + "mil", + "milagro", + "militar", + "millón", + "mimo", + "mina", + "minero", + "mínimo", + "minuto", + "miope", + "mirar", + "misa", + "miseria", + "misil", + "mismo", + "mitad", + "mito", + "mochila", + "moción", + "moda", + "modelo", + "moho", + "mojar", + "molde", + "moler", + "molino", + "momento", + "momia", + "monarca", + "moneda", + "monja", + "monto", + "moño", + "morada", + "morder", + "moreno", + "morir", + "morro", + "morsa", + "mortal", + "mosca", + "mostrar", + "motivo", + "mover", + "móvil", + "mozo", + "mucho", + "mudar", + "mueble", + "muela", + "muerte", + "muestra", + "mugre", + "mujer", + "mula", + "muleta", + "multa", + "mundo", + "muñeca", + "mural", + "muro", + "músculo", + "museo", + "musgo", + "música", + "muslo", + "nácar", + "nación", + "nadar", + "naipe", + "naranja", + "nariz", + "narrar", + "nasal", + "natal", + "nativo", + "natural", + "náusea", + "naval", + "nave", + "navidad", + "necio", + "néctar", + "negar", + "negocio", + "negro", + "neón", + "nervio", + "neto", + "neutro", + "nevar", + "nevera", + "nicho", + "nido", + "niebla", + "nieto", + "niñez", + "niño", + "nítido", + "nivel", + "nobleza", + "noche", + "nómina", + "noria", + "norma", + "norte", + "nota", + "noticia", + "novato", + "novela", + "novio", + "nube", + "nuca", + "núcleo", + "nudillo", + "nudo", + "nuera", + "nueve", + "nuez", + "nulo", + "número", + "nutria", + "oasis", + "obeso", + "obispo", + "objeto", + "obra", + "obrero", + "observar", + "obtener", + "obvio", + "oca", + "ocaso", + "océano", + "ochenta", + "ocho", + "ocio", + "ocre", + "octavo", + "octubre", + "oculto", + "ocupar", + "ocurrir", + "odiar", + "odio", + "odisea", + "oeste", + "ofensa", + "oferta", + "oficio", + "ofrecer", + "ogro", + "oído", + "oír", + "ojo", + "ola", + "oleada", + "olfato", + "olivo", + "olla", + "olmo", + "olor", + "olvido", + "ombligo", + "onda", + "onza", + "opaco", + "opción", + "ópera", + "opinar", + "oponer", + "optar", + "óptica", + "opuesto", + "oración", + "orador", + "oral", + "órbita", + "orca", + "orden", + "oreja", + "órgano", + "orgía", + "orgullo", + "oriente", + "origen", + "orilla", + "oro", + "orquesta", + "oruga", + "osadía", + "oscuro", + "osezno", + "oso", + "ostra", + "otoño", + "otro", + "oveja", + "óvulo", + "óxido", + "oxígeno", + "oyente", + "ozono", + "pacto", + "padre", + "paella", + "página", + "pago", + "país", + "pájaro", + "palabra", + "palco", + "paleta", + "pálido", + "palma", + "paloma", + "palpar", + "pan", + "panal", + "pánico", + "pantera", + "pañuelo", + "papá", + "papel", + "papilla", + "paquete", + "parar", + "parcela", + "pared", + "parir", + "paro", + "párpado", + "parque", + "párrafo", + "parte", + "pasar", + "paseo", + "pasión", + "paso", + "pasta", + "pata", + "patio", + "patria", + "pausa", + "pauta", + "pavo", + "payaso", + "peatón", + "pecado", + "pecera", + "pecho", + "pedal", + "pedir", + "pegar", + "peine", + "pelar", + "peldaño", + "pelea", + "peligro", + "pellejo", + "pelo", + "peluca", + "pena", + "pensar", + "peñón", + "peón", + "peor", + "pepino", + "pequeño", + "pera", + "percha", + "perder", + "pereza", + "perfil", + "perico", + "perla", + "permiso", + "perro", + "persona", + "pesa", + "pesca", + "pésimo", + "pestaña", + "pétalo", + "petróleo", + "pez", + "pezuña", + "picar", + "pichón", + "pie", + "piedra", + "pierna", + "pieza", + "pijama", + "pilar", + "piloto", + "pimienta", + "pino", + "pintor", + "pinza", + "piña", + "piojo", + "pipa", + "pirata", + "pisar", + "piscina", + "piso", + "pista", + "pitón", + "pizca", + "placa", + "plan", + "plata", + "playa", + "plaza", + "pleito", + "pleno", + "plomo", + "pluma", + "plural", + "pobre", + "poco", + "poder", + "podio", + "poema", + "poesía", + "poeta", + "polen", + "policía", + "pollo", + "polvo", + "pomada", + "pomelo", + "pomo", + "pompa", + "poner", + "porción", + "portal", + "posada", + "poseer", + "posible", + "poste", + "potencia", + "potro", + "pozo", + "prado", + "precoz", + "pregunta", + "premio", + "prensa", + "preso", + "previo", + "primo", + "príncipe", + "prisión", + "privar", + "proa", + "probar", + "proceso", + "producto", + "proeza", + "profesor", + "programa", + "prole", + "promesa", + "pronto", + "propio", + "próximo", + "prueba", + "público", + "puchero", + "pudor", + "pueblo", + "puerta", + "puesto", + "pulga", + "pulir", + "pulmón", + "pulpo", + "pulso", + "puma", + "punto", + "puñal", + "puño", + "pupa", + "pupila", + "puré", + "quedar", + "queja", + "quemar", + "querer", + "queso", + "quieto", + "química", + "quince", + "quitar", + "rábano", + "rabia", + "rabo", + "ración", + "radical", + "raíz", + "rama", + "rampa", + "rancho", + "rango", + "rapaz", + "rápido", + "rapto", + "rasgo", + "raspa", + "rato", + "rayo", + "raza", + "razón", + "reacción", + "realidad", + "rebaño", + "rebote", + "recaer", + "receta", + "rechazo", + "recoger", + "recreo", + "recto", + "recurso", + "red", + "redondo", + "reducir", + "reflejo", + "reforma", + "refrán", + "refugio", + "regalo", + "regir", + "regla", + "regreso", + "rehén", + "reino", + "reír", + "reja", + "relato", + "relevo", + "relieve", + "relleno", + "reloj", + "remar", + "remedio", + "remo", + "rencor", + "rendir", + "renta", + "reparto", + "repetir", + "reposo", + "reptil", + "res", + "rescate", + "resina", + "respeto", + "resto", + "resumen", + "retiro", + "retorno", + "retrato", + "reunir", + "revés", + "revista", + "rey", + "rezar", + "rico", + "riego", + "rienda", + "riesgo", + "rifa", + "rígido", + "rigor", + "rincón", + "riñón", + "río", + "riqueza", + "risa", + "ritmo", + "rito" + ]; +} \ No newline at end of file diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart new file mode 100644 index 000000000..2663a4868 --- /dev/null +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -0,0 +1,52 @@ +import 'package:cw_zano/api/structs/pending_transaction.dart'; +import 'package:cw_zano/api/transaction_history.dart' + as zano_transaction_history; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/amount_converter.dart'; +import 'package:cw_core/pending_transaction.dart'; + +class DoubleSpendException implements Exception { + DoubleSpendException(); + + @override + String toString() => + 'This transaction cannot be committed. This can be due to many reasons including the wallet not being synced, there is not enough XMR in your available balance, or previous transactions are not yet fully processed.'; +} + +class PendingZanoTransaction with PendingTransaction { + PendingZanoTransaction( + this.pendingTransactionDescription, this.cryptoCurrency); + + final PendingTransactionDescription pendingTransactionDescription; + final CryptoCurrency cryptoCurrency; + + @override + String get id => pendingTransactionDescription.hash; + + @override + String get hex => ''; + + @override + String get amountFormatted => AmountConverter.amountIntToString( + cryptoCurrency, pendingTransactionDescription.amount); + + @override + String get feeFormatted => AmountConverter.amountIntToString( + cryptoCurrency, pendingTransactionDescription.fee); + + @override + Future commit() async { + try { + zano_transaction_history.commitTransactionFromPointerAddress( + address: pendingTransactionDescription.pointerAddress); + } catch (e) { + final message = e.toString(); + + if (message.contains('Reason: double spend')) { + throw DoubleSpendException(); + } + + rethrow; + } + } +} diff --git a/cw_zano/lib/update_zano_rate.dart b/cw_zano/lib/update_zano_rate.dart new file mode 100644 index 000000000..564ce5f32 --- /dev/null +++ b/cw_zano/lib/update_zano_rate.dart @@ -0,0 +1,15 @@ +//import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_zano/api/balance_list.dart'; + +//Future updateZanoRate(FiatConversionStore fiatConversionStore) async { +// final rate = getRate(); +// final base = rate.firstWhere((row) => row.getAssetType() == 'XUSD', orElse: () => null); +// rate.forEach((row) { +// final cur = CryptoCurrency.fromString(row.getAssetType()); +// final baseRate = moneroAmountToDouble(amount: base.getRate()); +// final rowRate = moneroAmountToDouble(amount: row.getRate()); +// fiatConversionStore.prices[cur] = baseRate * rowRate; +// }); +//} \ No newline at end of file diff --git a/cw_zano/lib/zano_account_list.dart b/cw_zano/lib/zano_account_list.dart new file mode 100644 index 000000000..7a7d5de1b --- /dev/null +++ b/cw_zano/lib/zano_account_list.dart @@ -0,0 +1,84 @@ +import 'package:mobx/mobx.dart'; +import 'package:cw_core/account.dart'; +import 'package:cw_core/account_list.dart'; +import 'package:cw_zano/api/account_list.dart' as account_list; + +part 'zano_account_list.g.dart'; + +class ZanoAccountList = ZanoAccountListBase with _$ZanoAccountList; + +abstract class ZanoAccountListBase extends AccountList with Store { + ZanoAccountListBase() + : accounts = ObservableList(), + _isRefreshing = false, + _isUpdating = false { + refresh(); + } + + @override + @observable + ObservableList accounts; + bool _isRefreshing; + bool _isUpdating; + + @override + void update() async { + if (_isUpdating) { + return; + } + + try { + _isUpdating = true; + refresh(); + final accounts = getAll(); + + if (accounts.isNotEmpty) { + this.accounts.clear(); + this.accounts.addAll(accounts); + } + + _isUpdating = false; + } catch (e) { + _isUpdating = false; + rethrow; + } + } + + @override + List getAll() => account_list + .getAllAccount() + .map((accountRow) => + Account(id: accountRow.getId(), label: accountRow.getLabel())) + .toList(); + + @override + Future addAccount({required String label}) async { + await account_list.addAccount(label: label); + update(); + } + + @override + Future setLabelAccount( + {required int accountIndex, required String label}) async { + await account_list.setLabelForAccount( + accountIndex: accountIndex, label: label); + update(); + } + + @override + void refresh() { + if (_isRefreshing) { + return; + } + + try { + _isRefreshing = true; + account_list.refreshAccounts(); + _isRefreshing = false; + } catch (e) { + _isRefreshing = false; + print(e); + rethrow; + } + } +} diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/zano_balance.dart new file mode 100644 index 000000000..71b457e51 --- /dev/null +++ b/cw_zano/lib/zano_balance.dart @@ -0,0 +1,35 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_balance.dart'; +import 'package:cw_zano/api/balance_list.dart'; +import 'package:cw_zano/api/structs/zano_balance_row.dart'; + +const inactiveBalances = [ + CryptoCurrency.xcad, + CryptoCurrency.xjpy, + CryptoCurrency.xnok, + CryptoCurrency.xnzd +]; + +Map getZanoBalance({required int accountIndex}) { + final fullBalances = getZanoFullBalance(accountIndex: accountIndex); + final unlockedBalances = getZanoUnlockedBalance(accountIndex: accountIndex); + final zanoBalances = {}; + final balancesLength = fullBalances.length; + + for (int i = 0; i < balancesLength; i++) { + final assetType = fullBalances[i].getAssetType(); + final fullBalance = fullBalances[i].getAmount(); + final unlockedBalance = unlockedBalances[i].getAmount(); + final moneroBalance = MoneroBalance( + fullBalance: fullBalance, unlockedBalance: unlockedBalance); + final currency = CryptoCurrency.fromString(assetType); + + if (inactiveBalances.indexOf(currency) >= 0) { + continue; + } + + zanoBalances[currency] = moneroBalance; + } + + return zanoBalances; +} diff --git a/cw_zano/lib/zano_subaddress_list.dart b/cw_zano/lib/zano_subaddress_list.dart new file mode 100644 index 000000000..a5d89c7ed --- /dev/null +++ b/cw_zano/lib/zano_subaddress_list.dart @@ -0,0 +1,88 @@ +import 'package:cw_zano/api/structs/subaddress_row.dart'; +import 'package:flutter/services.dart'; +import 'package:mobx/mobx.dart'; +import 'package:cw_zano/api/subaddress_list.dart' as subaddress_list; +import 'package:cw_core/subaddress.dart'; + +part 'zano_subaddress_list.g.dart'; + +class ZanoSubaddressList = ZanoSubaddressListBase with _$ZanoSubaddressList; + +abstract class ZanoSubaddressListBase with Store { + ZanoSubaddressListBase() + : _isRefreshing = false, + _isUpdating = false, + subaddresses = ObservableList(); + + @observable + ObservableList subaddresses; + + bool _isRefreshing; + bool _isUpdating; + + void update({required int accountIndex}) { + if (_isUpdating) { + return; + } + + try { + _isUpdating = true; + refresh(accountIndex: accountIndex); + subaddresses.clear(); + subaddresses.addAll(getAll()); + _isUpdating = false; + } catch (e) { + _isUpdating = false; + rethrow; + } + } + + List getAll() { + var subaddresses = subaddress_list.getAllSubaddresses(); + + if (subaddresses.length > 2) { + final primary = subaddresses.first; + final rest = subaddresses.sublist(1).reversed; + subaddresses = [primary] + rest.toList(); + } + + return subaddresses + .map((subaddressRow) => Subaddress( + id: subaddressRow.getId(), + address: subaddressRow.getAddress(), + label: subaddressRow.getLabel())) + .toList(); + } + + Future addSubaddress( + {required int accountIndex, required String label}) async { + await subaddress_list.addSubaddress( + accountIndex: accountIndex, label: label); + update(accountIndex: accountIndex); + } + + Future setLabelSubaddress( + {required int accountIndex, + required int addressIndex, + required String label}) async { + await subaddress_list.setLabelForSubaddress( + accountIndex: accountIndex, addressIndex: addressIndex, label: label); + update(accountIndex: accountIndex); + } + + void refresh({required int accountIndex}) { + if (_isRefreshing) { + return; + } + + try { + _isRefreshing = true; + subaddress_list.refreshSubaddresses(accountIndex: accountIndex); + _isRefreshing = false; + } on PlatformException catch (e) { + _isRefreshing = false; + print(e); + rethrow; + } + } +} diff --git a/cw_zano/lib/zano_transaction_creation_credentials.dart b/cw_zano/lib/zano_transaction_creation_credentials.dart new file mode 100644 index 000000000..2465f4c9a --- /dev/null +++ b/cw_zano/lib/zano_transaction_creation_credentials.dart @@ -0,0 +1,11 @@ +import 'package:cw_core/monero_transaction_priority.dart'; +import 'package:cw_core/output_info.dart'; + +class ZanoTransactionCreationCredentials { + ZanoTransactionCreationCredentials( + {required this.outputs, required this.priority, required this.assetType}); + + final List outputs; + final MoneroTransactionPriority priority; + final String assetType; +} diff --git a/cw_zano/lib/zano_transaction_creation_exception.dart b/cw_zano/lib/zano_transaction_creation_exception.dart new file mode 100644 index 000000000..918d44d2f --- /dev/null +++ b/cw_zano/lib/zano_transaction_creation_exception.dart @@ -0,0 +1,8 @@ +class ZanoTransactionCreationException implements Exception { + ZanoTransactionCreationException(this.message); + + final String message; + + @override + String toString() => message; +} diff --git a/cw_zano/lib/zano_transaction_history.dart b/cw_zano/lib/zano_transaction_history.dart new file mode 100644 index 000000000..f2b1125ab --- /dev/null +++ b/cw_zano/lib/zano_transaction_history.dart @@ -0,0 +1,27 @@ +import 'dart:core'; +import 'package:mobx/mobx.dart'; +import 'package:cw_core/transaction_history.dart'; +import 'package:cw_zano/zano_transaction_info.dart'; + +part 'zano_transaction_history.g.dart'; + +class ZanoTransactionHistory = ZanoTransactionHistoryBase + with _$ZanoTransactionHistory; + +abstract class ZanoTransactionHistoryBase + extends TransactionHistoryBase with Store { + ZanoTransactionHistoryBase() { + transactions = ObservableMap(); + } + + @override + Future save() async {} + + @override + void addOne(ZanoTransactionInfo transaction) => + transactions[transaction.id] = transaction; + + @override + void addMany(Map transactions) => + this.transactions.addAll(transactions); +} diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/zano_transaction_info.dart new file mode 100644 index 000000000..839a73426 --- /dev/null +++ b/cw_zano/lib/zano_transaction_info.dart @@ -0,0 +1,81 @@ +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_zano/api/structs/transaction_info_row.dart'; +import 'package:cw_core/parseBoolFromString.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/format_amount.dart'; +import 'package:cw_zano/api/transaction_history.dart'; + +class ZanoTransactionInfo extends TransactionInfo { + ZanoTransactionInfo( + this.id, + this.height, + this.direction, + this.date, + this.isPending, + this.amount, + this.accountIndex, + this.addressIndex, + this.fee, + this.confirmations); + + ZanoTransactionInfo.fromMap(Map map) + : id = (map['hash'] ?? '') as String, + height = (map['height'] ?? 0) as int, + direction = + parseTransactionDirectionFromNumber(map['direction'] as String) ?? + TransactionDirection.incoming, + date = DateTime.fromMillisecondsSinceEpoch( + int.parse(map['timestamp'] as String? ?? '0') * 1000), + isPending = parseBoolFromString(map['isPending'] as String), + amount = map['amount'] as int, + accountIndex = int.parse(map['accountIndex'] as String), + addressIndex = map['addressIndex'] as int, + confirmations = map['confirmations'] as int, + key = getTxKey((map['hash'] ?? '') as String), + fee = map['fee'] as int? ?? 0; + + ZanoTransactionInfo.fromRow(TransactionInfoRow row) + : id = row.getHash(), + height = row.blockHeight, + direction = parseTransactionDirectionFromInt(row.direction) ?? + TransactionDirection.incoming, + date = DateTime.fromMillisecondsSinceEpoch(row.getDatetime() * 1000), + isPending = row.isPending != 0, + amount = row.getAmount(), + accountIndex = row.subaddrAccount, + addressIndex = row.subaddrIndex, + confirmations = row.confirmations, + key = null, //getTxKey(row.getHash()), + fee = row.fee, + assetType = row.getAssetType(); + + final String id; + final int height; + final TransactionDirection direction; + final DateTime date; + final int accountIndex; + final bool isPending; + final int amount; + final int fee; + final int addressIndex; + final int confirmations; + late String recipientAddress; + late String assetType; + String? _fiatAmount; + String? key; + + @override + String amountFormatted() => + '${formatAmount(moneroAmountToString(amount: amount))} $assetType'; + + @override + String fiatAmount() => _fiatAmount ?? ''; + + @override + void changeFiatAmount(String amount) => _fiatAmount = formatAmount(amount); + + @override + String feeFormatted() => + '${formatAmount(moneroAmountToString(amount: fee))} $assetType'; +} diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart new file mode 100644 index 000000000..ecf49541f --- /dev/null +++ b/cw_zano/lib/zano_wallet.dart @@ -0,0 +1,432 @@ +import 'dart:async'; +import 'dart:io'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_zano/zano_transaction_creation_credentials.dart'; +import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_zano/zano_transaction_creation_exception.dart'; +import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:cw_zano/zano_wallet_addresses.dart'; +import 'package:cw_core/monero_wallet_utils.dart'; +import 'package:cw_zano/api/structs/pending_transaction.dart'; +import 'package:flutter/foundation.dart'; +import 'package:mobx/mobx.dart'; +import 'package:cw_zano/api/transaction_history.dart' + as zano_transaction_history; +//import 'package:cw_zano/wallet.dart'; +import 'package:cw_zano/api/wallet.dart' as zano_wallet; +import 'package:cw_zano/api/transaction_history.dart' as transaction_history; +import 'package:cw_zano/api/monero_output.dart'; +import 'package:cw_zano/pending_zano_transaction.dart'; +import 'package:cw_core/monero_wallet_keys.dart'; +import 'package:cw_core/monero_balance.dart'; +import 'package:cw_zano/zano_transaction_history.dart'; +import 'package:cw_core/account.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/monero_transaction_priority.dart'; +import 'package:cw_zano/zano_balance.dart'; + +part 'zano_wallet.g.dart'; + +const moneroBlockSize = 1000; + +class ZanoWallet = ZanoWalletBase with _$ZanoWallet; + +abstract class ZanoWalletBase extends WalletBase with Store { + ZanoWalletBase({required WalletInfo walletInfo}) + : balance = ObservableMap.of(getZanoBalance(accountIndex: 0)), + _isTransactionUpdating = false, + _hasSyncAfterStartup = false, + walletAddresses = ZanoWalletAddresses(walletInfo), + syncStatus = NotConnectedSyncStatus(), + super(walletInfo) { + transactionHistory = ZanoTransactionHistory(); + _onAccountChangeReaction = + reaction((_) => walletAddresses.account, (Account? account) { + if (account == null) { + return; + } + balance.addAll(getZanoBalance(accountIndex: account.id)); + walletAddresses.updateSubaddressList(accountIndex: account.id); + }); + } + + static const int _autoSaveInterval = 30; + + @override + ZanoWalletAddresses walletAddresses; + + @override + @observable + SyncStatus syncStatus; + + @override + @observable + ObservableMap balance; + + @override + String get seed => zano_wallet.getSeed(); + + @override + MoneroWalletKeys get keys => MoneroWalletKeys( + privateSpendKey: zano_wallet.getSecretSpendKey(), + privateViewKey: zano_wallet.getSecretViewKey(), + publicSpendKey: zano_wallet.getPublicSpendKey(), + publicViewKey: zano_wallet.getPublicViewKey()); + + zano_wallet.SyncListener? _listener; + ReactionDisposer? _onAccountChangeReaction; + bool _isTransactionUpdating; + bool _hasSyncAfterStartup; + Timer? _autoSaveTimer; + + Future init() async { + await walletAddresses.init(); + balance + .addAll(getZanoBalance(accountIndex: walletAddresses.account?.id ?? 0)); + _setListeners(); + await updateTransactions(); + + if (walletInfo.isRecovery) { + zano_wallet.setRecoveringFromSeed(isRecovery: walletInfo.isRecovery); + + if (zano_wallet.getCurrentHeight() <= 1) { + zano_wallet.setRefreshFromBlockHeight(height: walletInfo.restoreHeight); + } + } + + _autoSaveTimer = Timer.periodic( + Duration(seconds: _autoSaveInterval), (_) async => await save()); + } + + @override + Future? updateBalance() => null; + + @override + void close() { + _listener?.stop(); + _onAccountChangeReaction?.reaction.dispose(); + _autoSaveTimer?.cancel(); + } + + @override + Future connectToNode({required Node node}) async { + try { + syncStatus = ConnectingSyncStatus(); + await zano_wallet.setupNode( + address: node.uriRaw, + login: node.login, + password: node.password, + useSSL: node.useSSL ?? false, + isLightWallet: false, // FIXME: hardcoded value + socksProxyAddress: node.socksProxyAddress); + + zano_wallet.setTrustedDaemon(node.trusted); + syncStatus = ConnectedSyncStatus(); + } catch (e) { + syncStatus = FailedSyncStatus(); + print(e); + } + } + + @override + Future startSync() async { + try { + _setInitialHeight(); + } catch (_) {} + + try { + syncStatus = AttemptingSyncStatus(); + zano_wallet.startRefresh(); + _setListeners(); + _listener?.start(); + } catch (e) { + syncStatus = FailedSyncStatus(); + print(e); + rethrow; + } + } + + @override + Future createTransaction(Object credentials) async { + final _credentials = credentials as ZanoTransactionCreationCredentials; + final outputs = _credentials.outputs; + final hasMultiDestination = outputs.length > 1; + final assetType = + CryptoCurrency.fromString(_credentials.assetType.toLowerCase()); + final balances = getZanoBalance(accountIndex: walletAddresses.account!.id); + final unlockedBalance = balances[assetType]!.unlockedBalance; + + PendingTransactionDescription pendingTransactionDescription; + + if (!(syncStatus is SyncedSyncStatus)) { + throw ZanoTransactionCreationException('The wallet is not synced.'); + } + + if (hasMultiDestination) { + if (outputs.any( + (item) => item.sendAll || (item.formattedCryptoAmount ?? 0) <= 0)) { + throw ZanoTransactionCreationException( + 'You do not have enough coins to send this amount.'); + } + + final int totalAmount = outputs.fold( + 0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); + + if (unlockedBalance < totalAmount) { + throw ZanoTransactionCreationException( + 'You do not have enough coins to send this amount.'); + } + + final moneroOutputs = outputs + .map((output) => MoneroOutput( + address: output.address, + amount: output.cryptoAmount!.replaceAll(',', '.'))) + .toList(); + + pendingTransactionDescription = + await transaction_history.createTransactionMultDest( + outputs: moneroOutputs, + priorityRaw: _credentials.priority.serialize(), + accountIndex: walletAddresses.account!.id); + } else { + final output = outputs.first; + final address = output.isParsedAddress && + (output.extractedAddress?.isNotEmpty ?? false) + ? output.extractedAddress! + : output.address; + final amount = + output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); + final int? formattedAmount = + output.sendAll ? null : output.formattedCryptoAmount; + + if ((formattedAmount != null && unlockedBalance < formattedAmount) || + (formattedAmount == null && unlockedBalance <= 0)) { + final formattedBalance = moneroAmountToString(amount: unlockedBalance); + + throw ZanoTransactionCreationException( + 'You do not have enough unlocked balance. Unlocked: $formattedBalance. Transaction amount: ${output.cryptoAmount}.'); + } + + pendingTransactionDescription = + await transaction_history.createTransaction( + address: address, + assetType: _credentials.assetType, + amount: amount, + priorityRaw: _credentials.priority.serialize(), + accountIndex: walletAddresses.account!.id); + } + + return PendingZanoTransaction(pendingTransactionDescription, assetType); + } + + @override + int calculateEstimatedFee(TransactionPriority priority, int? amount) { + // FIXME: hardcoded value; + + if (priority is MoneroTransactionPriority) { + switch (priority) { + case MoneroTransactionPriority.slow: + return 24590000; + case MoneroTransactionPriority.automatic: + return 123050000; + case MoneroTransactionPriority.medium: + return 245029999; + case MoneroTransactionPriority.fast: + return 614530000; + case MoneroTransactionPriority.fastest: + return 26021600000; + } + } + + return 0; + } + + @override + Future save() async { + await walletAddresses.updateAddressesInBox(); + await backupWalletFiles(name); + await zano_wallet.store(); + } + + @override + Future renameWalletFiles(String newWalletName) async { + final currentWalletPath = await pathForWallet(name: name, type: type); + final currentCacheFile = File(currentWalletPath); + final currentKeysFile = File('$currentWalletPath.keys'); + final currentAddressListFile = File('$currentWalletPath.address.txt'); + + final newWalletPath = await pathForWallet(name: newWalletName, type: type); + + // Copies current wallet files into new wallet name's dir and files + if (currentCacheFile.existsSync()) { + await currentCacheFile.copy(newWalletPath); + } + if (currentKeysFile.existsSync()) { + await currentKeysFile.copy('$newWalletPath.keys'); + } + if (currentAddressListFile.existsSync()) { + await currentAddressListFile.copy('$newWalletPath.address.txt'); + } + + // Delete old name's dir and files + await Directory(currentWalletPath).delete(recursive: true); + } + + @override + Future changePassword(String password) async { + zano_wallet.setPasswordSync(password); + } + + Future getNodeHeight() async => zano_wallet.getNodeHeight(); + + Future isConnected() async => zano_wallet.isConnected(); + + Future setAsRecovered() async { + walletInfo.isRecovery = false; + await walletInfo.save(); + } + + @override + Future rescan({required int height}) async { + walletInfo.restoreHeight = height; + walletInfo.isRecovery = true; + zano_wallet.setRefreshFromBlockHeight(height: height); + zano_wallet.rescanBlockchainAsync(); + await startSync(); + _askForUpdateBalance(); + walletAddresses.accountList.update(); + await _askForUpdateTransactionHistory(); + await save(); + await walletInfo.save(); + } + + String getTransactionAddress(int accountIndex, int addressIndex) => + zano_wallet.getAddress( + accountIndex: accountIndex, addressIndex: addressIndex); + + @override + Future> fetchTransactions() async { + zano_transaction_history.refreshTransactions(); + return _getAllTransactions(null) + .fold>({}, + (Map acc, ZanoTransactionInfo tx) { + acc[tx.id] = tx; + return acc; + }); + } + + Future updateTransactions() async { + try { + if (_isTransactionUpdating) { + return; + } + + _isTransactionUpdating = true; + final transactions = await fetchTransactions(); + transactionHistory.addMany(transactions); + await transactionHistory.save(); + _isTransactionUpdating = false; + } catch (e) { + print(e); + _isTransactionUpdating = false; + } + } + + List _getAllTransactions(dynamic _) => + zano_transaction_history + .getAllTransations() + .map((row) => ZanoTransactionInfo.fromRow(row)) + .toList(); + + void _setListeners() { + _listener?.stop(); + _listener = zano_wallet.setListeners(_onNewBlock, _onNewTransaction); + } + + void _setInitialHeight() { + if (walletInfo.isRecovery) { + return; + } + + final currentHeight = zano_wallet.getCurrentHeight(); + + if (currentHeight <= 1) { + final height = _getHeightByDate(walletInfo.date); + zano_wallet.setRecoveringFromSeed(isRecovery: true); + zano_wallet.setRefreshFromBlockHeight(height: height); + } + } + + int _getHeightDistance(DateTime date) { + final distance = + DateTime.now().millisecondsSinceEpoch - date.millisecondsSinceEpoch; + final daysTmp = (distance / 86400).round(); + final days = daysTmp < 1 ? 1 : daysTmp; + + return days * 1000; + } + + int _getHeightByDate(DateTime date) { + final nodeHeight = zano_wallet.getNodeHeightSync(); + final heightDistance = _getHeightDistance(date); + + if (nodeHeight <= 0) { + return 0; + } + + return nodeHeight - heightDistance; + } + + void _askForUpdateBalance() => + balance.addAll(getZanoBalance(accountIndex: walletAddresses.account!.id)); + + Future _askForUpdateTransactionHistory() async => + await updateTransactions(); + + void _onNewBlock(int height, int blocksLeft, double ptc) async { + try { + if (walletInfo.isRecovery) { + await _askForUpdateTransactionHistory(); + _askForUpdateBalance(); + walletAddresses.accountList.update(); + } + + if (blocksLeft < 1000) { + await _askForUpdateTransactionHistory(); + _askForUpdateBalance(); + walletAddresses.accountList.update(); + syncStatus = SyncedSyncStatus(); + + if (!_hasSyncAfterStartup) { + _hasSyncAfterStartup = true; + await save(); + } + + if (walletInfo.isRecovery) { + await setAsRecovered(); + } + } else { + syncStatus = SyncingSyncStatus(blocksLeft, ptc); + } + } catch (e) { + print(e.toString()); + } + } + + void _onNewTransaction() async { + try { + await _askForUpdateTransactionHistory(); + _askForUpdateBalance(); + await Future.delayed(Duration(seconds: 1)); + } catch (e) { + print(e.toString()); + } + } +} diff --git a/cw_zano/lib/zano_wallet_addresses.dart b/cw_zano/lib/zano_wallet_addresses.dart new file mode 100644 index 000000000..d8de8c06d --- /dev/null +++ b/cw_zano/lib/zano_wallet_addresses.dart @@ -0,0 +1,87 @@ +import 'package:cw_core/wallet_addresses_with_account.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/account.dart'; +import 'package:cw_zano/zano_account_list.dart'; +import 'package:cw_zano/zano_subaddress_list.dart'; +import 'package:cw_core/subaddress.dart'; +import 'package:mobx/mobx.dart'; + +part 'zano_wallet_addresses.g.dart'; + +class ZanoWalletAddresses = ZanoWalletAddressesBase with _$ZanoWalletAddresses; + +abstract class ZanoWalletAddressesBase + extends WalletAddressesWithAccount with Store { + ZanoWalletAddressesBase(WalletInfo walletInfo) + : accountList = ZanoAccountList(), + subaddressList = ZanoSubaddressList(), + address = '', + super(walletInfo); + + @override + @observable + String address; + + // @override + @observable + Account? account; + + @observable + Subaddress? subaddress; + + ZanoSubaddressList subaddressList; + + ZanoAccountList accountList; + + @override + Future init() async { + accountList.update(); + account = accountList.accounts.first; + updateSubaddressList(accountIndex: account?.id ?? 0); + await updateAddressesInBox(); + } + + @override + Future updateAddressesInBox() async { + try { + final _subaddressList = ZanoSubaddressList(); + + addressesMap.clear(); + + accountList.accounts.forEach((account) { + _subaddressList.update(accountIndex: account.id); + _subaddressList.subaddresses.forEach((subaddress) { + addressesMap[subaddress.address] = subaddress.label; + }); + }); + + await saveAddressesInBox(); + } catch (e) { + print(e.toString()); + } + } + + bool validate() { + accountList.update(); + final accountListLength = accountList.accounts.length ?? 0; + + if (accountListLength <= 0) { + return false; + } + + subaddressList.update(accountIndex: accountList.accounts.first.id); + final subaddressListLength = subaddressList.subaddresses.length ?? 0; + + if (subaddressListLength <= 0) { + return false; + } + + return true; + } + + void updateSubaddressList({required int accountIndex}) { + subaddressList.update(accountIndex: accountIndex); + subaddress = subaddressList.subaddresses.first; + address = subaddress!.address; + } +} diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart new file mode 100644 index 000000000..f39d9e2f7 --- /dev/null +++ b/cw_zano/lib/zano_wallet_service.dart @@ -0,0 +1,252 @@ +import 'dart:io'; +import 'package:collection/collection.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/monero_wallet_utils.dart'; +import 'package:hive/hive.dart'; +import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; +import 'package:cw_zano/api/wallet.dart' as zano_wallet; +import 'package:cw_zano/api/exceptions/wallet_opening_exception.dart'; +import 'package:cw_zano/zano_wallet.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_type.dart'; + +class ZanoNewWalletCredentials extends WalletCredentials { + ZanoNewWalletCredentials( + {required String name, required this.language, String? password}) + : super(name: name, password: password); + + final String language; +} + +class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { + ZanoRestoreWalletFromSeedCredentials( + {required String name, + required String password, + required int height, + required this.mnemonic}) + : super(name: name, password: password, height: height); + + final String mnemonic; +} + +class ZanoWalletLoadingException implements Exception { + @override + String toString() => 'Failure to load the wallet.'; +} + +class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { + ZanoRestoreWalletFromKeysCredentials( + {required String name, + required String password, + required this.language, + required this.address, + required this.viewKey, + required this.spendKey, + required int height}) + : super(name: name, password: password, height: height); + + final String language; + final String address; + final String viewKey; + final String spendKey; +} + +class ZanoWalletService extends WalletService< + ZanoNewWalletCredentials, + ZanoRestoreWalletFromSeedCredentials, + ZanoRestoreWalletFromKeysCredentials> { + ZanoWalletService(this.walletInfoSource); + + final Box walletInfoSource; + + static bool walletFilesExist(String path) => + !File(path).existsSync() && !File('$path.keys').existsSync(); + + @override + WalletType getType() => WalletType.zano; + + @override + Future create(ZanoNewWalletCredentials credentials) async { + try { + final path = await pathForWallet(name: credentials.name, type: getType()); + await zano_wallet_manager.createWallet( + path: path, + password: credentials.password!, + language: credentials.language); + final wallet = ZanoWallet(walletInfo: credentials.walletInfo!); + await wallet.init(); + return wallet; + } catch (e) { + // TODO: Implement Exception for wallet list service. + print('ZanoWalletsManager Error: ${e.toString()}'); + rethrow; + } + } + + @override + Future isWalletExit(String name) async { + try { + final path = await pathForWallet(name: name, type: getType()); + return zano_wallet_manager.isWalletExist(path: path); + } catch (e) { + // TODO: Implement Exception for wallet list service. + print('ZanoWalletsManager Error: $e'); + rethrow; + } + } + + @override + Future openWallet(String name, String password) async { + try { + final path = await pathForWallet(name: name, type: getType()); + + if (walletFilesExist(path)) { + await repairOldAndroidWallet(name); + } + + await zano_wallet_manager + .openWalletAsync({'path': path, 'password': password}); + final walletInfo = walletInfoSource.values.firstWhereOrNull( + (info) => info.id == WalletBase.idFor(name, getType()))!; + final wallet = ZanoWallet(walletInfo: walletInfo); + final isValid = wallet.walletAddresses.validate(); + + if (!isValid) { + await restoreOrResetWalletFiles(name); + wallet.close(); + return openWallet(name, password); + } + + await wallet.init(); + + return wallet; + } catch (e) { + // TODO: Implement Exception for wallet list service. + + if ((e.toString().contains('bad_alloc') || + (e is WalletOpeningException && + (e.message == 'std::bad_alloc' || + e.message.contains('bad_alloc')))) || + (e.toString().contains('does not correspond') || + (e is WalletOpeningException && + e.message.contains('does not correspond')))) { + await restoreOrResetWalletFiles(name); + return openWallet(name, password); + } + + rethrow; + } + } + + @override + Future remove(String wallet) async { + final path = await pathForWalletDir(name: wallet, type: getType()); + final file = Directory(path); + final isExist = file.existsSync(); + + if (isExist) { + await file.delete(recursive: true); + } + + final walletInfo = walletInfoSource.values + .firstWhere((info) => info.id == WalletBase.idFor(wallet, getType())); + await walletInfoSource.delete(walletInfo.key); + } + + @override + Future rename( + String currentName, String password, String newName) async { + final currentWalletInfo = walletInfoSource.values.firstWhere( + (info) => info.id == WalletBase.idFor(currentName, getType())); + final currentWallet = ZanoWallet(walletInfo: currentWalletInfo); + + await currentWallet.renameWalletFiles(newName); + + final newWalletInfo = currentWalletInfo; + newWalletInfo.id = WalletBase.idFor(newName, getType()); + newWalletInfo.name = newName; + + await walletInfoSource.put(currentWalletInfo.key, newWalletInfo); + } + + @override + Future restoreFromKeys( + ZanoRestoreWalletFromKeysCredentials credentials) async { + try { + final path = await pathForWallet(name: credentials.name, type: getType()); + await zano_wallet_manager.restoreFromKeys( + path: path, + password: credentials.password!, + language: credentials.language, + restoreHeight: credentials.height!, + address: credentials.address, + viewKey: credentials.viewKey, + spendKey: credentials.spendKey); + final wallet = ZanoWallet(walletInfo: credentials.walletInfo!); + await wallet.init(); + + return wallet; + } catch (e) { + // TODO: Implement Exception for wallet list service. + print('ZanoWalletsManager Error: $e'); + rethrow; + } + } + + @override + Future restoreFromSeed( + ZanoRestoreWalletFromSeedCredentials credentials) async { + try { + final path = await pathForWallet(name: credentials.name, type: getType()); + await zano_wallet_manager.restoreFromSeed( + path: path, + password: credentials.password!, + seed: credentials.mnemonic, + restoreHeight: credentials.height!); + final wallet = ZanoWallet(walletInfo: credentials.walletInfo!); + await wallet.init(); + + return wallet; + } catch (e) { + // TODO: Implement Exception for wallet list service. + print('ZanoWalletsManager Error: $e'); + rethrow; + } + } + + Future repairOldAndroidWallet(String name) async { + try { + if (!Platform.isAndroid) { + return; + } + + final oldAndroidWalletDirPath = + await outdatedAndroidPathForWalletDir(name: name); + final dir = Directory(oldAndroidWalletDirPath); + + if (!dir.existsSync()) { + return; + } + + final newWalletDirPath = + await pathForWalletDir(name: name, type: getType()); + + dir.listSync().forEach((f) { + final file = File(f.path); + final name = f.path.split('/').last; + final newPath = newWalletDirPath + '/$name'; + final newFile = File(newPath); + + if (!newFile.existsSync()) { + newFile.createSync(); + } + newFile.writeAsBytesSync(file.readAsBytesSync()); + }); + } catch (e) { + print(e.toString()); + } + } +} diff --git a/cw_zano/pubspec.lock b/cw_zano/pubspec.lock new file mode 100644 index 000000000..a63aa3237 --- /dev/null +++ b/cw_zano/pubspec.lock @@ -0,0 +1,676 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + url: "https://pub.dev" + source: hosted + version: "47.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + url: "https://pub.dev" + source: hosted + version: "4.7.0" + args: + dependency: transitive + description: + name: args + sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + build_config: + dependency: transitive + description: + name: build_config + sha256: bf80fcfb46a29945b423bd9aad884590fb1dc69b330a4d4700cac476af1708d1 + url: "https://pub.dev" + source: hosted + version: "1.1.1" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + build_resolvers: + dependency: "direct dev" + description: + name: build_resolvers + sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + url: "https://pub.dev" + source: hosted + version: "2.0.10" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + url: "https://pub.dev" + source: hosted + version: "2.3.3" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + url: "https://pub.dev" + source: hosted + version: "7.2.7" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" + url: "https://pub.dev" + source: hosted + version: "8.4.3" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + url: "https://pub.dev" + source: hosted + version: "4.4.0" + collection: + dependency: transitive + description: + name: collection + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" + source: hosted + version: "1.17.1" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + url: "https://pub.dev" + source: hosted + version: "3.0.2" + cw_core: + dependency: "direct main" + description: + path: "../cw_core" + relative: true + source: path + version: "0.0.1" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + url: "https://pub.dev" + source: hosted + version: "2.2.4" + encrypt: + dependency: transitive + description: + name: encrypt + sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb" + url: "https://pub.dev" + source: hosted + version: "5.0.1" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: "direct main" + description: + name: ffi + sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_mobx: + dependency: "direct main" + description: + name: flutter_mobx + sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + url: "https://pub.dev" + source: hosted + version: "2.0.6+5" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + glob: + dependency: transitive + description: + name: glob + sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + graphs: + dependency: transitive + description: + name: graphs + sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + url: "https://pub.dev" + source: hosted + version: "2.2.0" + hive: + dependency: transitive + description: + name: hive + sha256: "8dcf6db979d7933da8217edcec84e9df1bdb4e4edc7fc77dbd5aa74356d6d941" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + hive_generator: + dependency: "direct dev" + description: + name: hive_generator + sha256: "81fd20125cb2ce8fd23623d7744ffbaf653aae93706c9bd3bf7019ea0ace3938" + url: "https://pub.dev" + source: hosted + version: "1.1.3" + http: + dependency: "direct main" + description: + name: http + sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" + url: "https://pub.dev" + source: hosted + version: "0.18.1" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 + url: "https://pub.dev" + source: hosted + version: "4.8.0" + logging: + dependency: transitive + description: + name: logging + sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.dev" + source: hosted + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + mime: + dependency: transitive + description: + name: mime + sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + url: "https://pub.dev" + source: hosted + version: "1.0.4" + mobx: + dependency: "direct main" + description: + name: mobx + sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a + url: "https://pub.dev" + source: hosted + version: "2.1.3+1" + mobx_codegen: + dependency: "direct dev" + description: + name: mobx_codegen + sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" + source: hosted + version: "1.8.3" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95 + url: "https://pub.dev" + source: hosted + version: "2.0.12" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e + url: "https://pub.dev" + source: hosted + version: "2.0.22" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 + url: "https://pub.dev" + source: hosted + version: "2.1.7" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 + url: "https://pub.dev" + source: hosted + version: "2.0.5" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: f53720498d5a543f9607db4b0e997c4b5438884de25b0f73098cc2671a51b130 + url: "https://pub.dev" + source: hosted + version: "2.1.5" + platform: + dependency: transitive + description: + name: platform + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + url: "https://pub.dev" + source: hosted + version: "2.1.3" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 + url: "https://pub.dev" + source: hosted + version: "3.6.2" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + url: "https://pub.dev" + source: hosted + version: "1.4.0" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + url: "https://pub.dev" + source: hosted + version: "1.0.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + url: "https://pub.dev" + source: hosted + version: "1.2.6" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.dev" + source: hosted + version: "0.5.1" + timing: + dependency: transitive + description: + name: timing + sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + watcher: + dependency: transitive + description: + name: watcher + sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b + url: "https://pub.dev" + source: hosted + version: "2.3.0" + win32: + dependency: transitive + description: + name: win32 + sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 + url: "https://pub.dev" + source: hosted + version: "3.1.3" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86 + url: "https://pub.dev" + source: hosted + version: "0.2.0+3" + yaml: + dependency: transitive + description: + name: yaml + sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + url: "https://pub.dev" + source: hosted + version: "3.1.1" +sdks: + dart: ">=3.0.0 <4.0.0" + flutter: ">=3.0.0" diff --git a/cw_zano/pubspec.yaml b/cw_zano/pubspec.yaml new file mode 100644 index 000000000..a1e76d72e --- /dev/null +++ b/cw_zano/pubspec.yaml @@ -0,0 +1,78 @@ +name: cw_zano +description: A new flutter plugin project. +version: 0.0.1 +publish_to: none +author: Cake Wallet +homepage: https://cakewallet.com + +environment: + sdk: ">=2.17.5 <3.0.0" + flutter: ">=1.20.0" + +dependencies: + flutter: + sdk: flutter + ffi: ^2.0.1 + http: ^1.1.0 + path_provider: ^2.0.11 + mobx: ^2.0.7+4 + flutter_mobx: ^2.0.6+1 + intl: ^0.18.0 + cw_core: + path: ../cw_core + +dev_dependencies: + flutter_test: + sdk: flutter + build_runner: ^2.1.11 + mobx_codegen: ^2.0.7 + build_resolvers: ^2.0.9 + hive_generator: ^1.1.3 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + # This section identifies this Flutter project as a plugin project. + # The 'pluginClass' and Android 'package' identifiers should not ordinarily + # be modified. They are used by the tooling to maintain consistency when + # adding or updating assets for this project. + plugin: + platforms: + android: + package: com.cakewallet.cw_zano + pluginClass: CwZanoPlugin + ios: + pluginClass: CwZanoPlugin + + # To add assets to your plugin package, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + # + # For details regarding assets in packages, see + # https://flutter.dev/assets-and-images/#from-packages + # + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # To add custom fonts to your plugin package, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts in packages, see + # https://flutter.dev/custom-fonts/#from-packages diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index eba1bbda4..3d8d81aa8 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cake_wallet/core/validator.dart'; import 'package:cake_wallet/entities/mnemonic_item.dart'; import 'package:cw_core/wallet_type.dart'; @@ -16,7 +17,8 @@ class SeedValidator extends Validator { final String language; final List _words; - static List getWordList({required WalletType type, required String language}) { + static List getWordList( + {required WalletType type, required String language}) { switch (type) { case WalletType.bitcoin: return getBitcoinWordList(language); @@ -26,6 +28,8 @@ class SeedValidator extends Validator { return monero!.getMoneroWordList(language); case WalletType.haven: return haven!.getMoneroWordList(language); + case WalletType.zano: + return zano!.getMoneroWordList(language); case WalletType.ethereum: return ethereum!.getEthereumWordList(language); default: diff --git a/lib/di.dart b/lib/di.dart index a308b989a..3ae705294 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -81,6 +81,7 @@ import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; import 'package:cake_wallet/view_model/wallet_list/wallet_edit_view_model.dart'; import 'package:cake_wallet/view_model/wallet_list/wallet_list_item.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cake_wallet/core/backup_service.dart'; @@ -245,7 +246,8 @@ Future setup({ _anonpayInvoiceInfoSource = anonpayInvoiceInfoSource; if (!_isSetupFinished) { - getIt.registerSingletonAsync(() => SharedPreferences.getInstance()); + getIt.registerSingletonAsync( + () => SharedPreferences.getInstance()); } if (!_isSetupFinished) { getIt.registerFactory(() => BackgroundTasks()); @@ -259,9 +261,10 @@ Future setup({ nodeSource: _nodeSource, isBitcoinBuyEnabled: isBitcoinBuyEnabled, // Enforce darkTheme on platforms other than mobile till the design for other themes is completed - initialTheme: ResponsiveLayoutUtil.instance.isMobile && DeviceInfo.instance.isMobile - ? null - : ThemeList.darkTheme, + initialTheme: + ResponsiveLayoutUtil.instance.isMobile && DeviceInfo.instance.isMobile + ? null + : ThemeList.darkTheme, ); if (_isSetupFinished) { @@ -280,30 +283,34 @@ Future setup({ walletList: getIt.get(), settingsStore: getIt.get(), nodeListStore: getIt.get())); - getIt.registerSingleton( - TradesStore(tradesSource: _tradesSource, settingsStore: getIt.get())); - getIt.registerSingleton( - OrdersStore(ordersSource: _ordersSource, settingsStore: getIt.get())); + getIt.registerSingleton(TradesStore( + tradesSource: _tradesSource, settingsStore: getIt.get())); + getIt.registerSingleton(OrdersStore( + ordersSource: _ordersSource, settingsStore: getIt.get())); getIt.registerSingleton(TradeFilterStore()); getIt.registerSingleton(TransactionFilterStore()); getIt.registerSingleton(FiatConversionStore()); - getIt.registerSingleton(SendTemplateStore(templateSource: _templates)); + getIt.registerSingleton( + SendTemplateStore(templateSource: _templates)); getIt.registerSingleton( ExchangeTemplateStore(templateSource: _exchangeTemplates)); - getIt.registerSingleton( - YatStore(appStore: getIt.get(), secureStorage: getIt.get()) - ..init()); - getIt.registerSingleton( - AnonpayTransactionsStore(anonpayInvoiceInfoSource: _anonpayInvoiceInfoSource)); + getIt.registerSingleton(YatStore( + appStore: getIt.get(), + secureStorage: getIt.get()) + ..init()); + getIt.registerSingleton(AnonpayTransactionsStore( + anonpayInvoiceInfoSource: _anonpayInvoiceInfoSource)); - final secretStore = await SecretStoreBase.load(getIt.get()); + final secretStore = + await SecretStoreBase.load(getIt.get()); getIt.registerSingleton(secretStore); - getIt.registerFactory(() => KeyService(getIt.get())); + getIt.registerFactory( + () => KeyService(getIt.get())); - getIt.registerFactoryParam((type, _) => - WalletCreationService( + getIt.registerFactoryParam( + (type, _) => WalletCreationService( initialType: type, keyService: getIt.get(), secureStorage: getIt.get(), @@ -315,19 +322,25 @@ Future setup({ getIt.get(), (WalletType type) => getIt.get(param1: type))); - getIt.registerFactoryParam((type, _) => WalletNewVM( - getIt.get(), getIt.get(param1: type), _walletInfoSource, - type: type)); + getIt.registerFactoryParam((type, _) => + WalletNewVM(getIt.get(), + getIt.get(param1: type), _walletInfoSource, + type: type)); - getIt.registerFactoryParam((WalletType type, _) { - return WalletRestorationFromQRVM(getIt.get(), - getIt.get(param1: type), _walletInfoSource, type); + getIt.registerFactoryParam( + (WalletType type, _) { + return WalletRestorationFromQRVM( + getIt.get(), + getIt.get(param1: type), + _walletInfoSource, + type); }); - getIt.registerFactory(() => WalletAddressListViewModel( - appStore: getIt.get(), - yatStore: getIt.get(), - fiatConversionStore: getIt.get())); + getIt.registerFactory(() => + WalletAddressListViewModel( + appStore: getIt.get(), + yatStore: getIt.get(), + fiatConversionStore: getIt.get())); getIt.registerFactory(() => BalanceViewModel( appStore: getIt.get(), @@ -353,12 +366,16 @@ Future setup({ ), ); - getIt.registerFactory(() => AuthViewModel(getIt.get(), - getIt.get(), getIt.get(), BiometricAuth())); + getIt.registerFactory(() => AuthViewModel( + getIt.get(), + getIt.get(), + getIt.get(), + BiometricAuth())); - getIt.registerFactoryParam( - (onAuthFinished, closable) => AuthPage(getIt.get(), - onAuthenticationFinished: onAuthFinished, closable: closable)); + getIt + .registerFactoryParam( + (onAuthFinished, closable) => AuthPage(getIt.get(), + onAuthenticationFinished: onAuthFinished, closable: closable)); getIt.registerFactory( () => Setup2FAViewModel( @@ -376,8 +393,8 @@ Future setup({ ); getIt.registerFactory(() { - return AuthPage(getIt.get(), - onAuthenticationFinished: (isAuthenticated, AuthPageState authPageState) { + return AuthPage(getIt.get(), onAuthenticationFinished: + (isAuthenticated, AuthPageState authPageState) { if (!isAuthenticated) { return; } else { @@ -405,7 +422,8 @@ Future setup({ totpAuthPageState.changeProcessText('Loading the wallet'); if (loginError != null) { - totpAuthPageState.changeProcessText('ERROR: ${loginError.toString()}'); + totpAuthPageState + .changeProcessText('ERROR: ${loginError.toString()}'); } ReactionDisposer? _reaction; @@ -457,7 +475,8 @@ Future setup({ desktopNavigatorKey: _navigatorKey, ); }); - getIt.registerFactoryParam, void>( + getIt.registerFactoryParam< + DesktopDashboardPage, GlobalKey, void>( (desktopKey, _) => DesktopDashboardPage( balancePage: getIt.get(), dashboardViewModel: getIt.get(), @@ -465,8 +484,8 @@ Future setup({ desktopKey: desktopKey, )); - getIt.registerFactory( - () => TransactionsPage(dashboardViewModel: getIt.get())); + getIt.registerFactory(() => + TransactionsPage(dashboardViewModel: getIt.get())); getIt.registerFactory( () => Setup2FAPage(setup2FAViewModel: getIt.get())); @@ -478,9 +497,11 @@ Future setup({ () => Modify2FAPage(setup2FAViewModel: getIt.get())); getIt.registerFactoryParam( - (pageOption, _) => ReceiveOptionViewModel(getIt.get().wallet!, pageOption)); + (pageOption, _) => + ReceiveOptionViewModel(getIt.get().wallet!, pageOption)); - getIt.registerFactoryParam, void>((args, _) { + getIt.registerFactoryParam, void>( + (args, _) { final address = args.first as String; final pageOption = args.last as ReceivePageOption; return AnonInvoicePageViewModel( @@ -494,25 +515,27 @@ Future setup({ ); }); - getIt.registerFactoryParam, void>((List args, _) { + getIt.registerFactoryParam, void>( + (List args, _) { final pageOption = args.last as ReceivePageOption; return AnonPayInvoicePage(getIt.get(param1: args), getIt.get(param1: pageOption)); }); - getIt.registerFactory( - () => ReceivePage(addressListViewModel: getIt.get())); + getIt.registerFactory(() => ReceivePage( + addressListViewModel: getIt.get())); getIt.registerFactory(() => AddressPage( addressListViewModel: getIt.get(), dashboardViewModel: getIt.get(), receiveOptionViewModel: getIt.get())); - getIt.registerFactoryParam( - (WalletAddressListItem? item, _) => - WalletAddressEditOrCreateViewModel(wallet: getIt.get().wallet!, item: item)); + getIt.registerFactoryParam( + (WalletAddressListItem? item, _) => WalletAddressEditOrCreateViewModel( + wallet: getIt.get().wallet!, item: item)); - getIt.registerFactoryParam((dynamic item, _) => - AddressEditOrCreatePage( + getIt.registerFactoryParam( + (dynamic item, _) => AddressEditOrCreatePage( addressEditOrCreateViewModel: getIt.get(param1: item))); @@ -540,8 +563,8 @@ Future setup({ initialPaymentRequest: initialPaymentRequest, )); - getIt.registerFactory( - () => SendTemplatePage(sendTemplateViewModel: getIt.get())); + getIt.registerFactory(() => SendTemplatePage( + sendTemplateViewModel: getIt.get())); if (DeviceInfo.instance.isMobile) { getIt.registerFactory( @@ -571,14 +594,15 @@ Future setup({ )); getIt.registerFactoryParam( - (WalletListViewModel walletListViewModel, _) => - WalletEditViewModel(walletListViewModel, getIt.get())); + (WalletListViewModel walletListViewModel, _) => WalletEditViewModel( + walletListViewModel, getIt.get())); getIt.registerFactoryParam, void>((args, _) { final walletListViewModel = args.first as WalletListViewModel; final editingWallet = args.last as WalletListItem; return WalletEditPage( - walletEditViewModel: getIt.get(param1: walletListViewModel), + walletEditViewModel: + getIt.get(param1: walletListViewModel), authService: getIt.get(), walletNewVM: getIt.get(param1: editingWallet.type), editingWallet: editingWallet); @@ -595,8 +619,8 @@ Future setup({ 'Unexpected wallet type: ${wallet.type} for generate MoneroAccountListViewModel'); }); - getIt.registerFactory( - () => MoneroAccountListPage(accountListViewModel: getIt.get())); + getIt.registerFactory(() => MoneroAccountListPage( + accountListViewModel: getIt.get())); /*getIt.registerFactory(() { final wallet = getIt.get().wallet; @@ -613,14 +637,16 @@ Future setup({ moneroAccountCreationViewModel: getIt.get()));*/ - getIt.registerFactoryParam( + getIt.registerFactoryParam( (AccountListItem? account, _) => MoneroAccountEditOrCreateViewModel( monero!.getAccountList(getIt.get().wallet!), haven?.getAccountList(getIt.get().wallet!), wallet: getIt.get().wallet!, accountListItem: account)); - getIt.registerFactoryParam( + getIt.registerFactoryParam( (AccountListItem? account, _) => MoneroAccountEditOrCreatePage( moneroAccountCreationViewModel: getIt.get(param1: account))); @@ -630,58 +656,74 @@ Future setup({ }); getIt.registerFactory(() { - return PrivacySettingsViewModel(getIt.get(), getIt.get().wallet!); + return PrivacySettingsViewModel( + getIt.get(), getIt.get().wallet!); }); getIt.registerFactory(() { - return OtherSettingsViewModel(getIt.get(), getIt.get().wallet!); + return OtherSettingsViewModel( + getIt.get(), getIt.get().wallet!); }); getIt.registerFactory(() { - return SecuritySettingsViewModel(getIt.get(), getIt.get()); + return SecuritySettingsViewModel( + getIt.get(), getIt.get()); }); - getIt.registerFactory(() => WalletSeedViewModel(getIt.get().wallet!)); + getIt.registerFactory( + () => WalletSeedViewModel(getIt.get().wallet!)); - getIt.registerFactoryParam((bool isWalletCreated, _) => - WalletSeedPage(getIt.get(), isNewWalletCreated: isWalletCreated)); + getIt.registerFactoryParam( + (bool isWalletCreated, _) => WalletSeedPage( + getIt.get(), + isNewWalletCreated: isWalletCreated)); getIt.registerFactory(() => WalletKeysViewModel(getIt.get())); getIt.registerFactory(() => WalletKeysPage(getIt.get())); getIt.registerFactoryParam( - (ContactRecord? contact, _) => ContactViewModel(_contactSource, contact: contact)); + (ContactRecord? contact, _) => + ContactViewModel(_contactSource, contact: contact)); getIt.registerFactoryParam( - (CryptoCurrency? cur, _) => - ContactListViewModel(_contactSource, _walletInfoSource, cur, getIt.get())); + (CryptoCurrency? cur, _) => ContactListViewModel( + _contactSource, _walletInfoSource, cur, getIt.get())); - getIt.registerFactoryParam((CryptoCurrency? cur, _) => - ContactListPage(getIt.get(param1: cur), getIt.get())); + getIt.registerFactoryParam( + (CryptoCurrency? cur, _) => ContactListPage( + getIt.get(param1: cur), + getIt.get())); getIt.registerFactoryParam( - (ContactRecord? contact, _) => ContactPage(getIt.get(param1: contact))); + (ContactRecord? contact, _) => + ContactPage(getIt.get(param1: contact))); getIt.registerFactory(() { final appStore = getIt.get(); return NodeListViewModel(_nodeSource, appStore); }); - getIt.registerFactory(() => ConnectionSyncPage(getIt.get())); + getIt.registerFactory( + () => ConnectionSyncPage(getIt.get())); + + getIt.registerFactory(() => SecurityBackupPage( + getIt.get(), getIt.get())); getIt.registerFactory( - () => SecurityBackupPage(getIt.get(), getIt.get())); + () => PrivacyPage(getIt.get())); - getIt.registerFactory(() => PrivacyPage(getIt.get())); + getIt.registerFactory( + () => DisplaySettingsPage(getIt.get())); - getIt.registerFactory(() => DisplaySettingsPage(getIt.get())); + getIt.registerFactory( + () => OtherSettingsPage(getIt.get())); - getIt.registerFactory(() => OtherSettingsPage(getIt.get())); - - getIt.registerFactoryParam((WalletType? type, _) => - NodeCreateOrEditViewModel( - _nodeSource, type ?? getIt.get().wallet!.type, getIt.get())); + getIt.registerFactoryParam( + (WalletType? type, _) => NodeCreateOrEditViewModel( + _nodeSource, + type ?? getIt.get().wallet!.type, + getIt.get())); getIt.registerFactoryParam( (Node? editingNode, bool? isSelected) => NodeCreateOrEditPage( @@ -697,7 +739,8 @@ Future setup({ wallet: getIt.get().wallet!, )); - getIt.registerFactoryParam((title, uri) => WebViewPage(title, uri)); + getIt.registerFactoryParam( + (title, uri) => WebViewPage(title, uri)); getIt.registerFactory(() => PayfuraBuyProvider( settingsStore: getIt.get().settingsStore, @@ -719,39 +762,49 @@ Future setup({ tradesStore: getIt.get(), sendViewModel: getIt.get())); - getIt.registerFactory( - () => ExchangePage(getIt.get(), getIt.get())); - - getIt.registerFactory(() => ExchangeConfirmPage(tradesStore: getIt.get())); + getIt.registerFactory(() => + ExchangePage(getIt.get(), getIt.get())); getIt.registerFactory( - () => ExchangeTradePage(exchangeTradeViewModel: getIt.get())); + () => ExchangeConfirmPage(tradesStore: getIt.get())); - getIt.registerFactory(() => ExchangeTemplatePage(getIt.get())); + getIt.registerFactory(() => ExchangeTradePage( + exchangeTradeViewModel: getIt.get())); - getIt.registerFactoryParam((WalletType param1, __) { + getIt.registerFactory( + () => ExchangeTemplatePage(getIt.get())); + + getIt.registerFactoryParam( + (WalletType param1, __) { switch (param1) { case WalletType.haven: return haven!.createHavenWalletService(_walletInfoSource); case WalletType.monero: - return monero!.createMoneroWalletService(_walletInfoSource, _unspentCoinsInfoSource); + return monero!.createMoneroWalletService( + _walletInfoSource, _unspentCoinsInfoSource); case WalletType.bitcoin: - return bitcoin!.createBitcoinWalletService(_walletInfoSource, _unspentCoinsInfoSource); + return bitcoin!.createBitcoinWalletService( + _walletInfoSource, _unspentCoinsInfoSource); case WalletType.litecoin: - return bitcoin!.createLitecoinWalletService(_walletInfoSource, _unspentCoinsInfoSource); + return bitcoin!.createLitecoinWalletService( + _walletInfoSource, _unspentCoinsInfoSource); case WalletType.ethereum: return ethereum!.createEthereumWalletService(_walletInfoSource); + case WalletType.zano: + return zano!.createZanoWalletService(_walletInfoSource); default: - throw Exception('Unexpected token: ${param1.toString()} for generating of WalletService'); + throw Exception( + 'Unexpected token: ${param1.toString()} for generating of WalletService'); } }); - getIt.registerFactory( - () => SetupPinCodeViewModel(getIt.get(), getIt.get())); + getIt.registerFactory(() => SetupPinCodeViewModel( + getIt.get(), getIt.get())); - getIt.registerFactoryParam, String), - void>( - (onSuccessfulPinSetup, _) => SetupPinCodePage(getIt.get(), + getIt.registerFactoryParam, String), void>( + (onSuccessfulPinSetup, _) => SetupPinCodePage( + getIt.get(), onSuccessfulPinSetup: onSuccessfulPinSetup)); getIt.registerFactory(() => RescanViewModel(getIt.get().wallet!)); @@ -760,16 +813,17 @@ Future setup({ getIt.registerFactory(() => FaqPage(getIt.get())); - getIt.registerFactoryParam((type, _) => - WalletRestoreViewModel( - getIt.get(), getIt.get(param1: type), _walletInfoSource, + getIt.registerFactoryParam( + (type, _) => WalletRestoreViewModel(getIt.get(), + getIt.get(param1: type), _walletInfoSource, type: type)); - getIt.registerFactoryParam( - (type, _) => WalletRestorePage(getIt.get(param1: type))); + getIt.registerFactoryParam((type, _) => + WalletRestorePage(getIt.get(param1: type))); - getIt.registerFactoryParam( - (TransactionInfo transactionInfo, _) { + getIt + .registerFactoryParam( + (TransactionInfo transactionInfo, _) { final wallet = getIt.get().wallet!; return TransactionDetailsViewModel( transactionInfo: transactionInfo, @@ -783,8 +837,10 @@ Future setup({ transactionDetailsViewModel: getIt.get(param1: transactionInfo))); - getIt.registerFactoryParam( - (param1, isCreate) => NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true)); + getIt.registerFactoryParam((param1, + isCreate) => + NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true)); getIt.registerFactoryParam( (WalletType type, _) => PreSeedPage(type)); @@ -795,28 +851,34 @@ Future setup({ trades: _tradesSource, settingsStore: getIt.get())); - getIt.registerFactory(() => BackupService(getIt.get(), _walletInfoSource, - getIt.get(), getIt.get())); + getIt.registerFactory(() => BackupService( + getIt.get(), + _walletInfoSource, + getIt.get(), + getIt.get())); - getIt.registerFactory(() => BackupViewModel( - getIt.get(), getIt.get(), getIt.get())); + getIt.registerFactory(() => BackupViewModel(getIt.get(), + getIt.get(), getIt.get())); getIt.registerFactory(() => BackupPage(getIt.get())); - getIt.registerFactory(() => - EditBackupPasswordViewModel(getIt.get(), getIt.get())); + getIt.registerFactory(() => EditBackupPasswordViewModel( + getIt.get(), getIt.get())); - getIt.registerFactory(() => EditBackupPasswordPage(getIt.get())); + getIt.registerFactory( + () => EditBackupPasswordPage(getIt.get())); getIt.registerFactoryParam( (bool isNewInstall, _) => RestoreOptionsPage(isNewInstall: isNewInstall)); - getIt.registerFactory(() => RestoreFromBackupViewModel(getIt.get())); + getIt.registerFactory( + () => RestoreFromBackupViewModel(getIt.get())); - getIt.registerFactory(() => RestoreFromBackupPage(getIt.get())); + getIt.registerFactory( + () => RestoreFromBackupPage(getIt.get())); - getIt.registerFactoryParam( - (Trade trade, _) => TradeDetailsPage(getIt.get(param1: trade))); + getIt.registerFactoryParam((Trade trade, _) => + TradeDetailsPage(getIt.get(param1: trade))); getIt.registerFactory(() => BuyAmountViewModel()); @@ -825,8 +887,8 @@ Future setup({ getIt.registerFactory(() { final wallet = getIt.get().wallet; - return BuyViewModel(_ordersSource, getIt.get(), getIt.get(), - getIt.get(), + return BuyViewModel(_ordersSource, getIt.get(), + getIt.get(), getIt.get(), wallet: wallet!); }); @@ -835,7 +897,9 @@ Future setup({ final buyViewModel = args[1] as BuyViewModel; return BuyWebViewPage( - buyViewModel: buyViewModel, ordersStore: getIt.get(), url: url); + buyViewModel: buyViewModel, + ordersStore: getIt.get(), + url: url); }); getIt.registerFactoryParam((order, _) { @@ -844,34 +908,36 @@ Future setup({ return OrderDetailsViewModel(wallet: wallet!, orderForDetails: order); }); - getIt.registerFactoryParam( - (Order order, _) => OrderDetailsPage(getIt.get(param1: order))); + getIt.registerFactoryParam((Order order, _) => + OrderDetailsPage(getIt.get(param1: order))); getIt.registerFactory(() => SupportViewModel()); getIt.registerFactory(() => SupportPage(getIt.get())); - getIt.registerFactory(() => - SupportChatPage( - getIt.get(), secureStorage: getIt.get())); + getIt.registerFactory(() => SupportChatPage(getIt.get(), + secureStorage: getIt.get())); - getIt.registerFactory(() => SupportOtherLinksPage(getIt.get())); + getIt.registerFactory( + () => SupportOtherLinksPage(getIt.get())); getIt.registerFactory(() { final wallet = getIt.get().wallet; - return UnspentCoinsListViewModel(wallet: wallet!, unspentCoinsInfo: _unspentCoinsInfoSource!); + return UnspentCoinsListViewModel( + wallet: wallet!, unspentCoinsInfo: _unspentCoinsInfoSource!); }); - getIt.registerFactory(() => - UnspentCoinsListPage(unspentCoinsListViewModel: getIt.get())); + getIt.registerFactory(() => UnspentCoinsListPage( + unspentCoinsListViewModel: getIt.get())); getIt.registerFactoryParam( - (item, model) => - UnspentCoinsDetailsViewModel(unspentCoinsItem: item, unspentCoinsListViewModel: model)); + (item, model) => UnspentCoinsDetailsViewModel( + unspentCoinsItem: item, unspentCoinsListViewModel: model)); - getIt.registerFactoryParam((List args, _) { + getIt.registerFactoryParam( + (List args, _) { final item = args.first as UnspentCoinsItem; final unspentCoinsListViewModel = args[1] as UnspentCoinsListViewModel; @@ -883,7 +949,8 @@ Future setup({ getIt.registerFactory(() => YatService()); getIt.registerFactory(() => AddressResolver( - yatService: getIt.get(), walletType: getIt.get().wallet!.type)); + yatService: getIt.get(), + walletType: getIt.get().wallet!.type)); getIt.registerFactoryParam( (QrViewData viewData, _) => FullscreenQRPage(qrViewData: viewData)); @@ -892,20 +959,25 @@ Future setup({ getIt.registerFactory(() => AnyPayApi()); - getIt.registerFactory( - () => IoniaService(getIt.get(), getIt.get())); + getIt.registerFactory(() => + IoniaService(getIt.get(), getIt.get())); getIt.registerFactory(() => IoniaAnyPay( - getIt.get(), getIt.get(), getIt.get().wallet!)); + getIt.get(), + getIt.get(), + getIt.get().wallet!)); - getIt.registerFactory(() => IoniaGiftCardsListViewModel(ioniaService: getIt.get())); + getIt.registerFactory(() => + IoniaGiftCardsListViewModel(ioniaService: getIt.get())); getIt.registerFactory(() => MarketPlaceViewModel(getIt.get())); - getIt.registerFactory(() => IoniaAuthViewModel(ioniaService: getIt.get())); + getIt.registerFactory( + () => IoniaAuthViewModel(ioniaService: getIt.get())); - getIt.registerFactoryParam( - (double amount, merchant) { + getIt + .registerFactoryParam( + (double amount, merchant) { return IoniaMerchPurchaseViewModel( ioniaAnyPayService: getIt.get(), amount: amount, @@ -918,9 +990,11 @@ Future setup({ return IoniaBuyCardViewModel(ioniaMerchant: merchant); }); - getIt.registerFactory(() => IoniaAccountViewModel(ioniaService: getIt.get())); + getIt.registerFactory( + () => IoniaAccountViewModel(ioniaService: getIt.get())); - getIt.registerFactory(() => IoniaCreateAccountPage(getIt.get())); + getIt.registerFactory( + () => IoniaCreateAccountPage(getIt.get())); getIt.registerFactory(() => IoniaLoginPage(getIt.get())); @@ -928,7 +1002,8 @@ Future setup({ final email = args.first as String; final isSignIn = args[1] as bool; - return IoniaVerifyIoniaOtp(getIt.get(), email, isSignIn); + return IoniaVerifyIoniaOtp( + getIt.get(), email, isSignIn); }); getIt.registerFactory(() => IoniaWelcomePage()); @@ -936,33 +1011,39 @@ Future setup({ getIt.registerFactoryParam((List args, _) { final merchant = args.first as IoniaMerchant; - return IoniaBuyGiftCardPage(getIt.get(param1: merchant)); + return IoniaBuyGiftCardPage( + getIt.get(param1: merchant)); }); - getIt.registerFactoryParam((List args, _) { + getIt.registerFactoryParam( + (List args, _) { final amount = args.first as double; final merchant = args.last as IoniaMerchant; - return IoniaBuyGiftCardDetailPage( - getIt.get(param1: amount, param2: merchant)); + return IoniaBuyGiftCardDetailPage(getIt.get( + param1: amount, param2: merchant)); }); - getIt.registerFactoryParam( - (IoniaGiftCard giftCard, _) { + getIt + .registerFactoryParam( + (IoniaGiftCard giftCard, _) { return IoniaGiftCardDetailsViewModel( ioniaService: getIt.get(), giftCard: giftCard); }); - getIt.registerFactoryParam((List args, _) { + getIt.registerFactoryParam( + (List args, _) { final amount = args[0] as double; final merchant = args[1] as IoniaMerchant; final tip = args[2] as IoniaTip; - return IoniaCustomTipViewModel(amount: amount, tip: tip, ioniaMerchant: merchant); + return IoniaCustomTipViewModel( + amount: amount, tip: tip, ioniaMerchant: merchant); }); getIt.registerFactoryParam( (IoniaGiftCard giftCard, _) { - return IoniaGiftCardDetailPage(getIt.get(param1: giftCard)); + return IoniaGiftCardDetailPage( + getIt.get(param1: giftCard)); }); getIt.registerFactoryParam((List args, _) { @@ -972,35 +1053,42 @@ Future setup({ }); getIt.registerFactoryParam( - (IoniaGiftCard giftCard, _) => - IoniaCustomRedeemViewModel(giftCard: giftCard, ioniaService: getIt.get())); + (IoniaGiftCard giftCard, _) => IoniaCustomRedeemViewModel( + giftCard: giftCard, ioniaService: getIt.get())); getIt.registerFactoryParam((List args, _) { final giftCard = args.first as IoniaGiftCard; - return IoniaCustomRedeemPage(getIt.get(param1: giftCard)); + return IoniaCustomRedeemPage( + getIt.get(param1: giftCard)); }); getIt.registerFactoryParam((List args, _) { return IoniaCustomTipPage(getIt.get(param1: args)); }); - getIt.registerFactory(() => IoniaManageCardsPage(getIt.get())); + getIt.registerFactory( + () => IoniaManageCardsPage(getIt.get())); - getIt.registerFactory(() => IoniaDebitCardPage(getIt.get())); - - getIt.registerFactory(() => IoniaActivateDebitCardPage(getIt.get())); - - getIt.registerFactory(() => IoniaAccountPage(getIt.get())); - - getIt.registerFactory(() => IoniaAccountCardsPage(getIt.get())); - - getIt.registerFactory(() => AnonPayApi( - useTorOnly: getIt.get().exchangeStatus == ExchangeApiMode.torOnly, - wallet: getIt.get().wallet!)); + getIt.registerFactory( + () => IoniaDebitCardPage(getIt.get())); getIt.registerFactory(() => - DesktopWalletSelectionDropDown(getIt.get(), getIt.get())); + IoniaActivateDebitCardPage(getIt.get())); + + getIt.registerFactory( + () => IoniaAccountPage(getIt.get())); + + getIt.registerFactory( + () => IoniaAccountCardsPage(getIt.get())); + + getIt.registerFactory(() => AnonPayApi( + useTorOnly: + getIt.get().exchangeStatus == ExchangeApiMode.torOnly, + wallet: getIt.get().wallet!)); + + getIt.registerFactory(() => DesktopWalletSelectionDropDown( + getIt.get(), getIt.get())); getIt.registerFactory(() => DesktopSidebarViewModel()); @@ -1017,30 +1105,38 @@ Future setup({ getIt.registerFactoryParam( (AnonpayInvoiceInfo anonpayInvoiceInfo, _) => AnonpayDetailsPage( - anonpayDetailsViewModel: getIt.get(param1: anonpayInvoiceInfo))); + anonpayDetailsViewModel: + getIt.get(param1: anonpayInvoiceInfo))); - getIt.registerFactoryParam( - (IoniaAnyPayPaymentInfo paymentInfo, AnyPayPaymentCommittedInfo committedInfo) => - IoniaPaymentStatusViewModel(getIt.get(), - paymentInfo: paymentInfo, committedInfo: committedInfo)); + getIt.registerFactoryParam< + IoniaPaymentStatusViewModel, + IoniaAnyPayPaymentInfo, + AnyPayPaymentCommittedInfo>((IoniaAnyPayPaymentInfo paymentInfo, + AnyPayPaymentCommittedInfo committedInfo) => + IoniaPaymentStatusViewModel(getIt.get(), + paymentInfo: paymentInfo, committedInfo: committedInfo)); getIt.registerFactoryParam( - (IoniaAnyPayPaymentInfo paymentInfo, AnyPayPaymentCommittedInfo committedInfo) => - IoniaPaymentStatusPage( - getIt.get(param1: paymentInfo, param2: committedInfo))); + AnyPayPaymentCommittedInfo>((IoniaAnyPayPaymentInfo paymentInfo, + AnyPayPaymentCommittedInfo committedInfo) => + IoniaPaymentStatusPage(getIt.get( + param1: paymentInfo, param2: committedInfo))); - getIt.registerFactoryParam( - (type, _) => AdvancedPrivacySettingsViewModel(type, getIt.get())); + getIt.registerFactoryParam( + (type, _) => + AdvancedPrivacySettingsViewModel(type, getIt.get())); - getIt.registerFactoryParam((balanceViewModel, _) => - HomeSettingsPage(getIt.get(param1: balanceViewModel))); + getIt.registerFactoryParam( + (balanceViewModel, _) => HomeSettingsPage( + getIt.get(param1: balanceViewModel))); getIt.registerFactoryParam( - (balanceViewModel, _) => HomeSettingsViewModel(getIt.get(), balanceViewModel)); + (balanceViewModel, _) => + HomeSettingsViewModel(getIt.get(), balanceViewModel)); - getIt.registerFactoryParam>( + getIt.registerFactoryParam>( (homeSettingsViewModel, arguments) => EditTokenPage( homeSettingsViewModel: homeSettingsViewModel, erc20token: arguments['token'] as Erc20Token?, @@ -1048,7 +1144,8 @@ Future setup({ ), ); - getIt.registerFactory(() => ManageNodesPage(getIt.get())); + getIt.registerFactory( + () => ManageNodesPage(getIt.get())); _isSetupFinished = true; } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index a783eec43..6591f8f81 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -26,6 +26,7 @@ const cakeWalletBitcoinElectrumUri = 'electrum.cakewallet.com:50002'; const cakeWalletLitecoinElectrumUri = 'ltc-electrum.cakewallet.com:50002'; const havenDefaultNodeUri = 'nodes.havenprotocol.org:443'; const ethereumDefaultNodeUri = 'ethereum.publicnode.com'; +const zanoDefaultNodeUri = 'zano.org'; Future defaultSettingsMigration( {required int version, @@ -514,6 +515,8 @@ Future checkCurrentNodes( .getInt(PreferencesKey.currentHavenNodeIdKey); final currentEthereumNodeId = sharedPreferences .getInt(PreferencesKey.currentEthereumNodeIdKey); + final currentZanoNodeId = sharedPreferences + .getInt(PreferencesKey.currentZanoNodeIdKey); final currentMoneroNode = nodeSource.values.firstWhereOrNull( (node) => node.key == currentMoneroNodeId); final currentBitcoinElectrumServer = nodeSource.values.firstWhereOrNull( @@ -524,6 +527,7 @@ Future checkCurrentNodes( (node) => node.key == currentHavenNodeId); final currentEthereumNodeServer = nodeSource.values.firstWhereOrNull( (node) => node.key == currentEthereumNodeId); + final currentZanoNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentZanoNodeId); if (currentMoneroNode == null) { final newCakeWalletNode = @@ -564,6 +568,13 @@ Future checkCurrentNodes( await sharedPreferences.setInt( PreferencesKey.currentEthereumNodeIdKey, node.key as int); } + + if (currentZanoNode == null) { + final node = Node(uri: zanoDefaultNodeUri, type: WalletType.zano); + await nodeSource.add(node); + await sharedPreferences.setInt( + PreferencesKey.currentZanoNodeIdKey, node.key as int); + } } Future resetBitcoinElectrumServer( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index f699f89f8..1da002187 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -5,6 +5,7 @@ class PreferencesKey { static const currentBitcoinElectrumSererIdKey = 'current_node_id_btc'; static const currentLitecoinElectrumSererIdKey = 'current_node_id_ltc'; static const currentHavenNodeIdKey = 'current_node_id_xhv'; + static const currentZanoNodeIdKey = 'current_node_id_zano'; static const currentEthereumNodeIdKey = 'current_node_id_eth'; static const currentFiatCurrencyKey = 'current_fiat_currency'; static const currentTransactionPriorityKeyLegacy = 'current_fee_priority'; @@ -51,7 +52,8 @@ class PreferencesKey { '${PreferencesKey.moneroWalletPasswordUpdateV1Base}_${name}'; static const exchangeProvidersSelection = 'exchange-providers-selection'; - static const autoGenerateSubaddressStatusKey = 'auto_generate_subaddress_status'; + static const autoGenerateSubaddressStatusKey = + 'auto_generate_subaddress_status'; static const clearnetDonationLink = 'clearnet_donation_link'; static const onionDonationLink = 'onion_donation_link'; static const lastSeenAppVersion = 'last_seen_app_version'; diff --git a/lib/haven/cw_haven.dart b/lib/haven/cw_haven.dart index 57c4e49c3..6d473051e 100644 --- a/lib/haven/cw_haven.dart +++ b/lib/haven/cw_haven.dart @@ -8,6 +8,7 @@ class CWHavenAccountList extends HavenAccountList { @override @computed ObservableList get accounts { + debugPrint("CWHavenAccountList get accounts"); final havenWallet = _wallet as HavenWallet; final accounts = havenWallet.walletAddresses.accountList.accounts .map((acc) => Account(id: acc.id, label: acc.label)) @@ -17,18 +18,21 @@ class CWHavenAccountList extends HavenAccountList { @override void update(Object wallet) { + debugPrint("CWHavenAccountList update $wallet"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.accountList.update(); } @override void refresh(Object wallet) { + debugPrint("CWHavenAccountList refresh $wallet"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.accountList.refresh(); } @override List getAll(Object wallet) { + debugPrint("CWHavenAccountList getAll $wallet"); final havenWallet = wallet as HavenWallet; return havenWallet.walletAddresses.accountList .getAll() @@ -38,6 +42,7 @@ class CWHavenAccountList extends HavenAccountList { @override Future addAccount(Object wallet, {required String label}) async { + debugPrint("CWHavenAccountList addAccount $wallet $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.accountList.addAccount(label: label); } @@ -45,6 +50,7 @@ class CWHavenAccountList extends HavenAccountList { @override Future setLabelAccount(Object wallet, {required int accountIndex, required String label}) async { + debugPrint("CWHavenAccountList setLabelAccount $wallet $accountIndex $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.accountList .setLabelAccount(accountIndex: accountIndex, label: label); @@ -59,6 +65,7 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override @computed ObservableList get subaddresses { + debugPrint("CWHavenSubaddressList get subaddresses"); final havenWallet = _wallet as HavenWallet; final subAddresses = havenWallet.walletAddresses.subaddressList.subaddresses .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) @@ -68,18 +75,21 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override void update(Object wallet, {required int accountIndex}) { + debugPrint("CWHavenSubaddressList update $wallet $accountIndex"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); } @override void refresh(Object wallet, {required int accountIndex}) { + debugPrint("CWHavenSubaddressList refresh $wallet $accountIndex"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); } @override List getAll(Object wallet) { + debugPrint("CWHavenSubaddressList getAll $wallet"); final havenWallet = wallet as HavenWallet; return havenWallet.walletAddresses.subaddressList .getAll() @@ -90,6 +100,7 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override Future addSubaddress(Object wallet, {required int accountIndex, required String label}) async { + debugPrint("CWHavenSubaddressList addSubaddress $wallet $accountIndex $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.subaddressList .addSubaddress(accountIndex: accountIndex, label: label); @@ -98,6 +109,7 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override Future setLabelSubaddress(Object wallet, {required int accountIndex, required int addressIndex, required String label}) async { + debugPrint("CWHavenSubaddressList setLabelSubaddress $wallet $accountIndex $addressIndex $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.subaddressList .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); @@ -112,6 +124,7 @@ class CWHavenWalletDetails extends HavenWalletDetails { @computed @override Account get account { + debugPrint("CWHavenWalletDetails get account"); final havenWallet = _wallet as HavenWallet; final acc = havenWallet.walletAddresses.account as monero_account.Account; return Account(id: acc.id, label: acc.label); @@ -120,6 +133,7 @@ class CWHavenWalletDetails extends HavenWalletDetails { @computed @override HavenBalance get balance { + debugPrint("CWHavenWalletDetails get balance"); final havenWallet = _wallet as HavenWallet; final balance = havenWallet.balance; throw Exception('Unimplemented'); @@ -132,48 +146,62 @@ class CWHavenWalletDetails extends HavenWalletDetails { class CWHaven extends Haven { @override HavenAccountList getAccountList(Object wallet) { + debugPrint("CWHaven getAccountList $wallet"); return CWHavenAccountList(wallet); } @override MoneroSubaddressList getSubaddressList(Object wallet) { + debugPrint("CWHaven getSubaddressList $wallet"); return CWHavenSubaddressList(wallet); } @override TransactionHistoryBase getTransactionHistory(Object wallet) { + debugPrint("CWHaven getTransactionHistory $wallet"); final havenWallet = wallet as HavenWallet; return havenWallet.transactionHistory; } @override HavenWalletDetails getMoneroWalletDetails(Object wallet) { + debugPrint("CWHaven getMoneroWalletDetails $wallet"); return CWHavenWalletDetails(wallet); } @override - int getHeightByDate({required DateTime date}) => getHavenHeightByDate(date: date); + int getHeightByDate({required DateTime date}) { + debugPrint("CWHaven getHeightByDate $date"); + return getHavenHeightByDate(date: date); + } @override - Future getCurrentHeight() => getHavenCurrentHeight(); + Future getCurrentHeight() { + debugPrint("CWHaven getCurrentHeight"); + return getHavenCurrentHeight(); + } @override TransactionPriority getDefaultTransactionPriority() { + debugPrint("CWHaven getDefaultTransactionPriority"); return MoneroTransactionPriority.automatic; } @override TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { + debugPrint("CWHaven deserializeMoneroTransactionPriority $raw"); return MoneroTransactionPriority.deserialize(raw: raw); } @override List getTransactionPriorities() { + debugPrint("CWHaven getTransactionPriorities"); return MoneroTransactionPriority.all; } @override List getMoneroWordList(String language) { + debugPrint("CWHaven getMoneroWordList $language"); switch (language.toLowerCase()) { case 'english': return EnglishMnemonics.words; @@ -209,6 +237,7 @@ class CWHaven extends Haven { required String password, required String language, required int height}) { + debugPrint("CWHaven createHavenRestoreWalletFromKeysCredentials $name $spendKey $viewKey $address $password $language $height"); return HavenRestoreWalletFromKeysCredentials( name: name, spendKey: spendKey, @@ -225,6 +254,7 @@ class CWHaven extends Haven { required String password, required int height, required String mnemonic}) { + debugPrint("CWHaven createHavenRestoreWalletFromSeedCredentials $name $password $height $mnemonic"); return HavenRestoreWalletFromSeedCredentials( name: name, password: password, height: height, mnemonic: mnemonic); } @@ -232,11 +262,13 @@ class CWHaven extends Haven { @override WalletCredentials createHavenNewWalletCredentials( {required String name, required String language, String? password}) { + debugPrint("CWHaven createHavenNewWalletCredentials $name $language $password"); return HavenNewWalletCredentials(name: name, password: password, language: language); } @override Map getKeys(Object wallet) { + debugPrint("CWHaven getKeys $wallet"); final havenWallet = wallet as HavenWallet; final keys = havenWallet.keys; return { @@ -252,6 +284,7 @@ class CWHaven extends Haven { {required List outputs, required TransactionPriority priority, required String assetType}) { + debugPrint("CWHaven createHavenTransactionCreationCredentials $outputs $priority $assetType"); return HavenTransactionCreationCredentials( outputs: outputs .map((out) => OutputInfo( @@ -270,21 +303,25 @@ class CWHaven extends Haven { @override String formatterMoneroAmountToString({required int amount}) { + debugPrint("CWHaven formatterMoneroAmountToString $amount"); return moneroAmountToString(amount: amount); } @override double formatterMoneroAmountToDouble({required int amount}) { + debugPrint("CWHaven formatterMoneroAmountToDouble $amount"); return moneroAmountToDouble(amount: amount); } @override int formatterMoneroParseAmount({required String amount}) { + debugPrint("CWHaven formatterMoneroParseAmount $amount"); return moneroParseAmount(amount: amount); } @override Account getCurrentAccount(Object wallet) { + debugPrint("CWHaven getCurrentAccount $wallet"); final havenWallet = wallet as HavenWallet; final acc = havenWallet.walletAddresses.account as monero_account.Account; return Account(id: acc.id, label: acc.label); @@ -292,40 +329,49 @@ class CWHaven extends Haven { @override void setCurrentAccount(Object wallet, int id, String label) { + debugPrint("CWHaven setCurrentAccount $wallet $id $label"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.account = monero_account.Account(id: id, label: label); } @override void onStartup() { + debugPrint("CWHaven onStartup"); monero_wallet_api.onStartup(); } @override int getTransactionInfoAccountId(TransactionInfo tx) { + debugPrint("CWHaven getTransactionInfoAccountId $tx"); final havenTransactionInfo = tx as HavenTransactionInfo; return havenTransactionInfo.accountIndex; } @override WalletService createHavenWalletService(Box walletInfoSource) { + debugPrint("CWHaven createHavenWalletService $walletInfoSource"); return HavenWalletService(walletInfoSource); } @override String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { + debugPrint("CWHaven getTransactionAddress $wallet $accountIndex $addressIndex"); final havenWallet = wallet as HavenWallet; return havenWallet.getTransactionAddress(accountIndex, addressIndex); } @override CryptoCurrency assetOfTransaction(TransactionInfo tx) { + debugPrint("CWHaven assetOfTransaction $tx"); final transaction = tx as HavenTransactionInfo; final asset = CryptoCurrency.fromString(transaction.assetType); return asset; } @override - List getAssetRate() => - getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); + List getAssetRate() { + final result = getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); + debugPrint("CWHaven getAssetRate: ${result.map((e) => '{${e.asset}: ${e.rate}}').join(" ")}"); + return result; + } } diff --git a/lib/src/screens/dashboard/widgets/menu_widget.dart b/lib/src/screens/dashboard/widgets/menu_widget.dart index 6303d587a..ed07f1b34 100644 --- a/lib/src/screens/dashboard/widgets/menu_widget.dart +++ b/lib/src/screens/dashboard/widgets/menu_widget.dart @@ -29,7 +29,8 @@ class MenuWidgetState extends State { this.bitcoinIcon = Image.asset('assets/images/bitcoin_menu.png'), this.litecoinIcon = Image.asset('assets/images/litecoin_menu.png'), this.havenIcon = Image.asset('assets/images/haven_menu.png'), - this.ethereumIcon = Image.asset('assets/images/eth_icon.png'); + this.ethereumIcon = Image.asset('assets/images/eth_icon.png'), + this.zanoIcon = Image.asset('assets/images/zano_icon.png'); final largeScreen = 731; @@ -47,6 +48,7 @@ class MenuWidgetState extends State { Image litecoinIcon; Image havenIcon; Image ethereumIcon; + Image zanoIcon; @override void initState() { @@ -206,6 +208,8 @@ class MenuWidgetState extends State { return havenIcon; case WalletType.ethereum: return ethereumIcon; + case WalletType.zano: + return zanoIcon; default: throw Exception('No icon for ${type.toString()}'); } diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 2690dcb64..7e4b8c88d 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -618,11 +618,16 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getInt(PreferencesKey.currentLitecoinElectrumSererIdKey); final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); + final zanoNodeId = sharedPreferences.getInt(PreferencesKey.currentZanoNodeIdKey); + //final zanoNodeId = 9; + debugPrint("zanoNodeId $zanoNodeId"); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); final havenNode = nodeSource.get(havenNodeId); final ethereumNode = nodeSource.get(ethereumNodeId); + final zanoNode = nodeSource.get(zanoNodeId); + debugPrint("zanoNode $zanoNode"); final packageInfo = await PackageInfo.fromPlatform(); final deviceName = await _getDeviceName() ?? ''; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; @@ -654,6 +659,10 @@ abstract class SettingsStoreBase with Store { nodes[WalletType.ethereum] = ethereumNode; } + if (zanoNode != null) { + nodes[WalletType.zano] = zanoNode; + } + final savedSyncMode = SyncMode.all.firstWhere((element) { return element.type.index == (sharedPreferences.getInt(PreferencesKey.syncModeKey) ?? 1); }); @@ -825,12 +834,14 @@ abstract class SettingsStoreBase with Store { final litecoinElectrumServerId = sharedPreferences.getInt(PreferencesKey.currentLitecoinElectrumSererIdKey); final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); + final zanoNodeId = sharedPreferences.getInt(PreferencesKey.currentZanoNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); final havenNode = nodeSource.get(havenNodeId); final ethereumNode = nodeSource.get(ethereumNodeId); + final zanoNode = nodeSource.get(zanoNodeId); if (moneroNode != null) { nodes[WalletType.monero] = moneroNode; @@ -851,6 +862,10 @@ abstract class SettingsStoreBase with Store { if (ethereumNode != null) { nodes[WalletType.ethereum] = ethereumNode; } + + if (zanoNode != null) { + nodes[WalletType.zano] = zanoNode; + } } Future _saveCurrentNode(Node node, WalletType walletType) async { @@ -872,6 +887,9 @@ abstract class SettingsStoreBase with Store { case WalletType.ethereum: await _sharedPreferences.setInt(PreferencesKey.currentEthereumNodeIdKey, node.key as int); break; + case WalletType.zano: + await _sharedPreferences.setInt(PreferencesKey.currentZanoNodeIdKey, node.key as int); + break; default: break; } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index dcb9785e7..230b7ade5 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/view_model/restore/restore_wallet.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; @@ -45,6 +46,9 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { name: name, language: options as String); case WalletType.ethereum: return ethereum!.createEthereumNewWalletCredentials(name: name); + case WalletType.zano: + return zano!.createZanoNewWalletCredentials( + name: name, language: "en"); default: throw Exception('Unexpected type: ${type.toString()}');; } diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart new file mode 100644 index 000000000..173ab39e4 --- /dev/null +++ b/lib/zano/cw_zano.dart @@ -0,0 +1,331 @@ +part of 'zano.dart'; + +class CWZanoAccountList extends ZanoAccountList { + CWZanoAccountList(this._wallet); + + final Object _wallet; + + @override + @computed + ObservableList get accounts { + final zanoWallet = _wallet as ZanoWallet; + final accounts = zanoWallet.walletAddresses.accountList.accounts + .map((acc) => Account(id: acc.id, label: acc.label)) + .toList(); + return ObservableList.of(accounts); + } + + @override + void update(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + zanoWallet.walletAddresses.accountList.update(); + } + + @override + void refresh(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + zanoWallet.walletAddresses.accountList.refresh(); + } + + @override + List getAll(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + return zanoWallet.walletAddresses.accountList + .getAll() + .map((acc) => Account(id: acc.id, label: acc.label)) + .toList(); + } + + @override + Future addAccount(Object wallet, {required String label}) async { + final zanoWallet = wallet as ZanoWallet; + await zanoWallet.walletAddresses.accountList.addAccount(label: label); + } + + @override + Future setLabelAccount(Object wallet, + {required int accountIndex, required String label}) async { + final zanoWallet = wallet as ZanoWallet; + await zanoWallet.walletAddresses.accountList + .setLabelAccount(accountIndex: accountIndex, label: label); + } +} + +class CWZanoSubaddressList extends MoneroSubaddressList { + CWZanoSubaddressList(this._wallet); + + final Object _wallet; + + @override + @computed + ObservableList get subaddresses { + final zanoWallet = _wallet as ZanoWallet; + final subAddresses = zanoWallet.walletAddresses.subaddressList.subaddresses + .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) + .toList(); + return ObservableList.of(subAddresses); + } + + @override + void update(Object wallet, {required int accountIndex}) { + final zanoWallet = wallet as ZanoWallet; + zanoWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); + } + + @override + void refresh(Object wallet, {required int accountIndex}) { + final zanoWallet = wallet as ZanoWallet; + zanoWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); + } + + @override + List getAll(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + return zanoWallet.walletAddresses.subaddressList + .getAll() + .map((sub) => Subaddress(id: sub.id, label: sub.label, address: sub.address)) + .toList(); + } + + @override + Future addSubaddress(Object wallet, + {required int accountIndex, required String label}) async { + final zanoWallet = wallet as ZanoWallet; + await zanoWallet.walletAddresses.subaddressList + .addSubaddress(accountIndex: accountIndex, label: label); + } + + @override + Future setLabelSubaddress(Object wallet, + {required int accountIndex, required int addressIndex, required String label}) async { + final zanoWallet = wallet as ZanoWallet; + await zanoWallet.walletAddresses.subaddressList + .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); + } +} + +class CWZanoWalletDetails extends ZanoWalletDetails { + CWZanoWalletDetails(this._wallet); + + final Object _wallet; + + @computed + @override + Account get account { + final zanoWallet = _wallet as ZanoWallet; + final acc = zanoWallet.walletAddresses.account as monero_account.Account; + return Account(id: acc.id, label: acc.label); + } + + @computed + @override + ZanoBalance get balance { + final zanoWallet = _wallet as ZanoWallet; + final balance = zanoWallet.balance; + throw Exception('Unimplemented'); + //return ZanoBalance( + // fullBalance: balance.fullBalance, + // unlockedBalance: balance.unlockedBalance); + } +} + +class CWZano extends Zano { + @override + ZanoAccountList getAccountList(Object wallet) { + return CWZanoAccountList(wallet); + } + + @override + MoneroSubaddressList getSubaddressList(Object wallet) { + return CWZanoSubaddressList(wallet); + } + + @override + TransactionHistoryBase getTransactionHistory(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + return zanoWallet.transactionHistory; + } + + @override + ZanoWalletDetails getMoneroWalletDetails(Object wallet) { + return CWZanoWalletDetails(wallet); + } + + @override + int getHeightByDate({required DateTime date}) => getZanoHeightByDate(date: date); + + @override + Future getCurrentHeight() => getZanoCurrentHeight(); + + @override + TransactionPriority getDefaultTransactionPriority() { + return MoneroTransactionPriority.automatic; + } + + @override + TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { + return MoneroTransactionPriority.deserialize(raw: raw); + } + + @override + List getTransactionPriorities() { + return MoneroTransactionPriority.all; + } + + @override + List getMoneroWordList(String language) { + switch (language.toLowerCase()) { + case 'english': + return EnglishMnemonics.words; + case 'chinese (simplified)': + return ChineseSimplifiedMnemonics.words; + case 'dutch': + return DutchMnemonics.words; + case 'german': + return GermanMnemonics.words; + case 'japanese': + return JapaneseMnemonics.words; + case 'portuguese': + return PortugueseMnemonics.words; + case 'russian': + return RussianMnemonics.words; + case 'spanish': + return SpanishMnemonics.words; + case 'french': + return FrenchMnemonics.words; + case 'italian': + return ItalianMnemonics.words; + default: + return EnglishMnemonics.words; + } + } + + @override + WalletCredentials createZanoRestoreWalletFromKeysCredentials( + {required String name, + required String spendKey, + required String viewKey, + required String address, + required String password, + required String language, + required int height}) { + return ZanoRestoreWalletFromKeysCredentials( + name: name, + spendKey: spendKey, + viewKey: viewKey, + address: address, + password: password, + language: language, + height: height); + } + + @override + WalletCredentials createZanoRestoreWalletFromSeedCredentials( + {required String name, + required String password, + required int height, + required String mnemonic}) { + return ZanoRestoreWalletFromSeedCredentials( + name: name, password: password, height: height, mnemonic: mnemonic); + } + + @override + WalletCredentials createZanoNewWalletCredentials( + {required String name, required String language, String? password}) { + return ZanoNewWalletCredentials(name: name, password: password, language: language); + } + + @override + Map getKeys(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + final keys = zanoWallet.keys; + return { + 'privateSpendKey': keys.privateSpendKey, + 'privateViewKey': keys.privateViewKey, + 'publicSpendKey': keys.publicSpendKey, + 'publicViewKey': keys.publicViewKey + }; + } + + @override + Object createZanoTransactionCreationCredentials( + {required List outputs, + required TransactionPriority priority, + required String assetType}) { + return ZanoTransactionCreationCredentials( + outputs: outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)) + .toList(), + priority: priority as MoneroTransactionPriority, + assetType: assetType); + } + + @override + String formatterMoneroAmountToString({required int amount}) { + return moneroAmountToString(amount: amount); + } + + @override + double formatterMoneroAmountToDouble({required int amount}) { + return moneroAmountToDouble(amount: amount); + } + + @override + int formatterMoneroParseAmount({required String amount}) { + return moneroParseAmount(amount: amount); + } + + @override + Account getCurrentAccount(Object wallet) { + final zanoWallet = wallet as ZanoWallet; + final acc = zanoWallet.walletAddresses.account as monero_account.Account; + return Account(id: acc.id, label: acc.label); + } + + @override + void setCurrentAccount(Object wallet, int id, String label) { + final zanoWallet = wallet as ZanoWallet; + zanoWallet.walletAddresses.account = monero_account.Account(id: id, label: label); + } + + @override + void onStartup() { + monero_wallet_api.onStartup(); + } + + @override + int getTransactionInfoAccountId(TransactionInfo tx) { + final zanoTransactionInfo = tx as ZanoTransactionInfo; + return zanoTransactionInfo.accountIndex; + } + + @override + WalletService createZanoWalletService(Box walletInfoSource) { + return ZanoWalletService(walletInfoSource); + } + + @override + String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { + final zanoWallet = wallet as ZanoWallet; + return zanoWallet.getTransactionAddress(accountIndex, addressIndex); + } + + @override + CryptoCurrency assetOfTransaction(TransactionInfo tx) { + final transaction = tx as ZanoTransactionInfo; + final asset = CryptoCurrency.fromString(transaction.assetType); + return asset; + } + + @override + List getAssetRate() => + getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); +} diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart new file mode 100644 index 000000000..62ba35b64 --- /dev/null +++ b/lib/zano/zano.dart @@ -0,0 +1,159 @@ +import 'package:mobx/mobx.dart'; +import 'package:flutter/foundation.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/transaction_history.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/balance.dart'; +import 'package:cw_core/output_info.dart'; +import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:hive/hive.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/get_height_by_date.dart'; +import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_core/monero_transaction_priority.dart'; +import 'package:cw_zano/zano_wallet_service.dart'; +import 'package:cw_zano/zano_wallet.dart'; +import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:cw_zano/zano_transaction_history.dart'; +import 'package:cw_core/account.dart' as monero_account; +import 'package:cw_zano/api/wallet.dart' as monero_wallet_api; +import 'package:cw_zano/mnemonics/english.dart'; +import 'package:cw_zano/mnemonics/chinese_simplified.dart'; +import 'package:cw_zano/mnemonics/dutch.dart'; +import 'package:cw_zano/mnemonics/german.dart'; +import 'package:cw_zano/mnemonics/japanese.dart'; +import 'package:cw_zano/mnemonics/russian.dart'; +import 'package:cw_zano/mnemonics/spanish.dart'; +import 'package:cw_zano/mnemonics/portuguese.dart'; +import 'package:cw_zano/mnemonics/french.dart'; +import 'package:cw_zano/mnemonics/italian.dart'; +import 'package:cw_zano/zano_transaction_creation_credentials.dart'; +import 'package:cw_zano/api/balance_list.dart'; + +part 'cw_zano.dart'; + +Zano? zano = CWZano(); + +class Account { + Account({required this.id, required this.label}); + final int id; + final String label; +} + +class Subaddress { + Subaddress({ + required this.id, + required this.label, + required this.address}); + final int id; + final String label; + final String address; +} + +class ZanoBalance extends Balance { + ZanoBalance({required this.fullBalance, required this.unlockedBalance}) + : formattedFullBalance = zano!.formatterMoneroAmountToString(amount: fullBalance), + formattedUnlockedBalance = + zano!.formatterMoneroAmountToString(amount: unlockedBalance), + super(unlockedBalance, fullBalance); + + ZanoBalance.fromString( + {required this.formattedFullBalance, + required this.formattedUnlockedBalance}) + : fullBalance = zano!.formatterMoneroParseAmount(amount: formattedFullBalance), + unlockedBalance = zano!.formatterMoneroParseAmount(amount: formattedUnlockedBalance), + super(zano!.formatterMoneroParseAmount(amount: formattedUnlockedBalance), + zano!.formatterMoneroParseAmount(amount: formattedFullBalance)); + + final int fullBalance; + final int unlockedBalance; + final String formattedFullBalance; + final String formattedUnlockedBalance; + + @override + String get formattedAvailableBalance => formattedUnlockedBalance; + + @override + String get formattedAdditionalBalance => formattedFullBalance; +} + +class AssetRate { + AssetRate(this.asset, this.rate); + + final String asset; + final int rate; +} + +abstract class ZanoWalletDetails { + // FIX-ME: it's abstruct class + @observable + late Account account; + // FIX-ME: it's abstruct class + @observable + late ZanoBalance balance; +} + +abstract class Zano { + ZanoAccountList getAccountList(Object wallet); + + MoneroSubaddressList getSubaddressList(Object wallet); + + TransactionHistoryBase getTransactionHistory(Object wallet); + + ZanoWalletDetails getMoneroWalletDetails(Object wallet); + + String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); + + int getHeightByDate({required DateTime date}); + Future getCurrentHeight(); + TransactionPriority getDefaultTransactionPriority(); + TransactionPriority deserializeMoneroTransactionPriority({required int raw}); + List getTransactionPriorities(); + List getMoneroWordList(String language); + + WalletCredentials createZanoRestoreWalletFromKeysCredentials({ + required String name, + required String spendKey, + required String viewKey, + required String address, + required String password, + required String language, + required int height}); + WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); + WalletCredentials createZanoNewWalletCredentials({required String name, required String language, String password}); + Map getKeys(Object wallet); + Object createZanoTransactionCreationCredentials({required List outputs, required TransactionPriority priority, required String assetType}); + String formatterMoneroAmountToString({required int amount}); + double formatterMoneroAmountToDouble({required int amount}); + int formatterMoneroParseAmount({required String amount}); + Account getCurrentAccount(Object wallet); + void setCurrentAccount(Object wallet, int id, String label); + void onStartup(); + int getTransactionInfoAccountId(TransactionInfo tx); + WalletService createZanoWalletService(Box walletInfoSource); + CryptoCurrency assetOfTransaction(TransactionInfo tx); + List getAssetRate(); +} + +abstract class MoneroSubaddressList { + ObservableList get subaddresses; + void update(Object wallet, {required int accountIndex}); + void refresh(Object wallet, {required int accountIndex}); + List getAll(Object wallet); + Future addSubaddress(Object wallet, {required int accountIndex, required String label}); + Future setLabelSubaddress(Object wallet, + {required int accountIndex, required int addressIndex, required String label}); +} + +abstract class ZanoAccountList { + ObservableList get accounts; + void update(Object wallet); + void refresh(Object wallet); + List getAll(Object wallet); + Future addAccount(Object wallet, {required String label}); + Future setLabelAccount(Object wallet, {required int accountIndex, required String label}); +} + \ No newline at end of file From f6485d92efc6fd0ae6939c1eb33d0d8866c0240c Mon Sep 17 00:00:00 2001 From: leo Date: Fri, 13 Oct 2023 13:40:24 +0000 Subject: [PATCH 02/58] Inital code for Zano integration --- .../.cxx/abi_configuration_5ah5l6u6.json | 14 - .../.cxx/abi_configuration_5ah5l6u6_key.json | 18 - .../.cxx/cmake/debug/arm64-v8a/.ninja_deps | Bin 22568 -> 0 bytes .../.cxx/cmake/debug/arm64-v8a/.ninja_log | 3 - .../.cxx/cmake/debug/arm64-v8a/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 7280 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 7360 -> 0 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../CMakeFiles/TargetDirectories.txt | 3 - .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 - .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 1195136 -> 0 bytes .../arm64-v8a/CMakeFiles/feature_tests.bin | Bin 9048 -> 0 bytes .../arm64-v8a/CMakeFiles/feature_tests.c | 34 - .../arm64-v8a/CMakeFiles/feature_tests.cxx | 405 ----------- .../debug/arm64-v8a/android_gradle_build.json | 45 -- ...gradle_build_cw_zano_arm64-v8a.command.txt | 7 - ..._gradle_build_cw_zano_arm64-v8a.stderr.txt | 0 ..._gradle_build_cw_zano_arm64-v8a.stdout.txt | 2 - .../arm64-v8a/android_gradle_build_mini.json | 22 - .../.cxx/cmake/debug/arm64-v8a/build.ninja | 127 ---- .../cmake/debug/arm64-v8a/build_command.txt | 21 - .../cmake/debug/arm64-v8a/build_model.json | 208 ------ .../cmake/debug/arm64-v8a/build_output.txt | 145 ---- .../cmake/debug/arm64-v8a/cmake_install.cmake | 49 -- .../debug/arm64-v8a/cmake_server_log.txt | 686 ------------------ .../debug/arm64-v8a/compile_commands.json | 7 - .../arm64-v8a/json_generation_record.json | 38 - .../cmake/debug/arm64-v8a/prefab_config.json | 4 - .../.cxx/cmake/debug/arm64-v8a/rules.ninja | 64 -- .../.cxx/cmake/debug/armeabi-v7a/.ninja_deps | Bin 22160 -> 0 bytes .../.cxx/cmake/debug/armeabi-v7a/.ninja_log | 3 - .../cmake/debug/armeabi-v7a/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 5236 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 5292 -> 0 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../CMakeFiles/TargetDirectories.txt | 3 - .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 - .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 1023632 -> 0 bytes .../armeabi-v7a/CMakeFiles/feature_tests.bin | Bin 7064 -> 0 bytes .../armeabi-v7a/CMakeFiles/feature_tests.c | 34 - .../armeabi-v7a/CMakeFiles/feature_tests.cxx | 405 ----------- .../armeabi-v7a/android_gradle_build.json | 45 -- ...adle_build_cw_zano_armeabi-v7a.command.txt | 7 - ...radle_build_cw_zano_armeabi-v7a.stderr.txt | 0 ...radle_build_cw_zano_armeabi-v7a.stdout.txt | 2 - .../android_gradle_build_mini.json | 22 - .../.cxx/cmake/debug/armeabi-v7a/build.ninja | 127 ---- .../cmake/debug/armeabi-v7a/build_command.txt | 21 - .../cmake/debug/armeabi-v7a/build_model.json | 208 ------ .../cmake/debug/armeabi-v7a/build_output.txt | 145 ---- .../debug/armeabi-v7a/cmake_install.cmake | 49 -- .../debug/armeabi-v7a/cmake_server_log.txt | 686 ------------------ .../debug/armeabi-v7a/compile_commands.json | 7 - .../armeabi-v7a/json_generation_record.json | 38 - .../debug/armeabi-v7a/prefab_config.json | 4 - .../.cxx/cmake/debug/armeabi-v7a/rules.ninja | 64 -- .../android/.cxx/cmake/debug/x86/.ninja_deps | Bin 22420 -> 0 bytes .../android/.cxx/cmake/debug/x86/.ninja_log | 3 - .../.cxx/cmake/debug/x86/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 5204 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 5256 -> 0 bytes .../x86/CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../x86/CMakeFiles/TargetDirectories.txt | 3 - .../debug/x86/CMakeFiles/cmake.check_cache | 1 - .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 914588 -> 0 bytes .../debug/x86/CMakeFiles/feature_tests.bin | Bin 7016 -> 0 bytes .../debug/x86/CMakeFiles/feature_tests.c | 34 - .../debug/x86/CMakeFiles/feature_tests.cxx | 405 ----------- .../cmake/debug/x86/android_gradle_build.json | 45 -- ...droid_gradle_build_cw_zano_x86.command.txt | 7 - ...ndroid_gradle_build_cw_zano_x86.stderr.txt | 0 ...ndroid_gradle_build_cw_zano_x86.stdout.txt | 2 - .../debug/x86/android_gradle_build_mini.json | 22 - .../android/.cxx/cmake/debug/x86/build.ninja | 127 ---- .../.cxx/cmake/debug/x86/build_command.txt | 21 - .../.cxx/cmake/debug/x86/build_model.json | 208 ------ .../.cxx/cmake/debug/x86/build_output.txt | 145 ---- .../.cxx/cmake/debug/x86/cmake_install.cmake | 49 -- .../.cxx/cmake/debug/x86/cmake_server_log.txt | 686 ------------------ .../cmake/debug/x86/compile_commands.json | 7 - .../debug/x86/json_generation_record.json | 38 - .../.cxx/cmake/debug/x86/prefab_config.json | 4 - .../android/.cxx/cmake/debug/x86/rules.ninja | 64 -- .../.cxx/cmake/debug/x86_64/.ninja_deps | Bin 22440 -> 0 bytes .../.cxx/cmake/debug/x86_64/.ninja_log | 3 - .../.cxx/cmake/debug/x86_64/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 6392 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 6472 -> 0 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../x86_64/CMakeFiles/TargetDirectories.txt | 3 - .../debug/x86_64/CMakeFiles/cmake.check_cache | 1 - .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 1174136 -> 0 bytes .../debug/x86_64/CMakeFiles/feature_tests.bin | Bin 8208 -> 0 bytes .../debug/x86_64/CMakeFiles/feature_tests.c | 34 - .../debug/x86_64/CMakeFiles/feature_tests.cxx | 405 ----------- .../debug/x86_64/android_gradle_build.json | 45 -- ...id_gradle_build_cw_zano_x86_64.command.txt | 7 - ...oid_gradle_build_cw_zano_x86_64.stderr.txt | 0 ...oid_gradle_build_cw_zano_x86_64.stdout.txt | 2 - .../x86_64/android_gradle_build_mini.json | 22 - .../.cxx/cmake/debug/x86_64/build.ninja | 127 ---- .../.cxx/cmake/debug/x86_64/build_command.txt | 21 - .../.cxx/cmake/debug/x86_64/build_model.json | 208 ------ .../.cxx/cmake/debug/x86_64/build_output.txt | 145 ---- .../cmake/debug/x86_64/cmake_install.cmake | 49 -- .../cmake/debug/x86_64/cmake_server_log.txt | 686 ------------------ .../cmake/debug/x86_64/compile_commands.json | 7 - .../debug/x86_64/json_generation_record.json | 38 - .../cmake/debug/x86_64/prefab_config.json | 4 - .../.cxx/cmake/debug/x86_64/rules.ninja | 64 -- .../.cxx/cmake/release/arm64-v8a/.ninja_deps | Bin 24984 -> 0 bytes .../.cxx/cmake/release/arm64-v8a/.ninja_log | 9 - .../cmake/release/arm64-v8a/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 7280 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 7360 -> 0 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../CMakeFiles/TargetDirectories.txt | 3 - .../arm64-v8a/CMakeFiles/cmake.check_cache | 1 - .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 1007056 -> 0 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 1007048 -> 0 bytes .../arm64-v8a/CMakeFiles/feature_tests.bin | Bin 9056 -> 0 bytes .../arm64-v8a/CMakeFiles/feature_tests.c | 34 - .../arm64-v8a/CMakeFiles/feature_tests.cxx | 405 ----------- .../arm64-v8a/android_gradle_build.json | 45 -- ...radle_build_cw_haven_arm64-v8a.command.txt | 7 - ...gradle_build_cw_haven_arm64-v8a.stderr.txt | 0 ...gradle_build_cw_haven_arm64-v8a.stdout.txt | 7 - ...gradle_build_cw_zano_arm64-v8a.command.txt | 7 - ..._gradle_build_cw_zano_arm64-v8a.stderr.txt | 0 ..._gradle_build_cw_zano_arm64-v8a.stdout.txt | 2 - .../arm64-v8a/android_gradle_build_mini.json | 22 - .../.cxx/cmake/release/arm64-v8a/build.ninja | 127 ---- .../cmake/release/arm64-v8a/build_command.txt | 21 - .../cmake/release/arm64-v8a/build_model.json | 208 ------ .../cmake/release/arm64-v8a/build_output.txt | 12 - .../release/arm64-v8a/cmake_install.cmake | 49 -- .../release/arm64-v8a/cmake_server_log.txt | 170 ----- .../release/arm64-v8a/compile_commands.json | 7 - .../arm64-v8a/json_generation_record.json | 38 - .../release/arm64-v8a/prefab_config.json | 4 - .../.cxx/cmake/release/arm64-v8a/rules.ninja | 64 -- .../cmake/release/armeabi-v7a/.ninja_deps | Bin 24540 -> 0 bytes .../.cxx/cmake/release/armeabi-v7a/.ninja_log | 9 - .../cmake/release/armeabi-v7a/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 5240 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 5296 -> 0 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../CMakeFiles/TargetDirectories.txt | 3 - .../armeabi-v7a/CMakeFiles/cmake.check_cache | 1 - .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 646848 -> 0 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 646836 -> 0 bytes .../armeabi-v7a/CMakeFiles/feature_tests.bin | Bin 7076 -> 0 bytes .../armeabi-v7a/CMakeFiles/feature_tests.c | 34 - .../armeabi-v7a/CMakeFiles/feature_tests.cxx | 405 ----------- .../armeabi-v7a/android_gradle_build.json | 45 -- ...dle_build_cw_haven_armeabi-v7a.command.txt | 7 - ...adle_build_cw_haven_armeabi-v7a.stderr.txt | 0 ...adle_build_cw_haven_armeabi-v7a.stdout.txt | 7 - ...adle_build_cw_zano_armeabi-v7a.command.txt | 7 - ...radle_build_cw_zano_armeabi-v7a.stderr.txt | 0 ...radle_build_cw_zano_armeabi-v7a.stdout.txt | 2 - .../android_gradle_build_mini.json | 22 - .../cmake/release/armeabi-v7a/build.ninja | 127 ---- .../release/armeabi-v7a/build_command.txt | 21 - .../release/armeabi-v7a/build_model.json | 208 ------ .../release/armeabi-v7a/build_output.txt | 12 - .../release/armeabi-v7a/cmake_install.cmake | 49 -- .../release/armeabi-v7a/cmake_server_log.txt | 170 ----- .../release/armeabi-v7a/compile_commands.json | 7 - .../armeabi-v7a/json_generation_record.json | 38 - .../release/armeabi-v7a/prefab_config.json | 4 - .../cmake/release/armeabi-v7a/rules.ninja | 64 -- .../.cxx/cmake/release/x86/.ninja_deps | Bin 24824 -> 0 bytes .../android/.cxx/cmake/release/x86/.ninja_log | 9 - .../.cxx/cmake/release/x86/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 5208 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 5260 -> 0 bytes .../x86/CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../x86/CMakeFiles/TargetDirectories.txt | 3 - .../release/x86/CMakeFiles/cmake.check_cache | 1 - .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 633104 -> 0 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 633096 -> 0 bytes .../release/x86/CMakeFiles/feature_tests.bin | Bin 7024 -> 0 bytes .../release/x86/CMakeFiles/feature_tests.c | 34 - .../release/x86/CMakeFiles/feature_tests.cxx | 405 ----------- .../release/x86/android_gradle_build.json | 45 -- ...roid_gradle_build_cw_haven_x86.command.txt | 7 - ...droid_gradle_build_cw_haven_x86.stderr.txt | 0 ...droid_gradle_build_cw_haven_x86.stdout.txt | 7 - ...droid_gradle_build_cw_zano_x86.command.txt | 7 - ...ndroid_gradle_build_cw_zano_x86.stderr.txt | 0 ...ndroid_gradle_build_cw_zano_x86.stdout.txt | 2 - .../x86/android_gradle_build_mini.json | 22 - .../.cxx/cmake/release/x86/build.ninja | 127 ---- .../.cxx/cmake/release/x86/build_command.txt | 21 - .../.cxx/cmake/release/x86/build_model.json | 208 ------ .../.cxx/cmake/release/x86/build_output.txt | 12 - .../cmake/release/x86/cmake_install.cmake | 49 -- .../cmake/release/x86/cmake_server_log.txt | 170 ----- .../cmake/release/x86/compile_commands.json | 7 - .../release/x86/json_generation_record.json | 38 - .../.cxx/cmake/release/x86/prefab_config.json | 4 - .../.cxx/cmake/release/x86/rules.ninja | 64 -- .../.cxx/cmake/release/x86_64/.ninja_deps | Bin 24844 -> 0 bytes .../.cxx/cmake/release/x86_64/.ninja_log | 9 - .../.cxx/cmake/release/x86_64/CMakeCache.txt | 362 --------- .../CMakeFiles/3.10.2/CMakeCCompiler.cmake | 73 -- .../CMakeFiles/3.10.2/CMakeCXXCompiler.cmake | 75 -- .../3.10.2/CMakeDetermineCompilerABI_C.bin | Bin 6392 -> 0 bytes .../3.10.2/CMakeDetermineCompilerABI_CXX.bin | Bin 6472 -> 0 bytes .../CMakeFiles/3.10.2/CMakeSystem.cmake | 15 - .../x86_64/CMakeFiles/TargetDirectories.txt | 3 - .../x86_64/CMakeFiles/cmake.check_cache | 1 - .../cw_haven/ios/Classes/haven_api.cpp.o | Bin 950624 -> 0 bytes .../cw_zano/ios/Classes/zano_api.cpp.o | Bin 950608 -> 0 bytes .../x86_64/CMakeFiles/feature_tests.bin | Bin 8216 -> 0 bytes .../release/x86_64/CMakeFiles/feature_tests.c | 34 - .../x86_64/CMakeFiles/feature_tests.cxx | 405 ----------- .../release/x86_64/android_gradle_build.json | 45 -- ...d_gradle_build_cw_haven_x86_64.command.txt | 7 - ...id_gradle_build_cw_haven_x86_64.stderr.txt | 0 ...id_gradle_build_cw_haven_x86_64.stdout.txt | 7 - ...id_gradle_build_cw_zano_x86_64.command.txt | 7 - ...oid_gradle_build_cw_zano_x86_64.stderr.txt | 0 ...oid_gradle_build_cw_zano_x86_64.stdout.txt | 2 - .../x86_64/android_gradle_build_mini.json | 22 - .../.cxx/cmake/release/x86_64/build.ninja | 127 ---- .../cmake/release/x86_64/build_command.txt | 21 - .../cmake/release/x86_64/build_model.json | 208 ------ .../cmake/release/x86_64/build_output.txt | 12 - .../cmake/release/x86_64/cmake_install.cmake | 49 -- .../cmake/release/x86_64/cmake_server_log.txt | 170 ----- .../release/x86_64/compile_commands.json | 7 - .../x86_64/json_generation_record.json | 38 - .../cmake/release/x86_64/prefab_config.json | 4 - .../.cxx/cmake/release/x86_64/rules.ninja | 64 -- .../.cxx/ndk_locator_record_713q3b26.json | 11 - .../.cxx/ndk_locator_record_713q3b26_key.json | 7 - cw_zano/android/.gitignore | 1 + cw_zano/android/CMakeLists.txt | 166 +---- cw_zano/ios/Classes/zano_api.cpp | 164 +++-- scripts/android/build_zano.sh | 88 +++ scripts/android/build_zano_all.sh | 8 + scripts/android/finish_boost.sh | 2 +- 258 files changed, 249 insertions(+), 16882 deletions(-) delete mode 100644 cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json delete mode 100644 cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86/rules.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/.ninja_deps delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/.ninja_log delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeCache.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake delete mode 100755 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin delete mode 100755 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o delete mode 100755 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.bin delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build.ninja delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build_model.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json delete mode 100644 cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja delete mode 100644 cw_zano/android/.cxx/ndk_locator_record_713q3b26.json delete mode 100644 cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json create mode 100755 scripts/android/build_zano.sh create mode 100755 scripts/android/build_zano_all.sh diff --git a/cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json b/cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json deleted file mode 100644 index e542dae10..000000000 --- a/cw_zano/android/.cxx/abi_configuration_5ah5l6u6.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "allAbis": [ - "armeabi-v7a", - "arm64-v8a", - "x86", - "x86_64" - ], - "validAbis": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json b/cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json deleted file mode 100644 index 2b2c0ca1d..000000000 --- a/cw_zano/android/.cxx/abi_configuration_5ah5l6u6_key.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "ndkHandlerSupportedAbis": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkHandlerDefaultAbis": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "externalNativeBuildAbiFilters": [], - "ndkConfigAbiFilters": [], - "splitsFilterAbis": [], - "ideBuildOnlyTargetAbi": true -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_deps deleted file mode 100644 index fd9090d618f41aa69a6241fcb4ec5c3a68053937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22568 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 Nh1=kExC8EldjQec=kEXj diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log deleted file mode 100644 index a1d663ca2..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/.ninja_log +++ /dev/null @@ -1,3 +0,0 @@ -# ninja log v5 -0 872 1695988613 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 2adca8d6a6dce391 -872 1203 1695988614 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so 1a517b4bafb32570 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt deleted file mode 100644 index 53060fa6a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeCache.txt +++ /dev/null @@ -1,362 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a -# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=arm64-v8a - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-21 - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//Archiver -CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or -// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON - -//No help, variable specified on the command line. -CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a - -//Path to a program. -CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android - -//Dependencies for the target -cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so; - -//Path to a library. -log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 - diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake deleted file mode 100644 index 45a931bec..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake +++ /dev/null @@ -1,73 +0,0 @@ -set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "14.0.6") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake deleted file mode 100644 index a2eee9511..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,75 +0,0 @@ -set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "14.0.6") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") - -set(CMAKE_CXX_PLATFORM_ID "") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index ef38a88c40953c149a109faa9980d76b8426b96f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7280 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 G7XAaHTW=Zw diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index eee467719c56b06f45f9a6bf0e0952e0474412a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7360 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

rK%}8_u5`6-RdXrxS-+ba7 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 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.bin deleted file mode 100755 index 672f49de9f3d68a3a751eef864c5c5744a1453db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9048 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 ev+qcc(= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json deleted file mode 100644 index 45ffe6a10..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "1": "--target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-arm64-v8a": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" cw_zano", - "buildType": "debug", - "toolchain": "520418125", - "abi": "arm64-v8a", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt deleted file mode 100644 index 01ef00738..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt deleted file mode 100644 index 06e48dae4..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json deleted file mode 100644 index e37a4db44..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-arm64-v8a": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a\" cw_zano", - "abi": "arm64-v8a", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja deleted file mode 100644 index 32792ddb9..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt deleted file mode 100644 index 73a13a051..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab --DCMAKE_BUILD_TYPE=Debug --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=arm64-v8a --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=arm64-v8a --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json deleted file mode 100644 index 5fc5ed5e5..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "ARM64_V8A", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/arm64-v8a", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Debug" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "arm64-v8a" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "arm64-v8a" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "info": { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": true, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", - "variantName": "debug", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt deleted file mode 100644 index 80fbb4a4d..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/build_output.txt +++ /dev/null @@ -1,145 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -Detecting C compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compiler ABI info - done -Detecting C compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compile features - done -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -Detecting CXX compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compiler ABI info - done -Detecting CXX compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compile features - done -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake deleted file mode 100644 index 1d1e1f76f..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt deleted file mode 100644 index b6a0d636b..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/cmake_server_log.txt +++ /dev/null @@ -1,686 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/arm64-v8a/prefab", - "-DCMAKE_BUILD_TYPE\u003dDebug", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003darm64-v8a", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003darm64-v8a", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/arm64-v8a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/arm64-v8a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json deleted file mode 100644 index f1c73190e..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json deleted file mode 100644 index 55c73f8d9..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: arm64-v8a", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|arm64-v8a" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|arm64-v8a" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|arm64-v8a" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|arm64-v8a" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|arm64-v8a" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|arm64-v8a" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja b/cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja deleted file mode 100644 index 19da49f08..000000000 --- a/cw_zano/android/.cxx/cmake/debug/arm64-v8a/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/arm64-v8a - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/.ninja_deps deleted file mode 100644 index 9d6d8bd8713f45da138271c3affc1aa2ddcefac8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22160 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 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index 1c2a2fec8b043579119bde47e88c51ddac5dca92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5292 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 P686jDkUb@hA-{hETHkS3 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake deleted file mode 100644 index cac63c3a5..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - -include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "armv7-a") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 9b5dfbcce..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,3 +0,0 @@ -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/edit_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/rebuild_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index 61083d943b97e640ec7c31cb8d89f1ae902663da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023632 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

4s%9!C_%d!o@7=Hd#Pyf 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 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.bin deleted file mode 100755 index 0b696bdb428d203f0056a6d2a544527a46fccc46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7064 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 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json deleted file mode 100644 index ccc57b88f..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "1": "--target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-armeabi-v7a": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" cw_zano", - "buildType": "debug", - "toolchain": "520418125", - "abi": "armeabi-v7a", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt deleted file mode 100644 index 564409428..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt deleted file mode 100644 index af8797b6d..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json deleted file mode 100644 index 49d90e168..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-armeabi-v7a": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a\" cw_zano", - "abi": "armeabi-v7a", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja deleted file mode 100644 index 39f6c0cc9..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt deleted file mode 100644 index 9313eaee7..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a/prefab --DCMAKE_BUILD_TYPE=Debug --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=armeabi-v7a --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json deleted file mode 100644 index 1d4c554ea..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "ARMEABI_V7A", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/armeabi-v7a", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Debug" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "armeabi-v7a" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "armeabi-v7a" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "info": { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": true, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", - "variantName": "debug", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt deleted file mode 100644 index e910e9224..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/build_output.txt +++ /dev/null @@ -1,145 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -Detecting C compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compiler ABI info - done -Detecting C compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compile features - done -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -Detecting CXX compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compiler ABI info - done -Detecting CXX compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compile features - done -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake deleted file mode 100644 index fc3c68b59..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt deleted file mode 100644 index 2e973a507..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/cmake_server_log.txt +++ /dev/null @@ -1,686 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/armeabi-v7a/prefab", - "-DCMAKE_BUILD_TYPE\u003dDebug", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003darmeabi-v7a", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi-v7a", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.c",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/armeabi-v7a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/armeabi-v7a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json deleted file mode 100644 index 183a7c22e..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json deleted file mode 100644 index 52daf2403..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: armeabi-v7a", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|armeabi-v7a" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|armeabi-v7a" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|armeabi-v7a" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|armeabi-v7a" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|armeabi-v7a" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|armeabi-v7a" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja b/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja deleted file mode 100644 index bbd020f98..000000000 --- a/cw_zano/android/.cxx/cmake/debug/armeabi-v7a/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/armeabi-v7a - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/debug/x86/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/x86/.ninja_deps deleted file mode 100644 index 197a9939b0635dd7e94788ff5df3ee01cd99951c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22420 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 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/.ninja_log b/cw_zano/android/.cxx/cmake/debug/x86/.ninja_log deleted file mode 100644 index bdfdda9d9..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/.ninja_log +++ /dev/null @@ -1,3 +0,0 @@ -# ninja log v5 -0 858 1695988614 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 891d6ef1f7997817 -858 1148 1695988615 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so 3cf90ba6ff1340f7 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt b/cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt deleted file mode 100644 index d1f6a3926..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeCache.txt +++ /dev/null @@ -1,362 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 -# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=x86 - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-21 - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86 - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//Archiver -CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or -// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON - -//No help, variable specified on the command line. -CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86 - -//Path to a program. -CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android - -//Dependencies for the target -cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so; - -//Path to a library. -log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 - diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake deleted file mode 100644 index e459e1246..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake +++ /dev/null @@ -1,73 +0,0 @@ -set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "14.0.6") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "4") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/i386;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake deleted file mode 100644 index 4b157b2e1..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,75 +0,0 @@ -set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "14.0.6") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") - -set(CMAKE_CXX_PLATFORM_ID "") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "4") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/i386;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index 328a6987b5ea86951e2dbdca1566e13032c31f33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5204 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 Pjb9TsMXxl%S+f5IRFP*w diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index e55160eef6ff02ca94b9cce60c119b6459e8c2d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5256 zcmd5=ZERE589u(Y6N8Nt2rU7+)~tq6E!Yk*!3kBt`2uSWgb*|!V|Ul~P3&U(y4Mb0 z+6P@|)htC~Dw?`!o2pSwt29lW)~QHCQ#LZewocR?`lH=I$~rc+T{WtD&vUPj zF=1#@wI6$v_r9O!J@5H?@45cUU~V>{r^aLAbWTMyeTG z+7<9u5bO%t5^q8#(oVn8w=0>&@kf^4&Tj@3*l6*7|!R4M|4vN5A>&joWFQ6V;Z@Pz|e%bc}oi9 zV?(T`Yin0e*T-(pd{+Xw<~w)q7hn5q@7~_ec-M5CKJjw@H(&k7=6`PAwKzD(AYlcV zWl{j8%vs_*IqdABRA7sBDO2qOYGqfdXhIPv*k?_Bvdw(YYF(uhG{*n~}^Lr06)YduUH@Id@Vw zCe%!+Vva|mhi#>n%8ldT9Y*eJo!d4dG0r0gG5|6HS^_PBa^JiF`Wh(bncz4%DjZ+* zIM(`Hu4iCl`v-up0Ed7g?)UWj1JlZ&KN$B1%6x9@^LNDk5o@1uLEZp9RQGMA@5;Ep zb)Vl8_cNCWkU3lhhJkj>x?jS-a@gNK;C}$|cgZ%);YA>G-3MfwreYZ%KN4l+AU`M$xGX@__G7S!0hbJYPC9(40>i~-?cg4?Cb|N*LsHf z=RSnAcl2>Fa{V`ma<&eL=aKRLw%m%>`qW%Ssa~C)_l#dU+i3qi?9&UbGt(!t)jYvOd%AU+`l_ ztAI(^d48Ay&(js`Ywkg|Wv$D==mn*nC-Ys%D5D|*{AX!jB5w?Q#p=3fWKVtcj;)M~vnegpFNfwejr*cglUL^`*| zIsz%JtY-p7FT@fvliAFnP6Wx!9q*d5^1Igq-tye7Ca>sgqo7?GcUA5M~+_3_atVD&=pJ?m# zZu2VbML!n8;YeVyTpHP4DyJXr2f0G%KSBWPo+7cRQazn`_{2xA6;)jPBS!3|FQ3XK+}eeBJYE zqvX2*ts>p2|PHRVW^_Z5= z>y>c&n0itx8g*MJef)ShU4Tb8qo<}O!^dOY;r?OBLpf}Hn;k2ZL;<@VJtJxM7|t36 zJ)GC;fi{&hM{04pLYTKod*=Mpn`;+}fTzl;R?KmZ;8gU*Gp#@N_(ma%Q^-8r#qmm=H>H|c73^HSyE zHupnQZhzCGZtqv!tD3TsUD}j$JDVO=T*w%W?u15-OZ>gcs(%XSjqh(ow1{?4-XEU_ zbwKlJ(2Mm(ir51Al?Hh`03L->p?QL;~pqjRr)yi2BvY%{I zf!@^fY;QBAJUTFqj8@S^NYAPhrdH6^YzBT(5+Phi;bpm&Oq~~1RWnWP1k=9FPe71* z#McVBG?FmT5)Zp|s$3R)VHK=#SqB@(Hf8EZF(e*y+=3?z$y?dlYJ7O;B7`AVv=nF- zCY!UVNSl?EKA9_q(n2j)G_#^wb%C>~)@D<+XVX$y!?if1sSAtKiy2YO98u+TlD8&Y zElw3u`0BaW8N5exk847i0a!+48sqPsX+BZ0+j>Y?ugD|Qi zql1aviLqLNrDl;h1i5at#(C!_g#G!TW-)M-FZGzIl}gCJ_En*(nX*wc-ubb$e25*=2~_rfuECFWmN@?({JvZB;~KEO z5}mR$=$I?vMIhDmJB5iPa(yL8zn7pOkM6Ac%->Ns4-ydGf(v-^T|ht9?F;wtn};3M z+VW#PpSy?ORroMB#w3jFwO zBSDViFHkTp<5|Bq!B5)gD|x<;*l&bN0DqtQvCUdf+KBJfsHMc?3=ZkDQfRPojp#37 zHIn$96hNh|rRFF5{WJV--xF*<`mU+@$q?VehuW{C&=79}{J2LYWO3-vLdSao-=iEa f=Q9Ky=S0E>J|T8MCqc5YMSd}CiapW@XUYB>HL8C= diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake deleted file mode 100644 index 0e5adefc8..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - -include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "i686") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index d61d7c934..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,3 +0,0 @@ -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/edit_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/rebuild_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index 2e1940b0ae986485db596ed367ac0e582c71e364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 914588 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 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.bin deleted file mode 100755 index 619871d6284ac336ce67e5f5606469ceca5aeeed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7016 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 EzeA=A9{>OV diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c deleted file mode 100644 index 90a87b17a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.c +++ /dev/null @@ -1,34 +0,0 @@ - - const char features[] = {"\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json deleted file mode 100644 index 283b0033f..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "1": "--target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-x86": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" cw_zano", - "buildType": "debug", - "toolchain": "520418125", - "abi": "x86", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt deleted file mode 100644 index b337a0c8b..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stderr.txt b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt deleted file mode 100644 index 68ec9680e..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_cw_zano_x86.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json deleted file mode 100644 index 03b852862..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-x86": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86\" cw_zano", - "abi": "x86", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build.ninja b/cw_zano/android/.cxx/cmake/debug/x86/build.ninja deleted file mode 100644 index 2fbef1db7..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build_command.txt b/cw_zano/android/.cxx/cmake/debug/x86/build_command.txt deleted file mode 100644 index 561bb3c47..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab --DCMAKE_BUILD_TYPE=Debug --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=x86 --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=x86 --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86 --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build_model.json b/cw_zano/android/.cxx/cmake/debug/x86/build_model.json deleted file mode 100644 index 23a5e6ac6..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "X86", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/x86", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Debug" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "x86" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "x86" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "info": { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": true, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", - "variantName": "debug", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/build_output.txt b/cw_zano/android/.cxx/cmake/debug/x86/build_output.txt deleted file mode 100644 index df1a97a2b..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/build_output.txt +++ /dev/null @@ -1,145 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -Detecting C compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compiler ABI info - done -Detecting C compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compile features - done -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -Detecting CXX compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compiler ABI info - done -Detecting CXX compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compile features - done -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake deleted file mode 100644 index fa9b1be13..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt deleted file mode 100644 index bebbda46a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/cmake_server_log.txt +++ /dev/null @@ -1,686 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86/prefab", - "-DCMAKE_BUILD_TYPE\u003dDebug", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003dx86", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003dx86", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json deleted file mode 100644 index 7b0aa9a1c..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json deleted file mode 100644 index 9971483f8..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: x86", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86/rules.ninja b/cw_zano/android/.cxx/cmake/debug/x86/rules.ninja deleted file mode 100644 index 07d4023ab..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86 - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_deps b/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_deps deleted file mode 100644 index 755eb7fe50d33726c001f9f202aca33ffc8194ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22440 zcmd6vca$8(5r@k-&IzYey0z}R^ zXK=Q0&H?9~bIv)3uP5xCWa%Ey@3zi*?|b^^?tWd>-PKh!J+u9GQ4p>1S|-W1zORU^ zhE=9YA)~FM~k{uh18!J{W-D&B{ zrA{8lq2Kj_D09Matmh=DY4(FKcfug*PmD~gSne)g=46vu8ppZQ&r&Cd{IK6Lj=yM; zGq%{t@>US#jqX2{bzRqwqju2w2fB%dy=~*={nTWQuKZm~6Tdrt%d`>w8=6OH*jcaM zF_UIN%);+rvB+Q1pU~82V~m7m%!G~ZU(lY`&~65K=5$Q%w#-=I8@oB(VhnB&u_5f_ z|5$lT-b^D6Z$IaJ;}SN@mf~%k7&+&ObLS~k;MiL2(f#c(bmyMmLiac5uAA?DJ%_IA zGSMizJ#WJG!k`nmoLnNm)|&I`%yiwTABIVuV*9U#;rlt}+{XpDNPelTTgo=NzZkY| z82es0JCtB8ll*gZRpMrCD0BNWElqMvthP&8eyXKe#xE~m2mNH&b6V$|MN;aF7oynu zV=Y^Ig@X(K{z%K#S^0I0@(@CRDHwK;A+nb_Rw`&zy&*HNV^@;!8? zHGEr^QzK<-}lY2erL-$7fa#+ao|^*9oS%a^gnzm5L- z1)T>Q)Dn}1aZ&Yri}6fpjA!;-Y&-<{CSy=p59OXn;w+eOtDW%;wC6qV-&}4|Y7=>i zv{1f|uF5(rb^W-P(8x(^v*l~LKCktQ^X02(FYF%JXbH$y7|#ZcJ+Q^tIBPugqO6m? z%$U^o<*Z@YF?@+JsI1W<&#H>?!3q`mBKq^bH|MCG*qmNUE9eWVc4x+n+D2cNdy%b> zMLv(dN<1w5p5wX+vl|5ApvX4JD3|r?|OYJcBY@_R=!_b|>$F=T9hM~JTd&_)o;OP&e zt9MqE2|_LYAua7HUf7h~%~M((F-*}nGEI1_oVvfX|+jUygZzeig)4|;~U`EGPo&O)n4ynGjWDrW<+%&9crspZ=; zR#vJaccZHkD`#{E)yzAzY_@*ROlW+28j8GKZGL&wDNe>WP1g*1VT%4#Ue?cr&`w%*D`q>09h+42B|aVk}b{W0~D!EagWyONyHM zjsFk+2%@&Fa^JvMRL;~*{87ovUFfUSdBuLP;g^Q9-{{_{rE6nge^K%}v$SvBsRib<|x+=Lv<>z)k^6@mm zUgRcan{6FtW66!mHk%3GB-Uuw*A2=x_e?KNCq=GDS0$EI^BkFRxlY;EejbEDJ}K8K z>$+~bghI6Vj5DeNA4FJZ8EXR=$jN!&*JY-QWaOhn`? zbXC?_Wjkd|ndV~i24$O>>t5iCoT)zF<$D+$Rc_W#5-tVE8OpYsH0AZSuAGjpN*t>M z*K65X_6KV-3K;vPMPL)TDI0_cTBNmyxs{~ zw$A9v@yfQkZh4pMIAz_cY?mo?RpQqmN3d0$I~LFzI#$_c`+k{KKStSRFYLr=kav5; z>Z8$C*}s*)NyFtRWj`1FY#QlDYU>vDmB?CsU0deJq_%ERU5QL+>sCeGIJzolZdFB& zp{Lh}Dnw^x7$SXTKiAcBK5X4h`y$o+X6UNKs@hQEV>)bG>;6O)AA5anTA+Ibx|-*p z>lVsIiy%?f<`HvldM+t+oW{!jcC9RRdZeuD7X^bzPg%FVsUHqocjG-=%gQLaDtmaK zD6$64^%`|)ol};5m-PLBbH`P_ufw z_Fn4q8^tZ-b_o~UtP|N&*>1LEaZ7a%!`AQ+cqlv!9uC{UBjAznD0nnH1|AFB!sFoa@C0}wJPDo*Pl2bx(_lMz zIy?imhiAgG;MwpTcrH8-o)3%Q1uy~)a9{^m3`<}sEQ1|kIqU>0U?sc|UIZ_Om%vNm zWw0~699{vd;FYio>t3)o>;wD4ey~3r0IT6ZI0z1g zL*P(23|u%IJZORsEwJm+)^{DSIYR(zU=%{Iy?%Swmo~WAm~;dXqJ-B1g|u1vFb3mb zYg4Z0%33%QYz#dbj)7xg3XX&0;RIL*C&Ec^GEBoMa4MVz>)~`b1I~mEa2A{m=fJse z9-I#sz=d!TTnv}MrEnQs4p+dHa1~q)*TA)K9b6ALz>RPd+zhwCt#BLM4tKzva2Nas DMdP&a diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log b/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log deleted file mode 100644 index cb576f678..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/.ninja_log +++ /dev/null @@ -1,3 +0,0 @@ -# ninja log v5 -0 815 1695988616 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 7f413045eeaa589e -816 1174 1695988616 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so f4d57a697c127ac8 diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt deleted file mode 100644 index 017b739c9..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeCache.txt +++ /dev/null @@ -1,362 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 -# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=x86_64 - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-21 - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=x86_64 - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//Archiver -CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or -// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. -CMAKE_BUILD_TYPE:STRING=Debug - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON - -//No help, variable specified on the command line. -CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64 - -//Path to a program. -CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 - -//The CMake toolchain file -CMAKE_TOOLCHAIN_FILE:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android - -//Dependencies for the target -cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so; - -//Path to a library. -log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 - diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake deleted file mode 100644 index b3dc3837b..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake +++ /dev/null @@ -1,73 +0,0 @@ -set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "14.0.6") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/x86_64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake deleted file mode 100644 index 7e5bd3555..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,75 +0,0 @@ -set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "14.0.6") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") - -set(CMAKE_CXX_PLATFORM_ID "") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/x86_64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index f696bd3f1670dc7c13d2804655e6ac82fabc74ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6392 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 JJ_lb?{R^0=N5=pF diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake deleted file mode 100644 index 67917a306..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - -include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index ef0a5b6ae..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,3 +0,0 @@ -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/edit_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/rebuild_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index f2d83dcdfc74b74ac41d2542998caad81130eb56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1174136 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 b`s1n~9gR#F>59iz(66fxDGx;yB3= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json deleted file mode 100644 index e87e21190..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "1": "--target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-x86_64": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" cw_zano", - "buildType": "debug", - "toolchain": "520418125", - "abi": "x86_64", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt deleted file mode 100644 index 3beaa5ed0..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt deleted file mode 100644 index a9fa6174f..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json deleted file mode 100644 index 9e55d11dd..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Debug-x86_64": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64\" cw_zano", - "abi": "x86_64", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja b/cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja deleted file mode 100644 index c82675a65..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86_64/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake CMakeFiles/feature_tests.c CMakeFiles/feature_tests.cxx: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt deleted file mode 100644 index 80e5fa036..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab --DCMAKE_BUILD_TYPE=Debug --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=x86_64 --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=x86_64 --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64 --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json b/cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json deleted file mode 100644 index 72278f96e..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "X86_64", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/debug/x86_64", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Debug" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "x86_64" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "x86_64" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "info": { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": true, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj", - "variantName": "debug", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt deleted file mode 100644 index f8cfe47df..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/build_output.txt +++ /dev/null @@ -1,145 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -Detecting C compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compiler ABI info - done -Detecting C compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting C compile features - done -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -Detecting CXX compiler ABI info -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compiler ABI info - done -Detecting CXX compile features -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - - -Detecting CXX compile features - done -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake b/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake deleted file mode 100644 index 36f56ccb3..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Debug") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt deleted file mode 100644 index 5e34b1928..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/cmake_server_log.txt +++ /dev/null @@ -1,686 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/prefab/x86_64/prefab", - "-DCMAKE_BUILD_TYPE\u003dDebug", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003dx86_64", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003dx86_64", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake:94 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":33,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: Check for working C compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: Detecting C compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":65,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: Detecting C compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: Detecting C compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":96,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":126,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":155,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting C compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: Detecting C compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":184,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: Check for working CXX compiler: /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -- works -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: Detecting CXX compiler ABI info -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":211,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compiler ABI info - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: Detecting CXX compiler ABI info - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: Detecting CXX compile features -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":237,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":262,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":287,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project) - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":311,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Detecting CXX compile features - done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: Detecting CXX compile features - done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystem.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Determine-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android/Determine-Compiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeFindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-FindBinUtils.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompilerABI.c","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCCompiler.cmake.in","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCXXCompiler.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCompilerCommon.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompilerABI.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeParseImplicitLinkInfo.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompilerABI.cpp","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeDetermineCompileFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Internal/FeatureTesting.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-FeatureTests.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX-TestableFeatures.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXCompiler.cmake.in"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.c",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/feature_tests.cxx",".cxx/cmake/debug/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Debug","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/debug/obj/x86_64/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86_64/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json b/cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json deleted file mode 100644 index c41760582..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json b/cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json deleted file mode 100644 index e68593eed..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: x86_64", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86_64" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86_64" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86_64" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86_64" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86_64" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "debug|x86_64" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json b/cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja b/cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja deleted file mode 100644 index e3e2c7856..000000000 --- a/cw_zano/android/.cxx/cmake/debug/x86_64/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Debug -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/debug/x86_64 - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_deps b/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_deps deleted file mode 100644 index 93aa15e4fe970f0a0321be52e5806b9d87f2c9a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24984 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 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log b/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log deleted file mode 100644 index 2b36879ed..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/.ninja_log +++ /dev/null @@ -1,9 +0,0 @@ -# ninja log v5 -2 2722 1695294279 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o db4fcd8d10aae3 -2722 3436 1695294280 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so eb9f79de8b3719ec -2 1687 1695314570 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o db4fcd8d10aae3 -1687 2344 1695314570 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so eb9f79de8b3719ec -1 1517 1695811881 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o db4fcd8d10aae3 -1517 1889 1695811882 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so eb9f79de8b3719ec -0 1561 1695986024 CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o 606d692942cf5f01 -1562 2123 1695986024 /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so 4711e3c4165b04f5 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt deleted file mode 100644 index 8c00ac85f..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeCache.txt +++ /dev/null @@ -1,362 +0,0 @@ -# This is the CMakeCache file. -# For build in directory: /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a -# It was generated by CMake: /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -# You can edit this file to change values found and used by cmake. -# If you do not want to change any of the values, simply exit the editor. -# If you do want to change a value, simply edit, save, and exit the editor. -# The syntax for the file is as follows: -# KEY:TYPE=VALUE -# KEY is the name of a variable in the cache. -# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. -# VALUE is the current value for the KEY. - -######################## -# EXTERNAL cache entries -######################## - -//No help, variable specified on the command line. -ANDROID_ABI:UNINITIALIZED=arm64-v8a - -//No help, variable specified on the command line. -ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//No help, variable specified on the command line. -ANDROID_PLATFORM:UNINITIALIZED=android-21 - -//No help, variable specified on the command line. -CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a - -//No help, variable specified on the command line. -CMAKE_ANDROID_NDK:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393 - -//Archiver -CMAKE_AR:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar - -//Flags used by the compiler during all build types. -CMAKE_ASM_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_ASM_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds. -CMAKE_ASM_FLAGS_RELEASE:STRING= - -//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or -// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel. -CMAKE_BUILD_TYPE:STRING=Release - -//LLVM archiver -CMAKE_CXX_COMPILER_AR:FILEPATH=CMAKE_CXX_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_CXX_COMPILER_RANLIB:FILEPATH=CMAKE_CXX_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_CXX_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_CXX_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_CXX_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C++ applications. -CMAKE_CXX_STANDARD_LIBRARIES:STRING=-latomic -lm - -//LLVM archiver -CMAKE_C_COMPILER_AR:FILEPATH=CMAKE_C_COMPILER_AR-NOTFOUND - -//Generate index for LLVM archive -CMAKE_C_COMPILER_RANLIB:FILEPATH=CMAKE_C_COMPILER_RANLIB-NOTFOUND - -//Flags used by the compiler during all build types. -CMAKE_C_FLAGS:STRING= - -//Flags used by the compiler during debug builds. -CMAKE_C_FLAGS_DEBUG:STRING= - -//Flags used by the compiler during release builds for minimum -// size. -CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG - -//Flags used by the compiler during release builds. -CMAKE_C_FLAGS_RELEASE:STRING= - -//Flags used by the compiler during release builds with debug info. -CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG - -//Libraries linked by default with all C applications. -CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm - -//Flags used by the linker. -CMAKE_EXE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Enable/Disable output of compile commands during generation. -CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON - -//No help, variable specified on the command line. -CMAKE_FIND_ROOT_PATH:UNINITIALIZED=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab - -//Install path prefix, prepended onto install directories. -CMAKE_INSTALL_PREFIX:PATH=/usr/local - -//No help, variable specified on the command line. -CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a - -//Path to a program. -CMAKE_LINKER:FILEPATH=CMAKE_LINKER-NOTFOUND - -//No help, variable specified on the command line. -CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja - -//Flags used by the linker during the creation of modules. -CMAKE_MODULE_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Path to a program. -CMAKE_NM:FILEPATH=CMAKE_NM-NOTFOUND - -//Path to a program. -CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND - -//Path to a program. -CMAKE_OBJDUMP:FILEPATH=CMAKE_OBJDUMP-NOTFOUND - -//Value Computed by CMake -CMAKE_PROJECT_NAME:STATIC=Project - -//Ranlib -CMAKE_RANLIB:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib - -//Flags used by the linker during the creation of dll's. -CMAKE_SHARED_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//If set, runtime paths are not added when installing shared libraries, -// but are added when building. -CMAKE_SKIP_INSTALL_RPATH:BOOL=NO - -//If set, runtime paths are not added when using shared libraries. -CMAKE_SKIP_RPATH:BOOL=NO - -//Flags used by the linker during the creation of static libraries. -CMAKE_STATIC_LINKER_FLAGS:STRING= - -//Flags used by the linker during debug builds. -CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= - -//Flags used by the linker during release minsize builds. -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= - -//Flags used by the linker during release builds. -CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= - -//Flags used by the linker during Release with Debug Info builds. -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= - -//Strip -CMAKE_STRIP:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip - -//No help, variable specified on the command line. -CMAKE_SYSTEM_NAME:UNINITIALIZED=Android - -//No help, variable specified on the command line. -CMAKE_SYSTEM_VERSION:UNINITIALIZED=21 - -//No help, variable specified on the command line. -CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake - -//If this value is on, makefiles will be generated without the -// .SILENT directive, and all commands will be echoed to the console -// during the make. This is useful for debugging only. With Visual -// Studio IDE projects all commands are done without /nologo. -CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE - -//Value Computed by CMake -Project_BINARY_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a - -//Value Computed by CMake -Project_SOURCE_DIR:STATIC=/opt/android/cake_wallet/cw_zano/android - -//Dependencies for the target -cw_zano_LIB_DEPENDS:STATIC=general;wallet_api;general;wallet;general;cryptonote_core;general;cryptonote_basic;general;mnemonics;general;ringct;general;ringct_basic;general;net;general;common;general;cncrypto;general;blockchain_db;general;lmdb;general;easylogging;general;unbound;general;epee;general;checkpoints;general;device;general;device_trezor;general;multisig;general;version;general;randomx;general;offshore;general;hardforks;general;rpc_base;general;boost_chrono;general;boost_date_time;general;boost_filesystem;general;boost_program_options;general;boost_regex;general;boost_serialization;general;boost_system;general;boost_thread;general;boost_wserialization;general;ssl;general;crypto;general;sodium;general;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so; - -//Path to a library. -log-lib:FILEPATH=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so - - -######################## -# INTERNAL cache entries -######################## - -//ADVANCED property for variable: CMAKE_AR -CMAKE_AR-ADVANCED:INTERNAL=1 -//This is the directory where this CMakeCache.txt was created -CMAKE_CACHEFILE_DIR:INTERNAL=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a -//Major version of cmake used to create the current loaded cache -CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 -//Minor version of cmake used to create the current loaded cache -CMAKE_CACHE_MINOR_VERSION:INTERNAL=10 -//Patch version of cmake used to create the current loaded cache -CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 -//Path to CMake executable. -CMAKE_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -//Path to cpack program executable. -CMAKE_CPACK_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cpack -//Path to ctest program executable. -CMAKE_CTEST_COMMAND:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ctest -//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR -CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB -CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS -CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG -CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL -CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE -CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO -CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_CXX_STANDARD_LIBRARIES -CMAKE_CXX_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_AR -CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB -CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS -CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG -CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL -CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE -CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO -CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES -CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS -CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG -CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL -CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE -CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS -CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 -//Name of external makefile project generator. -CMAKE_EXTRA_GENERATOR:INTERNAL= -//Name of generator. -CMAKE_GENERATOR:INTERNAL=Ninja -//Name of generator platform. -CMAKE_GENERATOR_PLATFORM:INTERNAL= -//Name of generator toolset. -CMAKE_GENERATOR_TOOLSET:INTERNAL= -//Source directory with the top level CMakeLists.txt file for this -// project -CMAKE_HOME_DIRECTORY:INTERNAL=/opt/android/cake_wallet/cw_zano/android -//Install .so files without execute permission. -CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 -//ADVANCED property for variable: CMAKE_LINKER -CMAKE_LINKER-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS -CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG -CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL -CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE -CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_NM -CMAKE_NM-ADVANCED:INTERNAL=1 -//number of local generators -CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJCOPY -CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_OBJDUMP -CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 -//Platform information initialized -CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_RANLIB -CMAKE_RANLIB-ADVANCED:INTERNAL=1 -//Path to CMake installation. -CMAKE_ROOT:INTERNAL=/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS -CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG -CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL -CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE -CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH -CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_SKIP_RPATH -CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS -CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG -CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL -CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE -CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO -CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 -//ADVANCED property for variable: CMAKE_STRIP -CMAKE_STRIP-ADVANCED:INTERNAL=1 -//uname command -CMAKE_UNAME:INTERNAL=/usr/bin/uname -//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE -CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 - diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake deleted file mode 100644 index 45a931bec..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake +++ /dev/null @@ -1,73 +0,0 @@ -set(CMAKE_C_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") -set(CMAKE_C_COMPILER_ARG1 "") -set(CMAKE_C_COMPILER_ID "Clang") -set(CMAKE_C_COMPILER_VERSION "14.0.6") -set(CMAKE_C_COMPILER_VERSION_INTERNAL "") -set(CMAKE_C_COMPILER_WRAPPER "") -set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") -set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") -set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") -set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") -set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") - -set(CMAKE_C_PLATFORM_ID "") -set(CMAKE_C_SIMULATE_ID "") -set(CMAKE_C_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_C_COMPILER_AR "CMAKE_C_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_C_COMPILER_RANLIB "CMAKE_C_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCC ) -set(CMAKE_C_COMPILER_LOADED 1) -set(CMAKE_C_COMPILER_WORKS TRUE) -set(CMAKE_C_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_C_COMPILER_ENV_VAR "CC") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) -set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_C_LINKER_PREFERENCE 10) - -# Save compiler ABI information. -set(CMAKE_C_SIZEOF_DATA_PTR "8") -set(CMAKE_C_COMPILER_ABI "ELF") -set(CMAKE_C_LIBRARY_ARCHITECTURE "") - -if(CMAKE_C_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_C_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") -endif() - -if(CMAKE_C_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake deleted file mode 100644 index a2eee9511..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake +++ /dev/null @@ -1,75 +0,0 @@ -set(CMAKE_CXX_COMPILER "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++") -set(CMAKE_CXX_COMPILER_ARG1 "") -set(CMAKE_CXX_COMPILER_ID "Clang") -set(CMAKE_CXX_COMPILER_VERSION "14.0.6") -set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") -set(CMAKE_CXX_COMPILER_WRAPPER "") -set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") -set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") -set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") -set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") -set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") -set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") - -set(CMAKE_CXX_PLATFORM_ID "") -set(CMAKE_CXX_SIMULATE_ID "") -set(CMAKE_CXX_SIMULATE_VERSION "") - - - -set(CMAKE_AR "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") -set(CMAKE_CXX_COMPILER_AR "CMAKE_CXX_COMPILER_AR-NOTFOUND") -set(CMAKE_RANLIB "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") -set(CMAKE_CXX_COMPILER_RANLIB "CMAKE_CXX_COMPILER_RANLIB-NOTFOUND") -set(CMAKE_LINKER "CMAKE_LINKER-NOTFOUND") -set(CMAKE_COMPILER_IS_GNUCXX ) -set(CMAKE_CXX_COMPILER_LOADED 1) -set(CMAKE_CXX_COMPILER_WORKS TRUE) -set(CMAKE_CXX_ABI_COMPILED TRUE) -set(CMAKE_COMPILER_IS_MINGW ) -set(CMAKE_COMPILER_IS_CYGWIN ) -if(CMAKE_COMPILER_IS_CYGWIN) - set(CYGWIN 1) - set(UNIX 1) -endif() - -set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") - -if(CMAKE_COMPILER_IS_MINGW) - set(MINGW 1) -endif() -set(CMAKE_CXX_COMPILER_ID_RUN 1) -set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) -set(CMAKE_CXX_LINKER_PREFERENCE 30) -set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) - -# Save compiler ABI information. -set(CMAKE_CXX_SIZEOF_DATA_PTR "8") -set(CMAKE_CXX_COMPILER_ABI "ELF") -set(CMAKE_CXX_LIBRARY_ARCHITECTURE "") - -if(CMAKE_CXX_SIZEOF_DATA_PTR) - set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") -endif() - -if(CMAKE_CXX_COMPILER_ABI) - set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") -endif() - -if(CMAKE_CXX_LIBRARY_ARCHITECTURE) - set(CMAKE_LIBRARY_ARCHITECTURE "") -endif() - -set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") -if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) - set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") -endif() - - - - - -set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "c++;m;-l:libunwind.a;dl;c;-l:libunwind.a;dl") -set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.6/lib/linux/aarch64;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") -set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_C.bin deleted file mode 100755 index b3fb35e1e9aae687d70747992ade8e5a52abd8fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7280 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�eAoa{ib9N8Ivm{?DjO_T@dnqLW1b2Ldo9SxQ3bW4n}{3eGO^ zfL$mBmyq?L@>2T!{Gsf|1N0kM-|c@hZR(g_aWyWiQ2OpHWu>9=8Fi5Z`tVVj+_KJn zqf~&)XXp(q;jDB^K(oeV)TrB(> DFKBPR diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeDetermineCompilerABI_CXX.bin deleted file mode 100755 index 7f4ee912d806e2c143fc2f7c1d16ab56e2ea983e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7360 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 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake deleted file mode 100644 index 9549696b6..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - -include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "aarch64") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 6ba44fcac..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,3 +0,0 @@ -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/edit_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/rebuild_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o deleted file mode 100644 index 8f97a8caafc601aaf3a96e824b66825b2f2be62b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1007056 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

AVd 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νM}CqV`6+Vb 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 Twy(IXpL)#e+4j5LXZ!yH)JGET diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index 067f4ecb3c67ced4dd36de9f0816f7386d55c934..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1007048 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

$!BUlJ~{H4$iHenEBS4$UyQuoYH3d?a^!1~ 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 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c deleted file mode 100644 index 90a87b17a..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.c +++ /dev/null @@ -1,34 +0,0 @@ - - const char features[] = {"\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json deleted file mode 100644 index b482e0f47..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "1": "--target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-arm64-v8a": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" cw_zano", - "buildType": "release", - "toolchain": "520418125", - "abi": "arm64-v8a", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt deleted file mode 100644 index ccf914959..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stderr.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt deleted file mode 100644 index faddf3788..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_haven_arm64-v8a.stdout.txt +++ /dev/null @@ -1,7 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a' -[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] - std::set::iterator it = transaction->subaddrIndex().begin(); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~ -1 warning generated. -[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt deleted file mode 100644 index ccf914959..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt deleted file mode 100644 index d28886785..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_cw_zano_arm64-v8a.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json deleted file mode 100644 index 7a06c6a9d..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-arm64-v8a": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a\" cw_zano", - "abi": "arm64-v8a", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja deleted file mode 100644 index e1fcf2c61..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt deleted file mode 100644 index 2c7fdf987..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab --DCMAKE_BUILD_TYPE=Release --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=arm64-v8a --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=arm64-v8a --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json deleted file mode 100644 index 51fddc45f..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "ARM64_V8A", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/arm64-v8a", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Release" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "arm64-v8a" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "arm64-v8a" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "info": { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": false, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", - "variantName": "release", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt deleted file mode 100644 index 9a536afea..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/build_output.txt +++ /dev/null @@ -1,12 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - - -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake deleted file mode 100644 index 3796fc78d..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt deleted file mode 100644 index 1b574baf8..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/cmake_server_log.txt +++ /dev/null @@ -1,170 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/arm64-v8a/prefab", - "-DCMAKE_BUILD_TYPE\u003dRelease", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003darm64-v8a", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003darm64-v8a", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/arm64-v8a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/arm64-v8a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/arm64-v8a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/arm64-v8a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json deleted file mode 100644 index 739b1c6cc..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json deleted file mode 100644 index 8a629e64d..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: arm64-v8a", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|arm64-v8a" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|arm64-v8a" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|arm64-v8a" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|arm64-v8a" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|arm64-v8a" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|arm64-v8a" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json b/cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja b/cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja deleted file mode 100644 index e62398732..000000000 --- a/cw_zano/android/.cxx/cmake/release/arm64-v8a/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=aarch64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/arm64-v8a - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_deps b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/.ninja_deps deleted file mode 100644 index dd3a4a4b62ed89b2a48c87dabfaf277c4cbe6d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24540 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%0Aoxzd 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¨a_rq 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

k`2-6|A*V0mYxyAW9a#z3CLtdoKJPe!5BBujp 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

4$?nTev9vOw*GnYQm)s&Mc&Qd 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 diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index e39dfff86b9e5e9875059f6695956764b6399374..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646836 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 B3e^Ar diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c deleted file mode 100644 index 90a87b17a..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.c +++ /dev/null @@ -1,34 +0,0 @@ - - const char features[] = {"\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json deleted file mode 100644 index 1919d9091..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "1": "--target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-armeabi-v7a": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" cw_zano", - "buildType": "release", - "toolchain": "520418125", - "abi": "armeabi-v7a", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt deleted file mode 100644 index bfef69037..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stderr.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt deleted file mode 100644 index 3a4bec200..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_haven_armeabi-v7a.stdout.txt +++ /dev/null @@ -1,7 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a' -[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] - std::set::iterator it = transaction->subaddrIndex().begin(); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~ -1 warning generated. -[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt deleted file mode 100644 index bfef69037..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt deleted file mode 100644 index 22ece7f9e..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_cw_zano_armeabi-v7a.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json deleted file mode 100644 index db95a67cb..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-armeabi-v7a": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a\" cw_zano", - "abi": "armeabi-v7a", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja deleted file mode 100644 index 589fb4784..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt deleted file mode 100644 index 5565e9b22..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a/prefab --DCMAKE_BUILD_TYPE=Release --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=armeabi-v7a --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json deleted file mode 100644 index 5d70bc0f5..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "ARMEABI_V7A", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/armeabi-v7a", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Release" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "armeabi-v7a" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "armeabi-v7a" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "info": { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": false, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", - "variantName": "release", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt deleted file mode 100644 index 9c58eb98b..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/build_output.txt +++ /dev/null @@ -1,12 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - - -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake deleted file mode 100644 index 5398a149d..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt deleted file mode 100644 index abb4d2242..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/cmake_server_log.txt +++ /dev/null @@ -1,170 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/armeabi-v7a/prefab", - "-DCMAKE_BUILD_TYPE\u003dRelease", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003darmeabi-v7a", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003darmeabi-v7a", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/armeabi-v7a/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/armeabi-v7a/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/armeabi-v7a/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json deleted file mode 100644 index 222dca8aa..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/armeabi-v7a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json deleted file mode 100644 index 1e1b5d8bc..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: armeabi-v7a", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|armeabi-v7a" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|armeabi-v7a" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|armeabi-v7a" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|armeabi-v7a" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|armeabi-v7a" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|armeabi-v7a" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja b/cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja deleted file mode 100644 index 6139a830d..000000000 --- a/cw_zano/android/.cxx/cmake/release/armeabi-v7a/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=armv7-none-linux-androideabi21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/armeabi-v7a - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/release/x86/.ninja_deps b/cw_zano/android/.cxx/cmake/release/x86/.ninja_deps deleted file mode 100644 index 2a091f2263568150ae2db38ebd2a67f03d9f001b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24824 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 #a($F@hw#Aa=d1&y4?VC)gs=Ew`nZ2 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%0D9xPja>&jtO`MW@8~uUPXL8Hc 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 T@{KIFh;tcjlwC)mZXV@7vNRiw diff --git a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index 5e32d5760ea578e3d0d9f2e3eddac6318885d166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633096 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»nukeS8vw*XSiFIB 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 diff --git a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.bin deleted file mode 100755 index e88a4ed42605fc0efbffc4a9db352b34b9957ba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7024 zcmd5>Z)_aJ6`woX$t89!P8`4`P!8(S(1yDUJ{%_?5<9lRk{yiWs0Pxm_jc#*mhA0b z_x5ZDr7hH?DzcDLnyRft`vLgSqDoM;ANm1Rse;rGMQWs0RV!5#p`e14R;d&!1c>YJ zw|jFr$7`oTeCV9szIlJ<&6}Awvv2mkIXW>Gi^YU0ZK6$(%618n1Fl>jN^&A4I>jzL zKPxtXMVW#*G$6EtM`#0_0j;11G=Va(0|084sVzbfI>_k`R^HGo z$MS`y8H>86`*INk+3Bh)CdP*kktmY@Hf>gBKO3&Yu?C)NV6%aJ;Eix*kr*9sJ~TV4 zjg1b?9GxEBpEVX2HN9B$WD%WdrYz_++YfxOblZAddesPh+tRBVVxeNAQM5wQ(bp2V zg$R?r?^*d;v^6DzdlgR_=+lg_Q1e~QKT(mZMTl74JAv8trKj5wZW*qF&|a)~tJ^{Z ziC@!g4b^$fhXv);dZsk&=-!n?)8XOT4Ke42iy4(z22c7m&k05o*;Tkmg_>jd@TR#E zn(h_X)|aNHTCA&7cIV|a0>G3uKnTb_l=HEkknu1s>o+!YXC_Ue`8Y-^S& z9p5TgG9tE$(qTYimzmd?@IcctG+Qs{&8UrKIVI^?|HFz{4$f|=IeJ-EE4mT2d)MqF z6a=nnhF(F8MmBd1Y!>c?YXzq5B7lNN^v-cyxoF6Wzj|sNMje8{(8{u$mtNpggj&tE zD}KbxBg8!qOS8I(r#nT-Xp0gpXoz)2{n|%~CkxV(jv=+L;mqK|uN(cIwDm=(1luV3 z1Zp`95UD1%8e%`fJF8goHF$4JE$`{Zap^~dsyDCOH6AbxFC$c{h)1{3nAp|*H0E8e zR;3rQGMFH)D);P4+k5z?QSXc^6>j@7&WNbf!!LPKHxVHSsMU`6o^BzQi`O_UYmQ~O zrd(&qpn>%+U)h4e>9V@RnuB=9`Wrma&?xdfP{XvW)7QN2S$ZBzq-J8}Bn7YIK*wZk z>xSp9r*Opxl8D&OwtIE~GxzDj`+fxY7;pvnBrtQmp98-R%-o12_V~1jolL}bcD1*E z2Qs$532+uL1`tEZ#GzzrDL$I)8%n0CeC`@f?jA~JgWT`|s9XTt($wvy?v9~k_mN~` zC`n(k0Q&GZKn4)nZ0e0CcT6UGN0K+e{sXEFeRvV@7r;)2WQfl! z@A_B0K2`VodLMeH0Gms%^*(y;^`lR}y>#ItWpwt*vyap0WY_X!;&&r`!3a^^`kSW` zmoLEQi(fg%QC%tZUs9+3LIO`ZS$_c+BT=HlyKiC)^%u~$C{g_GdD18pUX8Kj;tK#` zt_?ABR-}qSZvSDu?t+(KPR{}_#cm|A%!g9|-k;dX2hgKOHvlFeXMRf$nD3TgjPb^{ zyo;C+;tCVUnK@r(P6|8-c<l_q z?j6jTcchSnIK@;W9Zc=XrL*aQ)UJ~6SE~Cn89lrTrHihM)=w_7K@EzvD$AH z<2`#Z>m9eFg7xTw-hG{&SdWdYc6Q!}Y9bAj+czBSZA-#J$9T^H%=@Me5pOcEVp{_P z;wPBCAYMg#FwyPe$BhZS4K(MN`!~J-;vQ6D@s74*h>BC7+a6%s89e^HQFKfKZ|DVk zLu})Rs3$fiRO{H$o57ELKXw}YP4Vw0o>)P4^@QXPAQc<7g6L@9{2c0=Y4iVkJu_~_ zSK*Q|^y5-n&~4<*8Dl{!>GRTQ3e$LhW{fgaGDsRELNc>BIFLCs3C@^>D9aS2&Xf$V zma1Q+I&P6e)6+u_Ye&W(8P#SUo*LCOVL86QJz-uT4n0vuEQ(LliNK$kaz!+}sj@Re zXpc+`HaX!}hZ@!f-*`SuZXv>|@$`v(ioOWtL(7b?8_^MGWVM}Xi*+2>9RJ+*j)4vL zc4WR4Z-*n4uPm*scJc2zPuhcc@ckGUTSYH0zo~FkF>t;F{A#mNT-*)%S1t4b&JtJnnHS3vW;CfyC1-<-G$WAPh=Y_uezzYDuPgXoGlyLs=!>NI5#&6hgA%`9d=d7V=VE+^coqVFcjI}!9pil&nCB?lZ^Q4m zz&uk!db>Cen&)ds_lUoPRy&#PFMw8s?-A~8RY;38LR5Mck#<~Prqx**T%;PjqEk!f zYnE-^iSJEm^Mq49Q5I=(8z=G#Li0khq*qHK9X{E{2OnFB?ZZmN_EB+7-Pc80mT)~p zYO0k?=qXC1`87bK166#C;Kv$VyFL8`-M&)CmC#ar*w@RJ0ViCv#3O8-uT}+L3T0dn zF$kHj6*WDd_vE~yET`bAdf;uS#0#8AW5~Xq2QEPr)PedT4S~8$CRN zBPaAiX!lP%I6O3=JvcUYWOPQG85*7#g;1NC9vweCKGQg>$hnFf1KpGcV_EsBEc{G{ z^U^VGWZw&(Ua7#xkPUNY)olntw0u|7Mjk#qG&z1qMc=hCLzTeo+4>z>wN#lwQ+GD=QcL?={0n9rIoCoUhF9KrfeFH$-w8yhhorfTUqWb+d zD5cl>oxP#f?Eg%Q9?w$3Yf1@N`N`~v_P7Q-LkVx8t_po+c@d!WQpiCGTwhg`-p{~b z9YYAtVE$jg@u{Nv{WTcK`T{+k&9iIh(dVrVJ)YTfYv`Sa4#&WLga0p}cL{aQJq!D# zAAbdK9Mt1?=~+0TdS1RrQOg(_WTL z6#ftMi?A9zDI>hszyTAFJ2CjLE22f#24(82@)Go(R|K$= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json deleted file mode 100644 index 62a7efaa7..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "1": "--target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-x86": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" cw_zano", - "buildType": "release", - "toolchain": "520418125", - "abi": "x86", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt deleted file mode 100644 index d69a72b0a..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt deleted file mode 100644 index c3fe098cb..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_haven_x86.stdout.txt +++ /dev/null @@ -1,7 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86' -[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] - std::set::iterator it = transaction->subaddrIndex().begin(); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~ -1 warning generated. -[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt deleted file mode 100644 index d69a72b0a..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt deleted file mode 100644 index 7b863ed05..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_cw_zano_x86.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json deleted file mode 100644 index e944d8f91..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-x86": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86\" cw_zano", - "abi": "x86", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/build.ninja b/cw_zano/android/.cxx/cmake/release/x86/build.ninja deleted file mode 100644 index 7fe96541b..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/x86/build_command.txt b/cw_zano/android/.cxx/cmake/release/x86/build_command.txt deleted file mode 100644 index f18581448..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86/prefab --DCMAKE_BUILD_TYPE=Release --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=x86 --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=x86 --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86 --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/x86/build_model.json b/cw_zano/android/.cxx/cmake/release/x86/build_model.json deleted file mode 100644 index b669a9254..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "X86", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/x86", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Release" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "x86" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "x86" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "info": { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": false, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", - "variantName": "release", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/build_output.txt b/cw_zano/android/.cxx/cmake/release/x86/build_output.txt deleted file mode 100644 index 6afe46439..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/build_output.txt +++ /dev/null @@ -1,12 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - - -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake deleted file mode 100644 index 2e559f844..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt deleted file mode 100644 index 788111d18..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/cmake_server_log.txt +++ /dev/null @@ -1,170 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86/prefab", - "-DCMAKE_BUILD_TYPE\u003dRelease", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003dx86", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003dx86", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/x86/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/release/x86/compile_commands.json b/cw_zano/android/.cxx/cmake/release/x86/compile_commands.json deleted file mode 100644 index 481267419..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json deleted file mode 100644 index 0f709e45b..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: x86", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/prefab_config.json b/cw_zano/android/.cxx/cmake/release/x86/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86/rules.ninja b/cw_zano/android/.cxx/cmake/release/x86/rules.ninja deleted file mode 100644 index b7682581e..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=i686-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86 - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/.ninja_deps b/cw_zano/android/.cxx/cmake/release/x86_64/.ninja_deps deleted file mode 100644 index 2ed94785fde52b165be999001c4966785ad9fffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24844 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 M9AE=J2cN3`4chHX6aWAK diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake deleted file mode 100644 index 67917a306..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake +++ /dev/null @@ -1,15 +0,0 @@ -set(CMAKE_HOST_SYSTEM "Linux-5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_NAME "Linux") -set(CMAKE_HOST_SYSTEM_VERSION "5.4.0-163-generic") -set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") - -include("/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake") - -set(CMAKE_SYSTEM "Android-1") -set(CMAKE_SYSTEM_NAME "Android") -set(CMAKE_SYSTEM_VERSION "1") -set(CMAKE_SYSTEM_PROCESSOR "x86_64") - -set(CMAKE_CROSSCOMPILING "TRUE") - -set(CMAKE_SYSTEM_LOADED 1) diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt deleted file mode 100644 index 44ed8f9b4..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/TargetDirectories.txt +++ /dev/null @@ -1,3 +0,0 @@ -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/edit_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/rebuild_cache.dir -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_haven.dir/opt/android/cake_wallet/cw_haven/ios/Classes/haven_api.cpp.o deleted file mode 100644 index c2827e0441315d1970d62989fa35e57ed076767a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 950624 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 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o deleted file mode 100644 index f38bedf83bdef77886ac0cc303c41ef5064bed01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 950608 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%0A4I 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

bFBK4P15d!aufr0l1DID#CUAPy_zL ztT5e&;HuLKUTSv8KMw!Fyg&Se`B3-;^WpG$b3*+$;A`gwpAFw*{*mL`9Y5yyCHQw% z|1wc0zr^Yh>v;P07lfh&I;zGy?J^9y{;#^AS>3x8_4%rQ>^@4G4F^1w%!-vw8` zDtz$fP^Tum;g;ZS;GN9d!*!fL5dP5CP-h5S`RVZD+d}>=_?_E>uZJ%;-v-}kz5~AC zi%{nz{OsxAf587U{}cY}Zy}$leE3t#OXvGJ;s01Z5B!%i;r~~J|7~6cp7ZyRZx1hQ z-U+Vz$p^rHv;1JVp0^qYU-U7xK&C%5Q}~em>;CgzNdN8ubdG) z(f#quOYO-5e{){Q=YXG>AG{b`?I{UY{m0>j7lb-bzM$_L_?*BzG6=J?(4 z5|%Fs*SKPJ_zuh0hU+}NBfQ;Hp?zK8%D)W1Wcg8W<==si?i%X93)gYfI{1|CA-@e? zFKO_-aGg*608c$VN$>wNzKxXzDi z!`m+m^&7)Kd_Q<=cmm_)<_ri3?!*#qd9bT(%$S;6vTxBuc zt_!S!XER>|f6M$ExQ;gt!#}Y6FYt}#r{UT^B(4Y+eC=@Jgst9iHE&+X$}b7h1se{6br}o;&CU*Yg4c;LUA6{F>u$!P{7V4qWHC ztKi+94)ePPuKZs3cFP}tYd>=u-fU6$eEAbz)%+U#A@f@wj9(ubnx}&|HZKF;_HLMN zMYyJ08?NcLhiBUz>hy%KwtjvNuIHp)hU+=0v2Z;nH5IPsq-MeOJlA~q4qKn!ga2#$ zhfm2!~c9S^usE+_HP^D+P{4RPxeBnvmdVg-YNJ_%b$fSpSVh>r_Y6{!@~DT z;o5&@gSQ(V@;Twkmw*?wekcvs{;f8An7yE(34D-wdwAJVVY&2#pYIv`S@Lt& zXNH9DOTo21-w)UGcQxR8{;n=u&p9@S>$$vcjt_;;9vs>^9Iof)ropvc%!1!$^E(f& zI-kO|{%?ZkeLl2jH(dR85UzeZ0aw4BgR6h8Ii8_<{Bl&j0Q`HK-y(3$Z)Ldptu}n< z&@jDvaMfuKSHE?G7akqz41nwNZWvsjcN5`Xj|_FD!1ejH2tH_3$S;8_zaC!T)sWu= z*XP%M_}7*{1XunneDG_b{&~1Q?~>IB|E~S>W&1qJ2-oLVPPjh5O2fyz9O_nqYrU-l z*LvF+uJyJBT-$qRxYo}>j*o%ow02H_YkgY)*Lu4Q-o)yxfUC}SxYpaOc{#M>F}V7t8(jU|7vA@kQ0G~= z>WqP_pQpl`ybo{sJT=zd5f$MYsBz)NTFx}tanr^CE z;or6W>OC`=;C&~BTsF9lb4tP!O%C}oa2@B=g1=(!E%-xZWEx9KP4` zufUaG2p>8n)L#tOdt)}i3rr39ZE)p}z;{^w1YGZp`42vRTBx6>cKB1vOZlAetu~HY z5Po1{`2VHh`BDTg55H|f@QQG~XXa73*4vhFjY~WM*L!Aqz+biL4uWeO;3c@m0mi^J z4lo6-ae!IyRdd4pE`cvIUkU%nd>vf%x5Ed_4fXfI)&Ga!m#zL`xcdJhT>XCquKrK< zP?)~fpK;cn4DekGLM|7)pp8Elh3B;K@Urky*Fv3Y@NUTx-}r}z;W--yZwX)iNbo1& zrA`Fz1K(Ue$&LDh;bm-oN5QpTO@eE^ng-W;H5;zw{vN#G;?NJD!1X!%Ib7E@zJMQ} zAL{IapD{lI*Y%E*@INj87yQ!P>V$vS`lHX;TyR|nEC`=y^^3yu*!or# zuJySN{JDjp9Sz_q76oqy&uHEeuKZy5EX%(Dzvtahe-gaB`Bb>_%i!w&EpT0j+6h z{T6W5e}cXu)PEYT?QS4k+ud-uw!0Bv-dPxQ;h|f@^vG4llkv z%-4T#O*dJC@b6l_nr>RSrkf3}>E?siI~D4dfNOtS9Jvl0F>%)N=pCJT-i?d3w0&+yx)}OQ>5IuJ=Yh055Vfd^Nbno!Y=P-KXH{&wg-? zcMX9rvFQ$jYr3=H8t+;JFY$F~{}Q;yyEemjTYfuS<6ZjsEm|(!cZd3ik=JNQu6#fE9p8rhK)A-QCcyu+ z{OfS#m%sbxmlskFK}Hyy#QDJzu~H%@sarD_4krc zKP&vUWx?-)t9}u<>bHTnc|X)?57+hC9&pv~16Tdo@H@_h`t#wZ%$LJee=B^*`B3Le z_}v$R?}w|-ukb#*LjPWZ=Sva%UwFN*f?tDcoGtUC@ykp5t2^NuXDbNTIA=-t5u0u$ zxQ^3m!*!h22(II_7H}P>Jpo^FB+Sp#^fbW-!gW0VDm=#zAwL$btzMu zx-MA;uIp&E9d8ML*`DKQ3)gk7XW$wi7!1#A^ZNo^b*8{|y=)dd&G(_-mcZ3-E8*(5 z^>Fpu7P$ItFI@fhi{qE!V-ALPUWIFZGc}1{AJlI-;SCOjTpqaUl!dF`s=zD#6Y4a8 ztKXW!wY|54Z?`%<;HuLft~xKkpG*?Q+sD8&T?y@+2+wE!HoTDeQpY#I%UXU5T<2Lo zz_na{g=@U)9Q?G^zX;cPS*pk4m%H}=ncxTQdPg?6#;=OOha?L9Spu$nZFru~6f^W2b*Z|jh^(9>E)n2&Ps~_MSQ-$^) zgYQTa{3QH7d+*joxXx!U!>eTqb*{p7UYWgF{CcA0SOBi`*-~(w&sKo1x9L`bYr1XV zI-k|gA=G;QX4cUDr;ykA>@axVY$5+LT<5b>;cr`h23+T}OW+S=5A{EQ>-_W^_z#xf z4_E#l`13hJ{VQ;tpJr|zzr1qY5%SsL%9nz#vHX2-ou4*<56l_rKLS_28~heqUIXAd ze;ER=nmN=T2G{w^RJhj9x8XW}SqRtp%X0WCo9;Te&R@2}b^fvkuJe~eaBc4=;2raY z`TZ4sx4rl2EPS!O_vr$>cDYa|QH!uXBz!j^{Po7~Da^GU^|pK(cq{X)ju(Zmv!7FW zFMN!7dH5Xj2jTCV>*sc=ofRsC`FaHTJ(h0<|Jl3^{BQFo;3=*CQ}Ep8z2U3ch4u`E z>-cj7T+i)}hig3cb-3Q|^bTCtVVA=7ey7jidcV^)c+r}n{X5`#U(;cDcgr7#D}M>T z%<`AvdM{J@mSLsT^40sDvcoIZ3+=oUt~w>)!z^DKuJ<+7gm1Qd9k}wX;J4Ke?Rgxo z_dE56>+^9aypGiw4%d5`ror`jIt%`i)tLuZosZ$`E&mz3^Q^Eu_Q3m?AA~1q5c=Uq zxaypP*R=da_z$zgbW^noe`R(L;rsVSN(Hvz27NO>-c`IWOZ(Z>%B~O!1aEo{P6XSLVF6q zRp&vt-tSZk{zBtWr!HLYYia}k)bj1&%0C0YX!!wf9S6P!zpqJX&p5c=@AMYDx8>)+ zHU72|zRdEU!u8&yeQ-S|{v*8eW1*eL;Hq;C{-|pC;on;REx6v-v=Uynd8q#>T>1U*RhB;l*ZZ9= zz;m_;_5XtFeNAcG#xIvKmd^-Rz9c+x%TT`zT<>>k3fFVEZQ;YMP6xQ&?=%#y_dC4; zf4fy^&#Q2~-|1br-nXzEp0jnRvl6cNJMDo_xBNc1-tY7myl$IN|6jPCPfYW8{Bn8A z@)_WI|55??8Os-eD_<4fvTbNjO}O%H;9D)<9sF^ITNkh${V-kOw^;x5gzNnaD@)Z-`==jgz8gJPQ*LcfLxW-%d!!_P=6#hiD#5bmU7Owk0|AOm! zaf%M{>&ec_p-w8euK(tSKT;*+^TU-d3;)*g_rrDlw*kCG)lmNtxbhw0KU%&ET*s?} z;d=kWD7fDLFb&@8!O))haIHV@!ZRif{ksaj+18UaaJ^UIJGl0rKf!gq;|x4WrO?iE zaMe%!MEr8sdmFODb=@;Byo%K?0N1#8CHNrASA{Fz7XGp2JHRy_{v7;o%Rdj-dC)|7 zXR*rJFAB}ufnzenF&v7)13`h z{zG^r%YOpb{^v`0Kg;XqjOp`N`D4g0wfxU;?XNDwn|_ky#sW{?DSo-@`TcZoJ-=TF zKF0d33|#ANCAikx+HkG6P2gG&J2>9Y@saRk*3Qvzt#5PST5sQl*ReWF;i|IJUkpNwC=8h6bK*M2ECyiBdIUF3&ry4B&jE?Ezr zvv#P{5U%}jXLtw8cY|v`JOn=1^26Y|E;$LFsc>CqTm|oJ`89Cm55sp@{y1FM z8UKYBuM^sH4X%9F&hg7}yyfqJ>pEj;cv@TE%E6Uy48LmmHt;L9K6HiadSx&80L%A< z>w4uVxYpYVa9yvQ4%hX{dGLic-4Eb8e*O%ui_d_o$p_U zE1&+U_~onT3bVrt*!p%ST+bDjf?u@d@*rII=hTMl{+vc|t^Y0IciDA>&Ty^&Ps6qT z4}@#|9}3s{KMt<-e=1zhX};t5TDYFW-2%U2{rm-7+sje7wwE(-Z7&z$Rqee8|G>4q zr0W{LK4^Q%2LHYX!zVI4OhM%ys_mQ!nOW)fKRdflW^sS!nM3!hiiM8 z30M9@xVD$o@b9cW>*3m7_QGGb{yYlT_HqiY?d1Yo+sl9OzwJ6#;%@QF_s^DLxg>*U zX&*c-T>WzgT-!w5;s3iX3D59h z$Pa+)`uJ;bUC*5k@4GV8c?+)d^pD`W?_wQ%)xgmIJK)-neGAt(@E>q3um9j$UMafA zuMZjrP7mMxWN1%Tc=~68-v!rxxCq_Gd&|OGbPaXxhikmI5nSWFt>GG{?FdiXE!6J< z*EsM{xW<8BfnR<))Oi)I@!mJ#%X)|WEV#ydSHkr^@OAKax`aBL;dOci-vigU#38uG zC62%~o^S@Pae&KkJx8CqNBsID&ja6P{eKr+_e(qguh28hS7o^JP2n3Y-x98Ii5_sh zXL}I5arZFY5pW&PPk`%qemY#o^K;?aKQD&2?-QoG9Db@_@O5x)U)$gs|KAPQ_`miO zw_RUsuV4SA_i3L(e)5no-M`@Khs3rWtB(5NHn{pBBV7G(Cw%s_Fx{eX&2MSA?%%5n z@BCt@^9WqWGcDi;Ukmxp@T2Da;8!Mu{6M(wLmLm*c*r#PQxij-H{q(Y48G6uE8sOI zg*sc{51W4hSN;e18q5FYc%okM+q?3a;9pvu{P2V3h2XlMr!2h249gT<0kj;JS`e9sbbp(Edhn?FSx% zXG|K}*Aag7`B0||T-TLef@}XU9@vPUVMdxfFvRwdt0CYq|~L8nt9`=RL zwfwVit%sxFnMQ>AW8fOMe;Yp6@^j%Dhu87DK1a%r4E47=`P1;PEdM)PSuf=ez_m~Gt|!t zA9gW#ez>lWREB^0a#+6g;mSV(f9$1@e+;hcDc#`OpY(<6ddgt9uBW^LUvJZ$1lM`T zOt{WF-hu19V;NlM9joAJ?Rb6*T<6id;Qu?1hW|J=^xFxz&aeN1Hy9W4|H73|(=UE~ zSY!DNaGj?YfZsDd)Gq>8z9RfB%U6NxJh~}-_vldn3Aont?r>d~?+@2?`N8n7(}ekd z6|U>`GaY{){+oTCehAm~^e^B#-rECjYxBDgt~$TLbzFA|Uenf-Tl&W@U-ermxcV&% zT>X|GuKp?Icn!y!!JCW;%eNI=^V=J)ej5niVReSURc8`h{WcSx>ATRLcj4-{6>yCY ztc8z#Bh>lI@t@#2E;<8OoutpkFGn3OrG_hC(DCYUoln(+tIkvK*KNKAz?C2E_0x>0hO0g0;Cn3p09^UT@P}rE`pw|2!pCf) zXW&{t2gBdDIxoOgXEMCln_;@s;9pk>{qi1ss^yo#b=_nOT-RTA!bi>t)7=AConPU4 zUhEwF@wuVSMYyiBq!<{#eAih%65 z`wzhXvi$e(^_Kq~-g04R&jq-ihfOvpetlSN`P<+c-@6l@Z&9e97rrxFs9Og9vgOOe zb)Hxce%kU4;j`}!_4V`Fbl%tS-O!%S$gjR9y6ho81+LH2x8T{{3)7tg zSDjDc&su&hytz$xAAFzX55ko{4==kowC56hhSg8`T$n%g+ce9khAW>3{;%clf*-N^ z<>0NCg!ViDSN>u6TFXBQzbi**cPDu6rJ=rlo}T7Q`N7B!v-}J27fOfvli{Z=KMk(@ zVtA8fp*`=z4_N(m@Ku)I2%k|dwC4!C-20*a3Apl!2gfhpk1U@Qu6!YQnGZt!VsPaj zf^W5aeYl>->)AYRiv;>pI0Wc&-(p{+sZ`w%>RkKFsnT!j=CD{;TD8 z!*yQv6THEPp*_FC@2eM<(|_Fx`RhXUs>#N0^U?E58u_pXC?B+kXL-4(pKMb$3D%8IOuWx=Cu6*X9@#}-e{qBT+YIX9$8-5z5TL!-2o8aZ) z$~S?x+8grC;XBRy!4H`agzLH53GmL}hWf9=m0tqCVEGT=x}LZR-f3T`zYTuY{1iOR z{*XTlf6hGd^YP2&Rr93q%jOy3sSbqtS>Z#?i^3iiBr zZ2m7?*RxW;5Wn1W*m+zI_&;`@m>Yi0yd?aVnPEAWho?8M4ZqX89$fdSc7W?Rwk!O! z)#(Y>{irX)^*J&IUi+=k{t0m1Upfyy$MOr|%CCoCvHT{u?l0XBZ~k^@&mp+-7vL)_ z{}(*%tWYQ8utYb$bex&r{0?|&^W5+~CBpwN2On$s2jHj78^ixJZw7BTJMoPP^n$lE z?+e#?%4_hImLCVtZ0q?PxYo~);R9{G+632j@fBR_=XY?eZ$H7+|7YQ+t(_O(FWNZ9 z-|&7mE^!rpU{B((yoZP7rsb}2&Wv!4bLNJp`YhBb0oQz$h3melYH-~j^)OubN411+ zUl*p^1Af4~H(dMMk?_0OMhWov+{;U-}V#-?lK_V{qj!z-L?j zFS?BOPiKaNWmpCw$)OP$w^3_obA9XIc~T<>AWLgTHL~hH%}N z(gA+S@=wB*9|-Sa{V)Ws^=A@1h0X6QxQ@3M!F4~z3b^jaSOwR8EL-8aPvfBDXW*Ib zc>Ww*_faGt8Nb~1`Ir_y*6L)0t4Uc!e#O?4x8YwO3iJCO zJe&2~NAR5H>*3lScfj*l{%g4A>u2~V%m3+kidW;8m-0E`Q>;!Nxca9&JhAmdMYw*B zXG3@w%QuEA-vxfVt^fVtx)1YtxbDLo3Dpcm-zz^E?ej2Xv&m^zKFL&*S)4+9}k_A5PXy}I=aE*(Wf@?gd z0{rq%p-v^Z#yK0oKmIx7o4}Rt4u9sCkbfGkan2XvrA~(Y2)OcZ!`1&Q;U{K?{#^@K z{#&@7)Bgc}*4lFvuIKdsg6n= zxW?bUf#>=wv~xdP`BQK`=lGA~smH{x56b6->$%91@K)BIGH{IxRfkWqd~LYKZQ8;$ z9{41Dm(}SC*Lm4cc;>%DzYT}$Im9XOc9x$G*Ll-Y_`8;04p;pz;2Hl3?b!)e{%81L z%b$X)JxRvKFUJ#>PX<>$A6&=D#o^k|-w)U4LM^z)CmX?so(=Qc2Cn@;2YAM$VSakU zdz}e&`oZRFv|9trCR(}y(^*6&czq{e;&+p)?t^N;iJ$H5ye$?{+z?IK3 zE`GVEw0_P3*Yjwl;iWBK4zBwQ>%v=D{$aSDi+mEU?YAfVjde+GG`tUdr}^`6T}OTi zuItpZ;rCq#>&a5MoIMfoi1=~chA68e;{1-C&Qa=2<@B(@3=AeLb&R0fcM=T@>}4ew*=n@ zuVeYc@W$pR;jPTi!Mm8Jo*2J;=i2s_1Fq)~bHj65K0mx!icq%#T>F!%a6N}u7rx)> zG=bN*>9&XK{I?ri=fBUub^bd9uH*a>@O*Y0I~lI=+nI2U-!6rp{xfWM%i$W2-3%{$ zG32+ymH!_8q~(vmH6D8bKF{)h!Ii&lQv7;y-12GQ8V|V(e$+mvO2M^V+z;3IZ4J1_ zZ|lM}Uep|}@!M{W4~6%%b`FPY+;tjU$5*r93#`sOxaxcg*KyP)_&i%rcEiX z7+mM$qv3kqZHD73;5sh)46Zugz;(QI2(J8}j;DV;e!1xUB|BVo%E9#5w{-u8{c1|M@_FHpTD|~W&kt6E zYyGSXf5qxN3|E~F@UJZYB>d|tVSWa}lm8dyYY1HT;Y^0>ex5hsO{~r=xaxci*Zn-} z;0vwJM!4?7*$3Ze`Gauf&%l#j3G;gnuIC3+OpRaeSqg{m)4}^%olJ1mDF#23CDbVm zKWTN!!S!5WU3k{3q5TiTm2VHPZTU`cJ%=~|KG5=m;d%~n9DI@GC&Bd`;ydu~E&ncD z&mpdXr@j{E_j9=Jo7xMnWcdSdji;T4_qP1+aNTE>WLo_CFvs%A;5tvt4&P__JK=f` zu@pQ-qVRciA6)nU)PPsD{6lcvm)jAp&(rSk9#-dRxay3APq+MNxSlJV2j6P>g>dE9 z!!KHX6I}Oq?S~gg9Qy4LT=}!`rj|bs*L_?`--uuCFIzq(T=|^vk1U@DuICC%!%tYg z99;Rj@Jva<{5}lVeO4XdbuIrST=_xp=Pf@JuKTRUz?WNo0$k7iErtJQ`Q>oscfo7i z66W_Cxbhd_<1GIVT=^{1j#WB5SJH-qcCz?1MrmhTGJ zbA?0U2Q5DwuKWymnxvuqZ^Lz7wgO(o@*l%>U)C4!ftKG1*K>&9!`E5<2wcx0{sq_g zz%_XCWMRH;nGwHy^&Dar_=A?u0oQYgh2hUy{%*LQL#z&8X8GE1-A~vOe#Y``;mY@i z7f&AMcMx396^@}>eggfI@Hx8(KGpI|;Cilb6MUEDx51S^4%fKfX?V&MVZMHc>$$=t zZ^kd*-I+r^8C>~%@G@CKz93xBAy$X?wR~;3o-2GD{*~pQfGhtTyinHAp6B7Zem4=` z$?{X+dJgdu_-f0qhU+=RUGTpw{|#KvAs&U_XXnvB!Sx*C-|&8x{|~O`5Yx?!U%q%NO~@b#9z2vb~X#OhyxYrG}RtoY^lljSqOmCp~)l{)l8A-Il{%fOpkzC2vx19jjN zE#CmH^ZmB)uPomIuJMGv@Y~ab_CE{Pb5$eZ4J|(!uIH*|!Y5jOHeBbqE8#ld{~WGy z;BD|7R(}Uv^^d|eZg~=(JZ#&DfqcY;4>`KREj{~Ua^<)4SE{sj2HmVX_t z=c?wwE2IzYe+RDf{T1;3mj4*8^OWuIwU+-1uDtF8)pAdnA++Zt@_O#+GQ6?nufmnj zJSTp=`poj#;mVhU=g%10QwFZ%^IGt3mahv}zCC=m-u<#x$(=fcFH6-AQfEK zyK}=|wtRlL@@3(hEPp>-*Sj0QZ?XA$1g?BXcy-HnfonMqg6q& zy3RWfuIuB=;kur?+3^GLuGY@);krJ19 zIIuWe_xDzUXZkX%Z&l&iPFuir9?>4&-|BRN>o})ByhZLX-524ye{UqbNA{2(4cC2i z3*c(!3b?LQuY;@Kw!-(?biagax~Ji~fA0c3^&O%8f5CPCUfTKb%e{x?Gs1OUrT~14 z<%_^||K0=eN;yM&D#LX@UVHebmhS{tegwSSouU3~aNUnL7yg0e7r>QY2QQW@)ZYl# z{dkAq8!UequKeHdy0+XCzZ1V)v|go#YyHU#-)7rIcDR;%8Tg4DVZN%ubst(ScuC9G zh3h`Fc5t=73tac1^@i&{wCCW1Y`P=ix({t4T=${Pfa^ZAd2ro_wgmpB?Kf7!)&FbZ z&ukC8sc+%BKjbI)S)1-zxTbpvuKjJ&1@Y_8wH={7DdF1R=7no{6@hp8D%80L zuKn$U@IwVdz8+lr+eYx`^Mrg8xb}O!;A-b{aP4nLz}0W#;D6e5C&4w{6>#luKZ7^Q z7uvrLuI+9={A0@>f@^CaZH1uKjJYcjMQejK#xrGs3mM%?3|iIOKD}wcjfTS39f2wZCl$ zSHCrb_p#}=f@`|Z!L`4A5<(Ebr{ZFg_Ovlb2cxp3`oKZ5tM{3^Kiw_n0fTYeW@ z`_FUmuEj!oF2a@1`d<9<{nhe!z_tG@4exY!s9z4Qd_(wA%QuE=|Je;b=$=r&7hL&~ z@ME@pO@M2?nhDqXGasJq>oDC#a4q*u@K$Ijx=9;M(8jgKK|V46glc8MyYhmEg^7zflXW{(l%gcxUMUN8#Gvc7khv z+aG@I-caX7xW-{d!!-^w1+H;0$|dF3)D-;rF8*N5c#b7=;X=Rlod^6rx#lO6-^Co}lCN8e<4e97 zzM5Pg-!_rYYGnG~OJ29Dss9W4lMjubAlJ`7oFSjl&E)?eFZs9e2jpwo8TZziUtjTm zk?+%~XCogNV{-Y(ccXq$a;;O3TwkX(A=i9Y@`&nYZav8L`|qR4wazSuuX6Yg4nObk zM-I;zYv#oBe4BhF*7Xj#uB#6DL*yHfYrZr2+cnJG29k%thmh;%3Z|0l=M!d;_duO_ zzDi4*3)0n!iDwv8I{BZF0T7Bgy*Upp6bS35_iJ*!PGk#td*pYJ>*qQSlg~x|7`eU^I4`L`7L%D$#f_z_hlkZGkse$Rg8+o@FlmCQ#IPxROJ0>&v+2os%pHHs& z4djW)Zz1niG)Z6wN63pdH2ohZ{|ousB z(ca($gShrA)4rxude$K%OY z-$vdC{v-KN z_;K=y@XO@W;djXw!T%;-0Z+Ll_;`H>f1P|cJe2%rcs}yy@Gx?(i8)@S$xFe*$;-iO zlJ|i}kPm`4Ctm}PB;N?{LjEVbKlwBGAo5a8&AOtij)6=Iwi@qPF-?+pRFl*xt6A%4&*ww?&LbRf#f>3QRF(GsSb~E_(t*}IKErS zb-jnlb#A|rpF*9pF}El z|A%}yj_-fuy53CNgO9t;?M?Els1r)Ab;^?K+``H0wKj8mk6h>0l3eE&Nv?DIkX+BV zLF78m2@ao6z7)rIF}bdH6S>Z97y18CCyrd}oFdn`C6G60W9D{`T<7+fT<7NP2tK|# zxAf#XpBxS^?(k~l<8gdzk?VTflIz?$lixy}Zsc0$Q}X{mw_U;OZQkC@?LK*1_(Sq8 z@a21h>+I`p>Z~Te0pCLYXD0LYd&!?7e}w$6o~Hh3@>xBMpC`Wve@OlU{)D_5>c8?s z@VeT=GmtNV=ONz-FF<|^UY7ioUP%KxtVmu0UV}V2yfL}Xvn{#KvpadO0Z9Y0J6a=kv{U2?rX zq7nI0tg9)xUhmMAeEu-A-yYFznXmf2$Nq+uJ5Pq zBY)#FlmChQGW;aDo<9lXdj8xazl}N%$k&ZA`~8nx>%X!;_xP7ZRdUx-}m zmnPTx)yQX!HGS41*ZDLh*ZS?rwSF)1BI8W`e&pK!2y(4IkzDJ~BHx4h^T@USa&oP| zfn4kFA^&Q;>3<*jfAACJv)~uV_209&LazPXBOg7%?DqlrZg`R(gU=tWpORebXC!}s zI$6leOf>r~K(6)QCfEAq$ZJe7bt;kTc~zHO>oh0VA~GkMEdrv7&Fjqsnzb^gc6^?W-`uKipkFFV`p_daEPzt6W+kVnE>lkc5t zcKji^KF{_e*XP+mAx4b_Sv6Y`x#EI{Y)UAi~5tv&%@`C>wXuK z>wZ^|>wY(p|GdhqYY+L-ea4TF>-lhkT))q9f&2vOB#<}RZ|XlF*ZPmibzMmh2A^-b zt_UpgxU*)RV?}z02Ir(1Xi;tOnKXU!N`sd{OIlbBB`uVG+noBggO z*Zm$L*U!nHB2PSP>YO9j&w2hu{=+$we@w2Q$4LFN8LU43Og(S%>B#kS^0~-|Trl}O z# zuK9E14SzTJOXPK~8^1%Y_h0Xq;N$YzO_NVfeit4>u66Q|KR<2iyhE;^pD#^b?u5yg zC)dxjOG|S7{Co#;{rr3n^5@v^5OV$ed=$BUetr_Uetv#Bxjx=5B=4PQ*1L*a zA5Yej_q=WL8_4y3eVAP5bCz5mPp*^e_@4qF;vm;-IT<^aP$o2ee zMy~hY56JcY`yqKG_WKdJ-hV$O*Zc2ya=rh4L9X}Txo~-%Fx8AUaJ$CJ%j=B;z0K>5 zP2}bK7~e~EN}$#`D?d|gl=*|pmP`G@eNCOaRA-rqdua}v|It42v1czo`A+2Pk>ll@ z_aXUt+Amxk$8MSYHy zKlzjLJCJ{7%~j0z#nX;e0Ai1u<}n$iNNjLQ|321 z&r5j0I`ed}$6qtQA9E(ymy|R2i)rMu;IqgN!IzP@!2L9qya9Y0c{_L<`KPiFe>+63 z`RnAPQRg0cSNPxLz2PZv(&*g!!(SsG49`if`>jE~1Nlbe>)|cPm%)2qFzeQSvd5U? z((H1uZ!2ydINFlydb^RYMgAjlt@9=Mf$XOKJn|n=XBoNvyUFXx4W zx$gH7xz_g*g6E@ka*@}6$E>RWxz4R5xt=Fg$j_qB`sCN)Ey*9kJCSEWKYhtV;h&Hf zfsZHG^L9FUIpi0U>-n&nyc+Ub$aQXq$KYc|Z6L^1<+9#CA@=fps<7)Re*_=*XYjP-X>grI7Vtc1{0KZZdCE>^&eh37;I+wX!#k2UhJQrf0{$`iDEM^paqyMoli}Z! ze+fTIJ{x|Wd;$D9`BJ!dKX{&p;kn6A!1I%Poy|P!lc$1rC4UtjMV=WRL!J}9o;)x7 zd-5XiU&%|sFOZjq-y^RIe@0##{`#N6b885HhkV5^CKpcL9QpUj+rm4OcZLrl?+G78 zJ`g^Gd?lW4V_&WH~$&`C523@}2Nv|$$x>@ zAU_GOPks^Jmiz|1H~F9NPsyLcr;#V=YR;=AC4UosoIF4L8hLT}Bl2?a z6n_ODmvDF%^7`8I;T=LK08_7S1ZzW#^KTIAAKSq8Wev|wh{0{j) z@Fb6e=a#gaIe$`+=Y{7WF9LsyyaBu-c{6wfd0Ti#@=oxN$$P-3llO;zM?MsOkUR>0 zjeHXPKk_f(xt;{iZ9e=R@)&qH`Eqz$^0n~c5@NeMqsS0x@n{{rr^3x3kZue2X z2>$FSc{uzkc}w^s%ag(6mkfWK-{|{A-7}cqze(N@{fCjygI6HeI?c&7-;P}KJ;)cM z{$TR2;h&MOfG;H1{VpTd{eDlb`J?3Dq5gUD4e*=fTj9^hb-$_p37-E>TbmaBm`N?%%CCM8hUyWSz?>oFZx&EA@5e}b7u0OwMA-UFBNv`=#SZ2{ zJCSSsp$?zs@NXQxj(iICyOn$?d_P>eP9Eso+#IL;fhVT_%a+UYNI!hdHOpuD*8RE3 zCt5D~OUOU6T=IR8PlA6hMUI!`-!tR%QdlneA;@R6T=FxK&tkdcM-}LlcfGT zEqb0zM!vk2mpUK7YgsOJK1ZE;mP`Ii=(!@89@aFUuvb z$MIwG9jG(G@|l4O<|f*5sb3WR%p<>nbuEYMc~S|r_E~wU9}YicxztaNlj}F~@3G%Y zN4_8VFw~jl@SP67LOvFC zQok_&qy0~U=Y?yZ*U)DP%FC=}Yi;G_xI_v1TPMpUy9#seMV<%s2a#Vuel%SBoD-<- zd0WVr!4F$?q@P&$Da)lF{XG9=@+>LM7u==#t5GM7C!KhKpW7z&@phk=(Q>JO7j<%w zFNfzNFPloLdR{T|MyZWggzFrBH0(u^ABGRN>PVkqrfvWDyzF24oQe8Vsm@u{Sxx>s z{HVhpIsAC$SnmdPjd4=>QV3taQSlSr$73sZn^Yx73*qDb-qQNzU2CC*s0`r z`@!4b@Y4?e$Kg3s1g}f$S8(_Ta9wW<*4x!`S#QyF{*Av4v^;P>LVmdAk{^QnB)HD` zW8_zokANR`_+JjsoHBU5TBp3jn>+ktxXwYZn~Sns))j|!O|@L+5Qf)Fvn`i=I=nvo z2Cj4X*|hELCqDwe?eLIP!Ryt0DTlXo_&|rxB0qtCHaYyf!*9W5o-&8^n8Q=cWp0s} zTZYtTM>_v#cs}wtctyB;l{}7R!};?8zEth-=ypPuxuJZ}QdZ&?>fp2p7Ifwu2@X%L+=b-f~ zJG=w=m*{5%T;~&o`HZt%*83^eJDuv}#c^Lx9uAKuuLb{~!{107ye`eZ>+nd2k8t=B zxUM%A>s@KNtoJ9ZceCYkJ|rOjz2%ZG@Tz~~Z-?M|KD5Jn?~r$bholQ$uX-7Ww{rM! zhtF~NcJfuG4eu`b6L`Ax!F_r-f8HY3$A|Ldn~`ro{wusa`4#wZxEwF}`@X(k^rgcW zT6OReSq_W0n(`;{e$H0Q{s8m&mP=mW&v|CKbJ|}-}u{iKuY= zKV1!b56Sz$LtcG(f0X|9eVCkZJ-(^3m@g>e$k!nsi~4;WKEvVL$-h9I1af_!;4i8=hZxi;0hhcSmlzzEik8c9Ns4*aARi8INL~is8m{|YhW$<>-w0o3)scSU z(a&1TrJv1M*H&`<_eS?q{cWg!#mYeLg__ZdB(6>Wn4F$D+K|4v%;EV{*LB?&ZvA z)~oBn+aq3ixXz(KcGFO8%H!pV*VoF+dZV!3k1dz=-o>1w$h%?=lgQtK&xUKCxSM#t zlIJwb@vd5Rq@P&ybH{S&X9?Ezh`cpC$?L)MDTw;H;CjDHME!!6OZ^gW_&5F*Mt%qN zE0BMRe0B0!IZU0#aGgVS^fQFKK76`WN9GWQC;vH?OP}Xa{~M~)7IpTLe+a+n@bsBX zKyGE1nlD8@0Cn1s4}lMc>vB*SnnpwWxb~`=iTIuF^2=> zY2YW|x~@s+Gj(S3Kk9SfZ;|8MfZn?f@8s})aGgU9%wd$}vfgN{ccSI8-j9)=MfI$dvKk@CagDow&3+{hnI4AYln|;_!5WjboeE>&LIlxx@ozr>jBpF$a0xO zEb{+aF8O!yIy`Om;Pt+O^}bD>5#Ge%A3J=$!*@IUtizv^XGK3b@C^t(j_TDN-WaZr zGgmQ(4wOHF`Xe2_$l-ge`ZE6n%>SU}GXE@Z`8WRdo8^)Z!S_KfSuXib$lrzQdYhup zbUA{LBYs?mSJL6F96sFPiygkh;TOptqR)TedOn9^y~*A*{p)dAi}i-Ub-m;8{>eM! ztKf~u*TO$?_*{qYboeEQ|KsqSc)_OY?T_^quw0JsQ>?d?<#Im6AYa*X$=3|^Z~U!3 zT<5a`>+MOt2OjP4Ee=2H@aGQCmMi!?)csb1>m1^-u9}w1x}rm6RsQ=5mIv+^@`e7^ z#&XI36)Nh#PXpIET*G=NlHY=_b@)k#KXLdQZw0Sc>z8$SEAsQ^%e`pwD!9L_C(nxh z_mdZcpC+#X|HE>OGBCF%aIsnbfA{eISn^QQn7GWjd2av4-%?vHd3}E@v*nVnmPgW_ zm)&y7>-%E`ESG$Wyps03B9=>DKkrn|a>*}5zLMpV*PmBb*K*1C%;(?uTSLnwe-!VJ zwYFUHN%BkDf4|3a$)85Pr{$8Li+o?pC9m(-4YyqKxeNF={x-^T$?N-dQ!JPKYUHCW zm%P4T_Z7LmU$@qBsZ*+;f8%c(ESEa^e%&6+B_CQ@(w?`^a>?uabw|nd{kqGR%l$V3 zC*3W}rT&NL=K=W!_K{b|3BGs|-bTaIHM6RE+iYEUQ`9)O!7V58dGL@1-=sR88LyW-U+|pq?Jci}!y_C% zgd8smy+!0`!`lXz<0yTmD(2t#+X2eIgFf$Dd0B5P*89YAsdE@}_VSxA)cUnChcx6K zJPTaDO1`EX_S=BG7QB;HNBT)XKfNrMexk6hLF5(Tqv5(=eIIPGm6!UV>HHgiTVc7> z&saRbUM%?`)Zb3t9{C^0hrDCz9EEE?J+a=$YpQD2>%~k&yxq}Ga24E)jpRY|2ACL8;$jrwp`Y`6?1-< zJPh?~lix_f8vC6{z74*_sw4B)&)clDT>9x5=HK|+dh&em@2UQ7)IV?KrM{P5 zZanXI%ccHv)VW8#1^$@4Zizq{?*(~eN#p4XnFi!mW_=O;lp?Jdr#VUjJt;YzoS)^qLM{5-uivo=2bIl-JMscenC#T>4|Z z11y(1Ut!LlkiUWYW5`b;9}U+&-$0)~k{5zsu9!>J%Z5ftMmLSvt^;SDCzi8RPZfI)}RGr$2cFe2P^^<`9~} z)cMkK=`$Mj7gL=NP-iE(elGEf!&AL&=A(UTz8LvH)NfAyF}xpK&%+~Pcz^P2<)j<``~T!&<&BSr>l`*>z2B1W zg#TpKkv_dwO`SuQOP@nf|18z{33VQmABX2C7Ce9TaEE_Lei3!1kY9x_hwFK`27PX# z{2k=aTX|V;7}oo{<+9!ZnDagI+wjNa-@ua<4_HJ(x%6`h z>*`8%TH<}4vE+sExwWs!i^C5({GP)@@B&-UE3H$?;f)6Arkk^1;cX-;c;Nz(I;tp@(@IDTYhU**>v95WR%evyQ zuH}}?9703<8-H78x#ZJT46wHwu5)OH^o?0~U5QxNRm)`#3CQ2ET=JDG`8WRdH(cj12J6jUDtNt<;Z+^p)!`EzzQ*A{Is7(U z=MeIm>HneSvaX3(msi^KulaD~(^xL~lgMX<>m26e@v|KHQg}Ouk8${NhyU#G>kdy{ zCiu9lKtBZ?-pJu?;W8hY!!W$B+l%sFwbJb&G9VYsf>zaTZRm9$*e z`vulp)p9u>!jZ3Qx#S-p-x99#d5HB6A%6;A=*sTL9k|XR3hRon zT-MdBihtv8`tKlVJ{I{8DZd%{L9}1}yy#5w%=rAC{`*BbH}wQZK3T=!^=iI=!>c>I zD_qx=h;{X~T;`CqYG4fBaLeU<2z%Z5Sj#0p4EgDBT~}_bcLRB0_!)=)=kVN>g6E)h zYC1g9;bY)BhyGaC6w75@=drGNmdhMskzZ=LO?KdHp_kW6LE!q?)At`?uwi*YATzS}ytP$ak?^@(K99^B{8l zKJRGDrOsP5{2PB8XSvkT??+F!T=G|upKZD1_2+VYZMo#T)bnrrZH48M*Y68&B-if? z@3UOa=R};(hb))+bJ5Rlh{GQ`JbP6$ zAMJk>>Qp5k3vUhAc{V_w-6%g5`Ds>Oj!OiN%N)z)xV(mW#*lvwUqxOMz6GxROD);% zkjDhnzg{HVtXCh0qtH)U%caJCtSb}wNO*3z?spmLSF!T4-dNPHW4Y9CUdMbv1bGH{ zYx2eLPUKtanmYa9+E1KeZx;DMc&t@N`b)AX0dl?WxTeE9IeZLU=NXInOtD<%GZ6EcM|GOu{rqj@`hB$1feu&*Ej2xIx_zl%q_j;QfB}Lk%jzicwV?vlRgXh|H&3^<)wZ+ z>esVe>i>&6P06>y+mhF4DAoP*jlAu9#s|Q)pK6A^S>$>?tRruM{4T2h73%-&$loB3 zM4dDZ%$&6!^`Z`MO5O`~hLHD%PlL;GlzE;)p9?8J6#2bYUXDu$?vTG&E_D`S&L_w- zqy7c*qsadO*Y$pi{pP|85B16LGUSWlO&s2r{2SyaldpoWb@(xdKXQ21_kxe3)-UDo zmgJYv&p?NNLH;}P-;)0UKkD$m9Gm1&3cvFWDcKBR} zZ*ur4a-H)n%XMZlp~rBYb4ScMWz(1IlDvLR4!EArahT6LJX!27{v z@3K#w^JH?J^IC@=bNC~NXT@Jgb-!A_l*3z)>zun;juH5)@PGayT<1Iha~?-|o%4Jv zFXwX<=ChVO7XAZy0{j$t$Qyxny!&ujuk@*Nex>=#<1VgqDCY18hkxYo*$&^}@RQ^^ z=Npz|sey$(g6o_=!<>`1c)2dg>zuR0^?VM;e2S6xhgTzyfwv%!hxdWY-etc!=Sk!` z=WiW;)Zu?QJafz7^=kbR4sS-TbM9(6mK2!tM{u3<49q#oa(TU%20I>W`7GaW;rkt5 zS}ys<$j`D|@{f^U2A9=IKRNvWWZPlo1CRgsgCpc&@T=sJ@Wlw)#!{2jwe}~U-_!fsBclaan;^-$6-YAn*U`c^L$phEps6Vf)B<1z~Qpd{6oa0ce zEqNlmA9?7TrlB$95%2|Y?X#YVdt1rz*EsK-!~b=7XzQ29QCieGH5}f-;iJimpwAg_ zo#$S>zp<2Df8O19pXRM=C;AdMf17HCx2x2TaH}w?>qcshfjC-E{C6X_&tXw`{4gxS6+u# zad>lw_aN^%-ppqxxz1-a`De&aA)g9gMXq)BJNyra|4qJQqUkd=zR{rfN3CCg{2lyY zqw?f>K35~x^SKVW){h|9^Z5gEJ)e7%XPIpJA5O0I$CAe(Kb?F({3~*;vzol>6tmxb zDDyG}Hema_xU2`OavQpGjUjgL$0%ihK|9zmRMF z1c!Sag6B}TtEr!oTt9*T>-{B3vyjo z+Q{JJuJg}Fu62r$Yn=+@TBj+w*6HK$aSoqGzGk+W^9pjUA4|S=pvmtf-vB>Du63@E zYn^-KS|_Aq@H}5lVb13);3l2G$@M&ZK|X%InP=Kg!N+SdJRiC4 zx1z&aIJ`Z%&a)@E&T|a8?sp2g&TSdF{yT2#$u<8gxjr7ACfEHYkn7{yUGn!Ant47Y z*Tb2G@5yz)`^a^_N62-*=g4)xH^_CrNxB3d7oFQHF${91?q?C|>zPu}(ao@a4#eS9lLuE)0?x%SzV zTwjN@C)eZK)8RuL{u#L*-)ZDISD5+FC)d|4%gOcp*+{OB4@by#4!@J@9PW|pdjEEK ziVuU2i{@V=*T=D(L;U zxt=Djnx#T}bzK-RRZ;krREtmXt z$Hr#!J&%_Go@KmGsjH>&*_=el%Z=e0|`n{p;hbI?_)9_S@QWnL{+m)JIr!>&g0>_t{wi@$hOSk2gvuBxOd&*$@`dj zYJJV;b$CsO_k_!NDDw=>X?FZEc?5hMc@#XFJQhCNa+%xFrl$UU%Vlo;a6T-zT>42w zopqK=z6A1nESG#3K9G0Ja@lX=X8w)8U4rY}wwN(`Df$M_Q$4@KYdO3J`Cioj1TJ%y ze(s>336A_+$}d8G1?7K1{hu9v$KmPw1+Q1@lyG<(xSl7Gm~(H-WnC4T`#1hJ+HyHA z(a29DkAp8HPlT_5OSf`Ye}whMIsA936Z)3_MgDfra_MtxivW9%$#cJNJXwFUqyN8N z)JbQ#)aipdnaR(#G(8$% z1lRK?F*FeKN?0!S%d|3Hk-P`a!y4rCk&m!k`VY%(>a@08>OV%l6Zt~a??v9WwW%}I za;e`R^`k78`bSY`68TotnQgh$iA9|ymP?(a=yN6c>uvl$^ta8HOPxg2`QCD=(+~My zEthLoth8L}B%scE z%cV}X&i;+R?I0h3IzL$+m?tg_J4qe^zd{}b|C2lx{vSMv--De0`t!Il4H7Yr4}t!X z&uO{zU!qGO<`p21#Jb)gKLamMJ`8oLk@xFr>Nm1n`Uxv&ye)Yoya#zSd?2x z0oBRX&E$JnF8wE<{~3-tI~;z+;i-n0^=hAe&`)`X_i*@phyO@E9`#Sb_3vNtSnp-> zMew^+=R4H-m-5%To4KX@IQTfGfWHpc_5Oi6MXkKdIi#?uQ^ImNA1e1SUWMv(N@2V$ zd2jf~L$j8FBkr&v^9NklcIQ|3iOkLmme2N*)RCWx4b-taqS{ z*Uxh4=X0!g6kLzXVa#);!(**F(tkAeyTx+Z@2Os9zdJ0K{dTQjj?+(;OFk5R{%X18 z*A_Q(J8!w{HxB##-EyhZxUYZXZ}-R__c8vDh88tm+j8kM1^Q`BejM{`MZN&@=}7)Jyf0kOhu?5M zOtbRRPXzjzW4ZLRe30oghWs&n75TZ3On!^yQa>8?_gF6Vs|+^zgXGiT$H>!Tzn3hR z`thiL!*Z#A3U&S@4@aHnmP?(GVy2%IBZAMLTtkd!ApZz;a#${PB2cFgx&AvoWyoWZ zuR)#wZwlArcs7;kr#t0CiW?tbxy+&5$HqS){}AgMLw*T9g?tq1%pxB+)YM;Uxy&IF z{j4L8hVLeigC8PKg#Tu_tSc?{dx`uE`n*YA75RTGmp((^G5x3d^yP6697lMF<+9&x zsFTxj$wwid-*U;{LB6Erl8;5clI4=mHO#;9x4M=~J^}eAmP@_~@@>e+!aI}ifcGZ9 z2OkF4^Q~TL>BfKEVdbTtkgx!I%Pg0ECgAaKgXNMBNB$JmFNpK`KZh3>X^xBbqxpv9 zrBP>y!($x&i^CHgo@rF@dD0*2%4xaGq2@p{p919n;d$X5@@??)A(DN(|a6QjEqtB97Uiu6z>EHNU zMa!kmVyw3w)ftUCoyb4O>#Hb-FLrnwT*?OKhJFr{N5jvN$HA{zF8zOs*X@aLox?`` zd)645C+cLfTUZ9`T7;L%hw@DN81;Z?t zyneoAjOCIai~I!3C9j{KnF-hawV#a+KWWvG;}TZNzwx&#G zpu;CPdKX!PkapntUp0eH=SZ^k{uB$WZhgo?!zHvBS*wlTfD) z)xpaZuLJpY+%HBte34aO_Uo0F8~^WHmdk#Nj0mu|(el7~i2N?gB_E0WkL0uAN63GM zpNH#w(xo-~O*Y;Piv4YeH*@4nN`W=MK+5G5EM^ z{W=csMP3yBjDYJr7h(RB9QpZ_?}q#eNB(>AO4#p3hd+0Cu1Ue`-G@5wz_tH0qs;kG z*^z&b@+Z)L8%KTs`El&`GpaKf`~AX^kD+{3~WN|WnxsYf1x^|mM94j)La$7KS!&TS$2P1IRu`6To%zZ`(;@m<`(tmi0s-bmwT z$a}!AkZ*wBCePi`)OkqW6aJk1EIh?z^L5&1txo3m8OS%ovsy0C7YTSh{HEpde6b5p zgoQ1adztc)F<(E>k)K8W3+k+P_yLEXclZ;Bzdkj1UAo_Jhxc*#42N$g$HR$t z46gGTkNMoEJl>A=UYi!&=NioCP0J_3BCS|4R8@$R|)fE9P^LT+gc)mVbt<{F41kGdG=2|5oPrIW4#E7X>Ys z`^9DC-?rSoUzCSSRoSoJFKSUE(j!+}>+rawQ%48kBzn`S%_9?v&S`r#9Y^pF{agtxZ3h9r**4*PkDE(UHGT`9`Rp zY)0^W^gIk9*W;LvT<2NV^4x(VVs74p>zvo%38Rf8-;45ZM4386Etl6Jk@$P=Xv^h% zjzoT%<&uv^evajmpMiV~`2qMU^1tC*;4(c~uRgDxcepq6<(%z&eur0cczbevoE%PG z*6&HS8E~C{7d&{xIP%*lUjq3b9r;s~|8KO}?`=o^8RdUP{?%E*^U?l8;oARPMVv7lj)x#~9`CPRpp}!T;~~yd6p%QhSwyIgEuBmgtxF<=5}nn zSy*e!XZfVpnRc~Yj&B&Ac=}o{dA-hbq~((Dk9@S{vfm~X{2PB;1lQxT#f-(<@9^Ip zo_s;@Jhe_C^1Y~E0j`ge_s~ymNB(`vFG2o8%Kw7;6CJ+V;fEZa=fC?{KtFpFnCY6>|GvLA7Q!b&a|n+yE%L$)sIH~36@KXPtbof`Fi*~@^`VW6_(4o;!%Gy zx%aMF*Fo|y_%X|+^cK`VM}7x>jr=V%J4FB75=`#}hO&Sw?e3#3MBY#Uv{s^9l z{G1f?x7?Ns#h`u>%cb?ovnB0$rN}>rS0+!7{noQw>L;Ln6U(Lkanxx;9*#QQESEZ= zRs0)&>uHj);C#>r}`8oI#^5LlCeHDD3447x?r?*_@&>#K0K^_AyL>><>NA882`r($# zx?aJ4>ye*EpH0cDAm7z;=`#%V2a-p^hg&ZD-HJLBEtfjc$VXc)`P;}ZvRv|U$S=2C z@;T@GH~zNKa>*x#i~8TcwOsNM$p1(_27ZKmJNz{HUHI>CJ>T>?(+o?^aaY&tOmo0r z@q3YeLKpZq{#M9x=|8kufW4-UI>Q_us?H~1ipsq=yj&MD1UvSna_{pso=+{j$UVa$I8o`BQWPg%jLLKS!C+}OLg=*(>J~e zo{wHY6N8w1z<>UE||th_{HP-lhZQYQlI-9mNrI@4dRywpiRonw|uo!O}Ko8|J9uh*Gg zwp{WF$X~Nu@_L==JldA-i`Kg*@hkQ$QqUyrQ_K3?JQ?BxC7`N(77 zMJ$(ohQ~;C&ns@Z^rN3ot^(KNqSu)=b9g_ij`Sao{SLNV_In0%7-qTbSFbZ2Z@J|2 z#P~P<_POPf*UvxCw_Nt?)s!3m=l@wQb($;XZYx*%H~!Xv{3*OU`GplGKiG1qACLMYEtmS? zt4w|Zc{Dtl{8j9Ck>yf9q?W0(%yOxJ26fhwS4W+lmP?%o)Y)&j)CpZ}>K`T_j5_Bm z56lyFZj#5rACV`*ldgJsK1iL=+GfA6!Sy)mb*2R=AAx+B<Rhl~>ck=cyXBIdX*9FUE4z-v2H~w~=+=JgI-?7Z(pO6oN zC;vA1d`Q54(_1e4?Z3j*$wEFI`^^j2x#@MLm94z2E2N&OQ_XUzKYXq6MpQ?yGwnsL z*O^Wr*XvBzkn44(2g&t1(;MV^o#``jz0UOY?_SPL`meao^dAb>Ip}q!HLSeMAslmP zLEazU#&W5@7xU>x_4PW_vE+K4=|ZZL3Vp7kyk2K|h+MBTy+y9qnWkH7=Ai4<>r8W# z>vg6T;BubJy857>+LYJpOnX{+nOh9zGn(>xo#`^l$0NUi+^g>w^S3?ZVeo^NOP_f# z|KH%cUcJurft8m&BT?sX%cV{X)|+}=@Z9t|)7<2GooQ8vw{!R?xXd{)H}o@wJRUxe zT>s(QrIt(oqwuHN4g4E_J7Kxhxq&%cr8;_@=|AL$16BO*KgI^n z?FzgIT-GapFVN3vl(t;<+iaZqg7TJ2UO#tH-Ezr~N4~b@lGo35G=u9Lw4Z?vpJCOJ z`SizpV#s6QYsur`JE(p(GZybBD=&TO-{Vd?@>i|AtoJh3d&6?6qkqqOXu0Gwj`wf; z?TO`**XvAEtv8M7e6-Iu9bUrWwH@A`ygueInY;x&#^IYCegH1#m8`cG)_a2Tol*Z! zD=)`a|3UXBmP?(LS`^l$vFtL3uaqOk$? z23j6C50M{kx#T+`KbCwhd@A{`@cD3EmtJT3gTrq-JmbdT`DmTu4sSr7F|Ao|cXGY1 zGYYQ9x9kR!pX$gjqkJ;tH#qY9C?CJx)IaUW-=h2?=b*Y&w1@9{&gMs)|Bso{D+SGr{sD) z<3fk;bofPby`J$tT>DSE(VP#@9QkzkV3_8AL;u;~dVIBh82NFW|JA6@$JlQpN4^8) zt0CXpk^hYReX}fYF?mP$M)Fng%j9~U=|gfoE~&Q$pFet?X-;yz&a?!%&aF1N&aExE zUT50Z^8Dysei;Fm<0a37zu@!OQz&n`_FoT@XObfRw#M=Th61YAb~86! zm*y)t`~!y%b@&2uo!fWhCDG@0a$WBkxSqFq-Q^W>{r8kp?09)T$Z^zs26D~6374-b zgkI#AB9#9Z=UX|;<@{;1$$U{I%VobcQW&pmx#VXd-_UZ&e~q7i(%N##7ujs;w6k3D zeQ-Yav|RF8x0rli%O$@G^@m$7`S7hKKgx2+uSb50<&vL=e6;0~*ZbF3OsfAWD zuERehuaEj;9lpxp$KZ0F%i~5Q?$_rmm-SZJW_ECmd=Wg6>bEp;Fa0jFF0CJf`dKWO z`i-}nFL;amG3pm0UyFPR^0PZkohoph=O^f=3;Ad8QC1z9Ljw97Yq|8<>VWxzFR9K@ zbDDT-$;ZG?IQ*%@bL|d3AEu#BP4XG=_HdcA^f?uM_NF}k`Dky3m6!E~G&1X2Xt~sR z1M^%)J_Ej%{5|+ixX%A8^!dQb%YMVLU+??i^Q1pKjpfo$gI%W2jO0n+Z&@z&V^F7% zeR7Z>b!+~3%ITqA6M}PlYeD)>n(8jUWfng@Kk%u+;qQM zKd-~VS>hH(8##s5l@kRY9mP`GWyUiEOB5w>|OrGj{ zlV3qza*y#%aGk?7!`?aaJMjNmb)?T|^!bnF(q|m*N2%h1=e!^1b3XE;@OlpK>+qT6 z=TK({`DOS?xZdCYhd!@T{uc6S_L~0nxW{3=87-IfeuO#aAioRGN4^|h0~{!xXoUZV{x-^T=_e*m)c=_kPMi?V#}pYI^>#>!Wxh0_f3(KW`9O|UrXTDI++fU%Hk-zeT?A3q%A$Q!`BTXm$*&?f$kzxApEb!t20wZi~=o3(5~ieuR||+%K@+ahA(^J7dn%$S=U>kk5vH1K0keu-~)f)8L8Z zI6b@!KbnBnQ7=aRGwL)XKLQ`%@YxRE?(ho^f9miY2TTKc|BAw#^I0x)u8Ake5^!B_ z_N4wF`db8fU3fq8_uw-fzTM#$9R9-LIes$h(mr*+Rp7ebSgf~><+9#sSZ{O71CI~L zx3gUG=aBCO*ZsD}dMA^&hcBl(`SCos(UCtw`M-XY>HF8=Ir4WYzXy5mVDNmjpV#1e zKb?Ynen-A6Pl+5@d@>cL&B z9G(()SUrxKFYNG!4)5;p$#6Xn!<(A^XId`n9fF;F3SV=N92FBT=FB3KLOV{ zjK_K(l23+b_|>de&;Or(4(!&;0oOX3FH8BE$k%Y>n^V3c^4%TzVU#b9{8UGNG3B3O z4r?6wU6enFd_3j#{hzDkc)9MSKNNhP{BC~hg_1vkS0GP~$HOL;zimbzxa|O!<09`< z>HEz6D39{q81hW0HO=y(F!^O6)z6Igu~$0syUDfwF^69y&y9WGvb>np&ttf*H!u2m zVY!^=|KNN`cG#?3^9wqgVz0yHPo+LibFUzIb`$q1T3#F`ztpAr)zD89%cY<2U(6S^ zuw0JULA?FY~E>8}#$F<8Cs12i{8c!~H*# z?U0q1$C;330rq~gTHfLhP@8tec{8&^?k^RRDUw+&vN89kdH(C(++>`@H|J&d9M9O zqfT9NImWVeg3Fv`o^j~2Kjjxo*x%+@c{wgoI4&`kOP%qU^D6Qe@D1eK;d|iP|JSlp ze|to}-msT8K6t%&diM%Dye|0>)agck0zSpz>m7d5;ZGd?`mx~tb-!iFvzwUL+~FUQ zhax|nJU@J^!!J1eg~Rh45AI*F49n$wdx-OP zj^&cq?`M5ux#ToNbv-?m#W`IC6u{uwUQkpA=d|H*dA%FF#F z7WbE%mP`GtMFG@_q3AJx8U_ogXbjw z242bGZOGRkKa4yUzS!aW9Dc*$X-)JuJ>|87>-{1E^Z$rE3OEv2}0eQ0lrk@q$t>8bBYn{{Nr_tvP za?L*=e|5XruXir^xM)5tc}?WsAlH0e@+jo1lWV>K`PS~HpVn~cstnFG`K24>`{4D- zAj{=({?+5=i-uY*uOIaDJmV~v{8i*9SuT0~Igqn0m;Abu{*AxQw_Ngf@cLwh<&y97 zo232E-B~Vqy&id+<&vLwO49!OOO{LivA+JXT=Kn7OWN}eTQ2!z|CxE7vt063&q&&T zy=1xM_4U{t%O#)ctfW2fPs=6$I_i7pgU_GK=rg_LQs*e@yk@!7DS$e;ESLNr_x&4x z%VW9Z2Ujrrd&hFgcgGV$Da$3l1Ao7+0oU_NUq^Lv_#}tVw(84%zc}aL_}g;JXZpVn zX%S#=o#m3>hx|73{O3*nN4WMGY1q4J<)wZE>ffYqlPN8}^n|B_d@V0Mu5!pq|* zb-G+M{yJRy8D-e3Nd7szrBz4zj6t7mEtmSwe>Y#yo$B;3ZFu9z2f^1k{FuX^kdH#0 zTo=v%$ZZ+_zX|XPaCx4RK1*EpZ~Uzeb@}BSWLUOYE`U*kd1D#BvF>#8zXu#6FhW z21V?lmY^!GV*C`LMW`iIEB4q2MQm;8BKA-;_Wyiy-tXS;ydMAWJRUb!p7)dY`Fy|U zJ7;Fj%!z~_obdDEdb*z70aqK@GjiWAu2i3|qy7VpclNjQ{|NPAydxU#ypf0T*1cW* zQoSt(F(Jk0Y^|IU2?zM}jw{>=A4VSXXL~o# z{{nuW^1p{qQ~lik$mhrF>d?_VXJNVLZ8!C^F?@gdo>5NdvqydI8+qvSR^=at9KEc` z&Viq({68f8#e|Q;&r;4Zdc)4+x-1G2``fNpguj)%teHibc#(QGqVZ1kLp3i_U zqx@gNUsHXr+0kMJ@OJgGFI!gb zb>6&Jp0jG?A^#)gtOLJEz6pH8_w$^s;k$g0`>t~L^ODAUBK!^c|BBr6U$5=X`)=)cmzFOl5B-OJD(Yvo$U{F{e^~uey{!xX zLH%rj{N`fwxKG!w1HW83d&94m z&yf3m^nv<36ZJQ%{`XOR7;j1Ay({uC-Y+!Ie}*5ed43$;B!5ZnaowTqPX4HNybsA6 zSJ@SzMrE-pj_sf3)-}3XkpDy^` zU*vwF-1G2H^>Y{eLwP0234PY@o9Db7dFZpO{CAM!-<$dae2%&DoE1N=oqzid2|pG- zzjAuv3(5Z|_d0x8eLjTxB~|}kR3FA$(0D(KJdF1$&GR?#g_S?)lYCs>?sKaDvE1{& zthT!ie2RR(C@1t&Qa^`89{Sno%j%cv?HG8S{FlgISNT^)^&!8k{QrwQs;qCOXlJoI_K@|Tf2{~+aT0zX=Q zV8Xi-ejEHm<-80(RX!&7dU#NMevkTdRlm}wwd1YdFQ2z5k%#e~t$A*Ne=pwxJ|N#o z?)kYu+dUILQ$7>^2l+t4UrG3v319THe7x?*`5VIT(02Dq_$lx?=g#Nts)Y9^{0aCc z${Ch>KkoZgp8u~z{geLw%R(cZxjJ z_o#l)$V2`1sy{gLP(P^pqaqLW3#vtvm&4f?-vUWb5 z)0ps0;r{*nd&3XW{yk3a``4MDRR>+YotCJ-0`+aG|6QW~ZqzTO`X>|hucQ8b&F9C7 z`X5k#uj+sF-`aWec$boUyl1I?ebi6U@om3^pOx@i6aGrV#}mHPcy0f!>SvRL?+f2m z^}mGgE&soS4<-DAgwOv~ZJ*9xHR03bJ`RlOez!;D;eL0C9v2RZJlszk_YbSH`ZTn_(Q=T)AB*X!}|P56%T zPvD2kCx25rKkv$yg#SlA1@6bS?cjbMwLAQKKi`8dtoutZd}Xbl>mxr`a~A&kv)udf z)P3^tJQVrm)jEGZ>gmYCdj3fD&qp5W&zYH@_k{>MqW)slKbfe1 z9rgRF{u9(Mruq36?s=&HZq~eo{c@o`|F#U=`*&6Ne^kFA-1XbQcey{`@4LfYKOKIy z>Q8{X{*r{xgx_{tzTI2kcPRfpxbq)|`}cSK4L*5hKGFYxk6oH?_Y=7D$KluO^MsSW zuiYur~?H&&Ic4xr7-P7UT?uBq~_XfE0 z?|^$g?}t0*ariP1=JWYi_zLoWz@4A{P`h93li^-(tHQlbrocU}jp5Fp3irIV!9Cui z;ND-y!M)vc;ND-C!oA&V;NI>%aBufdaBufgL|E<2;cpoJa=8V_t(w|KL+mgFaz$KQ{i4$=fgd3zk#0^2421019$#|@JSEn z<9Zstfc#bXO*&qE0e61AKB&X_Ukbjk@>hpDXFa<Y&GRoE_kvpANY5kA?el-Dks{ za|zt_H^aUD?}hvKr9T4q?_GZ$?*D(*8}R2J$@kZnaF6Q;xYxr1v)A4)4%IKTS{m-0 zbrZfR-1pP%;GUoT;GWOJ;Le!=ch1@HtJVLn;qL!xxbH`|z@2{|{8{A>!JYpC{AQhh z`xkt{$MSjq9PXU&;GUm`IcoQp>z9SQ{|({WX}ep(e=6SrzK?u2c!&HzxYzU1aIfc+ z;Qs%+odfrJ{vG^-$Mf;u0{1-p5q`@PdHsX%JLONqJ#VkVef)nHexGu_gu9>FCe`k* zk5pd|cl}cE<%ja0UmfoHsR^G3U+~U6XD|3t^5fvnKSds%?X*lhg5+O*h59aC&(a%t zc-?od&L{jf^6>b(m9Cq(Ir32doa%3lJk=?;{ZhUCCGt@3>sg+TJk~q$x6JP(bK;)r*^(=qhxlrUG-`Br1Mjq-X&z9G(5P7Kg^)Kter)VCwfo~+=6YlF} z4vsu*_h$>{+wF)vY}ePz%!oYH4=$6}pBQ}rlT`sRbKk`uT>t$xjLseL} zt<^u_c3;9@hwHRl_Eo|coom+qnmC`YA6PQ-(C5E3|BaD{KKIfG^_n9OIc4Q+7`=zmhgGz$bDzI$J)aMn9y>2h^Fy2My%zxkmct!I$j{F0azh+(SI_xQi^y>Ws zK3JUKY@5g@)|IxqGkjn9zVfiSa6i)FIXfNopR4|&MEzjGKTG%ulWX^*x4RR3QO(12 zcv*f{!hZ+9MfH!u@07ov@cMab`*i&}3Ev~($0hu7d01~@{frf>U#hojA`koVUaiBM z;B(BK58y834{BU5MD-!R@qmzCy}l~)kbkjq{sG@k{vrGg`4{kY>+%iHK5y;3ji{d$ z9KAh}?FQGk*+~g6C;V}^uPgZozH~mEtnNqofB5*YvHDz8 z9=Zht-9c^l&d9@dk5>N= zBIj`BypH;c>fcS&FEC&JgPsTHY>@B+;kv9m>y&$)WCvE8t=>+LJoLZXJYh@K&keyZ zlwSsK_)%V8mb=eWHQvFfKFnJ|+kGK&2wIaUnPG7{)PJaC;V;Ie=2uBH>;oe z`SbsvuPyidl+@?Ok%vCFoIme#D*W5|a-RnOgM9DE!#tFge^BHhzgzjG$U}Wa^(RIi z>Yr2nIdYHdU->YzTci4rlN}VkRL^Tg9#An*T?$U}Xz>Ys@`)E}(+*CG$~Mb*C( zd8ofj^`Au^>U&iGP2{0|q(1MbZh?Ft-Y*r^|2Xnc-=q2^;M>cWhfk6>%RO&jYTk~7 z`#OtX!yD$PZoGQ?3%pVOHoQsxC43EeLw(+W`>}77@PiV5LBelK_)GAO)X!%LU+~AZ zeYUE8ZFrk}n%u|v)%1F2??n9!)Q|r-Uk_&_>Muk6W2(O?Q9pqCOI80&qW&$^@2~pz z6ZPMqes$H?FIYQohiiVOBz%vAA0+pDKBf6QKJtnC`@#A8{AJ|f{_?%*&xRKl%IEn~ zxz}O0`s|PDLw-T|_eCD^8y3!U9)>@l{HNh3ss69<8y3lP-j=(co77L;LbdaGr+fvu zj~hMebCt+LpX;og=dX{Pzw3SfpTgglpP2A#6aE>FYB682e zWPJ`{)2Ke|mqCqpo5;g>|E+o68NR>fxgEZ^e7fA*T~yn>Dyk3L9n*Gifj3UC{$us_ z$H+rJKUplF{|DgD>xIgbk%#;?<-8bq$T?H>Z@@Q@k47GHx|H*2FswL?Qb&vWPrx!2VXn*aL9C-$Rq z8X^xle^mXl@I&RRMjmpS52=2s-ljwza-LN`n?xS!ORC>G@=$+;>VFz}s4uI2-^fG# zLW}3)oetk$ew^I0{_uz*rXTim4@4q)_yUWPEUDxlF@blrF%D)c& zBl#n8uZN1}=b6aE{4_0*&(F*75%u{F@-I|=)-Y>aVgBn64YO7~ZyI^Xe?a*Q!cUO@ z1YY-(yq^`|%PpDvT5`|Z4eF;Ie!KjHC@1vUran)MJoMS2{Bw}=h;punKPP`O;h!XY zk;Q9|8?Py66ZqTmJ>|ZiUadZ-qy8h+Ul`Sg@pfsvzll7I_W;fFweZ*Feehq)@0NT1 zzt(m?fY;4g-AMH|`x3S5q+k8a8+qubVX1uoE)1_|yvxeH-T9Qic~l?9JEr{B$V2`g zl)nr7VENwgarr^;1$Dl?BzHee>gNjh6!{;coX}@;NA*kfHV}E}vt9X*A!lRdyaV4x zUiXvQb!A^O;k&_iQO?QmJ>Yw zyYAFAG7hR-GcCgIEK1fch$ z>!&9C(1f3v@EhfR930emZ;w2T_aTk-EUPJhZ9)oybG|4XXbn@=)KU z`tis^{imv*v$1v_mYS>jkJZ}>3EvUEqUujdcwfR_Nch(YUvk;nKE2&7 zB0mORe|SFLbKnK}b?}n>mdL|=mh^t^y>hR^4eRp!w-P?ba<$`f{YnYnF5%M?-Yxh1 zl-2(wk%#^tQ2*CN9@fu@>TilX)Gw_!GVhjqyl-f{FT?*K|0dzfE?+wjuAiFlLlb^x z!f%v&9vY9x_si{(hjDdjTn|J(alcdjW08mYXH@^9-1Bgw?ibk#wd1m{neaUm-j(qG zOZek*kGD(xKOcGMzhQ;YahAOqc^GfM>i-pas6SZspG7{gPE`L*r)e^Wc8! zkF5S<_4eb)L;b&1zXW{A74trqhwm(JmV5rkH2>`h?@D-I!XHie+wd>7-S6RF%NJc~ z);xsq-oKK@C3pX>-x&4hs=hT*zZdFvQ~gni`cqNAtm-dK)L)PKk2U}OiTa07|0mVI zj`~~lxIEj+wf7f$Q^I#i_(=)>ZNdlTUY`Z6&nF`f`|Bgk&nw6|S^a+tKU2O~Q|-9y z>m+>VgdYQ+uH)*33IBuK<0@%fcSjz^HK{3IhYv>{?$>42KOK3fe@^E={|diK{uX>A z<-afYI=?{uFSttW{Ma{2_<;#OHQ`smFV%Jj;J=YqpsDDlKe|Vz)WYpiN`d_2|Ud_*+68=uY=UuIK z|2k*ggzu5?li{Vw)tytlT_E>-&cABDzphNw--7yK&F8&|`sbqhaKEVNe(`GLVVz9X zcK?Z-v()FL)obVBck&hBH_NwAcq!qRCH$U*znJhZM}=9gzE2f-7;lfpJMS9# zxLn_?`h_D8^`EJJIl1o_&uP3{!e5bhB>bX;-;waYCVVX63$0nZzvd1Dtlrj6_^$Bz zRewBud-MIE!hwrcYm8R78Z{IE9rzHHwgbyYBLwIXGZP^d-a(*|>mT0c+ z^BkSuSPA~Nd_TC)ha3y{?-4o+?%&&U4SX*>Uf%&fME)q;kNYF=wX|+Of}bXzeXZK@ z9;^MeNaPo3&ca_)&r^rM7mZdy@ z*T_S?ujAN1@=$;Ov3dPLk%xL;r*phKRE2Tr){UNZ;|kwy^@RHT(YmwNVd%4@ z{6!)U_1~y|`N${6rTWz)5A_H9B6L<=ckngkQzH*KW6IeT-gw4DOtwF~O@1W2OMXJ+ zp`YJqyQfD!(ZA}?i#*i7srui@!)U^K+c6(jc4xw$OZfWCz0N;6G5?3@iTYDef4}O_Pt;$9`g2u(d!l|2^}DJ5uZjA9p?+D_f0n49 zWBq*IJl>Bx^YJbv58s9P)XR}xAugelJFbg;j`)C_DI6t zfp4CdXS22BeYu~h@|6<4L&A?v_$3LyHQ^O`xL-^h&-Hrh-|({hTX;pj;D)pId&tR- z&Ih)-+~W=VEZnw-Py9^Pk4gBi6Mk>PUr+d#3157p+Wqp-M3-5%LBjWd52=0z{8{;peeepKXMv*DjkmWOo`?qB_1<$atF-(UB;>*0RA za9fmLsOI?g0P3Go{*#f1wNuvp{n^MvKmPxZzlD7Nexx}znYBJcz57`_;Va0)y4|As z$G5dn|CajP41T!gVJGCcpCjOYopK3s+~-XRzcb3&(oI(X9z^|T>hqa|zlj|8`4xN- zZDZk0Yv*&1C-d)@hr9nZS@u;fKhtM85m^OTu4E z_$LYf8s7F)-v8vyYUjt>T@Zex>X(9--&{Ur&X3HSB# zH^P0r{DW}kzn<`a!2NqIK7sr957cd5JI_9EurS;?jd16zDG%$@kI7*PZG!p+t<*gNuYy!yo&A+dU$cjV#tvqUJmmaZ{XZCasBc;`pPxq} z5A|27{w2Bh%eB>i3%4=&^*Lwr74rSydcWRZE#ccG{LqA-2Y*W2ohkS0i=#EJzQ`w@ z;~bO!z+d3a^1s51^7r9A@=06Nj@Q@!E(@P0pXO|H_>bfVC;YsG{~_VeC;Wqi&%b4D z{|l?1)f2u0Tpvr!4u|XQ{p>8c_e*(7zJW^;^}k2`QK}zE)IW*(ja2_uqW)vl&#n5| zx2l~7_rH+b{r^?#sxeW&7V584{nn^IQuBOJ!q0#oulnoYdRdwMN$x&hY|ejRC{h0o z>aSJ(CyDxOYCb>CKT`Dz%fr^faohc@i24mxzhR<&d(_XR`aKi%9jJdv`|(uNYx=XR z6aD~v9nJF_37=!@+I7;R`n3|if5N*Hen-MzO89@_=c}K(ZEE+|E^Fogu!uZ-7xtIy zS3>=qs$U27S1NzkgdY#TM)ki=_}vK~PWU$oUu@gj{o?Iz1YfH<=5U)9`L;PteBDPL z)_HgwTwTvMj)435#>vQ8RaqBA_2F^$YR%_N)UT`hfrP&T-%$0RC;TU^v*sa;Yctii zCVWQ1uSxh534br)KiaOgAJ5Oyk^4Qv(CX@P&;O>H|Memd^ZBCYbHm8P{<>PvTegWj z)NiqNz7V&MJk$^A{nWi9pLl+y$M=IG4>?~d=SXr)j#3(o2WkIk17A! z$V2`)Iso;-3-UYQ75V+}(RK6jJ|TBMUh5yhcMeTfZXe4@Sp_v^vw2|qvK{qSSe&nxhs%g5yI^C0#4J?izgUbf;6`FKNp*e}hcJZR0x z!+2NGd~N{$KY0PZuY8)^^M6(zpPc~@+X%NS;Wy`;-J9@N;Qgxq0)DrAi5+YAuYL1` zADHm76MkL7ABBIQe%?v=Y}0D{{7m(YaQ$y&vaJ(-c)~ACcz?p5N%+Tb@2?;2G^_s| z)O+}A3AvANZ92X!A9+{{ztOr~Ir8}Uwr=F1e#`aq`(sPwq5c*f54Vmy)Zd}{?II8L zJ|6BBdAMH`b-y?;@{n`L2Kjc6fH%rJ<)JFf!UWfT z{x8yYPlx|j-V47+eow+*hW}ahpTi%PFTP9d{I2(e*`|Re%?-awrg#l zKd62g_@sQ9XHye?Si&zz`0WXQI^iF|y}y3^(^>uRq~60{%gB8^oUY?xQ{-X2&9zZJ zu+<}vkB1v0e-UltAk_Q(=SlGWp2_<=5AOPF;CHJ2R=De*O884~pTGS(+~;q{;m%)Z zx4d7^n|(>R&$~9kecp8oxX<5CgF9z0xN{DbhrQ(Il3^FjKz*n7@7eHs^*D7oa#q!T zyfLZ|>tRQ&hr3X}uIgV*_!!);r{>>%*7^+n+t-8p_0)k0zc}Fo34c4`bL>&ukGH!L z-19R{&h^ld@Z;f!JeP0p47k_Tui$>)!D5iB>Z&`>d)4CcpUEa@KWSq zzyEmS{5bGxua%(myO`&Y<0UF&V$$U}Xz z>VF)0sJ}<`i$or_>+|``Mn3WUM>#7;9&#>L|EonFa(sS%1GvxgZ!7ow_f~%<+zy6c zm2);D$_d+jSlc}_^3Z2ReO?LAj?05?hd0X~gBRt0m%GoW)X%r@m*q>e&$?fPb@i%z z^MoIq@N*M>OTr&d_y_Q})z9R;YWuXW4F9+4w@&zxaKCQ4GU1OW{F8(?>|NWZ^EXQP z&)~WYC_6?Tjz3}jY`#g@qt*YF2nY&_u&`_zut^&2Pr zX9+(k;a9`gnwW(wyFK!s%EDiNmixGU`PX@Wk4GNn^E}PxQ;~<`fM2h@9{I%aME9?M zL>_WB+ce)VAHv6#|CKycg+80Af5L6iee=FTpCNxx`O8Ee@}E+E6Z|asTJZYK@_sgg zH*KE#wsQAVsBR@{*L@k_;2M8%02&nUHLiu z{Cu<7yg#d*2S2{7obaje>y&c<{6_g%3BM`fPbK`LgiqeTwtsJTb@*%Qr#0cz;eS{C z8SsC~Z%Fu1!aqp({KeY-oxf_rcZ7R?9US={>M{IvoII@0aQwMJ$E%Yg59{p}t=rQg z5A~zp=KWm|d8psIkl){XB9D)6<;cT2Z`L}$Ir5P6wQ}x+-z9%g9<~<7<@57zM)e`T zsQiCL9`euMBJcBK_*D6S;eVB92jt`S{rbZ#^PKtQ?#Jin*Ma*r)y{CApWhexYj2h3 zAC{;;2k!IpzfX82;a|e_^e|iUz**}s%=6Eyf5L5jx#!_f^*I&wr{(3@5m9~EFJL!nO~vaub2N1KBU*zcfei$IK1Kcd^|71UH@6azk&Pw(%gsS zc^;R~FEzrQzj4B+!hK$-4es+ohrxY*X$IUmr^B6du{_*Q_txBpzph68)7oFR!k_s* zAOHQ4hx_!ZQ}g5GUm_2WJ3gQAbmXD_1l2zud8mI)`G1c*9Iq-mUX4Z`a%Sqd_gUnj zK06_N$+GdtL;drr|2FclU7t^=J9O6m4LL>S%pZBkc~<=|7Rxru*SLhj?zi0;2DL>|`dO`5l+$S2mV=4-9UL;a%L9~kKs?|o6TlFqIRC`izR&Z zgin=+{SxM9Q1i1Vd`x}>ym3a}&}r~C`4w`{+hY0d%I<_OE`K@U;|c%Ck+t*SoXrxx zcfwDRdmg&fe-FH0{yX@Hd;ngrC&U%G=V2#}_XBvFeEy?q$7NqD;kzaL7YV;C;rGB- z(RzCdzMlLo_?Gf9xL?=Iadhpt4pjY8a6Oz>KX+eSf41tkf`?;4xa|SIHs|ax_#foI zg!_JUIo!wX+u-{6YW9NM$2UK}dN<*pML9+FGV#|j`FNeP=r{TI^UA~W2=#tmx@hDF zOa$a#RzS{b%2@~XKi1D|7PvyQ1rhfhiUtT#6!&jA8qWpuS{J){TUHKoNelGpYmyu78awe5(_v1mzSwJ4f z73vq#&nywSA1lH?H6dq)a@LDHto^I>IJjZtmsfpFjd#1q!*RZ#;k(P{Ja*Rp3Vn7fe?htPT|Wh0RL*V*KQZCg!jDkSWAKvv@A7bb2z~xpeSU=c z6IH+PakIu1_DjF^%TketoHI4gE5W~&Pl4Yf-$d^DIaS*|7VhVV-BC{HXGHy61FzSK z@4Mgy`BU(c{Gaf${G-Ujc*itvU(4OUkMqkMpU)e8YQhgq`1uLHG2u_j{XC?i{$Gqd z^uN*ep|k3Fs>s89W}V?n_55q(q5dq@e<}C4CVs(1_1_mcp?17;=JDASx!2pXJLLbc zNuqua)X!A?L5cbkP=BcEyA$%Up+|Aojy{yID6>-KMvhx(%G-;F%f zAENp(_?7an;LphC`o*mI4D+*N^-s91mhiTO&q(+s3BL`#Yrfg+Y4{%Uf5?5m-as!% z#uD{)o%y(2KS}kA$iwW0@j8Dc)W0w-pZ|>#^*f;c8rAQgs4t=Z2-TmGsJ{sHEvml> z^?v+)I^mxryy3*!{qCGC5`Iv^&xQN`a%JR)YafQcZj$?cdWr6L_rh2HF7NNr$iq5+ zT`w$$A`j0SeO~nC$V2_^yX5=vwa7#LhI*d)o;*~AK3AAeAK`jB(D)=%9@v*s<- z?-`1#x0Mn;RUXD0?!P^{|4xfM-wZ#aI)-qY20tg~Y`Q$mTNv+6+V96D>d#00397#$QQwF9 zEmZ$NqW)Rb&#(Ho6ZM~={teCl4~hEvU*_}X@%E{H6}k7<6`G%&6Fwv1*ChOjguj>Y zc}}U_zxSx02D$s6PxreeBMrG|RP`Gt>UTu_JgP4y>W@YJ zs~YgBiTaCC|2x(9q5e?K&vOa?JmE{7Uc29&vrWP~5`F>PkJn}Rjn%mhx4YnF_5YGQ z?5}WK^6P~+;e)@*`_9gowSVLK$#B;%2Y3Ez@XasCb2pTS_VlaMs{fT`+oJyJZ}R$| zqTc7_I^e5Jq*Q+oZj=-5zX$G?PsD|Z`fE_Xr0VZX)IWmySF}D~N4-Bk^JT&pIx`=i z=fVB24BtfK+8FN7$xM@b|Ng3y=k5#lewhwG)5 zBM5XH*|@ z`qbwqsBf(PTey9P`uVlp+0M$hz?8Z{#88wl(vdMF?>MyJQTeuBI^()zDDnA?I`Dyo#J#LrC@ZQRMzi zbntJYoG{OK>i#~jjvry(;`$}!?th~_Lq+v{iKyP^&V#QX)rb5CmA`r9q5q?lvsL7w zeqZhPU6J2V{kL$N9{I63O?*8bIWKCvJ}!o?L;b?~nG2(w<7DBl>yY!da(*9q=>KW; ze|zMie;=RkkMjLqYsmj=qJ9MK_mw_|Pxp1laNob?Id|6jKOt;Tw-w|*zPZn4xVO6* z+}oW7_jdP|hk2gijaL6Y0rlQ)7u?&u2=47(73J$Kjft(?je6%l1o!XNd@jn-ssD+b zQPex30YkTX{Zsov_& zo3)<1CM5r|oSgH&Cj1!XZxZF49_8$TdXMWs`2XqiF~`G~ej)Gg47hWC4_{!;eB%$p z{W-bU;jaHX+@Jsa0PdX0=l}oL=Ynw8FAewSMK^$ZyIaAXvoqW|2g<`b@j0_F6DOd4 zrEl}TPmMgR+t>Ea*X)pCyU+FEUMJJw-tKg`>ko&!|DVI1b1~fg^uk^LJGjR? z0QYtug*&GLcg}lo_wyOtIrVz|>iKv5;&9im2>aUq^aSM)Gw_Q1Wq9$(y#K$!FOz>D4^`p#_HFe~ zxXp2K?S5ZE^~**cKaQ^opY(A4^XtPGkZ%dUsUxp1!hIY*IpN*#qd(7cu7EqI4EJ__ z58p|B-UIjJ-Ai!izX|u_-5A_C-@;wLSkJ8akLS4&?*H#t3w*h{d_Qgq_jb2~`#jk0 zaG&ow06wJiV84WW9?pjQI;d#mG&lC0MqJDSP z|2k2B1L_-9?8^B;qJ%VcaFbrN4@(g!re~?-2HUH57qbGaG%rff&2aUUic0Az8~&B2jCCr`$71F z`hEz$M3|83t&;!szx_Cm=6M*tfP4&or@kMDyPt{R>c4sZ-A|piZ+AcSaQD*ycR$VW z*VKnUSLpl?toAV1AJfod?S2+ zc@z9Nc>%7=<+E0}x7!AHPCL9y`6c)t-5|I{788j`OfKs zKdk(IxN`>JdfPgyz@0w~e?a*oaOaQ0kJa}+zJ?zUk0b80PV3SBlJe`}?y~`|hqJ61 z?)(<`6Ur~Zo!<)A>HVw-Z_v0p;7iF%@MYwk@D=1eaOd~JonMAKzYp&GLAdjW;LfkW zoj(kB{utaj<8bFpEQ0Df@P2nrU058EucG;BOn4J~Bh@#tRs&4RH6<2zNhCaQD*;cRwv~_tOUdxB6*^ex2JVk9UJ`=M2I9dY}S#&M^FD<&VLgKMwy){bzNx z``!6<@GF(y2zQ@N@Htf940oR`@V}_O4etDQ_;>2R2zP!5{5Iux!QE#!d@uT%XX-1$RrorcUt;5#U16u!TF4DRO@}kzd+swzggZ6|D(JFcTOk#GSzp%ozo3}RP|-J^ZVeJsJML;f zISikv`VqMM9ECrt`Z4&M@^Sb_^7?sd*Ms|MfcL7t5$=AP;7_W)8SZ{s;BTwGE%NZ6 zTjuR$?eN{?Mfkq*4)`PT5`1etuj+(vFYlo%rx)&i%5eA72X{aHaQ8C+cRv-lKZ`aD z*V~WT2>f>SKMMb|JexQFk8t=6CGN8h{<7-p;luI<`1U%UH^O(-JU7Ajlo#MnE58-) ze%j#frycHoig5SS0e3%L@QEi{)t?nz%P-P;J=o4!f%oHz<(j{g?qbYxO4j81IihMdme`1&#S%ye^EXRUqjCa zM&O5NKaRqWkZ1GNu7}5zUk7(T^>Fvo0Czu)aQD*$cRvOAr|PE_K1t(kgU>B*hc6*7 z!QWSYC*0fZf;*=h-lY68-1E=}-(2q6;pE|hvX@u{qewyIN$eZE%bun2BT$e3mZSdWd(+>A`i*V=obD$pA zWyx{siKMFrz{g1(&KMp@d{nzUk9(p~v&j$ES%5Q|b&nEcw$}hm3 z-wOBZfo2Fz8>zJ2Kei$Z-jp+Z-Rd(FTmYTEBrFmx53>{JNy;Z z7vb)w1OBP%yWpOOZuoCi-vjr!df`jx{f2(H^9SHFl|Kk~{t$e24iE6yWZs6~2t}+u-h}9e#r9 zOK{IaC;Sfe(*^fDbi=n(eh>UKc`y88c|Y9!48VWy^#gZ5L-6&LUxB-yVfeYKAB#M^ z1X({nykz6>8|1!#H>{IT@6TP-Eu0tF{d%VnzL|2G;LdM`JHG|){5JT3%5R4sCNIJ- zm3P3)@-Ddh?1uaIa`(We>UnQ3d^>qR{8nvu0DiB05PrXW2=0C=aQ8C|cRyorpFbRj zf1vGVi{$^|{r<7M4nAinsNNdk&*q#p!M)vPxN}1IqP4Hi-z7Tm>l55CY;akYt;NCCo@EuiOf;+zx?))ye^Sj~BFTml^x z{5rVv8{y7xf;+z%?)(LvZJhz@0w|cm5dM`Qvcs*Do<^J;d|V0QdYi!kym)cYY!A(1QDKg}eVYxbxfL z&M(28-wAhq7u@;XaOaod&hLXezaQ@W0l4!kaOV%hJ^v$c=a0gjpZ#Rk{tYF5zEKC? zGB3;O;oHj_;M3&IaObzconL@EzZLHMBHZ~MaOaoc&hLafzX$I8Uii8iZyE0VKDhG- zBM<+%s&ae;IcH7qC*;j=_tOIZz4~l} zJHH+7{36`>9dPG&!JXd?cYY7t`Mq%G_rveexCY?Y%#}~jAp8;e5d22%uL|7zYZ&hR zH3oM-Fvo055C(G{fCb3;Y1}Q-B{LZ-t*CFT#D@Vh7y$ zCAjlD;m+@YJHHqHiuQXM?)*OZ5$b;s?))LR^DA)Y55t{526z5A-1*ruwd=w8b#Ui5 z!spcat|qvzJ8OoYuJ`p?;467Oz>o5JfO~%x;qIpc?tV&e_tOb?KV5M5(+zh&Ww`t4 zgS(%8xceD^yPrY0`x%0}pAoqG8HI18{W1o3KjZLy^?r2LSi64QPaWL-G{W6a6WskY z!`)8{-2D{b?xz**ev0sgw4OWQtIJF9o#mbIbLBm7=l8;$Uxqus5AOUyxa)`DzRtY@ zKVE$f!%vlu!JFmd@NMPUvf0FKw(8gLe8YX#!QWPWJ>1u^H^5ia`fP@~pBA|LDZt%N zE8P9G!QD?g-2If`?xz#(e!Af9ryK5mdf@J-7w&%g;qGSu?tTX0?q>+@ekySHGYoe> zV{rE~4&Tu0XSu}sf%ka*!0(ecz6}?*2#N?tcvK{>S0& zKU=8Uy`>%sqxwd;`)`7~|7N)RZ-Kl2Hu&w@ZaduTp$LCT^&RkGc?mvQ z^VSKUU)}@vxO(AFDZdQ&xccCels^b}{t(>x6}a<<;m#j}|3iI_!$;-WinZ(KboE&W z_w(CE__eBUf`2D(hA%QH-(CxRX?X#@nYQ<^aOd~Jo!<|4{s7$hgK*~$ z!Jp9ljKJ@akHVcZ2Ct}o9Pag#tz5g`y?*N8UO)A4ub&3E*H1It{kOpHQ=bL6^IPH0 zFT$PQ0e5~0?)*-;^LyaV?}aLCwPu-21lz|5)|I@UP@!@TGMe9*1ur z&zfr2gZr$5Z>Rc3xbvIf&Toc0zXk66Hn{WK;m$9@o!eiz*N-Eimkz@6U41b6-j+`sQ^6n?n&*BJaLuLt-!^7>V3*TWa`2KelA=5>wm1LaNdzsU>m zN9C>XXXS117v$~mm*pk6`|O0f&o21e%IStLHCH~~GJKM}4?dr~AO2(c0DKX71@7~} z!|;7|e;X-1$ZLrW#iV zd|P=5zMZ@iK26>Q-%Z{PcRyvg&l~r_{r*}%-0!aq!2SMO1@8P|xPQOc2;BLj@TWDd zY_;0^yYuVd&aa0%zX9(2X1McP;Lb0=o!<&~ei8nx#?=A;LtQ@368s@~Cw!NA^7JHHHfejnWVgYcJ?KLqbnpB1?ChvC!I{}|l)<8bF^tJkgv=hwlV-w1bp6Z~C` zs~LXJ-1+ue;N2Q;8~jDpx5GD4eGy)ecfhxkm*5A;JK@L6d*JS;7w&$_aQD*(cR&4b z_cH)@KNYz98HT%`5xDyqg}a|IxceE0yPx_sYS)kZX@I+*M!5TFg1et)xcg~=yPr0= z`)P;2p>41b2P~?)+i6^T*(s_SZPv`!}0Xdwf_!^>y$Tc_ZBW zu?fDP>YL&2vjsjw^=)wHx5J%Zggd_j?))ye^Sj~B?}0nN7w-Iixbp|#&L4z3e+cgU z5xDb5;m#j}JAWMR{Ca(`)5nLEeSCmlCU1m4r2W_g_w$ni-1)8WwUplmUsv7^pC&IQ zyc6#JyWsA>8}9zg@YA*3KDhJy;ZJIQ2H;cm{ICLFWO9E09EL9^AAz4OABE4Z{A{h- z`@4THWF7od<>7N3sLHmg-CJ_2ixK4dp#> zzmDjI|3&+;4EO7ZKDb{$4#J&31b2P~?)+i6^T*)MABQ_XTf25WIKK|={6@HcKV}pB z7n;vz_$l%h`04Tj{MYhUxce!>{W;zaxPR|<3GSRuxId5G19yHe-1%j=^ZVe=AA~!9 z2=4p}-1)__RX+?rMLq&Q zQ$7m6T%PGdoA7OTzw#5W2l!I+hP_g~h8@0~yaB$lyczEN7P#{ZaObzeonMT6+0fra zm(~BTGJI2c30{zQ!l%l6;Lh)bJHHHfejnWVgOM*+-R2S6?hyQFc?It4S%%@ho@ET~ z{BgMRv-R=~h4m2naef`#`HgU2FVh5nR{b}_eSJp@+{cpw+}As_!tc|1E5aYuc01rt z$V+hd(+T(WCOvTH_rjfDhC9Cx?)*Wx^M~NhufUx@40rw*+}DGQ!~HnrUx4HF;Pb*o___v21I-21Bm?)}vacRwv~pU*GA-A^mr{j|Z|PdnV#%aq{mrxWh?Bf8*+=)7w; z+~?uTa9+9gYUZx)I>t!0?r|R>Z&2WESy#?;iGZ*0QvlZ^oSGU3aIns9ciu(LO3GRM6 z;qIpk?tZ%A?xzRtetO~VryuTq2H@^z5bl14;O?gacR#~$_cI1}KjU!slWkPHe%wzT z-2K$U-A@DD{WQbfPYe8i*9*YiPb<7f>$45+&vm!MeZ58z?*2RAzTTk=?*6;sz7C=X z?*4n>z7C=ccmI8G_umh9{{wLMUxB;-VYvGrfxG`vxceW2yZ>>x`}hA~(a(F`f8EBl z>(Ko-!rgxp-2FGh-G2+*{TJZwzZLH5W!m8Gza8%WOK|tu3ExobxeM+-yWw8{Ww@`` z=!0*o{C>Ev*BF3%9tPpQUSkOE<3k1R>otbqK0b`W-Tye;{b!rht`qlP2lw?d^>Fv! z03Xu)G{W6~6WrHL6yWZ^6~48PS8(^=4!=hAMY#L#fV=+^-2HdL-G2|<*UR+6y&lSN zUoX=K_w_RU@X2}{AAtLMnF`$F8ixCNmJzteH469jESXL;`S|1fI=J)e;m&V>JHHw3 z>t$NtquRd(xS!v)!u|ZV2>0jtJK+BOd0q*tF3itYHgM0n7!@Yh=aQEK{ z_w^=SaOZc!onMAKzYp&Gez@}o;LfkWoj(kB{s`Rpqj2YEh1&Jt>t*WT-oN#5UoX=D z_w_Q(@TGNpZh`xHjRM?#w!(eAMiK7(4!HA6aOZczo!Uvo!OJ0htdJ}^)g*>UoX=Q_w_P8a9=Oe3-|Rh{c!g=0C%5*a9=Mo1Yb($pGV-nUSi_w_RUa9=Mo0H3CuLAbA%8G^f?5xCDAkHY=_+8EsLuZ_d~{#yN3 zwd=w84RBv?(g=5c6WrIE6yVNpg*(3u?)-MR^Gk5&cfy_D1$TZo-1%krvtAEye~zmk z?$0X@!2LO{3f$Mr48xs20(br>-1*tm+WqV6P3qvjo~0h{{06u`Z`llYehb|B1-SED z;m$9@o!@=z>L2IVZBx5WoZkp{eiPjJ&2ZLvZI; z;Lab0JAVxB{BgMRv)0=6;QTtc^BdvLZ-P6&8SeZRxbxfKzMiEW?(0E{@Q3R1@pQob z{G4N)unQplIDZ~9a-afdmH|d8v zX8`WcV^`qLABH=B1n&G%xbw3eYS)AF>)_6>hdaLk?)+xB>s#QyUZw!|^)jt+UoX=J z_w_REaQ9P!zn2d`>x6$U?}Gb!lWzEe;R$y2R)#yj5AOVaxbp|#&ac3oKMZ&N2;BLj zaOY<`=Hu||1z#^y2lw?d^>AM=(*XDNGL7&vHE&IDUoTUD`+AmExUXkvgD*F4KAv{C zuV*R2o!<#}eiz*N-EilZBVW1Nik_BdeQ@oLtRFrtZ$BG=?<%jroj(kB{s`Rpqj2YE zDhRtN?!ON1{Cc?a8{p1whC8PP?wkVLIj!(LH9y73o2s^lyaRr@yaex@J^zPJ_+9cY z_%d_k_1*9lf08HBr^A-MY)fjfT`{ws}l4DQdHjl-`~ef>`P z0K@tT^M9_!+W_y8H^QCM1o!8T3UKGN!abjDaObqcJ)b4Gb2{MzA40(Z_Z{2Og|4DOt9xaTu#%QxipKYh4rwp)?ovDOL-%_UETygP+ovLrxm`P>f7MXX@{St`V!pvo$zf{-vxJmH~di5 z_rQ;q_ri~t_rpD|0eGA02jL#q5WH9QBXH-B!go^r7~J{e@Uv83|I_LssNTYQm{R?t z(;8U={GL!$y*0vrr2AbH{KxVFTy12n@O|_6tPQ@uydCa-ig5SS0e3%L@Z*)=4L?cV z1HWG03%^6&ANkrLvZJhz@0w|_w(~Hxbw&1&adA+pQx}N)~o(0=HF%w@UpxSewfy6 z6Z|%LGu-d9w7`4k&Nt8o@6dMJ;m65~@EP(Bcv)V8yZ=tO`|pCg|8BVZFT65&S`*qKAYjr zX@S40`~uuLt?-A`e-ZBd4!HA6aOZczo!g+?}PjIcnredRL&55NsYGx zcb~)X@AZ6O1U}oOd;_EKdF5m9vhJtj@WpUtmd+VcqvvElf$iM#>6gS-*Gle`H&Aa91>s{P&q zzf;}@-$FUa)FS*Tb{&I{5N_y#v2j`>_H3fV>$#sQebV`zgTPPb=L0w87m^ zJKX)0;P0xRPWadIF8FuyZn)2p7xO@D6zg{A76- zd%82*xc48E578HaBy z&-STZ51YyB;O@U3?*1F#?!OW4{+r4ra~{4(70&<9_4u6*A6;ltXG1Ms)x6}Yco8-~B3en#NFZf+Fre#YSLXB_T+>UAP3 zOk;R{GOq15z~|L?8{zZIo8ZgJ3-C{s-wOA3+u+V=hfh&{3GR95gkP)rF8DjzFWvBW zqKG)>@ z2Rh+v$-Cg|%#+u5!?%`~;eG0-5B@KCKir=y7=X{v^PEAr`yYbOtNuse{o3v*{C@cu z{Lk`nxckqFc|m9|%)k4ugS-EFxchH_yZ>gm^IPCsX?_auZRD-+1LZ~d%UOQwfd5Ti zf;*=ZUQ&J!+&R5)&u1C#oIbeca}e&FA-LzQ0(Z_ZysZAm;DhpUxPM<+c0e|93uR$F zETnZ<2XBx!!iT~SR&P!47v;_Hm*p*R_fvqopH{g0DZ;;+E$^oT?%&H=f-max8}PN| zJ@C(F%kz8T-fkK0oIZF#`GfG?A3 z52vc1I=K6(hr6E!xcg~@yPqbw`zgSEey9dPHD;Lh)aJHH3+oL;zpe_$Ez^O=3{raAKY>4$r} z190EJDscBR40k^xaOaQ0ou3_CyB@md$iJ_H56SD{f7kQs2KXv^e%J_a)BUswzPr2t z@6mQ!;WOoJ@T=wRaQ9z?yZ;Wj`!B)We<$4i_rRUs3;)dLH{f5$`{0XeJ_q6VYrI47 zN8}Z_bB5t7D1Qv@oN>74Gn-z!ew z9dPG&!JXd?e^&F~19yHed`;Qfe18nVFO*l{`{{o7|EfFp_{hpK z&leXlDoB)DP|8?f@3q;MhfWg5r zxTyKKxMs#%KC6z=xfn-WGc$}ES#cujPQ0LT#5KA*nwfQ+eV+3^ztmH|I;VrSf6Sf_ z)H(G%&+~hp_j2C%J*TQGi^TUEUm=csR*55@)Pef`fP9*WS1q4r;>f3kIPysoM?M+i z$R|tue2d#j9QovkBcCqf$fryk`BaD_pDJe5>`VRpPHQ-h8mW|Gd-mTZki{R^rH~jX3g26GuK7 z;>agQ{0o*(7xAwdFA)E_@m}KpV!TTH)5gb%Bklxo=u8rCvihGPj(V6S{t~mFBYvLo zdE!TmFA(33@q~CM#uMUan9eG3H?+?hQi8%6UCXResh$Ejg@mE?t8RC14XNg~L zypwp3@d9x?Z|o(GxMkwdsSqDE{R!f~Fg{8A_>)3CP7y!unSoCee~$4v;?S8V-fa2{ z#G$iD{6f=TArAdj;?FkyR9}66fPNG4(@ejWIPz>G{tDAi6GxsI;+LC#jyUwYh(o_X z9QwV)p}g*fzEi9^4QIP|l`q2Eco&*~vZ9Qs|vp5nnJqPkh<<5^?0SO#BZmpB3WBXO;MsrjI`;iRT;0r|H)E ze)724w-QG^v=RTX<&!3ka%G7B%Jg%@q2EOu`UT?9?7j!hE( zxbYd{(4Qp^{W;>$pC=CeCE|Z>^}I|R`YXggV0o?*{}bcQ{q^k*{TAZTZzT@>Hsa9F z62H#kb`rnec#b%Jr>l!NK6fhg z;(u!PIpU8P?;`%F@v`HWOVRP~Rw~5b7OEvxCH@ZM1A?%@BW`#my4G+ju8& zj8_H6b!^yR_PxYEV7yHHN5(6}SBy^(-)wx6c-Ht7@$JT^i6fsG;>c%~_=@Q)5WmUz zB60hAUTTT>eP+K*{2}A1+rokNhn)P6@xO`qE6u){ING;`IL6^Lap+`-qaS98WBl(V zj<`AEh}%UR<9~rT#{XX8-?s9WiR0gcSBSq%D^Rux;u!xYiDUeqB93*!G;!oJLmc_c z5=TA@#6J?!Of3@sqVXl-j~QPkj_);L!KTI6{saA{;ot}k{bu6OZy^r-G;!!>h(kY1 z{4vYFlQ{GX#G&6y{FA0rCjOZ53UTO9IKEG8+suBF_&bbG5r5S9H1V$(pCf*;@pbA&z{i#F5W9apW^a9Q8I$9P{Z6am=T)#NTOo zE;z3LB&gl^B5{n{OT_n>{W9^r##5u=K-*pQq0>Yh_0~*$m+7<+N8DE8h}%Z|0nmpJsR#PNG*T`nlHO422?=e0@9Qw1wp+83)`t!u0 zzeF7R%fz9-LLB<5#G&7OsJ=fyzlHc_D{m`t=(iDve%A2=5(@KmC-M8OeRIU|yFgvU zUvBx7iDSO55XXF7C4QO39Vd=_CWs@SN#e+7hB(I6S>iWZ+&SXEZ+xEkJ;s-af5`YU z@jo}dLi`cqtHi%#y!miA(CXFpf_@8e=(iGwej9PCX_y_%=%%g?oG$d_t#nC+UIoZBz|kasRD86_Y#MGnK<+-#GyaoxPF9q zv&Eexey{N<;#dbx6Mwha&k=|IJaOnR5QqLEapjPaO#c+8?yM&DKwv zh@Wn}l{oal&xq z;&u}Mmhl|%W#e7Me`&lx{0zH}dWoNJyhboof1Eh z_UTq24*g!@(617Q{y1^yPY{RxBys4^5QqLOap=zxhyFZq=r0k+bGBvTXx|m$e;cYT zwMzW!#+!dX9H9T89b1Uw_m*3UBhNPCFSYSJOC0*0#G#)f4*f3T&@U5*euX&ntHhx{ zP8|AE#GyY;9QrfFp+8F;`U}LNzepVVOT?kSOdR^DH`UtrUOD^^*6vNjvA$|1{z0>E zA&$@K(!_CJkRgtBdzLuX?VZG1tp5~kq^WW*onGR|r%D|9@7RkLOZ3$DilyyNKiYWWn*%oqaFyyqzmMeulHJ5U<#|s^e!m z`*Gs1pK$yvXFo|C_EV0xIQwbhu%B`KY-c}99QJdLzrfkg6Sv2qsRhSh=@@aMarOv*MINCn# z_=V0sLmc*5$6w~`JBc5%b2-P`oP8H@{5_+B?_1k*HyhTc;^;rAw*(_CPS)8s5l34#JHE}?w-9f&bFGeF;q2Rp zzr@a^9pCQkGsF+rxvb+moP8(pk6C-=9LHx7>efZP-?R#jcRKxE;wPGZ+3{**6hKKFy97oqY>&v{$R+`<;Co z@ssRa+VO5@pCJzWtm8e-zLPlCIyuKn&c2KIX?CvQ_yK3%OB~~2+3`MSUm^ZpJ6Co5 z7H2UUv5L#4#T&IDVV6 zUnGw4dC74+J5je~;?Fm&702x>uF;uQ;?FR9{6T81-cc~wH@z*q0f&9F<5;7qWeaiG zw>pkBh}yRihke>{`-+X4r!vH0pLHB-Qnl|S4*Q(rSd*%K7jf%usen5_LIbs&y?eLI{Rtju%B`KE@wYWJZtCX9JeKQ zbY`A7=FSDjtxHDsi^Q?sTXNhEBl~6Ims&n6j*lDD-74|5wTKyM`SBT!+BXr$`l{LS zd(_aj7UKO@p{05kFw|X~*$QRNXSfF@I$p$G?G4`%dD1Ev4r*+<6vL-?!?E zY{%RG(HnWm+JW*D>{xfWA5xCFQMrYUbo~AD!+KISwa473?-%t&Hsu)e^gW*QDfjoe zS<6{D##FT*bsT+1Ipz(ue}MwqzUl07@1m!g)lfFwwd#Rw7dU<{pzLpU{H2bMI)0(! z_c;DC$MJWQ^t8XvT5$GQgR9$9j{Ey2G?Je7_eZB&<0<#|1#OOJF0&rj{EWdA;RT6!PJY|jTh&JVqNZpUjeBMiflZFvVZ`yfII8cT>;BZ)V~wm1-+Wf&7U`c7 z4x`s69e=LlX%kg_tbO$KR>!gCRbFx2KPSA?@fWM1ZI3#B9-!9Zu)#j_-8*f>XmA)$ertV#jwmKI-^2j^E+h| zIexw4Ew+f!eD*nhuH#tq=;?yvH#z%0$6xLEjN`9${4bWwki(0k!>*P~yQLEgqlZPEQ$w=pM$Nf4vV~b$bF_XytKRIrP5&xCrew|#j zH>%^;$&Wbh$J_lEMsm^pMQb>WUhj7NT*ps(S$L!R=Q;j?jv9Zd<6m;zB%`xWIc|~> zzupE-)%WA}4>ku;<-ZdSqt{cn)c8e?U+(zDj=$dV4UYf5?HSWj%=Id(QLPg;Dxf(au2yAfNTqFJ#$L%oUAHKe(43ANwv_=_Cxc6_7b zJ&s@Nc**fT#}7E}{|i9<;A9H-(@k5S(*YU%S|H|=-<1f59ywP$UaeR~Gw>y5F z<8N^M4#)ld&VP2i>g@l*@jD&=d&lo`JZ+s-^L(@8zvuW{9eD!^OdoV)tm@&|to| zZ)9|6_(*D?G|*i>lG-p_>Mw2>EmcN094w9IM=SYTOF|EJcjrr$?owG$aesfQ?qtnn zq|`kuUWfWhhl5}3RC#QFe_wa(Df1dBmj-(h-1uDIVBcuII6PcDlFH}1E5-b1@9@xJ zpM9~rduVKMG(RHw^cVM+`ty-NLqQVkYKg<3*weF)#F|CTd1P$A(Baa^NPg{XLke+5 zJ*E9)2lK`K`-e-1Qu){R^yhT9XY;i~gQel2&D%z#Tq7I%rSWzi^2M&%v~PTMvA@4G zx?5~Y;?$lQ8r)Gj)Yo0g^$qSV-8NPVz76U8+7jY$&A!pi`TStdt?eD{`TYLkh&1)c z=y2cQ!F>17z`)SpuHF0Fckb*+=R-^7`%8ldM|<<7;o+fSDM7u2SRE>LOSe>|($iM3 z%IQdlf?r!4EFLTkUnw13I(YkL>Cbg1LRfR!bmM4W|H#&%!F{8};nA^jIJs7;O#@?c zO>7<;>>ujBHTK*_I}@%QDNjc_v{ij8Y#A%}6h})vqOoRaDR6^zw4=eU7#kfO8q8@o zs`reKv30m~Kx}&>+vL{V(VMlxED^RpCziZ#-yc`}a(4_;#@-ajikjNYRrCvg)D5#=xv2S?SH4=V6 za|s#v@`d)?(T=8U@9-Vc@k@tg5a}Bzg`OInsIRj4CfJci1N$288_6Gzu1Oh7<*JMs zRvRp8%_FA92xA^5oy0(s?vk|WcD+iTB15%*!7b?Fg!F6tYZu{9Vj-+=-I)c zo>GD%$`QJQuc+?+AszCpoH6Hni-QLn4MJnZn1^0~6Ae{vy#(iL_0T_5?6KO6X{oxi zH76N$WB@3k6{7l+^}|SvLb7QnN^Mf~wWHN)6KZJuVd-ijUrV8=Gh=@ANLg`1aqG@T zPGO>z1<^ru2=8R(k{RiSoA!;?j|&QSCBgcU!lx81L2MRY>#}R_Ll(u+q84Jq@X!X0 z96zdv=#b1FMK#%%Xrc?a$f~Bd>!`-jYEPDeBVp>ROC9Lo@X%N}B^A>nyZlwVue)N~ z?tESvDZeX!dvS0mUo7`+=$0Ss)OF-Q*)&3R_6;5wsuR@)8Xl8nNl(6~Sd!I&KTBt9 zKnatJ48zePR2Hr_(#S;Tq3a0J!Mcls?qb*MWt5jj96UVmYtOz|F*(opO3lb9eMPhw zSl6^;4vK-)~Y7rhWDeX#F|N88!dLYc(_mQTKASl#s*NnQm?EWifeD9t51U;=#$|`c|PAWGL)Bz zyr*A$qVu~;J#w$Ivm(n9nTb+5tktDel6#UU`?%cP$y#w`U>TH~DD4VbYOfY0GuGcP zw^#ke!EQO%a49#M)RgsHxD%3|c65mbvq8E4^r`6FSeCwXcxbpMCXM>juBNV(TK78A zk*&a`Iv%&o7%8buLy?nBYem<5hD+T;hf2}CZM47%a^6Pd2cp{{%g{Q^P`A(6-;N~Q z7w4`KkA^&-u465u$fJHKv%O=ds)sY}{X+-khCLb{>Q2Aa**jW)@&)?eBsc2O@Dbaj5$)zLE>JsqCoXwOFP?UQzi9x}1uMh3; z{X2K=4_$jl`MMj@Ql&>7MD42i_jQr~|5CFUIuZu|c6o@o4-Z~Z0DTFKNco+~V${lkN4MeNVeQ zx9+Y~iu?Nxwd;&N(wFa+M^huwgdu~;fuWr;PLN@{3_T52^+P~==7!n_HoHV-@6chL zrq|NhMCT>{xDNlD=p;|+ z{`MXj>ukD5W(2+R@yIx1kBlXKq4BfyE&HyLIeKe;mlP7Sv#1C?dZESOH!HSg@|!(| zm*?M!#dunajia=ojkfL{*{<#O&BXzIEPSOrKiwC73bf9$p*?PbZ08wrXX>i$+v`4t z+_<#?bu^;(Mzkf<;JB#~ZEQrBHlmJ3w53sfa|7DAd2KN29vN+KG>Ac)8dYLYqtV6& zbZGNk%>-`Ne=Nbeu9S!Kx4hS@!+t}V{-o92P6107TzFixLcf4BO9N3W0 zAFNdJ<YFrUq18b{{A}yYTv9cZu^Y*t7g_QJ)HbxQ$*&XS1F?;d4e1V zTKmpiH6i|j`8~(>*m3+fB*gFfREX4Kjv8O8sv-W56XGwKAAXm^-ZqqfIU#=8;^W_! zXnZkkh<}`0@%K64V5F#?e}A;5cTKwpEE=JP6%YU{+0#AwO@8N)Su5^zo*IV zcd~rxGA{o`Gu(l|w&(m`XXWSoTb~si@Vh0D;rwqB|G4~{|12bsvw&Lvr-+E9wf3FO z+burVKfd4WziXs9aQ+vXKj)vdMDaT+N%@~E{&D#iJ{K}=v&1xil?=3Y{bVdY=f5c9 zif-w!TYKgF|3xY#uKzTj7F_&ywv=%F|C9K~vMAyGca{jj`j9(KL|L5k9 z9mgLN|G4^T1i6UL9ZzX~-q zVUF7VI+k($jh!0be)w`T_g{`*7XP^V%YC7-{az3gU%!?Y*MF*7*|Mz{U%w_97k?%u z{)@zx%dg)ZjEj$d?6_Wh{mx@t{N_g*%dh{wh2!6!5Wjk+oRDq3_&UGF#V^OiZxvgP z|50JF{lbNqtMKRo_ofM0L?dY$;k#h-|Ye_>4g`_BpGx8YV(jkan_*r)A1b|^pg$IC%n z{mqy^e&>k&@%~>EuHO~QAOG%E>+j{_#PxT!#pm&FN-JBoOxUfxYF+v5GFcQz6*g{@ zA=1fqM&r-PG5oQ=Qx2l?QvypD1V>v2m`Y>+d87D8TI4@HAL3gzM*ZhvQQ`6@<$rQa z{-2Ab6gae_a04f7{sp zo5YjzFD1?2PcwcYY5tChum5C)wnSW7tC4vkNy)Fj{nJo z_*rdi+3-7M;a%hP_wj`InMXsUvULoN|4I?z_+Pa6+g!S`WO#Ez2{1+$m-wBI< z_B!#;PUydjG4Zd6iGTU?;;-Ksi;wz48eIQd#6Pb7S7PGth>3qrLjPT``1swqr1&if z{kQ4AhnCLi;3S*&-z#O$?f>$G{(GVgeCypm+?&vUTg@N8`xGT1FI<1)3H`TgA!OR> z^4}Gc|CGh&>#tV_3)#5+`1<>lJf_kReEn6;AHT~NiOCD+KO_Ee?O*vy$bVe!&veuJ z-z|Ht|1Vp7&i`iZtg_9A-P$YX{|&qUv%^y3C|9HauQHd%4YhvPmI-&p1S$ul@+|Zu?HKG4c#KhNU z1zi8P$pSyF|1Mel11Pxdx%~a&AJ>1UE&hc0Y5nUzo#Xf$6=6{Ar_{VYyA#Hb z$!~}J{rIW>E}7f^yoCPOtb?s=>-E2L68hha#qSI<(fqGk9RC;c0a0B4t6F^g?yAW& zT)#gP|G56QYVn&?TsH0hgR!;QH`Fi2^Z%nv;X1*6P_1Di~$%pelV*Q8fFKzMhySq_g z@Yq95N$XBnQr$hw)*njM7>pwJr z=PW*chY|6ihxdOh{*e~>PdyoGdc_Pi{vC46_5Y6+|9J9W(#48w>y`hr3H=9uc$f3# z_n%7WKNH_?>_1h>hx6Yi9Y>1RaQ!vg?+~mv{$DQsT7Oyj-*3|~@$V7?j{mMx{|5>2%NE~0 z#$3yR<9{b1{z^>!kH^Gs6Bbwg35&np^MmunKd$^uKL{oD^WWQJ;%~M1borzf?RP5H zyMAs;SU;?o|9eH>Z(M)ZC#)Zu?FaM<=B({^uN-sx=`uaG{_OWO@cX97f#ZK&{Nw7c zZ1FQHE}O=GhwM52ipA&p%M{dW{qg603H6sNMDD5ghuzvM=dZsv7nlF^4@0IE^VIy` zDaV}ua6ssNTJQPEdlKT$#KeD3O#Gzz zzb)qTvwszT?Q6PWe+`~L&;`)CKiEA#?ABhn|6FO$A9w*fZ~3RqQ`=9+67D}q`ERuR zVXyxGCjQ79`xaSXM(t1eXDxq8uWsY~lj2_<6JG-%F822&#LpdL{2ejzkBf+doPPMt*MuO4Ikn`7eZy%geNKc5hP z;uz!i#KeC_O#G7*>VL}OYu)(m>GuErnD}}xgmPoA-_O(-T>mr27=P5_BVTQM{oAaF zi~YBR#l@eq`1+ZP-=GJ!2+iX`!hY4puQ|gSe@2cm9${WNUHmjY-@lyP9UM6x@;2F2 z()e?CO#MF>xr#G%Zju37<8%GDTKx6a-%0WBiHWa&3led$|EyF*T>PxX*K>a3`bdiZ zKumo78@z~%{l0|wxnqp~kj0nV^Jvrd|4TVST9b_`WB;>+@~3)21bIABw{bo{PALDJ zl|OCXTK><=F_%9n|3_l-*R?$I#(qme|7*4UFRjbIasAto(EnB}|4x_xBfm!e3o-d? z`y+4c@0BlzNYym-zk=m|g~i8?>wjGQBQ3gqGCvMAT`)(j|1Zh$)2;t+##}$25r5>3 z{fFfNPh9>pmj4qLA3M(fzleWa{*#vfv^i@2e~x5@*Sxbja~eEgjlD@Mcf(-(?=T=}#AE0ok+h_X z{GXZ7e$Dz}k!%OFaBk!FONyU*FhutA$5%xM^@ja>66Wt}ZwR{H^VfHYe_Z{Qt^Ot~ zcP;<_kYm&b)-M+&+`l&85*)XiKXzRHmnGc4rhXD4O`D^}e_W0^{uA=~y|NP!!1i4h zANDxS@3nc3#s6;k{Q6k@KPb+};(xI`pgk7_Wg+yX#PR}t@>bc%<&(v z?@#dalWDtt{P!2WleG{+G4_0@9Bq>h z2--el@%Iu}Tivj~PlWWCsxS3+^M_sJLxcK<-`sY#2!a(jIV>ffbO!*>6WC4ni6U#Nr=8vkc<$npO~IBTlM z`1b>Sk<8D2W81QvXQuWKuLOF|JL_A9ZEqF-xcW=oA{|S%l{>@CuKE9yyyyH+v;G?y zyO+=36-c7kTmfPl$h{S>H^l!gKYisC|B=<^R9( z9{%XRua)^<%fjWaSp4^?h}%$Z?9aE)-(Ar|G55FvGUJY|JU;C=Lhgd`LDFk&wUI%u51jJZ|SZ-!})JZh~IX0sQ)$#sPXmr cJ;&c8<)fyH0_Lp$bjtm$ZW{O9@<03kKYZ^x00000 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.bin b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.bin deleted file mode 100755 index 35d7dc9fefc14e30c66ce810b1bdd0bc56b581aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8216 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 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c deleted file mode 100644 index 90a87b17a..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.c +++ /dev/null @@ -1,34 +0,0 @@ - - const char features[] = {"\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 -"1" -#else -"0" -#endif -"c_function_prototypes\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_restrict\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -"1" -#else -"0" -#endif -"c_static_assert\n" -"C_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -"1" -#else -"0" -#endif -"c_variadic_macros\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx b/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx deleted file mode 100644 index 703b33501..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/CMakeFiles/feature_tests.cxx +++ /dev/null @@ -1,405 +0,0 @@ - - const char features[] = {"\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_aggregate_nsdmi) -"1" -#else -"0" -#endif -"cxx_aggregate_default_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alias_templates) -"1" -#else -"0" -#endif -"cxx_alias_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_alignas) -"1" -#else -"0" -#endif -"cxx_alignof\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_attributes) -"1" -#else -"0" -#endif -"cxx_attributes\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_attribute_deprecated\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_auto_type) -"1" -#else -"0" -#endif -"cxx_auto_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_binary_literals) -"1" -#else -"0" -#endif -"cxx_binary_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_constexpr) -"1" -#else -"0" -#endif -"cxx_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_contextual_conversions) -"1" -#else -"0" -#endif -"cxx_contextual_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype) -"1" -#else -"0" -#endif -"cxx_decltype\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_decltype_auto\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_decltype_incomplete_return_types) -"1" -#else -"0" -#endif -"cxx_decltype_incomplete_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_default_function_template_args) -"1" -#else -"0" -#endif -"cxx_default_function_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_defaulted_functions) -"1" -#else -"0" -#endif -"cxx_defaulted_move_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_delegating_constructors) -"1" -#else -"0" -#endif -"cxx_delegating_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_deleted_functions) -"1" -#else -"0" -#endif -"cxx_deleted_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_digit_separators\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_enum_forward_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_explicit_conversions) -"1" -#else -"0" -#endif -"cxx_explicit_conversions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extended_friend_declarations\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_extern_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_final\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_func_identifier\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_generalized_initializers\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 304 && __cplusplus > 201103L -"1" -#else -"0" -#endif -"cxx_generic_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_inheriting_constructors) -"1" -#else -"0" -#endif -"cxx_inheriting_constructors\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_inline_namespaces\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_lambdas) -"1" -#else -"0" -#endif -"cxx_lambdas\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_init_captures) -"1" -#else -"0" -#endif -"cxx_lambda_init_captures\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_local_type_template_args) -"1" -#else -"0" -#endif -"cxx_local_type_template_args\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_long_long_type\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_noexcept) -"1" -#else -"0" -#endif -"cxx_noexcept\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nonstatic_member_init) -"1" -#else -"0" -#endif -"cxx_nonstatic_member_init\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_nullptr) -"1" -#else -"0" -#endif -"cxx_nullptr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_override_control) -"1" -#else -"0" -#endif -"cxx_override\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_range_for) -"1" -#else -"0" -#endif -"cxx_range_for\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_raw_string_literals) -"1" -#else -"0" -#endif -"cxx_raw_string_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_reference_qualified_functions) -"1" -#else -"0" -#endif -"cxx_reference_qualified_functions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_relaxed_constexpr) -"1" -#else -"0" -#endif -"cxx_relaxed_constexpr\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_return_type_deduction) -"1" -#else -"0" -#endif -"cxx_return_type_deduction\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_right_angle_brackets\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_rvalue_references) -"1" -#else -"0" -#endif -"cxx_rvalue_references\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_sizeof_member\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_static_assert) -"1" -#else -"0" -#endif -"cxx_static_assert\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_strong_enums) -"1" -#else -"0" -#endif -"cxx_strong_enums\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 199711L -"1" -#else -"0" -#endif -"cxx_template_template_parameters\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_thread_local) -"1" -#else -"0" -#endif -"cxx_thread_local\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_trailing_return) -"1" -#else -"0" -#endif -"cxx_trailing_return_types\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unicode_literals) -"1" -#else -"0" -#endif -"cxx_unicode_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_generalized_initializers) -"1" -#else -"0" -#endif -"cxx_uniform_initialization\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_unrestricted_unions) -"1" -#else -"0" -#endif -"cxx_unrestricted_unions\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_user_literals) -"1" -#else -"0" -#endif -"cxx_user_literals\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variable_templates) -"1" -#else -"0" -#endif -"cxx_variable_templates\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __cplusplus >= 201103L -"1" -#else -"0" -#endif -"cxx_variadic_macros\n" -"CXX_FEATURE:" -#if ((__clang_major__ * 100) + __clang_minor__) >= 301 && __has_feature(cxx_variadic_templates) -"1" -#else -"0" -#endif -"cxx_variadic_templates\n" - -}; - -int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json deleted file mode 100644 index a87f65fd8..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "stringTable": { - "0": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "1": "--target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC" - }, - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-x86_64": { - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" cw_zano", - "buildType": "release", - "toolchain": "520418125", - "abi": "x86_64", - "artifactName": "cw_zano", - "files": [ - { - "src": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "flagsOrdinal": 1, - "workingDirectoryOrdinal": 0 - } - ], - "headers": [], - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so", - "runtimeFiles": [] - } - }, - "toolchains": { - "520418125": { - "cppCompilerExecutable": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++" - } - }, - "cFileExtensions": [], - "cppFileExtensions": [ - "cpp" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt deleted file mode 100644 index 0e98c7ba5..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt deleted file mode 100644 index 2ab941f52..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_haven_x86_64.stdout.txt +++ /dev/null @@ -1,7 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64' -[1/2] Building CXX object CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp:178:47: warning: object backing the pointer will be destroyed at the end of the full-expression [-Wdangling-gsl] - std::set::iterator it = transaction->subaddrIndex().begin(); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~ -1 warning generated. -[2/2] Linking CXX shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt deleted file mode 100644 index 0e98c7ba5..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.command.txt +++ /dev/null @@ -1,7 +0,0 @@ -Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -arguments : --C -/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 -cw_zano -jvmArgs : - diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stderr.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt deleted file mode 100644 index 09c4af59b..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_cw_zano_x86_64.stdout.txt +++ /dev/null @@ -1,2 +0,0 @@ -ninja: Entering directory `/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64' -ninja: no work to do. diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json b/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json deleted file mode 100644 index 72f3647b7..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build_mini.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "buildFiles": [ - "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake", - "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake" - ], - "cleanCommands": [ - "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" clean" - ], - "buildTargetsCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" {LIST_OF_TARGETS_TO_BUILD}", - "libraries": { - "cw_zano-Release-x86_64": { - "artifactName": "cw_zano", - "buildCommand": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -C \"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64\" cw_zano", - "abi": "x86_64", - "output": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so", - "runtimeFiles": [] - } - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build.ninja b/cw_zano/android/.cxx/cmake/release/x86_64/build.ninja deleted file mode 100644 index e24e6de3f..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/build.ninja +++ /dev/null @@ -1,127 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the build statements describing the -# compilation DAG. - -# ============================================================================= -# Write statements declared in CMakeLists.txt: -# -# Which is the root file. -# ============================================================================= - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= - -############################################# -# Minimal version of Ninja required by this file - -ninja_required_version = 1.5 - -# ============================================================================= -# Include auxiliary files. - - -############################################# -# Include rules file. - -include rules.ninja - - -############################################# -# Utility command for edit_cache - -build CMakeFiles/edit_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. - DESC = No interactive CMake dialog available... - restat = 1 -build edit_cache: phony CMakeFiles/edit_cache.util - -############################################# -# Utility command for rebuild_cache - -build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND - COMMAND = cd /opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 && /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 - DESC = Running CMake to regenerate build system... - pool = console - restat = 1 -build rebuild_cache: phony CMakeFiles/rebuild_cache.util -# ============================================================================= -# Object build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Order-only phony target for cw_zano - -build cmake_object_order_depends_target_cw_zano: phony -build CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o: CXX_COMPILER__cw_zano /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp || cmake_object_order_depends_target_cw_zano - DEFINES = -Dcw_zano_EXPORTS - DEP_FILE = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o.d - FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC - INCLUDES = -I../../../../../../cw_shared_external/ios/External/android/x86_64/include - OBJECT_DIR = CMakeFiles/cw_zano.dir - OBJECT_FILE_DIR = CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes - -# ============================================================================= -# Link build statements for SHARED_LIBRARY target cw_zano - - -############################################# -# Link the shared library /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so - -build /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so: CXX_SHARED_LIBRARY_LINKER__cw_zano CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o | ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so - LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG - LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments - LINK_LIBRARIES = ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm - OBJECT_DIR = CMakeFiles/cw_zano.dir - POST_BUILD = : - PRE_LINK = : - SONAME = libcw_zano.so - SONAME_FLAG = -Wl,-soname, - TARGET_FILE = /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so - TARGET_PDB = cw_zano.so.dbg -# ============================================================================= -# Target aliases. - -build cw_zano: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so -build libcw_zano.so: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so -# ============================================================================= -# Folder targets. - -# ============================================================================= -# ============================================================================= -# Built-in targets - - -############################################# -# The main all target. - -build all: phony /opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so - -############################################# -# Make the all target the default. - -default all - -############################################# -# Re-run CMake if any of its inputs changed. - -build build.ninja: RERUN_CMAKE | ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake - pool = console - -############################################# -# A missing CMake input file is not an error. - -build ../../../../CMakeLists.txt /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake /home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake CMakeCache.txt CMakeFiles/3.10.2/CMakeCCompiler.cmake CMakeFiles/3.10.2/CMakeCXXCompiler.cmake CMakeFiles/3.10.2/CMakeSystem.cmake: phony - -############################################# -# Clean all the built files. - -build clean: CLEAN - -############################################# -# Print all primary targets available. - -build help: HELP diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt b/cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt deleted file mode 100644 index 1877eeee1..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/build_command.txt +++ /dev/null @@ -1,21 +0,0 @@ - Executable : /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -arguments : --H/opt/android/cake_wallet/cw_zano/android --DCMAKE_FIND_ROOT_PATH=/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64/prefab --DCMAKE_BUILD_TYPE=Release --DCMAKE_TOOLCHAIN_FILE=/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake --DANDROID_ABI=x86_64 --DANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DANDROID_PLATFORM=android-21 --DCMAKE_ANDROID_ARCH_ABI=x86_64 --DCMAKE_ANDROID_NDK=/home/leo/android-sdk/ndk/25.1.8937393 --DCMAKE_EXPORT_COMPILE_COMMANDS=ON --DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64 --DCMAKE_MAKE_PROGRAM=/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja --DCMAKE_SYSTEM_NAME=Android --DCMAKE_SYSTEM_VERSION=21 --B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 --GNinja -jvmArgs : - -Build command args: diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build_model.json b/cw_zano/android/.cxx/cmake/release/x86_64/build_model.json deleted file mode 100644 index b18d05145..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/build_model.json +++ /dev/null @@ -1,208 +0,0 @@ -{ - "abi": "X86_64", - "abiPlatformVersion": 21, - "buildSettings": { - "environmentVariables": [] - }, - "cmake": { - "cmakeArtifactsBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "cmakeServerLogFile": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt", - "cmakeWrappingBaseFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cxx/release/x86_64", - "effectiveConfiguration": { - "name": "traditional-android-studio-cmake-environment", - "description": "Composite reified CMakeSettings configuration", - "generator": "Ninja", - "inheritEnvironments": [ - "ndk" - ], - "buildRoot": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "cmakeToolchain": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cmakeExecutable": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "variables": [ - { - "name": "CMAKE_FIND_ROOT_PATH", - "value": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64/prefab" - }, - { - "name": "CMAKE_BUILD_TYPE", - "value": "Release" - }, - { - "name": "CMAKE_TOOLCHAIN_FILE", - "value": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake" - }, - { - "name": "ANDROID_ABI", - "value": "x86_64" - }, - { - "name": "ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "ANDROID_PLATFORM", - "value": "android-21" - }, - { - "name": "CMAKE_ANDROID_ARCH_ABI", - "value": "x86_64" - }, - { - "name": "CMAKE_ANDROID_NDK", - "value": "/home/leo/android-sdk/ndk/25.1.8937393" - }, - { - "name": "CMAKE_EXPORT_COMPILE_COMMANDS", - "value": "ON" - }, - { - "name": "CMAKE_LIBRARY_OUTPUT_DIRECTORY", - "value": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64" - }, - { - "name": "CMAKE_MAKE_PROGRAM", - "value": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - { - "name": "CMAKE_SYSTEM_NAME", - "value": "Android" - }, - { - "name": "CMAKE_SYSTEM_VERSION", - "value": "21" - } - ] - } - }, - "cxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "info": { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - }, - "originalCxxBuildFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "variant": { - "buildSystemArgumentList": [], - "buildTargetSet": [], - "implicitBuildTargetSet": [], - "cFlagsList": [], - "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name", - "cppFlagsList": [], - "isDebuggableEnabled": false, - "module": { - "buildSystem": "CMAKE", - "cmake": { - "cmakeExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake", - "minimumCmakeVersion": "3.10.2", - "ninjaExe": "/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja" - }, - "cmakeToolchainFile": "/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "cxxFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx", - "gradleModulePathName": ":cw_zano", - "intermediatesFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates", - "makeFile": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "moduleBuildFile": "/opt/android/cake_wallet/cw_zano/android/build.gradle", - "moduleRootFolder": "/opt/android/cake_wallet/cw_zano/android", - "ndkDefaultAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkFolder": "/home/leo/android-sdk/ndk/25.1.8937393", - "ndkMetaAbiList": [ - { - "abi": "ARMEABI_V7A", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "ARM64_V8A", - "bitness": 64, - "deprecated": false, - "default": true - }, - { - "abi": "X86", - "bitness": 32, - "deprecated": false, - "default": true - }, - { - "abi": "X86_64", - "bitness": 64, - "deprecated": false, - "default": true - } - ], - "ndkMetaPlatforms": { - "min": 19, - "max": 33, - "aliases": { - "20": 19, - "25": 24, - "J": 16, - "J-MR1": 17, - "J-MR2": 18, - "K": 19, - "L": 21, - "L-MR1": 22, - "M": 23, - "N": 24, - "N-MR1": 24, - "O": 26, - "O-MR1": 27, - "P": 28, - "Q": 29, - "R": 30, - "S": 31, - "Sv2": 32, - "Tiramisu": 33 - } - }, - "ndkSupportedAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "ndkDefaultStl": "LIBCXX_STATIC", - "ndkVersion": "25.1.8937393", - "project": { - "compilerSettingsCacheFolder": "/opt/android/cake_wallet/android/.cxx", - "cxxFolder": "/opt/android/cake_wallet/android/.cxx", - "isBuildOnlyTargetAbiEnabled": true, - "isCmakeBuildCohabitationEnabled": false, - "isNativeCompilerSettingsCacheEnabled": false, - "rootBuildGradleFolder": "/opt/android/cake_wallet/android", - "sdkFolder": "/home/leo/android-sdk", - "isPrefabEnabled": false - }, - "splitsAbiFilterSet": [], - "stlSharedObjectMap": { - "LIBCXX_SHARED": { - "ARMEABI_V7A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so", - "ARM64_V8A": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so", - "X86": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/i686-linux-android/libc++_shared.so", - "X86_64": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/libc++_shared.so" - }, - "LIBCXX_STATIC": {}, - "NONE": {}, - "SYSTEM": {} - } - }, - "objFolder": "/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj", - "variantName": "release", - "validAbiList": [ - "ARMEABI_V7A", - "ARM64_V8A", - "X86", - "X86_64" - ], - "prefabDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab", - "prefabPackageDirectoryList": [] - }, - "prefabFolder": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64" -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt b/cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt deleted file mode 100644 index 54a0e3e82..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/build_output.txt +++ /dev/null @@ -1,12 +0,0 @@ -CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - - -Configuring done \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake b/cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake deleted file mode 100644 index b52b2bd7d..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/cmake_install.cmake +++ /dev/null @@ -1,49 +0,0 @@ -# Install script for directory: /opt/android/cake_wallet/cw_zano/android - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt b/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt deleted file mode 100644 index 1e9abb905..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/cmake_server_log.txt +++ /dev/null @@ -1,170 +0,0 @@ -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"supportedProtocolVersions":[{"isExperimental":true,"major":1,"minor":1}],"type":"hello"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "handshake", - "cookie": "gradle-cmake-cookie", - "protocolVersion": { - "isExperimental": true, - "major": 1, - "minor": 1 - }, - "sourceDirectory": "/opt/android/cake_wallet/cw_zano/android", - "buildDirectory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "generator": "Ninja" -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"gradle-cmake-cookie","inReplyTo":"handshake","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: { - "type": "configure", - "cacheArguments": [ - "", - "-DCMAKE_FIND_ROOT_PATH\u003d/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/prefab/x86_64/prefab", - "-DCMAKE_BUILD_TYPE\u003dRelease", - "-DCMAKE_TOOLCHAIN_FILE\u003d/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake", - "-DANDROID_ABI\u003dx86_64", - "-DANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DANDROID_PLATFORM\u003dandroid-21", - "-DCMAKE_ANDROID_ARCH_ABI\u003dx86_64", - "-DCMAKE_ANDROID_NDK\u003d/home/leo/android-sdk/ndk/25.1.8937393", - "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON", - "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64", - "-DCMAKE_MAKE_PROGRAM\u003d/home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja", - "-DCMAKE_SYSTEM_NAME\u003dAndroid", - "-DCMAKE_SYSTEM_VERSION\u003d21" - ] -} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message):\n An old version of CMake is being used that cannot automatically detect\n compiler attributes. Compiler identification is being bypassed. Some\n values may be wrong or missing. Update to CMake 3.19 or newer to use\n CMake's built-in compiler identification.\nCall Stack (most recent call first):\n /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include)\n .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include)\n CMakeLists.txt\n\n","title":"Warning","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: CMake Warning at /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake:415 (message): - An old version of CMake is being used that cannot automatically detect - compiler attributes. Compiler identification is being bypassed. Some - values may be wrong or missing. Update to CMake 3.19 or newer to use - CMake's built-in compiler identification. -Call Stack (most recent call first): - /home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake:54 (include) - .cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake:6 (include) - CMakeLists.txt - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Configuring","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","message":"Configuring done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Configuring done -CMAKE SERVER: Configuring done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"configure","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"compute"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","progressCurrent":1000,"progressMaximum":1000,"progressMessage":"Generating","progressMinimum":0,"type":"progress"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","message":"Generating done","type":"message"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: Generating done -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"cookie":"","inReplyTo":"compute","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"cmakeInputs"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"buildFiles":[{"isCMake":true,"isTemporary":false,"sources":["/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInitialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Initialize.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeSystemSpecificInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeGenericSystem.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Linux.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/UnixPaths.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/GNU.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/CMakeCommonCompilerMacros.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-C.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCXXInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeLanguageInformation.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Compiler/Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang-CXX.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/Platform/Android-Clang.cmake","/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeCommonLanguageInclude.cmake"]},{"isCMake":false,"isTemporary":false,"sources":["CMakeLists.txt","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/android-legacy.toolchain.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/platforms.cmake","/home/leo/android-sdk/ndk/25.1.8937393/build/cmake/compiler_id.cmake"]},{"isCMake":false,"isTemporary":true,"sources":[".cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeSystem.cmake",".cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCCompiler.cmake",".cxx/cmake/release/x86_64/CMakeFiles/3.10.2/CMakeCXXCompiler.cmake"]}],"cmakeRootDirectory":"/home/leo/android-sdk/cmake/3.10.2.4988404/share/cmake-3.10","cookie":"","inReplyTo":"cmakeInputs","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"type":"codemodel"} - -CMAKE SERVER: ]== "CMake Server" ==] - -CMAKE SERVER: - -CMAKE SERVER: [== "CMake Server" ==[ - -CMAKE SERVER: {"configurations":[{"name":"Release","projects":[{"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64","name":"Project","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","targets":[{"artifacts":["/opt/android/cake_wallet/build/cw_zano/intermediates/cmake/release/obj/x86_64/libcw_zano.so"],"buildDirectory":"/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64","fileGroups":[{"compileFlags":"-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC ","defines":["cw_zano_EXPORTS"],"includePath":[{"path":"/opt/android/cake_wallet/cw_zano/android/../../cw_shared_external/ios/External/android/x86_64/include"}],"isGenerated":false,"language":"CXX","sources":["../ios/Classes/zano_api.cpp"]}],"fullName":"libcw_zano.so","linkFlags":"-static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments","linkLibraries":"../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet_api.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libwallet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_core.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcryptonote_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmnemonics.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libringct_basic.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libnet.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcommon.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcncrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libblockchain_db.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liblmdb.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libeasylogging.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libunbound.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libepee.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libcheckpoints.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libdevice_trezor.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libmultisig.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libversion.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librandomx.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/liboffshore.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/libhardforks.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/haven/librpc_base.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_chrono.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_date_time.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_filesystem.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_program_options.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_regex.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_serialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_system.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_thread.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libboost_wserialization.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libssl.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libcrypto.a ../../../../../../cw_shared_external/ios/External/android/x86_64/lib/libsodium.a /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/21/liblog.so -latomic -lm","linkerLanguage":"CXX","name":"cw_zano","sourceDirectory":"/opt/android/cake_wallet/cw_zano/android","sysroot":"/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot","type":"SHARED_LIBRARY"}]}]}],"cookie":"","inReplyTo":"codemodel","type":"reply"} - -CMAKE SERVER: ]== "CMake Server" ==] - diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json b/cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json deleted file mode 100644 index 2d63b53dc..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/compile_commands.json +++ /dev/null @@ -1,7 +0,0 @@ -[ -{ - "directory": "/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64", - "command": "/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dcw_zano_EXPORTS -I../../../../../../cw_shared_external/ios/External/android/x86_64/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -O3 -DNDEBUG -fPIC -o CMakeFiles/cw_zano.dir/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp.o -c /opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp", - "file": "/opt/android/cake_wallet/cw_zano/ios/Classes/zano_api.cpp" -} -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json b/cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json deleted file mode 100644 index d8bfaf476..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/json_generation_record.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "level": "INFO", - "message": "Start JSON generation. Platform version: 21 min SDK version: x86_64", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86_64" - }, - { - "level": "INFO", - "message": "No CMake version was specified in build.gradle. Using default version 3.10.2.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86_64" - }, - { - "level": "INFO", - "message": "Trying to locate CMake in local SDK repository.", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86_64" - }, - { - "level": "INFO", - "message": "- CMake found in SDK at \u0027/home/leo/android-sdk/cmake/3.10.2.4988404\u0027 had version \u00273.10.2\u0027", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86_64" - }, - { - "level": "INFO", - "message": "JSON \u0027/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64/android_gradle_build.json\u0027 was up-to-date", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86_64" - }, - { - "level": "INFO", - "message": "JSON generation completed without problems", - "file": "/opt/android/cake_wallet/cw_zano/android/CMakeLists.txt", - "tag": "release|x86_64" - } -] \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json b/cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json deleted file mode 100644 index e799de86a..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/prefab_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "enabled": false, - "packages": [] -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja b/cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja deleted file mode 100644 index af2d58df1..000000000 --- a/cw_zano/android/.cxx/cmake/release/x86_64/rules.ninja +++ /dev/null @@ -1,64 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Ninja" Generator, CMake Version 3.10 - -# This file contains all the rules used to get the outputs files -# built from the input files. -# It is included in the main 'build.ninja'. - -# ============================================================================= -# Project: Project -# Configuration: Release -# ============================================================================= -# ============================================================================= - -############################################# -# Rule for running custom commands. - -rule CUSTOM_COMMAND - command = $COMMAND - description = $DESC - - -############################################# -# Rule for compiling CXX files. - -rule CXX_COMPILER__cw_zano - depfile = $DEP_FILE - deps = gcc - command = /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in - description = Building CXX object $out - - -############################################# -# Rule for linking CXX shared library. - -rule CXX_SHARED_LIBRARY_LINKER__cw_zano - command = $PRE_LINK && /home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21 --sysroot=/home/leo/android-sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD - description = Linking CXX shared library $TARGET_FILE - restat = $RESTAT - - -############################################# -# Rule for re-running cmake. - -rule RERUN_CMAKE - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/cmake -H/opt/android/cake_wallet/cw_zano/android -B/opt/android/cake_wallet/cw_zano/android/.cxx/cmake/release/x86_64 - description = Re-running CMake... - generator = 1 - - -############################################# -# Rule for cleaning all built files. - -rule CLEAN - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t clean - description = Cleaning all built files... - - -############################################# -# Rule for printing all primary targets available. - -rule HELP - command = /home/leo/android-sdk/cmake/3.10.2.4988404/bin/ninja -t targets - description = All primary targets available: - diff --git a/cw_zano/android/.cxx/ndk_locator_record_713q3b26.json b/cw_zano/android/.cxx/ndk_locator_record_713q3b26.json deleted file mode 100644 index f18868f49..000000000 --- a/cw_zano/android/.cxx/ndk_locator_record_713q3b26.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "ndk": "/home/leo/android-sdk/ndk/25.1.8937393", - "revision": { - "mMajor": 25, - "mMinor": 1, - "mMicro": 8937393, - "mPreview": 0, - "mPrecision": "MICRO", - "mPreviewSeparator": " " - } -} \ No newline at end of file diff --git a/cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json b/cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json deleted file mode 100644 index 3f7d5536f..000000000 --- a/cw_zano/android/.cxx/ndk_locator_record_713q3b26_key.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "ndkVersionFromDsl": "25.1.8937393", - "sdkFolder": "/home/leo/android-sdk", - "sideBySideNdkFolderNames": [ - "25.1.8937393" - ] -} \ No newline at end of file diff --git a/cw_zano/android/.gitignore b/cw_zano/android/.gitignore index c6cbe562a..4abf6a863 100644 --- a/cw_zano/android/.gitignore +++ b/cw_zano/android/.gitignore @@ -6,3 +6,4 @@ .DS_Store /build /captures +.cxx/ \ No newline at end of file diff --git a/cw_zano/android/CMakeLists.txt b/cw_zano/android/CMakeLists.txt index 4ba87d89a..5d88ede19 100644 --- a/cw_zano/android/CMakeLists.txt +++ b/cw_zano/android/CMakeLists.txt @@ -7,14 +7,9 @@ add_library( cw_zano find_library( log-lib log ) set(EXTERNAL_LIBS_DIR ${CMAKE_SOURCE_DIR}/../../cw_shared_external/ios/External/android) +set(EXTERNAL_ZANO_ROOT ${CMAKE_SOURCE_DIR}/../../../zano) -############ -# libsodium -############ -add_library(sodium STATIC IMPORTED) -set_target_properties(sodium PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libsodium.a) ############ # OpenSSL @@ -68,140 +63,45 @@ add_library(boost_wserialization STATIC IMPORTED) set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_wserialization.a) +add_library(boost_log STATIC IMPORTED) + set_target_properties(boost_log PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/libboost_log.a) + ############# # Zano ############# - -add_library(wallet_api STATIC IMPORTED) -set_target_properties(wallet_api PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libwallet_api.a) - -add_library(wallet STATIC IMPORTED) -set_target_properties(wallet PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libwallet.a) - -add_library(cryptonote_core STATIC IMPORTED) -set_target_properties(cryptonote_core PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcryptonote_core.a) - -add_library(cryptonote_basic STATIC IMPORTED) -set_target_properties(cryptonote_basic PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcryptonote_basic.a) - -add_library(mnemonics STATIC IMPORTED) -set_target_properties(mnemonics PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libmnemonics.a) - -add_library(common STATIC IMPORTED) -set_target_properties(common PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcommon.a) - -add_library(cncrypto STATIC IMPORTED) -set_target_properties(cncrypto PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcncrypto.a) - -add_library(ringct STATIC IMPORTED) -set_target_properties(ringct PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libringct.a) - -add_library(ringct_basic STATIC IMPORTED) -set_target_properties(ringct_basic PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libringct_basic.a) - -add_library(blockchain_db STATIC IMPORTED) -set_target_properties(blockchain_db PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libblockchain_db.a) - -add_library(lmdb STATIC IMPORTED) -set_target_properties(lmdb PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/liblmdb.a) - -add_library(easylogging STATIC IMPORTED) -set_target_properties(easylogging PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libeasylogging.a) - -add_library(unbound STATIC IMPORTED) -set_target_properties(unbound PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libunbound.a) - -add_library(epee STATIC IMPORTED) -set_target_properties(epee PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libepee.a) - -add_library(checkpoints STATIC IMPORTED) -set_target_properties(checkpoints PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libcheckpoints.a) - -add_library(device STATIC IMPORTED) -set_target_properties(device PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libdevice.a) - -add_library(device_trezor STATIC IMPORTED) -set_target_properties(device_trezor PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libdevice_trezor.a) - -add_library(multisig STATIC IMPORTED) -set_target_properties(multisig PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libmultisig.a) - -add_library(version STATIC IMPORTED) -set_target_properties(version PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libversion.a) - -add_library(net STATIC IMPORTED) -set_target_properties(net PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libnet.a) - -add_library(hardforks STATIC IMPORTED) -set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libhardforks.a) - -add_library(randomx STATIC IMPORTED) -set_target_properties(randomx PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/librandomx.a) - -add_library(offshore STATIC IMPORTED) -set_target_properties(offshore PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/liboffshore.a) +add_library(zano_common STATIC IMPORTED) +set_target_properties(zano_common PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/zano/libcommon.a) -add_library(rpc_base STATIC IMPORTED) -set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/librpc_base.a) +add_library(zano_crypto STATIC IMPORTED) +set_target_properties(zano_crypto PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/zano/libcrypto.a) -add_library(wallet-crypto STATIC IMPORTED) -set_target_properties(wallet-crypto PROPERTIES IMPORTED_LOCATION - ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/haven/libwallet-crypto.a) +add_library(zano_currency_core STATIC IMPORTED) +set_target_properties(zano_currency_core PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/zano/libcurrency_core.a) + +add_library(zano_z STATIC IMPORTED) +set_target_properties(zano_z PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/zano/libz.a) + +add_library(zano_wallet STATIC IMPORTED) +set_target_properties(zano_wallet PROPERTIES IMPORTED_LOCATION + ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/lib/zano/libwallet.a) include_directories( ${EXTERNAL_LIBS_DIR}/${ANDROID_ABI}/include ) +include_directories( ${EXTERNAL_ZANO_ROOT}/src/wallet ) + target_link_libraries( cw_zano - - wallet_api - wallet - cryptonote_core - cryptonote_basic - mnemonics - ringct - ringct_basic - net - common - cncrypto - blockchain_db - lmdb - easylogging - unbound - epee - checkpoints - device - device_trezor - multisig - version - randomx - offshore - hardforks - rpc_base - + zano_common + zano_crypto + zano_currency_core + zano_z + zano_wallet + boost_chrono boost_date_time boost_filesystem @@ -211,10 +111,8 @@ target_link_libraries( cw_zano boost_system boost_thread boost_wserialization + boost_log ssl crypto - - sodium - - ${log-lib} ) \ No newline at end of file + ) \ No newline at end of file diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index aecaf0016..d41e329d2 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -14,6 +14,8 @@ void __clear_cache(void* start, void* end) { } #include "../External/android/include/wallet2_api.h" #endif +#include "plain_wallet_api.h" + using namespace std::chrono_literals; #ifdef __cplusplus @@ -203,7 +205,7 @@ extern "C" hash = strdup(_transaction->txid()[0].c_str()); } }; - + /* Monero::Wallet *m_wallet; Monero::TransactionHistory *m_transaction_history; MoneroWalletListener *m_listener; @@ -213,9 +215,10 @@ extern "C" uint64_t m_cached_syncing_blockchain_height = 0; std::mutex store_lock; bool is_storing = false; - + */ void change_current_wallet(Monero::Wallet *wallet) { + /* m_wallet = wallet; m_listener = nullptr; @@ -246,15 +249,18 @@ extern "C" { m_subaddress = nullptr; } + */ } Monero::Wallet *get_current_wallet() { - return m_wallet; + + return nullptr;//return m_wallet; } bool create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) { + /* Monero::WalletManagerFactory::setLogLevel(4); Monero::NetworkType _networkType = static_cast(networkType); @@ -273,12 +279,13 @@ extern "C" } change_current_wallet(wallet); - + */ return true; } bool restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) { + /* Monero::NetworkType _networkType = static_cast(networkType); Monero::Wallet *wallet = Monero::WalletManagerFactory::getWalletManager()->recoveryWallet( std::string(path), @@ -299,11 +306,13 @@ extern "C" } change_current_wallet(wallet); + */ return true; } bool restore_wallet_from_keys(char *path, char *password, char *language, char *address, char *viewKey, char *spendKey, int32_t networkType, uint64_t restoreHeight, char *error) { + /* Monero::NetworkType _networkType = static_cast(networkType); Monero::Wallet *wallet = Monero::WalletManagerFactory::getWalletManager()->createWalletFromKeys( std::string(path), @@ -327,11 +336,13 @@ extern "C" } change_current_wallet(wallet); + */ return true; } bool load_wallet(char *path, char *password, int32_t nettype) { + /* nice(19); Monero::NetworkType networkType = static_cast(nettype); Monero::WalletManager *walletManager = Monero::WalletManagerFactory::getWalletManager(); @@ -343,6 +354,8 @@ extern "C" change_current_wallet(wallet); return !(status != Monero::Wallet::Status_Ok || !errorString.empty()); + */ + return false; } char *error_string() { @@ -352,53 +365,54 @@ extern "C" bool is_wallet_exist(char *path) { - return Monero::WalletManagerFactory::getWalletManager()->walletExists(std::string(path)); + return false; //return Monero::WalletManagerFactory::getWalletManager()->walletExists(std::string(path)); } void close_current_wallet() { - Monero::WalletManagerFactory::getWalletManager()->closeWallet(get_current_wallet()); - change_current_wallet(nullptr); + //Monero::WalletManagerFactory::getWalletManager()->closeWallet(get_current_wallet()); + //change_current_wallet(nullptr); } char *get_filename() { - return strdup(get_current_wallet()->filename().c_str()); + return nullptr;//return strdup(get_current_wallet()->filename().c_str()); } char *secret_view_key() { - return strdup(get_current_wallet()->secretViewKey().c_str()); + return nullptr;//return strdup(get_current_wallet()->secretViewKey().c_str()); } char *public_view_key() { - return strdup(get_current_wallet()->publicViewKey().c_str()); + return nullptr;//return strdup(get_current_wallet()->publicViewKey().c_str()); } char *secret_spend_key() { - return strdup(get_current_wallet()->secretSpendKey().c_str()); + return nullptr;//return strdup(get_current_wallet()->secretSpendKey().c_str()); } char *public_spend_key() { - return strdup(get_current_wallet()->publicSpendKey().c_str()); + return nullptr;//return strdup(get_current_wallet()->publicSpendKey().c_str()); } char *get_address(uint32_t account_index, uint32_t address_index) { - return strdup(get_current_wallet()->address(account_index, address_index).c_str()); + return nullptr;//return strdup(get_current_wallet()->address(account_index, address_index).c_str()); } const char *seed() { - return strdup(get_current_wallet()->seed().c_str()); + return nullptr;//return strdup(get_current_wallet()->seed().c_str()); } int64_t *get_full_balance(uint32_t account_index) { + /* std::map accountBalance; std::map> balanceSubaddresses = get_current_wallet()->balance(account_index); std::vector assetList = Monero::Assets::list(); @@ -435,10 +449,13 @@ extern "C" i++; } return balanceAddresses; + */ + return nullptr; } int64_t *get_unlocked_balance(uint32_t account_index) { + /* std::map accountBalance; std::map> balanceSubaddresses = get_current_wallet()->unlockedBalance(account_index); std::vector assetList = Monero::Assets::list(); @@ -476,20 +493,23 @@ extern "C" i++; } return balanceAddresses; + */ + return nullptr; } uint64_t get_current_height() { - return get_current_wallet()->blockChainHeight(); + return 0;//return get_current_wallet()->blockChainHeight(); } uint64_t get_node_height() { - return get_current_wallet()->daemonBlockChainHeight(); + return 0;//return get_current_wallet()->daemonBlockChainHeight(); } bool connect_to_node(char *error) { + /* nice(19); bool is_connected = get_current_wallet()->connectToDaemon(); @@ -499,14 +519,19 @@ extern "C" } return is_connected; + */ + return false; } bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) { + + /* + nice(19); Monero::Wallet *wallet = get_current_wallet(); - std::string _login = ""; + std::string _login = plain_wallet::get_version(); std::string _password = ""; if (login != nullptr) @@ -529,31 +554,34 @@ extern "C" } return inited; + */ + return false; } bool is_connected() { - return get_current_wallet()->connected(); + return false;//return get_current_wallet()->connected(); } void start_refresh() { - get_current_wallet()->refreshAsync(); - get_current_wallet()->startRefresh(); + //get_current_wallet()->refreshAsync(); + //get_current_wallet()->startRefresh(); } void set_refresh_from_block_height(uint64_t height) { - get_current_wallet()->setRefreshFromBlockHeight(height); + //get_current_wallet()->setRefreshFromBlockHeight(height); } void set_recovering_from_seed(bool is_recovery) { - get_current_wallet()->setRecoveringFromSeed(is_recovery); + //get_current_wallet()->setRecoveringFromSeed(is_recovery); } void store(char *path) { + /* store_lock.lock(); if (is_storing) { return; @@ -563,9 +591,12 @@ extern "C" get_current_wallet()->store(std::string(path)); is_storing = false; store_lock.unlock(); + */ } - bool set_password(char *password, Utf8Box &error) { + bool set_password(char *password, Utf8Box &error) + { + /* bool is_changed = get_current_wallet()->setPassword(std::string(password)); if (!is_changed) { @@ -573,11 +604,14 @@ extern "C" } return is_changed; + */ + return false; } bool transaction_create(char *address, char *asset_type, char *payment_id, char *amount, uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) { + /* nice(19); auto priority = static_cast(priority_raw); @@ -613,11 +647,14 @@ extern "C" pendingTransaction = PendingTransactionRaw(transaction); return true; + */ + return false; } bool transaction_create_mult_dest(char **addresses, char *asset_type, char *payment_id, char **amounts, uint32_t size, uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) { + /* nice(19); std::vector _addresses; @@ -656,10 +693,13 @@ extern "C" pendingTransaction = PendingTransactionRaw(transaction); return true; + */ + return false; } bool transaction_commit(PendingTransactionRaw *transaction, Utf8Box &error) { + /* bool committed = transaction->transaction->commit(); if (!committed) @@ -670,19 +710,25 @@ extern "C" } return committed; + */ + return false; } uint64_t get_node_height_or_update(uint64_t base_eight) { + /* if (m_cached_syncing_blockchain_height < base_eight) { m_cached_syncing_blockchain_height = base_eight; } return m_cached_syncing_blockchain_height; + */ + return 0; } uint64_t get_syncing_height() { + /* if (m_listener == nullptr) { return 0; } @@ -699,10 +745,13 @@ extern "C" } return height; + */ + return 0; } uint64_t is_needed_to_refresh() { + /* if (m_listener == nullptr) { return false; } @@ -714,10 +763,12 @@ extern "C" } return should_refresh; + */ } uint8_t is_new_transaction_exist() { + /* if (m_listener == nullptr) { return false; } @@ -730,10 +781,13 @@ extern "C" } return is_new_transaction_exist; + */ + return 0; } void set_listener() { + /* m_last_known_wallet_height = 0; if (m_listener != nullptr) @@ -743,10 +797,12 @@ extern "C" m_listener = new MoneroWalletListener(); get_current_wallet()->setListener(m_listener); + */ } int64_t *subaddrress_get_all() { + /* std::vector _subaddresses = m_subaddress->getAll(); size_t size = _subaddresses.size(); int64_t *subaddresses = (int64_t *)malloc(size * sizeof(int64_t)); @@ -759,37 +815,42 @@ extern "C" } return subaddresses; + */ + return nullptr; } int32_t subaddrress_size() { - std::vector _subaddresses = m_subaddress->getAll(); - return _subaddresses.size(); + //std::vector _subaddresses = m_subaddress->getAll(); + //return _subaddresses.size(); + return 0; } void subaddress_add_row(uint32_t accountIndex, char *label) { - m_subaddress->addRow(accountIndex, std::string(label)); + //m_subaddress->addRow(accountIndex, std::string(label)); } void subaddress_set_label(uint32_t accountIndex, uint32_t addressIndex, char *label) { - m_subaddress->setLabel(accountIndex, addressIndex, std::string(label)); + //m_subaddress->setLabel(accountIndex, addressIndex, std::string(label)); } void subaddress_refresh(uint32_t accountIndex) { - m_subaddress->refresh(accountIndex); + //m_subaddress->refresh(accountIndex); } int32_t account_size() { - std::vector _accocunts = m_account->getAll(); - return _accocunts.size(); + //std::vector _accocunts = m_account->getAll(); + //return _accocunts.size(); + return 0; } int64_t *account_get_all() { + /* std::vector _accocunts = m_account->getAll(); size_t size = _accocunts.size(); int64_t *accocunts = (int64_t *)malloc(size * sizeof(int64_t)); @@ -802,25 +863,28 @@ extern "C" } return accocunts; + */ + return nullptr; } void account_add_row(char *label) { - m_account->addRow(std::string(label)); + //m_account->addRow(std::string(label)); } void account_set_label_row(uint32_t account_index, char *label) { - m_account->setLabel(account_index, label); + //m_account->setLabel(account_index, label); } void account_refresh() { - m_account->refresh(); + //m_account->refresh(); } int64_t *transactions_get_all() { + /* std::vector transactions = m_transaction_history->getAll(); size_t size = transactions.size(); int64_t *transactionAddresses = (int64_t *)malloc(size * sizeof(int64_t)); @@ -833,16 +897,19 @@ extern "C" } return transactionAddresses; + */ + return nullptr; } void transactions_refresh() { - m_transaction_history->refresh(); + //m_transaction_history->refresh(); } int64_t transactions_count() { - return m_transaction_history->count(); + //return m_transaction_history->count(); + return 0; } int LedgerExchange( @@ -861,27 +928,28 @@ extern "C" void on_startup() { - Monero::Utils::onStartup(); - Monero::WalletManagerFactory::setLogLevel(4); + //Monero::Utils::onStartup(); + //Monero::WalletManagerFactory::setLogLevel(4); } void rescan_blockchain() { - m_wallet->rescanBlockchainAsync(); + //m_wallet->rescanBlockchainAsync(); } char * get_tx_key(char * txId) { - return strdup(m_wallet->getTxKey(std::string(txId)).c_str()); + return nullptr; //return strdup(m_wallet->getTxKey(std::string(txId)).c_str()); } int32_t asset_types_size() { - return Monero::Assets::list().size(); + return 0; //return Monero::Assets::list().size(); } char **asset_types() { + /* size_t size = Monero::Assets::list().size(); std::vector assetList = Monero::Assets::list(); char **assetTypesPts; @@ -896,17 +964,20 @@ extern "C" } return assetTypesPts; + */ + return nullptr; } - std::map rates; + //std::map rates; void update_rate() { - rates = get_current_wallet()->oracleRates(); + //rates = get_current_wallet()->oracleRates(); } int64_t *get_rate() { + /* size_t size = rates.size(); int64_t *havenRates = (int64_t *)malloc(size * sizeof(int64_t)); int i = 0; @@ -920,21 +991,24 @@ extern "C" } return havenRates; + */ + return nullptr; } int32_t size_of_rate() { - return static_cast(rates.size()); + return 0; //return static_cast(rates.size()); } void set_trusted_daemon(bool arg) { - m_wallet->setTrustedDaemon(arg); + //m_wallet->setTrustedDaemon(arg); } bool trusted_daemon() { - return m_wallet->trustedDaemon(); + return false; + //return m_wallet->trustedDaemon(); } #ifdef __cplusplus diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh new file mode 100755 index 000000000..20b7739a1 --- /dev/null +++ b/scripts/android/build_zano.sh @@ -0,0 +1,88 @@ +#!/bin/sh +set -o xtrace + +. ./config.sh +#HAVEN_VERSION=tags/v3.0.7 +ZANO_SRC_DIR=${WORKDIR}/zano +ZANO_CHECKOUT_ID=cryptoassets + +#git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} +cd $ZANO_SRC_DIR +#git checkout ${ZANO_CHECKOUT_ID} +#git submodule init +#git submodule update +git pull -r + +for arch in "aarch" "aarch64" "i686" "x86_64" +do +FLAGS="" +PREFIX=${WORKDIR}/prefix_${arch} +DEST_LIB_DIR=${PREFIX}/lib/zano +DEST_INCLUDE_DIR=${PREFIX}/include/zano +export CMAKE_INCLUDE_PATH="${PREFIX}/include" +export CMAKE_LIBRARY_PATH="${PREFIX}/lib" +ANDROID_STANDALONE_TOOLCHAIN_PATH="${TOOLCHAIN_BASE_DIR}_${arch}" +PATH="${ANDROID_STANDALONE_TOOLCHAIN_PATH}/bin:${ORIGINAL_PATH}" + +mkdir -p $DEST_LIB_DIR +mkdir -p $DEST_INCLUDE_DIR + +case $arch in + "aarch" ) + CLANG=arm-linux-androideabi-clang + CXXLANG=arm-linux-androideabi-clang++ + BUILD_64=OFF + TAG="android-armv7" + ARCH="armv7-a" + ARCH_ABI="armeabi-v7a" + FLAGS="-D CMAKE_ANDROID_ARM_MODE=ON -D NO_AES=true";; + "aarch64" ) + CLANG=aarch64-linux-androideabi-clang + CXXLANG=aarch64-linux-androideabi-clang++ + BUILD_64=ON + TAG="android-armv8" + ARCH="armv8-a" + ARCH_ABI="arm64-v8a";; + "i686" ) + CLANG=i686-linux-androideabi-clang + CXXLANG=i686-linux-androideabi-clang++ + BUILD_64=OFF + TAG="android-x86" + ARCH="i686" + ARCH_ABI="x86";; + "x86_64" ) + CLANG=x86_64-linux-androideabi-clang + CXXLANG=x86_64-linux-androideabi-clang++ + BUILD_64=ON + TAG="android-x86_64" + ARCH="x86-64" + ARCH_ABI="x86_64";; +esac + +cd $ZANO_SRC_DIR + rm -rf ./build/release +mkdir -p ./build/release +cd ./build/release +CC=${CLANG} CXX=${CXXLANG} cmake -S../.. -DCMAKE_INSTALL_PREFIX=${DEST_LIB_DIR} -D TESTNET=TRUE -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS +if [ $? -ne 0 ]; then + echo "Failed to perform cmake" + exit 1 +fi + + + +# make wallet_api -j$THREADS +# find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; +#cd ../.. +#pwd + +cmake --build . --config Release --verbose --target install -- -j 4 +if [ $? -ne 0 ]; then + echo "Failed to perform cmake install" + exit 1 +fi +#exit 1 + +#cp -r ./lib/* $DEST_LIB_DIR +#cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR +done diff --git a/scripts/android/build_zano_all.sh b/scripts/android/build_zano_all.sh new file mode 100755 index 000000000..daadadc6b --- /dev/null +++ b/scripts/android/build_zano_all.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +./build_iconv.sh +./build_boost.sh +./build_openssl.sh +./build_sodium.sh +./build_zmq.sh +./build_haven.sh diff --git a/scripts/android/finish_boost.sh b/scripts/android/finish_boost.sh index 3cf656c55..72f6f1e99 100755 --- a/scripts/android/finish_boost.sh +++ b/scripts/android/finish_boost.sh @@ -6,4 +6,4 @@ BOOST_SRC_DIR=$3 cd $BOOST_SRC_DIR -./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} -j$THREADS install +./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --with-log --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} -j$THREADS install From 7a00a5df95ce34d18b14b8c73691265ae3f76e63 Mon Sep 17 00:00:00 2001 From: leo Date: Fri, 13 Oct 2023 15:21:19 +0000 Subject: [PATCH 03/58] Added missing android log lib --- cw_zano/android/CMakeLists.txt | 3 ++- cw_zano/ios/Classes/zano_api.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cw_zano/android/CMakeLists.txt b/cw_zano/android/CMakeLists.txt index 5d88ede19..425cfc181 100644 --- a/cw_zano/android/CMakeLists.txt +++ b/cw_zano/android/CMakeLists.txt @@ -101,7 +101,7 @@ target_link_libraries( cw_zano zano_currency_core zano_z zano_wallet - + boost_chrono boost_date_time boost_filesystem @@ -115,4 +115,5 @@ target_link_libraries( cw_zano ssl crypto + ${log-lib} ) \ No newline at end of file diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index d41e329d2..376b040be 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -555,7 +555,7 @@ extern "C" return inited; */ - return false; + return plain_wallet::get_version().empty(); } bool is_connected() From 219f43a959c6e74ce77b6ebff93e23915ea519e3 Mon Sep 17 00:00:00 2001 From: leo Date: Sun, 15 Oct 2023 13:36:05 +0000 Subject: [PATCH 04/58] added dummy wallet & some zano implementation --- cw_core/lib/crypto_currency.dart | 1 + cw_core/lib/currency_for_wallet_type.dart | 2 + cw_core/lib/node.dart | 4 + cw_core/lib/wallet_type.dart | 14 ++++ cw_dummy/.gitignore | 30 +++++++ cw_dummy/.metadata | 10 +++ cw_dummy/CHANGELOG.md | 3 + cw_dummy/LICENSE | 1 + cw_dummy/README.md | 39 +++++++++ cw_dummy/analysis_options.yaml | 4 + cw_dummy/lib/cw_dummy.dart | 7 ++ cw_dummy/lib/dummy_balance.dart | 14 ++++ ...ummy_transaction_creation_credentials.dart | 10 +++ cw_dummy/lib/dummy_transaction_history.dart | 28 +++++++ cw_dummy/lib/dummy_transaction_info.dart | 27 ++++++ cw_dummy/lib/dummy_transaction_priority.dart | 20 +++++ cw_dummy/lib/dummy_wallet.dart | 72 ++++++++++++++++ cw_dummy/lib/dummy_wallet_addresses.dart | 23 +++++ .../dummy_wallet_creation_credentials.dart | 18 ++++ cw_dummy/lib/dummy_wallet_service.dart | 40 +++++++++ .../.plugin_symlinks/path_provider_linux | 1 + .../flutter/generated_plugin_registrant.cc | 11 +++ .../flutter/generated_plugin_registrant.h | 15 ++++ .../linux/flutter/generated_plugins.cmake | 23 +++++ .../Flutter/GeneratedPluginRegistrant.swift | 12 +++ .../ephemeral/Flutter-Generated.xcconfig | 11 +++ .../ephemeral/flutter_export_environment.sh | 12 +++ cw_dummy/pubspec.yaml | 67 +++++++++++++++ cw_dummy/test/cw_dummy_test.dart | 12 +++ .../flutter/generated_plugin_registrant.cc | 11 +++ .../flutter/generated_plugin_registrant.h | 15 ++++ .../windows/flutter/generated_plugins.cmake | 23 +++++ cw_zano/ios/Classes/zano_api.cpp | 23 +++-- lib/core/seed_validator.dart | 3 + lib/di.dart | 4 + lib/dummy/cw_dummy.dart | 83 +++++++++++++++++++ lib/dummy/dummy.dart | 42 ++++++++++ lib/entities/default_settings_migration.dart | 25 +++++- lib/entities/preferences_key.dart | 3 + lib/entities/priority_for_wallet_type.dart | 6 ++ .../desktop_wallet_selection_dropdown.dart | 6 ++ .../dashboard/widgets/menu_widget.dart | 6 +- .../screens/wallet_list/wallet_list_page.dart | 2 + lib/store/settings_store.dart | 63 +++++++++++++- .../dashboard/transaction_list_item.dart | 16 ++++ .../exchange/exchange_view_model.dart | 21 +++++ .../node_list/node_list_view_model.dart | 6 ++ lib/view_model/send/output.dart | 20 +++++ lib/view_model/send/send_view_model.dart | 15 ++++ .../transaction_details_view_model.dart | 38 +++++++++ ...let_address_edit_or_create_view_model.dart | 6 ++ .../wallet_address_list_view_model.dart | 48 +++++++++++ lib/view_model/wallet_keys_view_model.dart | 23 +++++ lib/view_model/wallet_new_vm.dart | 3 + lib/view_model/wallet_restore_view_model.dart | 26 ++++++ 55 files changed, 1053 insertions(+), 15 deletions(-) create mode 100644 cw_dummy/.gitignore create mode 100644 cw_dummy/.metadata create mode 100644 cw_dummy/CHANGELOG.md create mode 100644 cw_dummy/LICENSE create mode 100644 cw_dummy/README.md create mode 100644 cw_dummy/analysis_options.yaml create mode 100644 cw_dummy/lib/cw_dummy.dart create mode 100644 cw_dummy/lib/dummy_balance.dart create mode 100644 cw_dummy/lib/dummy_transaction_creation_credentials.dart create mode 100644 cw_dummy/lib/dummy_transaction_history.dart create mode 100644 cw_dummy/lib/dummy_transaction_info.dart create mode 100644 cw_dummy/lib/dummy_transaction_priority.dart create mode 100644 cw_dummy/lib/dummy_wallet.dart create mode 100644 cw_dummy/lib/dummy_wallet_addresses.dart create mode 100644 cw_dummy/lib/dummy_wallet_creation_credentials.dart create mode 100644 cw_dummy/lib/dummy_wallet_service.dart create mode 120000 cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux create mode 100644 cw_dummy/linux/flutter/generated_plugin_registrant.cc create mode 100644 cw_dummy/linux/flutter/generated_plugin_registrant.h create mode 100644 cw_dummy/linux/flutter/generated_plugins.cmake create mode 100644 cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig create mode 100755 cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh create mode 100644 cw_dummy/pubspec.yaml create mode 100644 cw_dummy/test/cw_dummy_test.dart create mode 100644 cw_dummy/windows/flutter/generated_plugin_registrant.cc create mode 100644 cw_dummy/windows/flutter/generated_plugin_registrant.h create mode 100644 cw_dummy/windows/flutter/generated_plugins.cmake create mode 100644 lib/dummy/cw_dummy.dart create mode 100644 lib/dummy/dummy.dart diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 25ce1a564..06b42f6f5 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -200,6 +200,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const dydx = CryptoCurrency(title: 'DYDX', tag: 'ETH', fullName: 'dYdX', raw: 84, name: 'dydx', iconPath: 'assets/images/dydx_icon.png'); static const steth = CryptoCurrency(title: 'STETH', tag: 'ETH', fullName: 'Lido Staked Ethereum', raw: 85, name: 'steth', iconPath: 'assets/images/steth_icon.png'); static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 86, name: 'zano', iconPath: 'assets/images/zano_icon.png'); + static const dummy = CryptoCurrency(title: 'DUMMY', tag: 'DUMMY', fullName: 'Dummy', raw: 87, name: 'dummy', iconPath: 'assets/images/dummy_icon.png'); static final Map _rawCurrencyMap = diff --git a/cw_core/lib/currency_for_wallet_type.dart b/cw_core/lib/currency_for_wallet_type.dart index b2f6d356f..2e5e9b5c9 100644 --- a/cw_core/lib/currency_for_wallet_type.dart +++ b/cw_core/lib/currency_for_wallet_type.dart @@ -15,6 +15,8 @@ CryptoCurrency currencyForWalletType(WalletType type) { return CryptoCurrency.eth; case WalletType.zano: return CryptoCurrency.zano; + case WalletType.dummy: + return CryptoCurrency.dummy; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index eae8d64c8..63fef965e 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -80,6 +80,8 @@ class Node extends HiveObject with Keyable { return Uri.http(uriRaw, ''); case WalletType.ethereum: return Uri.https(uriRaw, ''); + case WalletType.dummy: + return Uri.https(uriRaw, ''); default: throw Exception('Unexpected type ${type.toString()} for Node uri'); } @@ -133,6 +135,8 @@ class Node extends HiveObject with Keyable { return requestMoneroNode(); case WalletType.ethereum: return requestElectrumServer(); + case WalletType.dummy: + throw UnimplementedError(); default: return false; } diff --git a/cw_core/lib/wallet_type.dart b/cw_core/lib/wallet_type.dart index 022b181b9..0b26bde73 100644 --- a/cw_core/lib/wallet_type.dart +++ b/cw_core/lib/wallet_type.dart @@ -11,6 +11,7 @@ const walletTypes = [ WalletType.haven, WalletType.ethereum, WalletType.zano, + WalletType.dummy, ]; @HiveType(typeId: WALLET_TYPE_TYPE_ID) @@ -35,6 +36,9 @@ enum WalletType { @HiveField(6) zano, + + @HiveField(7) + dummy, } int serializeToInt(WalletType type) { @@ -51,6 +55,8 @@ int serializeToInt(WalletType type) { return 4; case WalletType.zano: return 5; + case WalletType.dummy: + return 6; default: return -1; } @@ -70,6 +76,8 @@ WalletType deserializeFromInt(int raw) { return WalletType.ethereum; case 5: return WalletType.zano; + case 6: + return WalletType.dummy; default: throw Exception( 'Unexpected token: $raw for WalletType deserializeFromInt'); @@ -90,6 +98,8 @@ String walletTypeToString(WalletType type) { return 'Ethereum'; case WalletType.zano: return 'Zano'; + case WalletType.dummy: + return 'Dummy'; default: return ''; } @@ -109,6 +119,8 @@ String walletTypeToDisplayName(WalletType type) { return 'Ethereum (ETH)'; case WalletType.zano: return 'Zano (ZANO)'; + case WalletType.dummy: + return 'Dummy (DUMMY)'; default: return ''; } @@ -128,6 +140,8 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.zano; case WalletType.ethereum: return CryptoCurrency.eth; + case WalletType.dummy: + return CryptoCurrency.dummy; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); diff --git a/cw_dummy/.gitignore b/cw_dummy/.gitignore new file mode 100644 index 000000000..96486fd93 --- /dev/null +++ b/cw_dummy/.gitignore @@ -0,0 +1,30 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/cw_dummy/.metadata b/cw_dummy/.metadata new file mode 100644 index 000000000..fa347fc6a --- /dev/null +++ b/cw_dummy/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 + channel: stable + +project_type: package diff --git a/cw_dummy/CHANGELOG.md b/cw_dummy/CHANGELOG.md new file mode 100644 index 000000000..41cc7d819 --- /dev/null +++ b/cw_dummy/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/cw_dummy/LICENSE b/cw_dummy/LICENSE new file mode 100644 index 000000000..ba75c69f7 --- /dev/null +++ b/cw_dummy/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/cw_dummy/README.md b/cw_dummy/README.md new file mode 100644 index 000000000..02fe8ecab --- /dev/null +++ b/cw_dummy/README.md @@ -0,0 +1,39 @@ + + +TODO: Put a short description of the package here that helps potential users +know whether this package might be useful for them. + +## Features + +TODO: List what your package can do. Maybe include images, gifs, or videos. + +## Getting started + +TODO: List prerequisites and provide or point to information on how to +start using the package. + +## Usage + +TODO: Include short and useful examples for package users. Add longer examples +to `/example` folder. + +```dart +const like = 'sample'; +``` + +## Additional information + +TODO: Tell users more about the package: where to find more information, how to +contribute to the package, how to file issues, what response they can expect +from the package authors, and more. diff --git a/cw_dummy/analysis_options.yaml b/cw_dummy/analysis_options.yaml new file mode 100644 index 000000000..a5744c1cf --- /dev/null +++ b/cw_dummy/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/cw_dummy/lib/cw_dummy.dart b/cw_dummy/lib/cw_dummy.dart new file mode 100644 index 000000000..126c12a36 --- /dev/null +++ b/cw_dummy/lib/cw_dummy.dart @@ -0,0 +1,7 @@ +library cw_dummy; + +/// A Calculator. +class Calculator { + /// Returns [value] plus 1. + int addOne(int value) => value + 1; +} diff --git a/cw_dummy/lib/dummy_balance.dart b/cw_dummy/lib/dummy_balance.dart new file mode 100644 index 000000000..b6352850b --- /dev/null +++ b/cw_dummy/lib/dummy_balance.dart @@ -0,0 +1,14 @@ +import 'package:cw_core/balance.dart'; + +class DummyBalance extends Balance { + DummyBalance(super.available, super.additional); + + @override + // TODO: implement formattedAdditionalBalance + String get formattedAdditionalBalance => throw UnimplementedError(); + + @override + // TODO: implement formattedAvailableBalance + String get formattedAvailableBalance => throw UnimplementedError(); + +} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_transaction_creation_credentials.dart b/cw_dummy/lib/dummy_transaction_creation_credentials.dart new file mode 100644 index 000000000..75de84938 --- /dev/null +++ b/cw_dummy/lib/dummy_transaction_creation_credentials.dart @@ -0,0 +1,10 @@ +import 'package:cw_core/output_info.dart'; + +import 'dummy_transaction_priority.dart'; + +class DummyTransactionCreationCredentials { + final List outputs; + final DummyTransactionPriority? priority; + + DummyTransactionCreationCredentials({required this.outputs, this.priority}); +} diff --git a/cw_dummy/lib/dummy_transaction_history.dart b/cw_dummy/lib/dummy_transaction_history.dart new file mode 100644 index 000000000..ac8655091 --- /dev/null +++ b/cw_dummy/lib/dummy_transaction_history.dart @@ -0,0 +1,28 @@ +import 'package:mobx/mobx.dart'; +import 'package:cw_core/transaction_history.dart'; + +import 'dummy_transaction_info.dart'; + +part 'dummy_transaction_history.g.dart'; + +class DummyTransactionHistory = DummyTransactionHistoryBase + with _$DummyTransactionHistory; + +abstract class DummyTransactionHistoryBase + extends TransactionHistoryBase with Store { + DummyTransactionHistoryBase() { + transactions = ObservableMap(); + } + + @override + Future save() async { + throw UnimplementedError; + } + + @override + void addOne(DummyTransactionInfo transaction) => transactions[transaction.id] = transaction; + + @override + void addMany(Map transactions) => + this.transactions.addAll(transactions); +} diff --git a/cw_dummy/lib/dummy_transaction_info.dart b/cw_dummy/lib/dummy_transaction_info.dart new file mode 100644 index 000000000..71461d26e --- /dev/null +++ b/cw_dummy/lib/dummy_transaction_info.dart @@ -0,0 +1,27 @@ +import 'package:cw_core/transaction_info.dart'; + +class DummyTransactionInfo extends TransactionInfo { + @override + String amountFormatted() { + // TODO: implement amountFormatted + throw UnimplementedError(); + } + + @override + void changeFiatAmount(String amount) { + // TODO: implement changeFiatAmount + } + + @override + String? feeFormatted() { + // TODO: implement feeFormatted + throw UnimplementedError(); + } + + @override + String fiatAmount() { + // TODO: implement fiatAmount + throw UnimplementedError(); + } + +} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_transaction_priority.dart b/cw_dummy/lib/dummy_transaction_priority.dart new file mode 100644 index 000000000..46f1d5a70 --- /dev/null +++ b/cw_dummy/lib/dummy_transaction_priority.dart @@ -0,0 +1,20 @@ +import 'package:cw_core/transaction_priority.dart'; + +class DummyTransactionPriority extends TransactionPriority { + const DummyTransactionPriority({required super.title, required super.raw}); + + static const List all = [slow, medium, fast]; + + static const slow = DummyTransactionPriority(title: 'Slow', raw: 0); + static const medium = DummyTransactionPriority(title: 'Medium', raw: 1); + static const fast = DummyTransactionPriority(title: 'Fast', raw: 2); + + static DummyTransactionPriority deserialize({required int raw}) { + switch (raw) { + case 0: return slow; + case 1: return medium; + case 2: return fast; + default: throw Exception('Unexpected token: $raw for DummyTransactionPriority deserialize'); + } + } +} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_wallet.dart b/cw_dummy/lib/dummy_wallet.dart new file mode 100644 index 000000000..c937fa61f --- /dev/null +++ b/cw_dummy/lib/dummy_wallet.dart @@ -0,0 +1,72 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:mobx/mobx.dart'; +import 'package:cw_core/wallet_base.dart'; + +import 'dummy_balance.dart'; +import 'dummy_transaction_history.dart'; +import 'dummy_transaction_info.dart'; +import 'dummy_wallet_addresses.dart'; + +part 'dummy_wallet.g.dart'; + +class DummyWallet = DummyWalletBase with _$DummyWallet; + +abstract class DummyWalletBase extends WalletBase with Store { + DummyWalletBase({required WalletInfo walletInfo}) : super(walletInfo) {} + + @override + int calculateEstimatedFee(TransactionPriority priority, int? amount) => throw UnimplementedError(); + + @override + Future changePassword(String password) async => throw UnimplementedError(); + + @override + Future close() async => throw UnimplementedError(); + + @override + Future connectToNode({required Node node}) async => throw UnimplementedError(); + + @override + Future createTransaction(Object credentials) async => throw UnimplementedError(); + + @override + Future> fetchTransactions() async => throw UnimplementedError(); + + @override + Future renameWalletFiles(String newWalletName) async => throw UnimplementedError(); + + @override + Future rescan({required int height}) async => throw UnimplementedError(); + + @override + Future save() async => throw UnimplementedError(); + + @override + Future startSync() async => throw UnimplementedError(); + + @override + Future? updateBalance() => null; + + @override + @observable + late ObservableMap balance; + + @override + Object get keys => throw UnimplementedError("keys"); + + @override + String get seed => "seed"; + + @override + @observable + late SyncStatus syncStatus; + + @override + late DummyWalletAddresses walletAddresses; +} diff --git a/cw_dummy/lib/dummy_wallet_addresses.dart b/cw_dummy/lib/dummy_wallet_addresses.dart new file mode 100644 index 000000000..9e6fbfb4c --- /dev/null +++ b/cw_dummy/lib/dummy_wallet_addresses.dart @@ -0,0 +1,23 @@ +import 'package:mobx/mobx.dart'; +import 'package:cw_core/wallet_addresses.dart'; + +part 'dummy_wallet_addresses.g.dart'; + +class DummyWalletAddresses = DummyWalletAddressesBase with _$DummyWalletAddresses; + +abstract class DummyWalletAddressesBase extends WalletAddresses with Store { + DummyWalletAddressesBase(super.walletInfo); + + @override + @observable + late String address; + + @override + Future init() async => throw UnimplementedError(); + + @override + Future updateAddressesInBox() async => throw UnimplementedError(); + + // TODO: from electrum wallet addresses implementation + Future generateNewAddress() async => throw UnimplementedError(); +} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_wallet_creation_credentials.dart b/cw_dummy/lib/dummy_wallet_creation_credentials.dart new file mode 100644 index 000000000..7fc48d037 --- /dev/null +++ b/cw_dummy/lib/dummy_wallet_creation_credentials.dart @@ -0,0 +1,18 @@ +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; + +class DummyNewWalletCredentials extends WalletCredentials { + DummyNewWalletCredentials({required String name, WalletInfo? walletInfo}) + : super(name: name, walletInfo: walletInfo); +} + +class DummyRestoreWalletFromSeedCredentials extends WalletCredentials { + DummyRestoreWalletFromSeedCredentials({required String name, WalletInfo? walletInfo}) + : super(name: name, walletInfo: walletInfo); +} + +class DummyRestoreWalletFromKeyCredentials extends WalletCredentials { + DummyRestoreWalletFromKeyCredentials({required String name, WalletInfo? walletInfo}) + : super(name: name, walletInfo: walletInfo); +} + diff --git a/cw_dummy/lib/dummy_wallet_service.dart b/cw_dummy/lib/dummy_wallet_service.dart new file mode 100644 index 000000000..bb9e77838 --- /dev/null +++ b/cw_dummy/lib/dummy_wallet_service.dart @@ -0,0 +1,40 @@ +import 'package:cw_core/balance.dart'; +import 'package:cw_core/transaction_history.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:hive/hive.dart'; +import 'dummy_wallet_creation_credentials.dart'; + + +class DummyWalletService extends WalletService { + DummyWalletService(this.walletInfoSource); + + final Box walletInfoSource; + + @override + Future, TransactionInfo>> create(DummyNewWalletCredentials credentials) => throw UnimplementedError(); + + @override + WalletType getType() => WalletType.dummy; + + @override + Future isWalletExit(String name) => throw UnimplementedError(); + + @override + Future, TransactionInfo>> openWallet(String name, String password) => throw UnimplementedError(); + + @override + Future remove(String wallet) => throw UnimplementedError(); + + @override + Future rename(String currentName, String password, String newName) => throw UnimplementedError(); + + @override + Future, TransactionInfo>> restoreFromKeys(DummyRestoreWalletFromKeyCredentials credentials) => throw UnimplementedError(); + + @override + Future, TransactionInfo>> restoreFromSeed(DummyRestoreWalletFromSeedCredentials credentials) => throw UnimplementedError(); +} \ No newline at end of file diff --git a/cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux b/cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux new file mode 120000 index 000000000..5f46c0555 --- /dev/null +++ b/cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux @@ -0,0 +1 @@ +/home/leo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ \ No newline at end of file diff --git a/cw_dummy/linux/flutter/generated_plugin_registrant.cc b/cw_dummy/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 000000000..e71a16d23 --- /dev/null +++ b/cw_dummy/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/cw_dummy/linux/flutter/generated_plugin_registrant.h b/cw_dummy/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 000000000..e0f0a47bc --- /dev/null +++ b/cw_dummy/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/cw_dummy/linux/flutter/generated_plugins.cmake b/cw_dummy/linux/flutter/generated_plugins.cmake new file mode 100644 index 000000000..2e1de87a7 --- /dev/null +++ b/cw_dummy/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift b/cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 000000000..e777c67df --- /dev/null +++ b/cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,12 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import path_provider_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) +} diff --git a/cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig new file mode 100644 index 000000000..78a963b83 --- /dev/null +++ b/cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -0,0 +1,11 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/home/leo/flutter +FLUTTER_APPLICATION_PATH=/opt/android/cake_wallet/cw_dummy +COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_BUILD_DIR=build +FLUTTER_BUILD_NAME=0.0.1 +FLUTTER_BUILD_NUMBER=0.0.1 +DART_OBFUSCATION=false +TRACK_WIDGET_CREATION=true +TREE_SHAKE_ICONS=false +PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh b/cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh new file mode 100755 index 000000000..fba94197d --- /dev/null +++ b/cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/home/leo/flutter" +export "FLUTTER_APPLICATION_PATH=/opt/android/cake_wallet/cw_dummy" +export "COCOAPODS_PARALLEL_CODE_SIGN=true" +export "FLUTTER_BUILD_DIR=build" +export "FLUTTER_BUILD_NAME=0.0.1" +export "FLUTTER_BUILD_NUMBER=0.0.1" +export "DART_OBFUSCATION=false" +export "TRACK_WIDGET_CREATION=true" +export "TREE_SHAKE_ICONS=false" +export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/cw_dummy/pubspec.yaml b/cw_dummy/pubspec.yaml new file mode 100644 index 000000000..d7fe703b8 --- /dev/null +++ b/cw_dummy/pubspec.yaml @@ -0,0 +1,67 @@ +name: cw_dummy +description: A new Flutter package project. +version: 0.0.1 +homepage: +publish_to: none + +environment: + sdk: ">=2.17.5 <3.0.0" + flutter: ">=1.20.0" + +dependencies: + flutter: + sdk: flutter + ffi: ^2.0.1 + http: ^1.1.0 + path_provider: ^2.0.11 + mobx: ^2.0.7+4 + flutter_mobx: ^2.0.6+1 + intl: ^0.18.0 + cw_core: + path: ../cw_core + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + build_runner: ^2.1.11 + mobx_codegen: ^2.0.7 + build_resolvers: ^2.0.9 + hive_generator: ^1.1.3 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # To add assets to your package, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + # + # For details regarding assets in packages, see + # https://flutter.dev/assets-and-images/#from-packages + # + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # To add custom fonts to your package, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts in packages, see + # https://flutter.dev/custom-fonts/#from-packages diff --git a/cw_dummy/test/cw_dummy_test.dart b/cw_dummy/test/cw_dummy_test.dart new file mode 100644 index 000000000..3d74bbf1c --- /dev/null +++ b/cw_dummy/test/cw_dummy_test.dart @@ -0,0 +1,12 @@ +import 'package:flutter_test/flutter_test.dart'; + +import 'package:cw_dummy/cw_dummy.dart'; + +void main() { + test('adds one to input values', () { + final calculator = Calculator(); + expect(calculator.addOne(2), 3); + expect(calculator.addOne(-7), -6); + expect(calculator.addOne(0), 1); + }); +} diff --git a/cw_dummy/windows/flutter/generated_plugin_registrant.cc b/cw_dummy/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 000000000..8b6d4680a --- /dev/null +++ b/cw_dummy/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/cw_dummy/windows/flutter/generated_plugin_registrant.h b/cw_dummy/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 000000000..dc139d85a --- /dev/null +++ b/cw_dummy/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/cw_dummy/windows/flutter/generated_plugins.cmake b/cw_dummy/windows/flutter/generated_plugins.cmake new file mode 100644 index 000000000..b93c4c30c --- /dev/null +++ b/cw_dummy/windows/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index 376b040be..4463506c9 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -15,14 +15,17 @@ void __clear_cache(void* start, void* end) { } #endif #include "plain_wallet_api.h" +#include "plain_wallet_api_ex.h" -using namespace std::chrono_literals; + + +//using namespace std::chrono_literals; #ifdef __cplusplus extern "C" { #endif - const uint64_t MONERO_BLOCK_SIZE = 1000; + //const uint64_t MONERO_BLOCK_SIZE = 1000; struct Utf8Box { @@ -61,19 +64,19 @@ extern "C" } }; - struct HavenBalance + struct ZanoBalance { uint64_t amount; char *assetType; - HavenBalance(char *_assetType, uint64_t _amount) + ZanoBalance(char *_assetType, uint64_t _amount) { amount = _amount; assetType = _assetType; } }; - struct HavenRate + struct ZanoRate { uint64_t rate; char *assetType; @@ -85,7 +88,7 @@ extern "C" } }; - struct MoneroWalletListener : Monero::WalletListener + /*struct MoneroWalletListener : Monero::WalletListener { uint64_t m_height; bool m_need_to_refresh; @@ -153,6 +156,7 @@ extern "C" return m_height; } }; + */ struct TransactionInfoRow { @@ -171,9 +175,9 @@ extern "C" int64_t datetime; - TransactionInfoRow(Monero::TransactionInfo *transaction) - { - amount = transaction->amount(); + TransactionInfoRow(wallet_public::wallet_transfer_info& wti) + { + amount = wti.subtransfers. fee = transaction->fee(); blockHeight = transaction->blockHeight(); subaddrAccount = transaction->subaddrAccount(); @@ -187,6 +191,7 @@ extern "C" hash = strdup(hash_str->c_str()); paymentId = strdup(transaction->paymentId().c_str()); assetType = strdup(transaction->assetType().c_str()); + */ } }; diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index 3d8d81aa8..545d40282 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/zano/zano.dart'; @@ -32,6 +33,8 @@ class SeedValidator extends Validator { return zano!.getMoneroWordList(language); case WalletType.ethereum: return ethereum!.getEthereumWordList(language); + case WalletType.dummy: + return dummy!.getDummyWordList(); default: return []; } diff --git a/lib/di.dart b/lib/di.dart index 3ae705294..29406339c 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart'; import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart'; import 'package:cake_wallet/buy/robinhood/robinhood_buy_provider.dart'; import 'package:cake_wallet/core/yat_service.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/background_tasks.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; @@ -792,6 +793,9 @@ Future setup({ return ethereum!.createEthereumWalletService(_walletInfoSource); case WalletType.zano: return zano!.createZanoWalletService(_walletInfoSource); + case WalletType.dummy: + return dummy!.createDummyWalletService(_walletInfoSource); + default: throw Exception( 'Unexpected token: ${param1.toString()} for generating of WalletService'); diff --git a/lib/dummy/cw_dummy.dart b/lib/dummy/cw_dummy.dart new file mode 100644 index 000000000..f0772959b --- /dev/null +++ b/lib/dummy/cw_dummy.dart @@ -0,0 +1,83 @@ +part of 'dummy.dart'; + +class CWDummy extends Dummy { + @override + List getDummyWordList() => ["aaa", "bbb", "ccc"]; + + @override + WalletService createDummyWalletService(Box walletInfoSource) => + DummyWalletService(walletInfoSource); + + @override + WalletCredentials createDummyNewWalletCredentials( + {required String name, WalletInfo? walletInfo}) => + DummyNewWalletCredentials(name: name, walletInfo: walletInfo); + + @override + WalletCredentials createDummyRestoreWalletFromSeedCredentials( + {required String name, WalletInfo? walletInfo}) => + DummyRestoreWalletFromSeedCredentials(name: name, walletInfo: walletInfo); + + @override + WalletCredentials createDummyRestoreWalletFromKeyCredentials( + {required String name, WalletInfo? walletInfo}) => + DummyRestoreWalletFromKeyCredentials(name: name, walletInfo: walletInfo); + + @override + List getTransactionPriorities() => + DummyTransactionPriority.all; + + @override + TransactionPriority deserializeDummyTransactionPriority(int raw) => + DummyTransactionPriority.deserialize(raw: raw); + + @override + TransactionPriority getDefaultTransactionPriority() => + DummyTransactionPriority.fast; + + @override + CryptoCurrency assetOfTransaction(TransactionInfo tx) { + final transaction = tx as DummyTransactionInfo; + // TODO: !!! + return CryptoCurrency.dummy; + } + + @override + String formatterDummyAmountToString({required int amount}) => + throw UnimplementedError(); + + @override + TransactionPriority getDummyTransactionPrioritySlow() => + DummyTransactionPriority.slow; + + @override + TransactionPriority getDummyTransactionPriorityMedium() => + DummyTransactionPriority.medium; + + @override + double formatterDummyAmountToDouble({required int amount}) => throw UnimplementedError(); + + @override + int formatterDummyParseAmount({required String amount}) => throw UnimplementedError(); + + @override + Object createDummyTransactionCreationCredentials({required List outputs, required TransactionPriority priority}) => + DummyTransactionCreationCredentials(outputs: outputs.map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)).toList(), priority: priority as DummyTransactionPriority); + + @override + Future generateNewAddress(Object wallet) async { + final dummyWallet = wallet as DummyWallet; + await dummyWallet.walletAddresses.generateNewAddress(); + } + + @override + String getAddress(WalletBase wallet) => (wallet as DummyWallet).walletAddresses.address; +} diff --git a/lib/dummy/dummy.dart b/lib/dummy/dummy.dart new file mode 100644 index 000000000..884db3f1d --- /dev/null +++ b/lib/dummy/dummy.dart @@ -0,0 +1,42 @@ +import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/output_info.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_dummy/dummy_transaction_info.dart'; +import 'package:cw_dummy/dummy_transaction_priority.dart'; +import 'package:cw_dummy/dummy_wallet.dart'; +import 'package:cw_dummy/dummy_wallet_creation_credentials.dart'; +import 'package:cw_dummy/dummy_transaction_creation_credentials.dart'; +import 'package:cw_dummy/dummy_wallet_service.dart'; +import 'package:hive/hive.dart'; + +part 'cw_dummy.dart'; + +Dummy? dummy = CWDummy(); + +abstract class Dummy { + WalletCredentials createDummyNewWalletCredentials( + {required String name, WalletInfo? walletInfo}); + WalletCredentials createDummyRestoreWalletFromKeyCredentials( + {required String name, WalletInfo? walletInfo}); + WalletCredentials createDummyRestoreWalletFromSeedCredentials( + {required String name, WalletInfo? walletInfo}); + WalletService createDummyWalletService(Box walletInfoSource); + TransactionPriority deserializeDummyTransactionPriority(int raw); + List getDummyWordList(); + List getTransactionPriorities(); + TransactionPriority getDefaultTransactionPriority(); + CryptoCurrency assetOfTransaction(TransactionInfo tx); + double formatterDummyAmountToDouble({required int amount}); + TransactionPriority getDummyTransactionPrioritySlow(); + TransactionPriority getDummyTransactionPriorityMedium(); + int formatterDummyParseAmount({required String amount}); + Object createDummyTransactionCreationCredentials({required List outputs, required TransactionPriority priority}); + Future generateNewAddress(Object wallet); + String getAddress(WalletBase wallet); +} diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 6591f8f81..65d2615a7 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -27,6 +27,7 @@ const cakeWalletLitecoinElectrumUri = 'ltc-electrum.cakewallet.com:50002'; const havenDefaultNodeUri = 'nodes.havenprotocol.org:443'; const ethereumDefaultNodeUri = 'ethereum.publicnode.com'; const zanoDefaultNodeUri = 'zano.org'; +const dummyDefaultNodeUri = 'example.com'; Future defaultSettingsMigration( {required int version, @@ -317,6 +318,18 @@ Node? getEthereumDefaultNode({required Box nodes}) { ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.ethereum); } +Node? getZanoDefaultNode({required Box nodes}) { + return nodes.values.firstWhereOrNull( + (Node node) => node.uriRaw == zanoDefaultNodeUri) + ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.zano); +} + +Node? getDummyDefaultNode({required Box nodes}) { + return nodes.values.firstWhereOrNull( + (Node node) => node.uriRaw == dummyDefaultNodeUri) + ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.dummy); +} + Node getMoneroDefaultNode({required Box nodes}) { final timeZone = DateTime.now().timeZoneOffset.inHours; var nodeUri = ''; @@ -517,6 +530,8 @@ Future checkCurrentNodes( .getInt(PreferencesKey.currentEthereumNodeIdKey); final currentZanoNodeId = sharedPreferences .getInt(PreferencesKey.currentZanoNodeIdKey); + final currentDummyNodeId = sharedPreferences + .getInt(PreferencesKey.currentDummyNodeIdKey); final currentMoneroNode = nodeSource.values.firstWhereOrNull( (node) => node.key == currentMoneroNodeId); final currentBitcoinElectrumServer = nodeSource.values.firstWhereOrNull( @@ -528,7 +543,8 @@ Future checkCurrentNodes( final currentEthereumNodeServer = nodeSource.values.firstWhereOrNull( (node) => node.key == currentEthereumNodeId); final currentZanoNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentZanoNodeId); - + final currentDummyNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentDummyNodeId); + if (currentMoneroNode == null) { final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero); @@ -575,6 +591,13 @@ Future checkCurrentNodes( await sharedPreferences.setInt( PreferencesKey.currentZanoNodeIdKey, node.key as int); } + + if (currentDummyNode == null) { + final node = Node(uri: dummyDefaultNodeUri, type: WalletType.dummy); + await nodeSource.add(node); + await sharedPreferences.setInt( + PreferencesKey.currentDummyNodeIdKey, node.key as int); + } } Future resetBitcoinElectrumServer( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 1da002187..5bdab9e76 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -6,6 +6,7 @@ class PreferencesKey { static const currentLitecoinElectrumSererIdKey = 'current_node_id_ltc'; static const currentHavenNodeIdKey = 'current_node_id_xhv'; static const currentZanoNodeIdKey = 'current_node_id_zano'; + static const currentDummyNodeIdKey = 'current_node_id_dummy'; static const currentEthereumNodeIdKey = 'current_node_id_eth'; static const currentFiatCurrencyKey = 'current_fiat_currency'; static const currentTransactionPriorityKeyLegacy = 'current_fee_priority'; @@ -35,6 +36,8 @@ class PreferencesKey { static const havenTransactionPriority = 'current_fee_priority_haven'; static const litecoinTransactionPriority = 'current_fee_priority_litecoin'; static const ethereumTransactionPriority = 'current_fee_priority_ethereum'; + static const zanoTransactionPriority = 'current_fee_priority_zano'; + static const dummyTransactionPriority = 'current_fee_priority_dummy'; static const shouldShowReceiveWarning = 'should_show_receive_warning'; static const shouldShowYatPopup = 'should_show_yat_popup'; static const moneroWalletPasswordUpdateV1Base = 'monero_wallet_update_v1'; diff --git a/lib/entities/priority_for_wallet_type.dart b/lib/entities/priority_for_wallet_type.dart index eb9417763..59bf63ceb 100644 --- a/lib/entities/priority_for_wallet_type.dart +++ b/lib/entities/priority_for_wallet_type.dart @@ -1,7 +1,9 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/monero/monero.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_type.dart'; @@ -17,6 +19,10 @@ List priorityForWalletType(WalletType type) { return haven!.getTransactionPriorities(); case WalletType.ethereum: return ethereum!.getTransactionPriorities(); + case WalletType.zano: + return zano!.getTransactionPriorities(); + case WalletType.dummy: + return dummy!.getTransactionPriorities(); default: return []; } diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart index 684f7cd08..1245986b1 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart @@ -33,6 +33,8 @@ class _DesktopWalletSelectionDropDownState extends State Image.asset( @@ -141,6 +143,10 @@ class _DesktopWalletSelectionDropDownState extends State { this.litecoinIcon = Image.asset('assets/images/litecoin_menu.png'), this.havenIcon = Image.asset('assets/images/haven_menu.png'), this.ethereumIcon = Image.asset('assets/images/eth_icon.png'), - this.zanoIcon = Image.asset('assets/images/zano_icon.png'); + this.zanoIcon = Image.asset('assets/images/zano_icon.png'), + this.dummyIcon = Image.asset('assets/images/dummy_icon.png'); final largeScreen = 731; @@ -49,6 +50,7 @@ class MenuWidgetState extends State { Image havenIcon; Image ethereumIcon; Image zanoIcon; + Image dummyIcon; @override void initState() { @@ -210,6 +212,8 @@ class MenuWidgetState extends State { return ethereumIcon; case WalletType.zano: return zanoIcon; + case WalletType.dummy: + return dummyIcon; default: throw Exception('No icon for ${type.toString()}'); } diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index fd7952628..3a223479d 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -48,6 +48,8 @@ class WalletListBodyState extends State { final nonWalletTypeIcon = Image.asset('assets/images/close.png', height: 24, width: 24); final havenIcon = Image.asset('assets/images/haven_logo.png', height: 24, width: 24); final ethereumIcon = Image.asset('assets/images/eth_icon.png', height: 24, width: 24); + final zanoIcon = Image.asset('assets/images/zano_icon.png', height: 24, width: 24); + final dummyIcon = Image.asset('assets/images/dummy_icon.png', height: 24, width: 24); final scrollController = ScrollController(); final double tileHeight = 60; Flushbar? _progressBar; diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 7e4b8c88d..5bf8cf332 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/buy_provider_types.dart'; import 'package:cake_wallet/entities/cake_2fa_preset_options.dart'; @@ -12,6 +13,7 @@ import 'package:cake_wallet/entities/sort_balance_types.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/themes/theme_list.dart'; @@ -84,7 +86,10 @@ abstract class SettingsStoreBase with Store { TransactionPriority? initialMoneroTransactionPriority, TransactionPriority? initialHavenTransactionPriority, TransactionPriority? initialLitecoinTransactionPriority, - TransactionPriority? initialEthereumTransactionPriority}) + TransactionPriority? initialEthereumTransactionPriority, + TransactionPriority? initialZanoTransactionPriority, + TransactionPriority? initialDummyTransactionPriority, + }) : nodes = ObservableMap.of(nodes), _sharedPreferences = sharedPreferences, _backgroundTasks = backgroundTasks, @@ -144,6 +149,14 @@ abstract class SettingsStoreBase with Store { priority[WalletType.ethereum] = initialEthereumTransactionPriority; } + if (initialZanoTransactionPriority != null) { + priority[WalletType.zano] = initialZanoTransactionPriority; + } + + if (initialDummyTransactionPriority != null) { + priority[WalletType.dummy] = initialDummyTransactionPriority; + } + reaction( (_) => fiatCurrency, (FiatCurrency fiatCurrency) => sharedPreferences.setString( @@ -172,6 +185,12 @@ abstract class SettingsStoreBase with Store { case WalletType.ethereum: key = PreferencesKey.ethereumTransactionPriority; break; + case WalletType.zano: + key = PreferencesKey.zanoTransactionPriority; + break; + case WalletType.dummy: + key = PreferencesKey.dummyTransactionPriority; + break; default: key = null; } @@ -518,6 +537,8 @@ abstract class SettingsStoreBase with Store { TransactionPriority? havenTransactionPriority; TransactionPriority? litecoinTransactionPriority; TransactionPriority? ethereumTransactionPriority; + TransactionPriority? zanoTransactionPriority; + TransactionPriority? dummyTransactionPriority; if (sharedPreferences.getInt(PreferencesKey.havenTransactionPriority) != null) { havenTransactionPriority = monero?.deserializeMoneroTransactionPriority( @@ -531,12 +552,22 @@ abstract class SettingsStoreBase with Store { ethereumTransactionPriority = bitcoin?.deserializeLitecoinTransactionPriority( sharedPreferences.getInt(PreferencesKey.ethereumTransactionPriority)!); } + if (sharedPreferences.getInt(PreferencesKey.zanoTransactionPriority) != null) { + zanoTransactionPriority = monero?.deserializeMoneroTransactionPriority( + raw: sharedPreferences.getInt(PreferencesKey.zanoTransactionPriority)!); + } + if (sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority) != null) { + dummyTransactionPriority = dummy?.deserializeDummyTransactionPriority( + sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority)!); + } moneroTransactionPriority ??= monero?.getDefaultTransactionPriority(); bitcoinTransactionPriority ??= bitcoin?.getMediumTransactionPriority(); havenTransactionPriority ??= monero?.getDefaultTransactionPriority(); litecoinTransactionPriority ??= bitcoin?.getLitecoinTransactionPriorityMedium(); ethereumTransactionPriority ??= ethereum?.getDefaultTransactionPriority(); + zanoTransactionPriority ??= zano?.getDefaultTransactionPriority(); + dummyTransactionPriority ??= dummy?.getDefaultTransactionPriority(); final currentBalanceDisplayMode = BalanceDisplayMode.deserialize( raw: sharedPreferences.getInt(PreferencesKey.currentBalanceDisplayModeKey)!); @@ -619,15 +650,14 @@ abstract class SettingsStoreBase with Store { final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final zanoNodeId = sharedPreferences.getInt(PreferencesKey.currentZanoNodeIdKey); - //final zanoNodeId = 9; - debugPrint("zanoNodeId $zanoNodeId"); + final dummyNodeId = sharedPreferences.getInt(PreferencesKey.currentDummyNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); final havenNode = nodeSource.get(havenNodeId); final ethereumNode = nodeSource.get(ethereumNodeId); final zanoNode = nodeSource.get(zanoNodeId); - debugPrint("zanoNode $zanoNode"); + final dummyNode = nodeSource.get(dummyNodeId); final packageInfo = await PackageInfo.fromPlatform(); final deviceName = await _getDeviceName() ?? ''; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; @@ -663,6 +693,10 @@ abstract class SettingsStoreBase with Store { nodes[WalletType.zano] = zanoNode; } + if (dummyNode != null) { + nodes[WalletType.dummy] = dummyNode; + } + final savedSyncMode = SyncMode.all.firstWhere((element) { return element.type.index == (sharedPreferences.getInt(PreferencesKey.syncModeKey) ?? 1); }); @@ -702,6 +736,8 @@ abstract class SettingsStoreBase with Store { initialBitcoinTransactionPriority: bitcoinTransactionPriority, initialHavenTransactionPriority: havenTransactionPriority, initialLitecoinTransactionPriority: litecoinTransactionPriority, + initialZanoTransactionPriority: zanoTransactionPriority, + initialDummyTransactionPriority: dummyTransactionPriority, initialShouldRequireTOTP2FAForAccessingWallet: shouldRequireTOTP2FAForAccessingWallet, initialShouldRequireTOTP2FAForSendsToContact: shouldRequireTOTP2FAForSendsToContact, initialShouldRequireTOTP2FAForSendsToNonContact: shouldRequireTOTP2FAForSendsToNonContact, @@ -748,6 +784,16 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getInt(PreferencesKey.ethereumTransactionPriority)!) ?? priority[WalletType.ethereum]!; } + if (sharedPreferences.getInt(PreferencesKey.zanoTransactionPriority) != null) { + priority[WalletType.zano] = zano?.deserializeMoneroTransactionPriority( + raw: sharedPreferences.getInt(PreferencesKey.zanoTransactionPriority)!) ?? + priority[WalletType.zano]!; + } + if (sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority) != null) { + priority[WalletType.dummy] = dummy?.deserializeDummyTransactionPriority( + sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority)!) ?? + priority[WalletType.dummy]!; + } final generateSubaddresses = sharedPreferences.getInt(PreferencesKey.autoGenerateSubaddressStatusKey); @@ -835,6 +881,7 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getInt(PreferencesKey.currentLitecoinElectrumSererIdKey); final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final zanoNodeId = sharedPreferences.getInt(PreferencesKey.currentZanoNodeIdKey); + final dummyNodeId = sharedPreferences.getInt(PreferencesKey.currentDummyNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); @@ -842,6 +889,7 @@ abstract class SettingsStoreBase with Store { final havenNode = nodeSource.get(havenNodeId); final ethereumNode = nodeSource.get(ethereumNodeId); final zanoNode = nodeSource.get(zanoNodeId); + final dummyNode = nodeSource.get(dummyNodeId); if (moneroNode != null) { nodes[WalletType.monero] = moneroNode; @@ -866,6 +914,10 @@ abstract class SettingsStoreBase with Store { if (zanoNode != null) { nodes[WalletType.zano] = zanoNode; } + + if (dummyNode != null) { + nodes[WalletType.dummy] = dummyNode; + } } Future _saveCurrentNode(Node node, WalletType walletType) async { @@ -890,6 +942,9 @@ abstract class SettingsStoreBase with Store { case WalletType.zano: await _sharedPreferences.setInt(PreferencesKey.currentZanoNodeIdKey, node.key as int); break; + case WalletType.dummy: + await _sharedPreferences.setInt(PreferencesKey.currentDummyNodeIdKey, node.key as int); + break; default: break; } diff --git a/lib/view_model/dashboard/transaction_list_item.dart b/lib/view_model/dashboard/transaction_list_item.dart index ac74df89d..d5c85c793 100644 --- a/lib/view_model/dashboard/transaction_list_item.dart +++ b/lib/view_model/dashboard/transaction_list_item.dart @@ -1,7 +1,9 @@ +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/balance_display_mode.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -92,6 +94,20 @@ class TransactionListItem extends ActionListItem with Keyable { cryptoAmount: ethereum!.formatterEthereumAmountToDouble(transaction: transaction), price: price); break; + case WalletType.zano: + final asset = zano!.assetOfTransaction(transaction); + final price = balanceViewModel.fiatConvertationStore.prices[asset]; + amount = calculateFiatAmountRaw( + cryptoAmount: zano!.formatterMoneroAmountToDouble(amount: transaction.amount), + price: price); + break; + case WalletType.dummy: + final asset = dummy!.assetOfTransaction(transaction); + final price = balanceViewModel.fiatConvertationStore.prices[asset]; + amount = calculateFiatAmountRaw( + cryptoAmount: dummy!.formatterDummyAmountToDouble(amount: transaction.amount), + price: price); + break; default: break; } diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 2e90a3a33..f046d0006 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -3,6 +3,7 @@ import 'dart:collection'; import 'dart:convert'; import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/wallet_contact.dart'; @@ -277,6 +278,10 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with return transactionPriority == bitcoin!.getBitcoinTransactionPrioritySlow(); case WalletType.litecoin: return transactionPriority == bitcoin!.getLitecoinTransactionPrioritySlow(); + case WalletType.zano: + return transactionPriority == monero!.getMoneroTransactionPrioritySlow(); + case WalletType.dummy: + return transactionPriority == dummy!.getDummyTransactionPrioritySlow(); default: return false; } @@ -689,6 +694,16 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with depositCurrency = CryptoCurrency.eth; receiveCurrency = CryptoCurrency.xmr; break; + case WalletType.zano: + // TODO: !!! + // depositCurrency = CryptoCurrency.zano; + // receiveCurrency = ??? + throw UnimplementedError(); + case WalletType.dummy: + // TODO: !!! + // depositCurrency = CryptoCurrency.dummy; + // receiveCurrency = ??? + throw UnimplementedError(); default: break; } @@ -772,6 +787,12 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with case WalletType.litecoin: _settingsStore.priority[wallet.type] = bitcoin!.getLitecoinTransactionPriorityMedium(); break; + case WalletType.zano: + _settingsStore.priority[wallet.type] = monero!.getMoneroTransactionPriorityAutomatic(); + break; + case WalletType.dummy: + _settingsStore.priority[wallet.type] = dummy!.getDummyTransactionPriorityMedium(); + break; default: break; } diff --git a/lib/view_model/node_list/node_list_view_model.dart b/lib/view_model/node_list/node_list_view_model.dart index ea612c63c..8805962ce 100644 --- a/lib/view_model/node_list/node_list_view_model.dart +++ b/lib/view_model/node_list/node_list_view_model.dart @@ -66,6 +66,12 @@ abstract class NodeListViewModelBase with Store { case WalletType.ethereum: node = getEthereumDefaultNode(nodes: _nodeSource)!; break; + case WalletType.zano: + node = getZanoDefaultNode(nodes: _nodeSource)!; + break; + case WalletType.dummy: + node = getDummyDefaultNode(nodes: _nodeSource)!; + break; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.type}'); } diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index 8008812ba..4daa228ca 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -1,10 +1,12 @@ import 'package:cake_wallet/di.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/calculate_fiat_amount_raw.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/src/screens/send/widgets/extract_address_from_parsed.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; @@ -94,6 +96,12 @@ abstract class OutputBase with Store { case WalletType.ethereum: _amount = ethereum!.formatterEthereumParseAmount(_cryptoAmount); break; + case WalletType.zano: + _amount = zano!.formatterMoneroParseAmount(amount: _cryptoAmount); + break; + case WalletType.dummy: + _amount = dummy!.formatterDummyParseAmount(amount: _cryptoAmount); + break; default: break; } @@ -128,9 +136,17 @@ abstract class OutputBase with Store { return haven!.formatterMoneroAmountToDouble(amount: fee); } + if (_wallet.type == WalletType.zano) { + return zano!.formatterMoneroAmountToDouble(amount: fee); + } + if (_wallet.type == WalletType.ethereum) { return ethereum!.formatterEthereumAmountToDouble(amount: BigInt.from(fee)); } + + if (_wallet.type == WalletType.dummy) { + return dummy!.formatterDummyAmountToDouble(amount: fee); + } } catch (e) { print(e.toString()); } @@ -240,6 +256,10 @@ abstract class OutputBase with Store { case WalletType.ethereum: maximumFractionDigits = 12; break; + case WalletType.dummy: + case WalletType.zano: + // TODO: enter correct values + throw UnimplementedError(); default: break; } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 329b3c4ad..743d0f7be 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; @@ -6,6 +7,7 @@ import 'package:cake_wallet/entities/wallet_contact.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; @@ -378,6 +380,19 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return ethereum!.createEthereumTransactionCredentials(outputs, priority: priority, currency: selectedCryptoCurrency); + case WalletType.zano: + final priority = _settingsStore.priority[wallet.type]; + if (priority == null) { + throw Exception('Priority is null for wallet type: ${wallet.type}'); + } + return zano!.createZanoTransactionCreationCredentials( + outputs: outputs, priority: priority, assetType: selectedCryptoCurrency.title); + case WalletType.dummy: + final priority = _settingsStore.priority[wallet.type]; + if (priority == null) { + throw Exception('Priority is null for wallet type: ${wallet.type}'); + } + return dummy!.createDummyTransactionCreationCredentials(outputs: outputs, priority: priority); default: throw Exception('Unexpected wallet type: ${wallet.type}'); } diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index 1620870b4..ceb63ccc5 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -47,6 +47,12 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.ethereum: _addEthereumListItems(tx, dateFormat); break; + case WalletType.zano: + _addZanoListItems(tx, dateFormat); + break; + case WalletType.dummy: + _addDummyListItems(tx, dateFormat); + break; default: break; } @@ -116,6 +122,10 @@ abstract class TransactionDetailsViewModelBase with Store { return 'https://explorer.havenprotocol.org/search?value=${txId}'; case WalletType.ethereum: return 'https://etherscan.io/tx/${txId}'; + case WalletType.zano: + return 'https://example.com/${txId}'; + case WalletType.dummy: + return 'https://example.com/${txId}'; default: return ''; } @@ -133,6 +143,10 @@ abstract class TransactionDetailsViewModelBase with Store { return S.current.view_transaction_on + 'explorer.havenprotocol.org'; case WalletType.ethereum: return S.current.view_transaction_on + 'etherscan.io'; + case WalletType.zano: + return S.current.view_transaction_on + 'zano'; + case WalletType.dummy: + return S.current.view_transaction_on + 'dummy'; default: return ''; } @@ -221,4 +235,28 @@ abstract class TransactionDetailsViewModelBase with Store { items.addAll(_items); } + + void _addZanoListItems(TransactionInfo tx, DateFormat dateFormat) { + items.addAll([ + StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), + StandartListItem( + title: S.current.transaction_details_date, value: dateFormat.format(tx.date)), + StandartListItem(title: S.current.transaction_details_height, value: '${tx.height}'), + StandartListItem(title: S.current.transaction_details_amount, value: tx.amountFormatted()), + if (tx.feeFormatted()?.isNotEmpty ?? false) + StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), + ]); + } + + void _addDummyListItems(TransactionInfo tx, DateFormat dateFormat) { + items.addAll([ + StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), + StandartListItem( + title: S.current.transaction_details_date, value: dateFormat.format(tx.date)), + StandartListItem(title: S.current.transaction_details_height, value: '${tx.height}'), + StandartListItem(title: S.current.transaction_details_amount, value: tx.amountFormatted()), + if (tx.feeFormatted()?.isNotEmpty ?? false) + StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), + ]); + } } diff --git a/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart index a4eb3d386..bb056bb5a 100644 --- a/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; @@ -90,6 +91,11 @@ abstract class WalletAddressEditOrCreateViewModelBase with Store { label: label); await wallet.save(); } + + if (wallet.type == WalletType.dummy) { + await dummy!.generateNewAddress(wallet); + await wallet.save(); + } } Future _update() async { diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart index db45ae117..a3c1b360f 100644 --- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart @@ -1,8 +1,10 @@ import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; import 'package:cake_wallet/store/yat/yat_store.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/currency.dart'; import 'package:intl/intl.dart'; import 'package:mobx/mobx.dart'; @@ -107,6 +109,38 @@ class EthereumURI extends PaymentURI { } } +class ZanoURI extends PaymentURI { + ZanoURI({required String amount, required String address}) + : super(amount: amount, address: address); + + @override + String toString() { + var base = 'zano:' + address; + + if (amount.isNotEmpty) { + base += '?amount=${amount.replaceAll(',', '.')}'; + } + + return base; + } +} + +class DummyURI extends PaymentURI { + DummyURI({required String amount, required String address}) + : super(amount: amount, address: address); + + @override + String toString() { + var base = 'dummy:' + address; + + if (amount.isNotEmpty) { + base += '?amount=${amount.replaceAll(',', '.')}'; + } + + return base; + } +} + abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewModel with Store { WalletAddressListViewModelBase({ required AppStore appStore, @@ -176,6 +210,14 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo return EthereumURI(amount: amount, address: address.address); } + if (wallet.type == WalletType.zano) { + return ZanoURI(amount: amount, address: address.address); + } + + if (wallet.type == WalletType.dummy) { + return DummyURI(amount: amount, address: address.address); + } + throw Exception('Unexpected type: ${type.toString()}'); } @@ -232,6 +274,12 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); } + if (wallet.type == WalletType.dummy) { + final primaryAddress = dummy!.getAddress(wallet); + + addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); + } + return addressList; } diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index 0233e13e9..0a01893cf 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/store/app_store.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/wallet_type.dart'; @@ -104,6 +105,19 @@ abstract class WalletKeysViewModelBase with Store { StandartListItem(title: S.current.wallet_seed, value: _appStore.wallet!.seed!), ]); } + + if (_appStore.wallet!.type == WalletType.zano) { + items.addAll([ + StandartListItem(title: S.current.wallet_seed, value: _appStore.wallet!.seed!), + ]); + } + + if (_appStore.wallet!.type == WalletType.dummy) { + items.addAll([ + StandartListItem(title: S.current.wallet_seed, value: _appStore.wallet!.seed!), + ]); + } + } Future _currentHeight() async { @@ -113,6 +127,9 @@ abstract class WalletKeysViewModelBase with Store { if (_appStore.wallet!.type == WalletType.monero) { return monero_wallet.getCurrentHeight(); } + if (_appStore.wallet!.type == WalletType.zano) { + return await zano!.getCurrentHeight(); + } return null; } @@ -128,6 +145,10 @@ abstract class WalletKeysViewModelBase with Store { return 'haven-wallet'; case WalletType.ethereum: return 'ethereum-wallet'; + case WalletType.zano: + return 'zano-wallet'; + case WalletType.dummy: + return 'dummy-wallet'; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.toString()}'); } @@ -172,6 +193,8 @@ abstract class WalletKeysViewModelBase with Store { return monero!.getHeigthByDate(date: date); } else if (type == WalletType.haven) { return haven!.getHeightByDate(date: date); + } else if (type == WalletType.zano) { + return zano!.getHeightByDate(date: date); } return 0; } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index 230b7ade5..f5f504880 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/view_model/restore/restore_wallet.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/zano/zano.dart'; @@ -49,6 +50,8 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { case WalletType.zano: return zano!.createZanoNewWalletCredentials( name: name, language: "en"); + case WalletType.dummy: + return dummy!.createDummyNewWalletCredentials(name: name); default: throw Exception('Unexpected type: ${type.toString()}');; } diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index 65f122bf0..0378e5971 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -1,5 +1,7 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/store/app_store.dart'; @@ -90,6 +92,15 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { name: name, mnemonic: seed, password: password); + case WalletType.zano: + return zano!.createZanoRestoreWalletFromSeedCredentials( + name: name, + password: password, + height: height, + mnemonic: seed); + case WalletType.dummy: + return dummy!.createDummyRestoreWalletFromSeedCredentials( + name: name); default: break; } @@ -122,6 +133,17 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { language: 'English'); } + if (type == WalletType.zano) { + return zano!.createZanoRestoreWalletFromKeysCredentials( + name: name, + height: height, + spendKey: spendKey!, + viewKey: viewKey!, + address: address!, + password: password, + language: 'English'); + } + if (type == WalletType.ethereum) { return ethereum!.createEthereumRestoreWalletFromPrivateKey( name: name, @@ -129,6 +151,10 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { password: password, ); } + + if (type == WalletType.dummy) { + return dummy!.createDummyRestoreWalletFromKeyCredentials(name: name); + } } throw Exception('Unexpected type: ${type.toString()}'); From a260d0a599d3e74e8630141ed6bceaea44b9e4dc Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 25 Oct 2023 19:07:58 +0000 Subject: [PATCH 05/58] fixing api for zano --- cw_zano/ios/Classes/zano_api.cpp | 375 ++++++++----------------------- scripts/android/build_zano.sh | 4 +- 2 files changed, 94 insertions(+), 285 deletions(-) diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index 4463506c9..1081d279a 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -15,7 +15,7 @@ void __clear_cache(void* start, void* end) { } #endif #include "plain_wallet_api.h" -#include "plain_wallet_api_ex.h" +//#include "plain_wallet_api_ex.h" @@ -81,7 +81,7 @@ extern "C" uint64_t rate; char *assetType; - HavenRate(char *_assetType, uint64_t _rate) + ZanoRate(char *_assetType, uint64_t _rate) { rate = _rate; assetType = _assetType; @@ -175,8 +175,9 @@ extern "C" int64_t datetime; - TransactionInfoRow(wallet_public::wallet_transfer_info& wti) - { + TransactionInfoRow(/*wallet_public::wallet_transfer_info& wti*/) + { + /* amount = wti.subtransfers. fee = transaction->fee(); blockHeight = transaction->blockHeight(); @@ -221,8 +222,8 @@ extern "C" std::mutex store_lock; bool is_storing = false; */ - void change_current_wallet(Monero::Wallet *wallet) - { + //void change_current_wallet(Monero::Wallet *wallet) + //{ /* m_wallet = wallet; m_listener = nullptr; @@ -255,64 +256,22 @@ extern "C" m_subaddress = nullptr; } */ + //} + + //Monero::Wallet *get_current_wallet() + //{ + + // return nullptr;//return m_wallet; + //} + + char * create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) + { + return strdup(plain_wallet::generate(path, password).c_str()); } - Monero::Wallet *get_current_wallet() + char * restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) { - - return nullptr;//return m_wallet; - } - - bool create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) - { - /* - Monero::WalletManagerFactory::setLogLevel(4); - - Monero::NetworkType _networkType = static_cast(networkType); - Monero::WalletManager *walletManager = Monero::WalletManagerFactory::getWalletManager(); - Monero::Wallet *wallet = walletManager->createWallet(path, password, language, _networkType); - - int status; - std::string errorString; - - wallet->statusWithErrorString(status, errorString); - - if (wallet->status() != Monero::Wallet::Status_Ok) - { - error = strdup(wallet->errorString().c_str()); - return false; - } - - change_current_wallet(wallet); - */ - return true; - } - - bool restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) - { - /* - Monero::NetworkType _networkType = static_cast(networkType); - Monero::Wallet *wallet = Monero::WalletManagerFactory::getWalletManager()->recoveryWallet( - std::string(path), - std::string(password), - std::string(seed), - _networkType, - (uint64_t)restoreHeight); - - int status; - std::string errorString; - - wallet->statusWithErrorString(status, errorString); - - if (status != Monero::Wallet::Status_Ok || !errorString.empty()) - { - error = strdup(errorString.c_str()); - return false; - } - - change_current_wallet(wallet); - */ - return true; + return strdup(restore(seed, path, password, ""); } bool restore_wallet_from_keys(char *path, char *password, char *language, char *address, char *viewKey, char *spendKey, int32_t networkType, uint64_t restoreHeight, char *error) @@ -342,275 +301,125 @@ extern "C" change_current_wallet(wallet); */ - return true; + return false; } - bool load_wallet(char *path, char *password, int32_t nettype) + char * load_wallet(char *path, char *password, int32_t nettype) { - /* - nice(19); - Monero::NetworkType networkType = static_cast(nettype); - Monero::WalletManager *walletManager = Monero::WalletManagerFactory::getWalletManager(); - Monero::Wallet *wallet = walletManager->openWallet(std::string(path), std::string(password), networkType); - int status; - std::string errorString; - - wallet->statusWithErrorString(status, errorString); - change_current_wallet(wallet); - - return !(status != Monero::Wallet::Status_Ok || !errorString.empty()); - */ - return false; + return strdup(open(path, password)); } char *error_string() { - return strdup(get_current_wallet()->errorString().c_str()); + return strdup("");//strdup(get_current_wallet()->errorString().c_str()); } bool is_wallet_exist(char *path) { - return false; //return Monero::WalletManagerFactory::getWalletManager()->walletExists(std::string(path)); + return plain_wallet::is_wallet_exist(path); } - void close_current_wallet() + void close_wallet(uint64_t hwallet) { - //Monero::WalletManagerFactory::getWalletManager()->closeWallet(get_current_wallet()); - //change_current_wallet(nullptr); - } - - char *get_filename() - { - return nullptr;//return strdup(get_current_wallet()->filename().c_str()); - } - - char *secret_view_key() - { - return nullptr;//return strdup(get_current_wallet()->secretViewKey().c_str()); - } - - char *public_view_key() - { - return nullptr;//return strdup(get_current_wallet()->publicViewKey().c_str()); - } - - char *secret_spend_key() - { - return nullptr;//return strdup(get_current_wallet()->secretSpendKey().c_str()); - } - - char *public_spend_key() - { - return nullptr;//return strdup(get_current_wallet()->publicSpendKey().c_str()); - } - - char *get_address(uint32_t account_index, uint32_t address_index) - { - return nullptr;//return strdup(get_current_wallet()->address(account_index, address_index).c_str()); + plain_wallet::close_wallet(hwallet); } - const char *seed() - { - return nullptr;//return strdup(get_current_wallet()->seed().c_str()); + char *get_wallet_info(uint64_t hwallet) { + return strdup(plain_wallet::get_wallet_info(hwallet)); } - int64_t *get_full_balance(uint32_t account_index) + /* + get_filename(): -> get_wallet_info(h).wi.path + secret_view_key(): -> get_wallet_info(h).wi_extended.view_private_key + public_view_key(): -> get_wallet_info(h).wi_extended.view_public_key + secret_spend_key(): -> get_wallet_info(h).wi_extended.spend_private_key + public_spend_key(): -> get_wallet_info(h).wi_extended.spend_public_key + get_address(): -> get_wallet_info(h).wi.address + seed(): -> get_wallet_info(h).wi_extended.seed + get_current_height(): -> get_wallet_status(h).current_wallet_height + get_node_height(): -> get_wallet_status(h).current_daemon_height + + start_refresh() ??? + set_refresh_from_block_height ??? + set_recovering_from_seed ??? + + connect_to_node()/is_connected(): -> get_connectivity_status(): { + "is_online": true, + "last_daemon_is_disconnected": false, + "is_server_busy": false, + "last_proxy_communicate_timestamp": 12121212 + } + + } + + get_full_balance/get_unlocked_balance(): -> async_call("get_recent_txs_and_info", hwallet, "{ params: {offset: 0,count: 30,update_provision_info: true}}") + return list of last transactions + balances + + store(): -> async_call("store", hwallet, "{params: {}}") + + set_password() return "OK" if succeded + + */ + + + char* get_wallet_status(uint64_t hwallet) { - /* - std::map accountBalance; - std::map> balanceSubaddresses = get_current_wallet()->balance(account_index); - std::vector assetList = Monero::Assets::list(); - //prefill balances - for (const auto &asset_type : assetList) { - - accountBalance[asset_type] = 0; - } - // balances are mapped to their subaddress - // we compute total balances of account - for (auto const& balanceSubaddress : balanceSubaddresses) - { - - std::map balanceOfSubaddress = balanceSubaddress.second; - - for (auto const& balance : balanceOfSubaddress) - { - - const std::string &assetType = balance.first; - const uint64_t &amount = balance.second; - accountBalance[assetType] +=amount; - } - } - - size_t size = accountBalance.size(); - int64_t *balanceAddresses = (int64_t *)malloc(size * sizeof(int64_t)); - int i = 0; - - for (auto const& balance : accountBalance) - { - char *assetType = strdup(balance.first.c_str()); - HavenBalance *hb = new HavenBalance(assetType, balance.second); - balanceAddresses[i] = reinterpret_cast(hb); - i++; - } - return balanceAddresses; - */ - return nullptr; + return strdup(plain_wallet::get_wallet_status(hwallet)); } - int64_t *get_unlocked_balance(uint32_t account_index) + char* async_call(char* method_name, uint64_t instance_id, char* params) { - /* - std::map accountBalance; - std::map> balanceSubaddresses = get_current_wallet()->unlockedBalance(account_index); - std::vector assetList = Monero::Assets::list(); - - //prefill balances - for (const auto &asset_type : assetList) { - - accountBalance[asset_type] = 0; - } - // balances are mapped to their subaddress - // we compute total balances of account - for (auto const& balanceSubaddress : balanceSubaddresses) - { - - std::map balanceOfSubaddress = balanceSubaddress.second; - - for (auto const& balance : balanceOfSubaddress) - { - - const std::string &assetType = balance.first; - const uint64_t &amount = balance.second; - accountBalance[assetType] +=amount; - } - } - - size_t size = accountBalance.size(); - int64_t *balanceAddresses = (int64_t *)malloc(size * sizeof(int64_t)); - int i = 0; - - for (auto const& balance : accountBalance) - { - char *assetType = strdup(balance.first.c_str()); - HavenBalance *hb = new HavenBalance(assetType, balance.second); - balanceAddresses[i] = reinterpret_cast(hb); - i++; - } - return balanceAddresses; - */ - return nullptr; + return strdup(plain_wallet::async_call(method_name, instance_id, params)); + } + char* try_pull_result(uint64_t job_id) + { + return strdup(plain_wallet::try_pull_result(job_id)); } - uint64_t get_current_height() + char* get_connectivity_status() { - return 0;//return get_current_wallet()->blockChainHeight(); - } - - uint64_t get_node_height() - { - return 0;//return get_current_wallet()->daemonBlockChainHeight(); - } - - bool connect_to_node(char *error) - { - /* - nice(19); - bool is_connected = get_current_wallet()->connectToDaemon(); - - if (!is_connected) - { - error = strdup(get_current_wallet()->errorString().c_str()); - } - - return is_connected; - */ - return false; + return strdup(plain_wallet::get_connectivity_status()); } bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) { - - /* - nice(19); - Monero::Wallet *wallet = get_current_wallet(); - - std::string _login = plain_wallet::get_version(); - std::string _password = ""; - - if (login != nullptr) + if(use_ssl) { - _login = std::string(login); + //LOG_ERROR("SSL is not supported yet for Zano"); + return false; } - if (password != nullptr) + std::string res = plain_wallet::init(address, "", 0); + if(API_RETURN_CODE_OK != res) { - _password = std::string(password); + //LOG_ERROR("Failed init wallet"); + return false; } - bool inited = wallet->init(std::string(address), 0, _login, _password, use_ssl, is_light_wallet); - - if (!inited) - { - error = strdup(wallet->errorString().c_str()); - } else if (!wallet->connectToDaemon()) { - error = strdup(wallet->errorString().c_str()); - } - - return inited; - */ - return plain_wallet::get_version().empty(); + return true; } - bool is_connected() - { - return false;//return get_current_wallet()->connected(); - } - - void start_refresh() - { + //void start_refresh() + //{ //get_current_wallet()->refreshAsync(); //get_current_wallet()->startRefresh(); - } + //} - void set_refresh_from_block_height(uint64_t height) - { + //void set_refresh_from_block_height(uint64_t height) + //{ //get_current_wallet()->setRefreshFromBlockHeight(height); - } + //} - void set_recovering_from_seed(bool is_recovery) - { + //void set_recovering_from_seed(bool is_recovery) + //{ //get_current_wallet()->setRecoveringFromSeed(is_recovery); - } + //} - void store(char *path) + char* set_password(uint64_t hwallet, char *password, Utf8Box &error) { - /* - store_lock.lock(); - if (is_storing) { - return; - } - - is_storing = true; - get_current_wallet()->store(std::string(path)); - is_storing = false; - store_lock.unlock(); - */ - } - - bool set_password(char *password, Utf8Box &error) - { - /* - bool is_changed = get_current_wallet()->setPassword(std::string(password)); - - if (!is_changed) { - error = Utf8Box(strdup(get_current_wallet()->errorString().c_str())); - } - - return is_changed; - */ - return false; + return strdup(plain_wallet::reset_wallet_password(hwallet, password)); } bool transaction_create(char *address, char *asset_type, char *payment_id, char *amount, diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index 20b7739a1..cd759f8b0 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -4,7 +4,7 @@ set -o xtrace . ./config.sh #HAVEN_VERSION=tags/v3.0.7 ZANO_SRC_DIR=${WORKDIR}/zano -ZANO_CHECKOUT_ID=cryptoassets +ZANO_CHECKOUT_ID=cake #git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} cd $ZANO_SRC_DIR @@ -63,7 +63,7 @@ cd $ZANO_SRC_DIR rm -rf ./build/release mkdir -p ./build/release cd ./build/release -CC=${CLANG} CXX=${CXXLANG} cmake -S../.. -DCMAKE_INSTALL_PREFIX=${DEST_LIB_DIR} -D TESTNET=TRUE -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS +CC=${CLANG} CXX=${CXXLANG} cmake -S../.. -DCMAKE_INSTALL_PREFIX=${DEST_LIB_DIR} -D CAKEWALLET=TRUE -D TESTNET=TRUE -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS if [ $? -ne 0 ]; then echo "Failed to perform cmake" exit 1 From d5f84fec0fb9f3e4e3ff255b98e9215ff5d4f189 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 26 Oct 2023 12:13:57 +0000 Subject: [PATCH 06/58] fixed zano build script --- cw_zano/ios/Classes/zano_api.cpp | 17 +++++++++-------- scripts/android/build_zano.sh | 9 +++++++-- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index 1081d279a..c4aea5b28 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -271,7 +271,7 @@ extern "C" char * restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) { - return strdup(restore(seed, path, password, ""); + return strdup(plain_wallet::restore(seed, path, password, "").c_str()); } bool restore_wallet_from_keys(char *path, char *password, char *language, char *address, char *viewKey, char *spendKey, int32_t networkType, uint64_t restoreHeight, char *error) @@ -306,7 +306,7 @@ extern "C" char * load_wallet(char *path, char *password, int32_t nettype) { - return strdup(open(path, password)); + return strdup(plain_wallet::open(path, password).c_str()); } char *error_string() { @@ -326,7 +326,7 @@ extern "C" char *get_wallet_info(uint64_t hwallet) { - return strdup(plain_wallet::get_wallet_info(hwallet)); + return strdup(plain_wallet::get_wallet_info(hwallet).c_str()); } /* @@ -365,21 +365,21 @@ extern "C" char* get_wallet_status(uint64_t hwallet) { - return strdup(plain_wallet::get_wallet_status(hwallet)); + return strdup(plain_wallet::get_wallet_status(hwallet).c_str()); } char* async_call(char* method_name, uint64_t instance_id, char* params) { - return strdup(plain_wallet::async_call(method_name, instance_id, params)); + return strdup(plain_wallet::async_call(method_name, instance_id, params).c_str()); } char* try_pull_result(uint64_t job_id) { - return strdup(plain_wallet::try_pull_result(job_id)); + return strdup(plain_wallet::try_pull_result(job_id).c_str()); } char* get_connectivity_status() { - return strdup(plain_wallet::get_connectivity_status()); + return strdup(plain_wallet::get_connectivity_status().c_str()); } bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) @@ -419,7 +419,7 @@ extern "C" char* set_password(uint64_t hwallet, char *password, Utf8Box &error) { - return strdup(plain_wallet::reset_wallet_password(hwallet, password)); + return strdup(plain_wallet::reset_wallet_password(hwallet, password).c_str()); } bool transaction_create(char *address, char *asset_type, char *payment_id, char *amount, @@ -565,6 +565,7 @@ extern "C" uint64_t is_needed_to_refresh() { + return 0; /* if (m_listener == nullptr) { return false; diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index cd759f8b0..084c170e0 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -12,6 +12,10 @@ cd $ZANO_SRC_DIR #git submodule init #git submodule update git pull -r +if [ $? -ne 0 ]; then + echo "Failed to git pull -r" + exit 1 +fi for arch in "aarch" "aarch64" "i686" "x86_64" do @@ -63,7 +67,7 @@ cd $ZANO_SRC_DIR rm -rf ./build/release mkdir -p ./build/release cd ./build/release -CC=${CLANG} CXX=${CXXLANG} cmake -S../.. -DCMAKE_INSTALL_PREFIX=${DEST_LIB_DIR} -D CAKEWALLET=TRUE -D TESTNET=TRUE -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS +CC=${CLANG} CXX=${CXXLANG} cmake -S../.. -DCMAKE_INSTALL_PREFIX=./_install -D CAKEWALLET=TRUE -D TESTNET=TRUE -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS if [ $? -ne 0 ]; then echo "Failed to perform cmake" exit 1 @@ -83,6 +87,7 @@ if [ $? -ne 0 ]; then fi #exit 1 -#cp -r ./lib/* $DEST_LIB_DIR +cp -r ./_install/$ARCH_ABI/lib/* $DEST_LIB_DIR #cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR + done From 6d7f2beefd2090f79b4571800f20a0df264bfb7b Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 26 Oct 2023 13:38:11 +0000 Subject: [PATCH 07/58] attempt tp fix namespace problem --- scripts/android/build_zano_all.sh | 2 +- scripts/android/copy_monero_deps.sh | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/android/build_zano_all.sh b/scripts/android/build_zano_all.sh index daadadc6b..211d66706 100755 --- a/scripts/android/build_zano_all.sh +++ b/scripts/android/build_zano_all.sh @@ -5,4 +5,4 @@ ./build_openssl.sh ./build_sodium.sh ./build_zmq.sh -./build_haven.sh +./build_zano.sh diff --git a/scripts/android/copy_monero_deps.sh b/scripts/android/copy_monero_deps.sh index d59e9d7f0..02bb0ad71 100755 --- a/scripts/android/copy_monero_deps.sh +++ b/scripts/android/copy_monero_deps.sh @@ -5,6 +5,7 @@ CW_DIR=${WORKDIR}/cake_wallet CW_EXRTERNAL_DIR=${CW_DIR}/cw_shared_external/ios/External/android CW_HAVEN_EXTERNAL_DIR=${CW_DIR}/cw_haven/ios/External/android CW_MONERO_EXTERNAL_DIR=${CW_DIR}/cw_monero/ios/External/android +CW_ZANO_EXTERNAL_DIR=${CW_DIR}/cw_zano/ios/External/android for arch in "aarch" "aarch64" "i686" "x86_64" do @@ -40,6 +41,8 @@ done mkdir -p ${CW_HAVEN_EXTERNAL_DIR}/include mkdir -p ${CW_MONERO_EXTERNAL_DIR}/include +mkdir -p ${CW_ZANO_EXTERNAL_DIR}/include cp $CW_EXRTERNAL_DIR/x86/include/monero/wallet2_api.h ${CW_MONERO_EXTERNAL_DIR}/include cp $CW_EXRTERNAL_DIR/x86/include/haven/wallet2_api.h ${CW_HAVEN_EXTERNAL_DIR}/include +# cp $CW_EXRTERNAL_DIR/x86/include/zano/wallet2_api.h ${CW_ZANO_EXTERNAL_DIR}/include From 9265651046f25030264958cbf07ba6c0f8777339 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 26 Oct 2023 14:32:29 +0000 Subject: [PATCH 08/58] added copy script for Zano files --- scripts/android/build_zano.sh | 10 +++++----- scripts/android/copy_zano_libs.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) create mode 100755 scripts/android/copy_zano_libs.sh diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index 084c170e0..ee4ab1400 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -11,11 +11,11 @@ cd $ZANO_SRC_DIR #git checkout ${ZANO_CHECKOUT_ID} #git submodule init #git submodule update -git pull -r -if [ $? -ne 0 ]; then - echo "Failed to git pull -r" - exit 1 -fi +#git pull -r +#if [ $? -ne 0 ]; then +# echo "Failed to git pull -r" +# exit 1 +#fi for arch in "aarch" "aarch64" "i686" "x86_64" do diff --git a/scripts/android/copy_zano_libs.sh b/scripts/android/copy_zano_libs.sh new file mode 100755 index 000000000..aedd01404 --- /dev/null +++ b/scripts/android/copy_zano_libs.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +WORKDIR=/opt/android +CW_DIR=${WORKDIR}/cake_wallet +CW_EXRTERNAL_DIR=${CW_DIR}/cw_shared_external/ios/External/android +for arch in "aarch" "aarch64" "i686" "x86_64" +do + +PREFIX=${WORKDIR}/prefix_${arch} +ABI="" + +case $arch in + "aarch" ) + ABI="armeabi-v7a";; + "aarch64" ) + ABI="arm64-v8a";; + "i686" ) + ABI="x86";; + "x86_64" ) + ABI="x86_64";; +esac + +LIB_DIR=${CW_EXRTERNAL_DIR}/${ABI}/lib + +mkdir -p $LIB_DIR + +cp -r ${PREFIX}/lib/* $LIB_DIR + +done From 58e505944cfee9d25ee357722f5a46761eea9e8a Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 31 Oct 2023 11:00:12 +0000 Subject: [PATCH 09/58] changes for zano wallet --- cw_zano/ios/Classes/zano_api.cpp | 357 ++++++++++++++++--------------- 1 file changed, 189 insertions(+), 168 deletions(-) diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index c4aea5b28..dc73c737b 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -196,21 +196,6 @@ extern "C" } }; - struct PendingTransactionRaw - { - uint64_t amount; - uint64_t fee; - char *hash; - Monero::PendingTransaction *transaction; - - PendingTransactionRaw(Monero::PendingTransaction *_transaction) - { - transaction = _transaction; - amount = _transaction->amount(); - fee = _transaction->fee(); - hash = strdup(_transaction->txid()[0].c_str()); - } - }; /* Monero::Wallet *m_wallet; Monero::TransactionHistory *m_transaction_history; @@ -340,9 +325,25 @@ extern "C" get_current_height(): -> get_wallet_status(h).current_wallet_height get_node_height(): -> get_wallet_status(h).current_daemon_height + get_syncing_height() ??? how it's different from get_current_height??= start_refresh() ??? set_refresh_from_block_height ??? set_recovering_from_seed ??? + get_node_height_or_update ??? + is_needed_to_refresh ??? + is_new_transaction_exist ??? + set_listener ??? + transactions_refresh() ??? + on_startup() ??? + rescan_blockchain() ??? + set_trusted_daemon()/trusted_daemon() ??? + + + asset_types_size()/asset_types() dedicated from balance + + update_rate()/get_rate()/size_of_rate() - need to fetch Zano price from coinmarketcap API, other assets ??? + + subaddrress_size()/subaddrress_get_all() - no subaddresses, only one address, available via get_wallet_info(h).wi.address connect_to_node()/is_connected(): -> get_connectivity_status(): { "is_online": true, @@ -353,15 +354,65 @@ extern "C" } - get_full_balance/get_unlocked_balance(): -> async_call("get_recent_txs_and_info", hwallet, "{ params: {offset: 0,count: 30,update_provision_info: true}}") + get_full_balance/get_unlocked_balance(): -> async_call("invoke", hwallet, "{method: 'get_recent_txs_and_info', params: {offset: 0,count: 30,update_provision_info: true}}") return list of last transactions + balances - store(): -> async_call("store", hwallet, "{params: {}}") + store(): -> async_call("invoke", hwallet, "{method: 'store', params: {}}") set_password() return "OK" if succeded + + transaction_create/transaction_commit () replaced with method 'transfer' that receive following argument in JSON: + async_call("invoke", hwallet, " + { + "method": "transfer", + "params": { + "destinations": [ + { + "amount": "0.222", + "address": "iZ2GHyPD7g28hgBfboZeCENaYrHSYZ1bLFi5cgWvn4WJLaxfgs4kqG6cJi9ai2zrXWSCpsvRXit14gKjeijx6YPCLJEv6Fx4rVm1hdAGQFiv", + "asset_id" "bec034f4f158f97cfc4933c3e387b098f69870e955a49061f9ce956212729534" + } + ], + "fee": 10000000000, + "mixin": 10, + "payment_id": "", + "comment": "haha", + "push_payer": false, + "hide_receiver": true + } + } + ") + + after transaction_create() event happened you need to call API get_current_tx_fee(priority_raw), get fee from it and use it to + show to dialog in UI, and then if confirmed when transaction_commit() need to actually call async_call(...) that do actual transfer + + subaddress doesn't exist in Zano so following api is not present: + subaddress_add_row/subaddress_set_label/subaddress_refresh/account_size/account_get_all/account_add_row/account_set_label_row/account_refresh + + transactions_get_all() -> + async_call("invoke", hwallet, " + { + "method": "get_recent_txs_and_info", + "params": { + "offset": 0, + "count": 30, + "update_provision_info": true + } + } + ") + + transactions_count() -> invoke: get_recent_txs_and_info + + + */ + uint64_t get_current_tx_fee(uint64_t priority) + { + return plain_wallet::get_current_tx_fee(priority); + } + char* get_wallet_status(uint64_t hwallet) { @@ -422,52 +473,24 @@ extern "C" return strdup(plain_wallet::reset_wallet_password(hwallet, password).c_str()); } + + /* bool transaction_create(char *address, char *asset_type, char *payment_id, char *amount, uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) { - /* - nice(19); - - auto priority = static_cast(priority_raw); - std::string _payment_id; - Monero::PendingTransaction *transaction; - - if (payment_id != nullptr) - { - _payment_id = std::string(payment_id); - } - - if (amount != nullptr) - { - uint64_t _amount = Monero::Wallet::amountFromString(std::string(amount)); - transaction = m_wallet->createTransaction(std::string(address), _payment_id, _amount, std::string(asset_type), std::string(asset_type), m_wallet->defaultMixin(), priority, subaddr_account, {}); - } - else - { - transaction = m_wallet->createTransaction(std::string(address), _payment_id, Monero::optional(),std::string(asset_type), std::string(asset_type), m_wallet->defaultMixin(), priority, subaddr_account, {}); - } - - int status = transaction->status(); - - if (status == Monero::PendingTransaction::Status::Status_Error || status == Monero::PendingTransaction::Status::Status_Critical) - { - error = Utf8Box(strdup(transaction->errorString().c_str())); - return false; - } - - if (m_listener != nullptr) { - m_listener->m_new_transaction = true; - } - - pendingTransaction = PendingTransactionRaw(transaction); + pendingTransaction.fee = plain_wallet::get_current_tx_fee(priority_raw); + pendingTransaction.amount = strdup(amount); + pendingTransaction.address = strdup(address); + pendingTransaction.asset_type = strdup(asset_type); + pendingTransaction.payment_id = strdup(payment_id); + pendingTransaction.priority_raw = priority_raw; + pendingTransaction.subaddr_account = 0; return true; - */ - return false; - } + }*/ - bool transaction_create_mult_dest(char **addresses, char *asset_type, char *payment_id, char **amounts, uint32_t size, - uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) - { + //bool transaction_create_mult_dest(char **addresses, char *asset_type, char *payment_id, char **amounts, uint32_t size, + // uint8_t priority_raw, uint32_t subaddr_account, Utf8Box &error, PendingTransactionRaw &pendingTransaction) + //{ /* nice(19); @@ -508,11 +531,11 @@ extern "C" pendingTransaction = PendingTransactionRaw(transaction); return true; */ - return false; - } + // return false; + //} - bool transaction_commit(PendingTransactionRaw *transaction, Utf8Box &error) - { + //bool transaction_commit(PendingTransactionRaw *transaction, Utf8Box &error) + //{ /* bool committed = transaction->transaction->commit(); @@ -525,11 +548,11 @@ extern "C" return committed; */ - return false; - } + // return false; + //} - uint64_t get_node_height_or_update(uint64_t base_eight) - { + //uint64_t get_node_height_or_update(uint64_t base_eight) + //{ /* if (m_cached_syncing_blockchain_height < base_eight) { m_cached_syncing_blockchain_height = base_eight; @@ -537,11 +560,11 @@ extern "C" return m_cached_syncing_blockchain_height; */ - return 0; - } + // return 0; + //} - uint64_t get_syncing_height() - { + //uint64_t get_syncing_height(uint64_t hwallet) + //{ /* if (m_listener == nullptr) { return 0; @@ -560,12 +583,12 @@ extern "C" return height; */ - return 0; - } + // return 0; + //} - uint64_t is_needed_to_refresh() - { - return 0; + //uint64_t is_needed_to_refresh() + //{ + // return 0; /* if (m_listener == nullptr) { return false; @@ -579,10 +602,10 @@ extern "C" return should_refresh; */ - } + //} - uint8_t is_new_transaction_exist() - { + //uint8_t is_new_transaction_exist() + //{ /* if (m_listener == nullptr) { return false; @@ -597,11 +620,11 @@ extern "C" return is_new_transaction_exist; */ - return 0; - } + // return 0; + //} - void set_listener() - { + //void set_listener() + //{ /* m_last_known_wallet_height = 0; @@ -613,10 +636,10 @@ extern "C" m_listener = new MoneroWalletListener(); get_current_wallet()->setListener(m_listener); */ - } + //} - int64_t *subaddrress_get_all() - { + //int64_t *subaddrress_get_all() + //{ /* std::vector _subaddresses = m_subaddress->getAll(); size_t size = _subaddresses.size(); @@ -631,40 +654,39 @@ extern "C" return subaddresses; */ - return nullptr; - } + // return nullptr; + //} - int32_t subaddrress_size() - { + //int32_t subaddrress_size() + //{ //std::vector _subaddresses = m_subaddress->getAll(); //return _subaddresses.size(); - return 0; - } + // return 0; + //} - void subaddress_add_row(uint32_t accountIndex, char *label) - { + //void subaddress_add_row(uint32_t accountIndex, char *label) + //{ //m_subaddress->addRow(accountIndex, std::string(label)); - } + //} - void subaddress_set_label(uint32_t accountIndex, uint32_t addressIndex, char *label) - { + //void subaddress_set_label(uint32_t accountIndex, uint32_t addressIndex, char *label) + //{ //m_subaddress->setLabel(accountIndex, addressIndex, std::string(label)); - } + //} - void subaddress_refresh(uint32_t accountIndex) - { + //void subaddress_refresh(uint32_t accountIndex) + //{ //m_subaddress->refresh(accountIndex); - } - - int32_t account_size() - { + //} + //int32_t account_size() + //{ //std::vector _accocunts = m_account->getAll(); //return _accocunts.size(); - return 0; - } + // return 0; + //} - int64_t *account_get_all() - { + //int64_t *account_get_all() + //{ /* std::vector _accocunts = m_account->getAll(); size_t size = _accocunts.size(); @@ -679,26 +701,25 @@ extern "C" return accocunts; */ - return nullptr; - } + // return nullptr; + //} - void account_add_row(char *label) - { + //void account_add_row(char *label) + //{ //m_account->addRow(std::string(label)); - } - - void account_set_label_row(uint32_t account_index, char *label) - { + //} + //void account_set_label_row(uint32_t account_index, char *label) + //{ //m_account->setLabel(account_index, label); - } + //} - void account_refresh() - { + //void account_refresh() + //{ //m_account->refresh(); - } + //} - int64_t *transactions_get_all() - { + //int64_t *transactions_get_all() + //{ /* std::vector transactions = m_transaction_history->getAll(); size_t size = transactions.size(); @@ -713,57 +734,57 @@ extern "C" return transactionAddresses; */ - return nullptr; - } + // return nullptr; + //} - void transactions_refresh() - { + //void transactions_refresh() + //{ //m_transaction_history->refresh(); - } + //} - int64_t transactions_count() - { + //int64_t transactions_count() + //{ //return m_transaction_history->count(); - return 0; - } + // return 0; + //} - int LedgerExchange( - unsigned char *command, - unsigned int cmd_len, - unsigned char *response, - unsigned int max_resp_len) - { - return -1; - } + //int LedgerExchange( + // unsigned char *command, + // unsigned int cmd_len, + // unsigned char *response, + // unsigned int max_resp_len) + //{ + // return -1; + //} - int LedgerFind(char *buffer, size_t len) - { - return -1; - } + //int LedgerFind(char *buffer, size_t len) + //{ + // return -1; + //} - void on_startup() - { + //void on_startup() + //{ //Monero::Utils::onStartup(); //Monero::WalletManagerFactory::setLogLevel(4); - } + //} - void rescan_blockchain() - { + //void rescan_blockchain() + //{ //m_wallet->rescanBlockchainAsync(); - } + //} char * get_tx_key(char * txId) { - return nullptr; //return strdup(m_wallet->getTxKey(std::string(txId)).c_str()); + return strdup(""); //return strdup(m_wallet->getTxKey(std::string(txId)).c_str()); } - int32_t asset_types_size() - { - return 0; //return Monero::Assets::list().size(); - } + //int32_t asset_types_size() + //{ + // return 0; //return Monero::Assets::list().size(); + //} - char **asset_types() - { + //char **asset_types() + //{ /* size_t size = Monero::Assets::list().size(); std::vector assetList = Monero::Assets::list(); @@ -780,18 +801,18 @@ extern "C" return assetTypesPts; */ - return nullptr; - } + // return nullptr; + //} //std::map rates; - void update_rate() - { + //void update_rate() + //{ //rates = get_current_wallet()->oracleRates(); - } + //} - int64_t *get_rate() - { + //int64_t *get_rate() + //{ /* size_t size = rates.size(); int64_t *havenRates = (int64_t *)malloc(size * sizeof(int64_t)); @@ -807,13 +828,13 @@ extern "C" return havenRates; */ - return nullptr; - } + // return nullptr; + //} - int32_t size_of_rate() - { - return 0; //return static_cast(rates.size()); - } + //int32_t size_of_rate() + //{ + // return 0; //return static_cast(rates.size()); + //} void set_trusted_daemon(bool arg) { From dda6d4c750b7d0c926c88b7628c59ceaaa9f5327 Mon Sep 17 00:00:00 2001 From: leo Date: Fri, 17 Nov 2023 17:40:23 +0000 Subject: [PATCH 10/58] last updates --- cw_core/lib/crypto_currency.dart | 2 +- cw_core/lib/node.dart | 7 +- cw_zano/ios/Classes/zano_api.cpp | 10 + cw_zano/lib/api/account_list.dart | 60 +++--- cw_zano/lib/api/calls.dart | 189 ++++++++++++++++++ cw_zano/lib/api/model.dart | 49 +++++ cw_zano/lib/api/signatures.dart | 6 +- cw_zano/lib/api/subaddress_list.dart | 2 + cw_zano/lib/api/transaction_history.dart | 59 +++--- cw_zano/lib/api/types.dart | 6 +- cw_zano/lib/api/wallet.dart | 66 +++--- cw_zano/lib/api/wallet_manager.dart | 23 ++- .../{monero_output.dart => zano_output.dart} | 4 +- cw_zano/lib/zano_account_list.dart | 15 +- cw_zano/lib/zano_balance.dart | 34 +++- cw_zano/lib/zano_subaddress_list.dart | 6 +- cw_zano/lib/zano_wallet.dart | 92 ++++++--- cw_zano/lib/zano_wallet_addresses.dart | 67 ++++--- cw_zano/lib/zano_wallet_service.dart | 26 ++- .../desktop_wallet_selection_dropdown.dart | 2 +- .../dashboard/widgets/menu_widget.dart | 2 +- .../screens/wallet_list/wallet_list_page.dart | 2 +- lib/view_model/wallet_new_vm.dart | 3 +- lib/zano.dart | 146 ++++++++++++++ lib/zano/cw_zano.dart | 108 +++------- lib/zano/zano.dart | 78 ++++---- 26 files changed, 734 insertions(+), 330 deletions(-) create mode 100644 cw_zano/lib/api/calls.dart create mode 100644 cw_zano/lib/api/model.dart rename cw_zano/lib/api/{monero_output.dart => zano_output.dart} (52%) create mode 100644 lib/zano.dart diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 06b42f6f5..ae274c219 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -200,7 +200,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const dydx = CryptoCurrency(title: 'DYDX', tag: 'ETH', fullName: 'dYdX', raw: 84, name: 'dydx', iconPath: 'assets/images/dydx_icon.png'); static const steth = CryptoCurrency(title: 'STETH', tag: 'ETH', fullName: 'Lido Staked Ethereum', raw: 85, name: 'steth', iconPath: 'assets/images/steth_icon.png'); static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 86, name: 'zano', iconPath: 'assets/images/zano_icon.png'); - static const dummy = CryptoCurrency(title: 'DUMMY', tag: 'DUMMY', fullName: 'Dummy', raw: 87, name: 'dummy', iconPath: 'assets/images/dummy_icon.png'); + static const dummy = CryptoCurrency(title: 'DUMMY', tag: 'DUMMY', fullName: 'Dummy', raw: 87, name: 'dummy', iconPath: 'assets/images/zano_icon.png'); static final Map _rawCurrencyMap = diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index 63fef965e..06a86c74d 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -132,7 +132,7 @@ class Node extends HiveObject with Keyable { case WalletType.haven: return requestMoneroNode(); case WalletType.zano: - return requestMoneroNode(); + return requestZanoNode(); case WalletType.ethereum: return requestElectrumServer(); case WalletType.dummy: @@ -145,6 +145,11 @@ class Node extends HiveObject with Keyable { } } + Future requestZanoNode() async { + // TODO: fix it + return true; + } + Future requestMoneroNode() async { final path = '/json_rpc'; final rpcUri = isSSL ? Uri.https(uri.authority, path) : Uri.http(uri.authority, path); diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index dc73c737b..676b5adaa 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -428,6 +428,11 @@ extern "C" return strdup(plain_wallet::try_pull_result(job_id).c_str()); } + char* sync_call(const std::string& method_name, uint64_t instance_id, const std::string& params) + { + return strdup(plain_wallet::sync_call(method_name, instance_id, params).c_str()); + } + char* get_connectivity_status() { return strdup(plain_wallet::get_connectivity_status().c_str()); @@ -847,6 +852,11 @@ extern "C" //return m_wallet->trustedDaemon(); } + char* get_version() + { + return strdup(plain_wallet::get_version().c_str()); + } + #ifdef __cplusplus } #endif diff --git a/cw_zano/lib/api/account_list.dart b/cw_zano/lib/api/account_list.dart index 90ef6809b..b5d398fe7 100644 --- a/cw_zano/lib/api/account_list.dart +++ b/cw_zano/lib/api/account_list.dart @@ -7,29 +7,29 @@ import 'package:cw_zano/api/structs/account_row.dart'; import 'package:flutter/foundation.dart'; import 'package:cw_zano/api/wallet.dart'; -final accountSizeNative = zanoApi - .lookup>('account_size') - .asFunction(); +// final accountSizeNative = zanoApi +// .lookup>('account_size') +// .asFunction(); -final accountRefreshNative = zanoApi - .lookup>('account_refresh') - .asFunction(); +// final accountRefreshNative = zanoApi +// .lookup>('account_refresh') +// .asFunction(); -final accountGetAllNative = zanoApi - .lookup>('account_get_all') - .asFunction(); +// final accountGetAllNative = zanoApi +// .lookup>('account_get_all') +// .asFunction(); -final accountAddNewNative = zanoApi - .lookup>('account_add_row') - .asFunction(); +// final accountAddNewNative = zanoApi +// .lookup>('account_add_row') +// .asFunction(); -final accountSetLabelNative = zanoApi - .lookup>('account_set_label_row') - .asFunction(); +// final accountSetLabelNative = zanoApi +// .lookup>('account_set_label_row') +// .asFunction(); bool isUpdating = false; -void refreshAccounts() { +/**void refreshAccounts() { try { isUpdating = true; accountRefreshNative(); @@ -38,9 +38,9 @@ void refreshAccounts() { isUpdating = false; rethrow; } -} +}*/ -List getAllAccount() { +/**List getAllAccount() { final size = accountSizeNative(); final accountAddressesPointer = accountGetAllNative(); final accountAddresses = accountAddressesPointer.asTypedList(size); @@ -48,38 +48,38 @@ List getAllAccount() { return accountAddresses .map((addr) => Pointer.fromAddress(addr).ref) .toList(); -} +}*/ -void addAccountSync({required String label}) { +/**void addAccountSync({required String label}) { final labelPointer = label.toNativeUtf8(); accountAddNewNative(labelPointer); calloc.free(labelPointer); -} +}*/ -void setLabelForAccountSync( +/**void setLabelForAccountSync( {required int accountIndex, required String label}) { final labelPointer = label.toNativeUtf8(); accountSetLabelNative(accountIndex, labelPointer); calloc.free(labelPointer); -} +}*/ -void _addAccount(String label) => addAccountSync(label: label); +/**void _addAccount(String label) => addAccountSync(label: label);*/ -void _setLabelForAccount(Map args) { +/**void _setLabelForAccount(Map args) { final label = args['label'] as String; final accountIndex = args['accountIndex'] as int; setLabelForAccountSync(label: label, accountIndex: accountIndex); -} +}*/ -Future addAccount({required String label}) async { +/**Future addAccount({required String label}) async { await compute(_addAccount, label); await store(); -} +}*/ -Future setLabelForAccount( +/**Future setLabelForAccount( {required int accountIndex, required String label}) async { await compute( _setLabelForAccount, {'accountIndex': accountIndex, 'label': label}); await store(); -} +}*/ diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart new file mode 100644 index 000000000..8d0a87df8 --- /dev/null +++ b/cw_zano/lib/api/calls.dart @@ -0,0 +1,189 @@ +import 'dart:ffi'; +import 'dart:convert'; + +import 'package:cw_zano/api/convert_utf8_to_string.dart'; +import 'package:cw_zano/api/model.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:ffi/ffi.dart'; +import 'package:flutter/foundation.dart'; + +final _asyncCallNative = zanoApi + .lookup>('async_call') + .asFunction<_AsyncCall>(); +typedef _async_call = Pointer Function( + Pointer, Int64, Pointer); +typedef _AsyncCall = Pointer Function( + Pointer methodName, int hWallet, Pointer params); + +// get_wallet_status +final _getWalletStatusNative = zanoApi + .lookup>('get_wallet_status') + .asFunction<_GetWalletStatus>(); +typedef _get_wallet_status = Pointer Function(Int64); +typedef _GetWalletStatus = Pointer Function(int hWallet); + +// get_wallet_info +final _getWalletInfoNative = zanoApi + .lookup>('get_wallet_info') + .asFunction<_GetWalletInfo>(); +typedef _get_wallet_info = Pointer Function(Int64); +typedef _GetWalletInfo = Pointer Function(int hWallet); + +// get_connectivity_status +final _getConnectivityStatusNative = zanoApi + .lookup>('get_connectivity_status') + .asFunction<_GetConnectivityStatus>(); +typedef _get_connectivity_status = Pointer Function(); +typedef _GetConnectivityStatus = Pointer Function(); + +// get_version +final _getVersionNative = zanoApi + .lookup>('get_version') + .asFunction<_GetVersion>(); +typedef _get_version = Pointer Function(); +typedef _GetVersion = Pointer Function(); + +// load_wallet +final _loadWalletNative = zanoApi + .lookup>('load_wallet') + .asFunction<_LoadWallet>(); +typedef _load_wallet = Pointer Function( + Pointer, Pointer, Int8); +typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); + +// try_pull_result +final _tryPullResultNative = zanoApi + .lookup>('try_pull_result') + .asFunction<_TryPullResult>(); +typedef _try_pull_result = Pointer Function(Int64); +typedef _TryPullResult = Pointer Function(int hWallet); + +// close_wallet +final _closeWalletNative = zanoApi + .lookup>('close_wallet') + .asFunction<_closeWalletStatus>(); +typedef _close_wallet = Void Function(Int64); +typedef _closeWalletStatus = void Function(int hWallet); + +String doAsyncCall( + {required String methodName, + required int hWallet, + required String params}) { + final methodNamePointer = methodName.toNativeUtf8(); + final paramsPointer = params.toNativeUtf8(); + + debugPrint( + "async_call method_name $methodName hWallet $hWallet params $params"); + final result = convertUTF8ToString( + pointer: _asyncCallNative(methodNamePointer, hWallet, paramsPointer)); + + calloc.free(methodNamePointer); + calloc.free(paramsPointer); + + return result; +} + +Future invokeMethod( + int hWallet, String methodName, String params) async { + debugPrint('invoke method $methodName params $params'); + final invokeResult = doAsyncCall( + methodName: 'invoke', + hWallet: hWallet, + params: json.encode({ + 'method': methodName, + 'params': params, + })); + debugPrint('invoke result $invokeResult'); + final map = json.decode(invokeResult); + if (map["job_id"] != null) { + bool done = false; + do { + await Future.delayed(Duration(seconds: 3)); + final result = tryPullResult(map["job_id"] as int); + final map2 = json.decode(result); + done = map2["result"] == null || map2["result"]["error"] == null; + } while (!done); + } + return ""; +} + +Future store(int hWallet) async { + // debugPrint("store hWallet $hWallet"); + // final result = doAsyncCall( + // methodName: 'invoke', + // hWallet: hWallet, + // params: "{method: 'store', params: {}}"); + // debugPrint('store result $result'); + // final map = json.decode(result); + // if (map["job_id"] != null) { + // await Future.delayed(Duration(seconds: 1)); + // tryPullResult(map["job_id"] as int); + // } + return await invokeMethod(hWallet, 'store', '{}'); +} + +Future getRecentTxsAndInfo( + {required int hWallet, + required int offset, + required int count, + bool updateProvisionInfo = true}) async { + return await invokeMethod( + hWallet, + 'get_recent_txs_and_info', + json.encode( + GetRecentTxsAndInfoParams( + offset: offset, + count: count, + updateProvisionInfo: updateProvisionInfo), + ), + ); +} + +String getWalletStatus(int hWallet) { + debugPrint("get_wallet_status hWallet $hWallet"); + final result = convertUTF8ToString(pointer: _getWalletStatusNative(hWallet)); + debugPrint('get_wallet_status result $result'); + return result; +} + +void closeWallet(int hWallet) { + debugPrint("close_wallet hWallet $hWallet"); + _closeWalletNative(hWallet); +} + +String getWalletInfo(int hWallet) { + debugPrint('get_wallet_info hWallet $hWallet'); + final result = convertUTF8ToString(pointer: _getWalletInfoNative(hWallet)); + debugPrint('get_wallet_info result $result'); + return result; +} + +String getConnectivityStatus() { + final result = convertUTF8ToString(pointer: _getConnectivityStatusNative()); + debugPrint('get_connectivity_status result $result'); + return result; +} + +String getVersion() { + final result = convertUTF8ToString(pointer: _getVersionNative()); + debugPrint('get_version result $result'); + return result; +} + +String loadWallet(String path, String password, int nettype) { + debugPrint("load_wallet path $path password $password nettype $nettype"); + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final result = convertUTF8ToString( + pointer: _loadWalletNative(pathPointer, passwordPointer, nettype), + ); + debugPrint("load_wallet result $result"); + return result; +} + +String tryPullResult(int jobId) { + debugPrint('try_pull_result jobId $jobId'); + final result = convertUTF8ToString(pointer: _tryPullResultNative(jobId)); + debugPrint('try_pull_result result $result'); + return result; +} diff --git a/cw_zano/lib/api/model.dart b/cw_zano/lib/api/model.dart new file mode 100644 index 000000000..b05a7630f --- /dev/null +++ b/cw_zano/lib/api/model.dart @@ -0,0 +1,49 @@ +class Destination { + final String amount; + final String address; + final String assetId; + + Destination({required this.amount, required this.address, required this.assetId}); + + Map toJson() => { + "amount": amount, + "address": address, + "asset_id": assetId, + }; +} + +class TransferParams { + final List destinations; + final int fee; + final int mixin; + final String paymentId; + final String comment; + final bool pushPayer; + final bool hideReceiver; + + TransferParams({required this.destinations, required this.fee, required this.mixin, required this.paymentId, required this.comment, required this.pushPayer, required this.hideReceiver}); + + Map toJson() => { + "destinations": destinations, + "fee": fee, + "mixin": mixin, + "payment_id": paymentId, + "comment": comment, + "push_payer": pushPayer, + "hide_receiver": hideReceiver, + }; +} + +class GetRecentTxsAndInfoParams { + final int offset; + final int count; + final bool updateProvisionInfo; + + GetRecentTxsAndInfoParams({required this.offset, required this.count, required this.updateProvisionInfo}); + + Map toJson() => { + "offset": offset, + "count": count, + "update_provision_info": updateProvisionInfo, + }; +} \ No newline at end of file diff --git a/cw_zano/lib/api/signatures.dart b/cw_zano/lib/api/signatures.dart index 8ebf42e6f..d233c5d43 100644 --- a/cw_zano/lib/api/signatures.dart +++ b/cw_zano/lib/api/signatures.dart @@ -3,7 +3,7 @@ import 'package:cw_zano/api/structs/pending_transaction.dart'; import 'package:cw_zano/api/structs/ut8_box.dart'; import 'package:ffi/ffi.dart'; -typedef create_wallet = Int8 Function( +typedef create_wallet = Pointer Function( Pointer, Pointer, Pointer, Int32, Pointer); typedef restore_wallet_from_seed = Int8 Function( @@ -47,7 +47,7 @@ typedef get_node_height = Int64 Function(); typedef is_connected = Int8 Function(); typedef setup_node = Int8 Function(Pointer, Pointer?, - Pointer?, Int8, Int8, Pointer?, Pointer); + Pointer?, Int8, Int8, Pointer); typedef start_refresh = Void Function(); @@ -107,7 +107,6 @@ typedef transaction_create = Int8 Function( Pointer paymentId, Pointer amount, Int8 priorityRaw, - Int32 subaddrAccount, Pointer error, Pointer pendingTransaction); @@ -118,7 +117,6 @@ typedef transaction_create_mult_dest = Int8 Function( Pointer> amounts, Int32 size, Int8 priorityRaw, - Int32 subaddrAccount, Pointer error, Pointer pendingTransaction); diff --git a/cw_zano/lib/api/subaddress_list.dart b/cw_zano/lib/api/subaddress_list.dart index 31fd5e2bf..885e8178e 100644 --- a/cw_zano/lib/api/subaddress_list.dart +++ b/cw_zano/lib/api/subaddress_list.dart @@ -7,6 +7,7 @@ import 'package:cw_zano/api/zano_api.dart'; import 'package:cw_zano/api/structs/subaddress_row.dart'; import 'package:cw_zano/api/wallet.dart'; +/** final subaddressSizeNative = zanoApi .lookup>('subaddrress_size') .asFunction(); @@ -99,3 +100,4 @@ Future setLabelForSubaddress( }); await store(); } +*/ \ No newline at end of file diff --git a/cw_zano/lib/api/transaction_history.dart b/cw_zano/lib/api/transaction_history.dart index 35fa9472a..8e9fdf1e8 100644 --- a/cw_zano/lib/api/transaction_history.dart +++ b/cw_zano/lib/api/transaction_history.dart @@ -1,6 +1,6 @@ import 'dart:ffi'; import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/monero_output.dart'; +import 'package:cw_zano/api/zano_output.dart'; import 'package:cw_zano/api/structs/ut8_box.dart'; import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; @@ -11,13 +11,13 @@ import 'package:cw_zano/api/structs/transaction_info_row.dart'; import 'package:cw_zano/api/structs/pending_transaction.dart'; import 'package:cw_zano/api/exceptions/creation_transaction_exception.dart'; -final transactionsRefreshNative = zanoApi +/**final transactionsRefreshNative = zanoApi .lookup>('transactions_refresh') - .asFunction(); + .asFunction();*/ -final transactionsCountNative = zanoApi +/**final transactionsCountNative = zanoApi .lookup>('transactions_count') - .asFunction(); + .asFunction();*/ final transactionsGetAllNative = zanoApi .lookup>('transactions_get_all') @@ -53,18 +53,29 @@ String getTxKey(String txId) { return ''; } -void refreshTransactions() => transactionsRefreshNative(); +void refreshTransactions() { + // TODO: fix it + //transactionsRefreshNative(); + debugPrint("refreshing transactions"); +} -int countOfTransactions() => transactionsCountNative(); +int countOfTransactions() { + //return transactionsCountNative(); + // TODO: fix it + debugPrint("count of transactions"); + return 0; +} List getAllTransations() { - final size = transactionsCountNative(); + // TODO: fix it + return []; + /*final size = transactionsCountNative(); final transactionsPointer = transactionsGetAllNative(); final transactionsAddresses = transactionsPointer.asTypedList(size); return transactionsAddresses .map((addr) => Pointer.fromAddress(addr).ref) - .toList(); + .toList();*/ } PendingTransactionDescription createTransactionSync( @@ -72,8 +83,7 @@ PendingTransactionDescription createTransactionSync( required String assetType, required String paymentId, required int priorityRaw, - String? amount, - int accountIndex = 0}) { + String? amount}) { final addressPointer = address.toNativeUtf8(); final assetTypePointer = assetType.toNativeUtf8(); final paymentIdPointer = paymentId.toNativeUtf8(); @@ -86,7 +96,6 @@ PendingTransactionDescription createTransactionSync( paymentIdPointer, amountPointer, priorityRaw, - accountIndex, errorMessagePointer, pendingTransactionRawPointer) != 0; @@ -113,11 +122,10 @@ PendingTransactionDescription createTransactionSync( } PendingTransactionDescription createTransactionMultDestSync( - {required List outputs, + {required List outputs, required String assetType, required String paymentId, - required int priorityRaw, - int accountIndex = 0}) { + required int priorityRaw}) { final int size = outputs.length; final List> addressesPointers = outputs.map((output) => output.address.toNativeUtf8()).toList(); @@ -142,7 +150,6 @@ PendingTransactionDescription createTransactionMultDestSync( amountsPointerPointer, size, priorityRaw, - accountIndex, errorMessagePointer, pendingTransactionRawPointer) != 0; @@ -193,30 +200,26 @@ PendingTransactionDescription _createTransactionSync(Map args) { final paymentId = args['paymentId'] as String; final amount = args['amount'] as String; final priorityRaw = args['priorityRaw'] as int; - final accountIndex = args['accountIndex'] as int; return createTransactionSync( address: address, assetType: assetType, paymentId: paymentId, amount: amount, - priorityRaw: priorityRaw, - accountIndex: accountIndex); + priorityRaw: priorityRaw); } PendingTransactionDescription _createTransactionMultDestSync(Map args) { - final outputs = args['outputs'] as List; + final outputs = args['outputs'] as List; final assetType = args['assetType'] as String; final paymentId = args['paymentId'] as String; final priorityRaw = args['priorityRaw'] as int; - final accountIndex = args['accountIndex'] as int; return createTransactionMultDestSync( outputs: outputs, assetType: assetType, paymentId: paymentId, - priorityRaw: priorityRaw, - accountIndex: accountIndex); + priorityRaw: priorityRaw); } Future createTransaction( @@ -224,27 +227,23 @@ Future createTransaction( required String assetType, required int priorityRaw, String? amount, - String paymentId = '', - int accountIndex = 0}) => + String paymentId = ''}) => compute(_createTransactionSync, { 'address': address, 'assetType': assetType, 'paymentId': paymentId, 'amount': amount, 'priorityRaw': priorityRaw, - 'accountIndex': accountIndex }); Future createTransactionMultDest( - {required List outputs, + {required List outputs, required int priorityRaw, String? assetType, - String paymentId = '', - int accountIndex = 0}) => + String paymentId = ''}) => compute(_createTransactionMultDestSync, { 'outputs': outputs, 'assetType': assetType, 'paymentId': paymentId, 'priorityRaw': priorityRaw, - 'accountIndex': accountIndex }); diff --git a/cw_zano/lib/api/types.dart b/cw_zano/lib/api/types.dart index 9ee6f70b4..9608edee9 100644 --- a/cw_zano/lib/api/types.dart +++ b/cw_zano/lib/api/types.dart @@ -3,7 +3,7 @@ import 'package:cw_zano/api/structs/pending_transaction.dart'; import 'package:cw_zano/api/structs/ut8_box.dart'; import 'package:ffi/ffi.dart'; -typedef CreateWallet = int Function( +typedef CreateWallet = Pointer Function( Pointer, Pointer, Pointer, int, Pointer); typedef RestoreWalletFromSeed = int Function( @@ -47,7 +47,7 @@ typedef GetNodeHeight = int Function(); typedef IsConnected = int Function(); typedef SetupNode = int Function(Pointer, Pointer?, Pointer?, - int, int, Pointer?, Pointer); + int, int, Pointer); typedef StartRefresh = void Function(); @@ -105,7 +105,6 @@ typedef TransactionCreate = int Function( Pointer paymentId, Pointer amount, int priorityRaw, - int subaddrAccount, Pointer error, Pointer pendingTransaction); @@ -116,7 +115,6 @@ typedef TransactionCreateMultDest = int Function( Pointer> amounts, int size, int priorityRaw, - int subaddrAccount, Pointer error, Pointer pendingTransaction); diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart index 0a61ec92b..a78dfed90 100644 --- a/cw_zano/lib/api/wallet.dart +++ b/cw_zano/lib/api/wallet.dart @@ -6,6 +6,7 @@ import 'package:cw_zano/api/convert_utf8_to_string.dart'; import 'package:cw_zano/api/signatures.dart'; import 'package:cw_zano/api/types.dart'; import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/exceptions/setup_wallet_exception.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; @@ -16,8 +17,8 @@ final getFileNameNative = zanoApi .lookup>('get_filename') .asFunction(); -final getSeedNative = - zanoApi.lookup>('seed').asFunction(); +/*final getSeedNative = + zanoApi.lookup>('seed').asFunction();*/ final getAddressNative = zanoApi .lookup>('get_address') @@ -31,9 +32,9 @@ final getUnlockedBalanceNative = zanoApi .lookup>('get_unlocked_balance') .asFunction(); -final getCurrentHeightNative = zanoApi +/**final getCurrentHeightNative = zanoApi .lookup>('get_current_height') - .asFunction(); + .asFunction();*/ final getNodeHeightNative = zanoApi .lookup>('get_node_height') @@ -72,9 +73,9 @@ final setPasswordNative = zanoApi .lookup>('set_password') .asFunction(); -final setListenerNative = zanoApi +/**final setListenerNative = zanoApi .lookup>('set_listener') - .asFunction(); + .asFunction();*/ final getSyncingHeightNative = zanoApi .lookup>('get_syncing_height') @@ -133,7 +134,7 @@ bool isNewTransactionExist() => isNewTransactionExistNative() != 0; String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); -String getSeed() => convertUTF8ToString(pointer: getSeedNative()); +/**String getSeed() => convertUTF8ToString(pointer: getSeedNative());*/ String getAddress({int accountIndex = 0, int addressIndex = 0}) => convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); @@ -144,7 +145,11 @@ int getFullBalance({int accountIndex = 0}) => int getUnlockedBalance({int accountIndex = 0}) => getUnlockedBalanceNative(accountIndex); -int getCurrentHeight() => getCurrentHeightNative(); +int getCurrentHeight(int hWallet) { + calls.getWalletStatus(hWallet); + return -1; + //return getCurrentHeightNative(); +} int getNodeHeightSync() => getNodeHeightNative(); @@ -156,7 +161,7 @@ bool setupNodeSync( String? password, bool useSSL = false, bool isLightWallet = false, - String? socksProxyAddress}) { + /*String? socksProxyAddress*/}) { final addressPointer = address.toNativeUtf8(); Pointer? loginPointer; Pointer? socksProxyAddressPointer; @@ -170,20 +175,23 @@ bool setupNodeSync( passwordPointer = password.toNativeUtf8(); } - if (socksProxyAddress != null) { + /*if (socksProxyAddress != null) { socksProxyAddressPointer = socksProxyAddress.toNativeUtf8(); - } + }*/ final errorMessagePointer = ''.toNativeUtf8(); + debugPrint("setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); + // TODO: here can be ZERO! upd: no final isSetupNode = setupNodeNative( addressPointer, loginPointer, passwordPointer, _boolToInt(useSSL), _boolToInt(isLightWallet), - socksProxyAddressPointer, + /*socksProxyAddressPointer,*/ errorMessagePointer) != 0; + debugPrint("setup_node result $isSetupNode"); calloc.free(addressPointer); @@ -195,10 +203,11 @@ bool setupNodeSync( calloc.free(passwordPointer); } - if (!isSetupNode) { + // TODO: fix it + /**if (!isSetupNode) { throw SetupWalletException( message: convertUTF8ToString(pointer: errorMessagePointer)); - } + }*/ return isSetupNode; } @@ -213,10 +222,12 @@ void setRefreshFromBlockHeight({required int height}) => void setRecoveringFromSeed({required bool isRecovery}) => setRecoveringFromSeedNative(_boolToInt(isRecovery)); -void storeSync() { - final pathPointer = ''.toNativeUtf8(); +void storeSync(int hWallet) { + calls.store(hWallet); + // TODO: fixit + /*final pathPointer = ''.toNativeUtf8(); storeNative(pathPointer); - calloc.free(pathPointer); + calloc.free(pathPointer);*/ } void setPasswordSync(String password) { @@ -283,7 +294,8 @@ class SyncListener { var syncHeight = getSyncingHeight(); if (syncHeight <= 0) { - syncHeight = getCurrentHeight(); + // TODO: fix it + syncHeight = getCurrentHeight(-1); } if (_initialSyncHeight <= 0) { @@ -317,13 +329,13 @@ class SyncListener { SyncListener setListeners(void Function(int, int, double) onNewBlock, void Function() onNewTransaction) { final listener = SyncListener(onNewBlock, onNewTransaction); - setListenerNative(); + /**setListenerNative();*/ return listener; } void onStartup() => onStartupNative(); -void _storeSync(Object _) => storeSync(); +void _storeSync(int hWallet) => storeSync(hWallet); bool _setupNodeSync(Map args) { final address = args['address'] as String; @@ -331,7 +343,7 @@ bool _setupNodeSync(Map args) { final password = (args['password'] ?? '') as String; final useSSL = args['useSSL'] as bool; final isLightWallet = args['isLightWallet'] as bool; - final socksProxyAddress = (args['socksProxyAddress'] ?? '') as String; + /*final socksProxyAddress = (args['socksProxyAddress'] ?? '') as String;*/ return setupNodeSync( address: address, @@ -339,7 +351,7 @@ bool _setupNodeSync(Map args) { password: password, useSSL: useSSL, isLightWallet: isLightWallet, - socksProxyAddress: socksProxyAddress); + /*socksProxyAddress: socksProxyAddress*/); } bool _isConnected(Object _) => isConnectedSync(); @@ -348,23 +360,23 @@ int _getNodeHeight(Object _) => getNodeHeightSync(); void startRefresh() => startRefreshSync(); -Future setupNode( +Future setupNode( {required String address, String? login, String? password, bool useSSL = false, - String? socksProxyAddress, + /*String? socksProxyAddress,*/ bool isLightWallet = false}) => - compute, void>(_setupNodeSync, { + compute, bool>(_setupNodeSync, { 'address': address, 'login': login, 'password': password, 'useSSL': useSSL, 'isLightWallet': isLightWallet, - 'socksProxyAddress': socksProxyAddress + //'socksProxyAddress': socksProxyAddress }); -Future store() => compute(_storeSync, 0); +Future store(int hWallet) => compute(_storeSync, 0); Future isConnected() => compute(_isConnected, 0); diff --git a/cw_zano/lib/api/wallet_manager.dart b/cw_zano/lib/api/wallet_manager.dart index 1b4569172..b2cc0e870 100644 --- a/cw_zano/lib/api/wallet_manager.dart +++ b/cw_zano/lib/api/wallet_manager.dart @@ -37,7 +37,7 @@ final errorStringNative = zanoApi .lookup>('error_string') .asFunction(); -void createWalletSync( +String createWalletSync( {required String path, required String password, required String language, @@ -46,20 +46,23 @@ void createWalletSync( final passwordPointer = password.toNativeUtf8(); final languagePointer = language.toNativeUtf8(); final errorMessagePointer = ''.toNativeUtf8(); - final isWalletCreated = createWalletNative(pathPointer, passwordPointer, - languagePointer, nettype, errorMessagePointer) != - 0; + debugPrint("create_wallet path $path password $password language $language"); + final result = convertUTF8ToString(pointer: createWalletNative(pathPointer, passwordPointer, + languagePointer, nettype, errorMessagePointer)); + //debugPrint("create_wallet $result"); calloc.free(pathPointer); calloc.free(passwordPointer); calloc.free(languagePointer); - if (!isWalletCreated) { + return result; + /*if (hWallet == 0) { throw WalletCreationException( message: convertUTF8ToString(pointer: errorMessagePointer)); } - // setupNodeSync(address: "node.moneroworld.com:18089"); + return hWallet; + // setupNodeSync(address: "node.moneroworld.com:18089");*/ } bool isWalletExistSync({required String path}) { @@ -155,12 +158,12 @@ void loadWallet( } } -void _createWallet(Map args) { +String _createWallet(Map args) { final path = args['path'] as String; final password = args['password'] as String; final language = args['language'] as String; - createWalletSync(path: path, password: password, language: language); + return createWalletSync(path: path, password: password, language: language); } void _restoreFromSeed(Map args) { @@ -206,12 +209,12 @@ void openWallet( Future openWalletAsync(Map args) async => compute(_openWallet, args); -Future createWallet( +Future createWallet( {required String path, required String password, required String language, int nettype = 0}) async => - compute(_createWallet, { + compute, String>(_createWallet, { 'path': path, 'password': password, 'language': language, diff --git a/cw_zano/lib/api/monero_output.dart b/cw_zano/lib/api/zano_output.dart similarity index 52% rename from cw_zano/lib/api/monero_output.dart rename to cw_zano/lib/api/zano_output.dart index a6d735bd3..88d5ffe27 100644 --- a/cw_zano/lib/api/monero_output.dart +++ b/cw_zano/lib/api/zano_output.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; -class MoneroOutput { - MoneroOutput({required this.address, required this.amount}); +class ZanoOutput { + ZanoOutput({required this.address, required this.amount}); final String address; final String amount; diff --git a/cw_zano/lib/zano_account_list.dart b/cw_zano/lib/zano_account_list.dart index 7a7d5de1b..52c312df5 100644 --- a/cw_zano/lib/zano_account_list.dart +++ b/cw_zano/lib/zano_account_list.dart @@ -3,11 +3,16 @@ import 'package:cw_core/account.dart'; import 'package:cw_core/account_list.dart'; import 'package:cw_zano/api/account_list.dart' as account_list; -part 'zano_account_list.g.dart'; - +//part 'zano_account_list.g.dart'; +/* class ZanoAccountList = ZanoAccountListBase with _$ZanoAccountList; abstract class ZanoAccountListBase extends AccountList with Store { + ZanoAccountListBase.simple() + : accounts = ObservableList(), + _isRefreshing = false, + _isUpdating = false {} + ZanoAccountListBase() : accounts = ObservableList(), _isRefreshing = false, @@ -67,7 +72,7 @@ abstract class ZanoAccountListBase extends AccountList with Store { @override void refresh() { - if (_isRefreshing) { + /**if (_isRefreshing) { return; } @@ -80,5 +85,5 @@ abstract class ZanoAccountListBase extends AccountList with Store { print(e); rethrow; } - } -} + }*/ +}*/ diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/zano_balance.dart index 71b457e51..8d73f7b6c 100644 --- a/cw_zano/lib/zano_balance.dart +++ b/cw_zano/lib/zano_balance.dart @@ -1,16 +1,34 @@ +import 'package:cw_core/balance.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/monero_balance.dart'; import 'package:cw_zano/api/balance_list.dart'; import 'package:cw_zano/api/structs/zano_balance_row.dart'; -const inactiveBalances = [ - CryptoCurrency.xcad, - CryptoCurrency.xjpy, - CryptoCurrency.xnok, - CryptoCurrency.xnzd -]; +class ZanoBalance extends Balance { + ZanoBalance(super.available, super.additional); + late int unlockedBalance; + @override + // TODO: implement formattedAdditionalBalance + String get formattedAdditionalBalance { + // TODO: fix it + return "0"; + } -Map getZanoBalance({required int accountIndex}) { + @override + // TODO: implement formattedAvailableBalance + String get formattedAvailableBalance { + // TODO: fix it + return "0"; + } + +} + +Map getZanoBalance() { + // TODO: fix it + return { CryptoCurrency.zano: ZanoBalance(0, 0) }; +} + +/*Map getZanoBalance({required int accountIndex}) { final fullBalances = getZanoFullBalance(accountIndex: accountIndex); final unlockedBalances = getZanoUnlockedBalance(accountIndex: accountIndex); final zanoBalances = {}; @@ -32,4 +50,4 @@ Map getZanoBalance({required int accountIndex}) { } return zanoBalances; -} +}*/ diff --git a/cw_zano/lib/zano_subaddress_list.dart b/cw_zano/lib/zano_subaddress_list.dart index a5d89c7ed..871670659 100644 --- a/cw_zano/lib/zano_subaddress_list.dart +++ b/cw_zano/lib/zano_subaddress_list.dart @@ -4,9 +4,9 @@ import 'package:mobx/mobx.dart'; import 'package:cw_zano/api/subaddress_list.dart' as subaddress_list; import 'package:cw_core/subaddress.dart'; -part 'zano_subaddress_list.g.dart'; +//part 'zano_subaddress_list.g.dart'; -class ZanoSubaddressList = ZanoSubaddressListBase with _$ZanoSubaddressList; +/*class ZanoSubaddressList = ZanoSubaddressListBase with _$ZanoSubaddressList; abstract class ZanoSubaddressListBase with Store { ZanoSubaddressListBase() @@ -85,4 +85,4 @@ abstract class ZanoSubaddressListBase with Store { rethrow; } } -} +}*/ diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index ecf49541f..55be9404c 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -3,11 +3,13 @@ import 'dart:io'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_zano/api/zano_output.dart'; import 'package:cw_zano/zano_transaction_creation_credentials.dart'; import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_zano/zano_transaction_creation_exception.dart'; import 'package:cw_zano/zano_transaction_info.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; +import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_core/monero_wallet_utils.dart'; import 'package:cw_zano/api/structs/pending_transaction.dart'; import 'package:flutter/foundation.dart'; @@ -17,7 +19,7 @@ import 'package:cw_zano/api/transaction_history.dart' //import 'package:cw_zano/wallet.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; import 'package:cw_zano/api/transaction_history.dart' as transaction_history; -import 'package:cw_zano/api/monero_output.dart'; +import 'package:cw_zano/api/zano_output.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; import 'package:cw_core/monero_wallet_keys.dart'; import 'package:cw_core/monero_balance.dart'; @@ -37,24 +39,35 @@ const moneroBlockSize = 1000; class ZanoWallet = ZanoWalletBase with _$ZanoWallet; -abstract class ZanoWalletBase extends WalletBase with Store { +abstract class ZanoWalletBase + extends WalletBase + with Store { + ZanoWalletBase.simple({required WalletInfo walletInfo}) + : balance = ObservableMap(), + _isTransactionUpdating = false, + _hasSyncAfterStartup = false, + walletAddresses = ZanoWalletAddresses(walletInfo), + syncStatus = NotConnectedSyncStatus(), + super(walletInfo) { + transactionHistory = ZanoTransactionHistory(); + } + ZanoWalletBase({required WalletInfo walletInfo}) - : balance = ObservableMap.of(getZanoBalance(accountIndex: 0)), + : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(0, 0)}), _isTransactionUpdating = false, _hasSyncAfterStartup = false, walletAddresses = ZanoWalletAddresses(walletInfo), syncStatus = NotConnectedSyncStatus(), super(walletInfo) { transactionHistory = ZanoTransactionHistory(); - _onAccountChangeReaction = + /*_onAccountChangeReaction = reaction((_) => walletAddresses.account, (Account? account) { if (account == null) { return; } balance.addAll(getZanoBalance(accountIndex: account.id)); - walletAddresses.updateSubaddressList(accountIndex: account.id); - }); + /**walletAddresses.updateSubaddressList(accountIndex: account.id);*/ + });*/ } static const int _autoSaveInterval = 30; @@ -68,12 +81,18 @@ abstract class ZanoWalletBase extends WalletBase balance; + ObservableMap balance; @override - String get seed => zano_wallet.getSeed(); + String get seed { + // TODO: fix it + //return calls.seed(hWallet); + return "test"; + /**zano_wallet.getSeed();*/ + } @override + // TODO: ?? why monero MoneroWalletKeys get keys => MoneroWalletKeys( privateSpendKey: zano_wallet.getSecretSpendKey(), privateViewKey: zano_wallet.getSecretViewKey(), @@ -81,22 +100,30 @@ abstract class ZanoWalletBase extends WalletBase _hWallet; + + set hWallet(int value) { + _hWallet = value; + } + Future init() async { await walletAddresses.init(); balance - .addAll(getZanoBalance(accountIndex: walletAddresses.account?.id ?? 0)); + .addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); _setListeners(); await updateTransactions(); if (walletInfo.isRecovery) { zano_wallet.setRecoveringFromSeed(isRecovery: walletInfo.isRecovery); - if (zano_wallet.getCurrentHeight() <= 1) { + if (zano_wallet.getCurrentHeight(hWallet) <= 1) { zano_wallet.setRefreshFromBlockHeight(height: walletInfo.restoreHeight); } } @@ -111,7 +138,7 @@ abstract class ZanoWalletBase extends WalletBase 1; final assetType = CryptoCurrency.fromString(_credentials.assetType.toLowerCase()); - final balances = getZanoBalance(accountIndex: walletAddresses.account!.id); + final balances = getZanoBalance(/*accountIndex: walletAddresses.account!.id*/); final unlockedBalance = balances[assetType]!.unlockedBalance; PendingTransactionDescription pendingTransactionDescription; @@ -184,17 +212,16 @@ abstract class ZanoWalletBase extends WalletBase MoneroOutput( + final zanoOutputs = outputs + .map((output) => ZanoOutput( address: output.address, amount: output.cryptoAmount!.replaceAll(',', '.'))) .toList(); pendingTransactionDescription = await transaction_history.createTransactionMultDest( - outputs: moneroOutputs, - priorityRaw: _credentials.priority.serialize(), - accountIndex: walletAddresses.account!.id); + outputs: zanoOutputs, + priorityRaw: _credentials.priority.serialize()); } else { final output = outputs.first; final address = output.isParsedAddress && @@ -219,8 +246,7 @@ abstract class ZanoWalletBase extends WalletBase save() async { await walletAddresses.updateAddressesInBox(); await backupWalletFiles(name); - await zano_wallet.store(); + await zano_wallet.store(hWallet); } @override @@ -301,7 +327,7 @@ abstract class ZanoWalletBase extends WalletBase - balance.addAll(getZanoBalance(accountIndex: walletAddresses.account!.id)); + balance.addAll(getZanoBalance()); Future _askForUpdateTransactionHistory() async => await updateTransactions(); @@ -395,13 +421,13 @@ abstract class ZanoWalletBase extends WalletBase with Store { +/**abstract class ZanoWalletAddressesBase extends WalletAddressesWithAccount with Store {*/ +abstract class ZanoWalletAddressesBase extends WalletAddresses with Store { ZanoWalletAddressesBase(WalletInfo walletInfo) - : accountList = ZanoAccountList(), - subaddressList = ZanoSubaddressList(), - address = '', + : address = '', super(walletInfo); @override @@ -23,65 +21,68 @@ abstract class ZanoWalletAddressesBase String address; // @override - @observable - Account? account; + /**@observable + Account? account;*/ - @observable - Subaddress? subaddress; + /**@observable + Subaddress? subaddress;*/ - ZanoSubaddressList subaddressList; + /**ZanoSubaddressList subaddressList;*/ - ZanoAccountList accountList; + /**ZanoAccountList accountList;*/ @override Future init() async { - accountList.update(); - account = accountList.accounts.first; - updateSubaddressList(accountIndex: account?.id ?? 0); + /*accountList.update(); + account = accountList.accounts.first;*/ + /**updateSubaddressList(accountIndex: account?.id ?? 0);*/ + address = walletInfo.address; await updateAddressesInBox(); } @override Future updateAddressesInBox() async { try { - final _subaddressList = ZanoSubaddressList(); + /**final _subaddressList = ZanoSubaddressList();*/ addressesMap.clear(); + addressesMap[address] = ''; + await saveAddressesInBox(); - accountList.accounts.forEach((account) { + /*accountList.accounts.forEach((account) { _subaddressList.update(accountIndex: account.id); _subaddressList.subaddresses.forEach((subaddress) { addressesMap[subaddress.address] = subaddress.label; }); }); - await saveAddressesInBox(); + await saveAddressesInBox();*/ } catch (e) { print(e.toString()); } } - bool validate() { - accountList.update(); - final accountListLength = accountList.accounts.length ?? 0; + // bool validate() { + // accountList.update(); + // final accountListLength = accountList.accounts.length ?? 0; - if (accountListLength <= 0) { - return false; - } + // if (accountListLength <= 0) { + // return false; + // } - subaddressList.update(accountIndex: accountList.accounts.first.id); - final subaddressListLength = subaddressList.subaddresses.length ?? 0; + // /**subaddressList.update(accountIndex: accountList.accounts.first.id); + // final subaddressListLength = subaddressList.subaddresses.length ?? 0; - if (subaddressListLength <= 0) { - return false; - } + // if (subaddressListLength <= 0) { + // return false; + // }*/ - return true; - } + // return true; + // } - void updateSubaddressList({required int accountIndex}) { + /*void updateSubaddressList({required int accountIndex}) { subaddressList.update(accountIndex: accountIndex); subaddress = subaddressList.subaddresses.first; address = subaddress!.address; - } + }*/ } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index f39d9e2f7..f39868680 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -1,10 +1,12 @@ import 'dart:io'; import 'package:collection/collection.dart'; +import 'package:cw_core/node.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/monero_wallet_utils.dart'; import 'package:hive/hive.dart'; import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; import 'package:cw_zano/api/wallet.dart' as zano_wallet; +import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/exceptions/wallet_opening_exception.dart'; import 'package:cw_zano/zano_wallet.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -14,11 +16,8 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; class ZanoNewWalletCredentials extends WalletCredentials { - ZanoNewWalletCredentials( - {required String name, required this.language, String? password}) + ZanoNewWalletCredentials({required String name, String? password}) : super(name: name, password: password); - - final String language; } class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { @@ -65,18 +64,23 @@ class ZanoWalletService extends WalletService< static bool walletFilesExist(String path) => !File(path).existsSync() && !File('$path.keys').existsSync(); + int hWallet = 0; + @override WalletType getType() => WalletType.zano; @override Future create(ZanoNewWalletCredentials credentials) async { try { + final wallet = ZanoWallet.simple(walletInfo: credentials.walletInfo!); + wallet.connectToNode(node: Node()); final path = await pathForWallet(name: credentials.name, type: getType()); - await zano_wallet_manager.createWallet( - path: path, - password: credentials.password!, - language: credentials.language); - final wallet = ZanoWallet(walletInfo: credentials.walletInfo!); + final result = await zano_wallet_manager.createWallet( + language: "", path: path, password: credentials.password!); + hWallet = -1; + wallet.hWallet = hWallet; + // TODO: remove it + calls.store(hWallet); await wallet.init(); return wallet; } catch (e) { @@ -112,13 +116,13 @@ class ZanoWalletService extends WalletService< final walletInfo = walletInfoSource.values.firstWhereOrNull( (info) => info.id == WalletBase.idFor(name, getType()))!; final wallet = ZanoWallet(walletInfo: walletInfo); - final isValid = wallet.walletAddresses.validate(); + /*final isValid = wallet.walletAddresses.validate(); if (!isValid) { await restoreOrResetWalletFiles(name); wallet.close(); return openWallet(name, password); - } + }*/ await wallet.init(); diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart index 1245986b1..2bd0e2eec 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart @@ -34,7 +34,7 @@ class _DesktopWalletSelectionDropDownState extends State Image.asset( diff --git a/lib/src/screens/dashboard/widgets/menu_widget.dart b/lib/src/screens/dashboard/widgets/menu_widget.dart index c67a4f472..eed24c663 100644 --- a/lib/src/screens/dashboard/widgets/menu_widget.dart +++ b/lib/src/screens/dashboard/widgets/menu_widget.dart @@ -31,7 +31,7 @@ class MenuWidgetState extends State { this.havenIcon = Image.asset('assets/images/haven_menu.png'), this.ethereumIcon = Image.asset('assets/images/eth_icon.png'), this.zanoIcon = Image.asset('assets/images/zano_icon.png'), - this.dummyIcon = Image.asset('assets/images/dummy_icon.png'); + this.dummyIcon = Image.asset('assets/images/zano_icon.png'); final largeScreen = 731; diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index 3a223479d..747c01008 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -49,7 +49,7 @@ class WalletListBodyState extends State { final havenIcon = Image.asset('assets/images/haven_logo.png', height: 24, width: 24); final ethereumIcon = Image.asset('assets/images/eth_icon.png', height: 24, width: 24); final zanoIcon = Image.asset('assets/images/zano_icon.png', height: 24, width: 24); - final dummyIcon = Image.asset('assets/images/dummy_icon.png', height: 24, width: 24); + final dummyIcon = Image.asset('assets/images/zano_icon.png', height: 24, width: 24); final scrollController = ScrollController(); final double tileHeight = 60; Flushbar? _progressBar; diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index f5f504880..eec60c883 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -48,8 +48,7 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { case WalletType.ethereum: return ethereum!.createEthereumNewWalletCredentials(name: name); case WalletType.zano: - return zano!.createZanoNewWalletCredentials( - name: name, language: "en"); + return zano!.createZanoNewWalletCredentials(name: name); case WalletType.dummy: return dummy!.createDummyNewWalletCredentials(name: name); default: diff --git a/lib/zano.dart b/lib/zano.dart new file mode 100644 index 000000000..d130d3454 --- /dev/null +++ b/lib/zano.dart @@ -0,0 +1,146 @@ +import 'dart:async'; +import 'dart:convert'; + +import 'package:cake_wallet/core/generate_wallet_password.dart'; +import 'package:cake_wallet/core/key_service.dart'; +import 'package:cake_wallet/utils/exception_handler.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:cw_zano/api/wallet.dart' as zano_wallet; +import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/zano_wallet_service.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:get_it/get_it.dart'; + +Future main() async { + await runZonedGuarded(() async { + WidgetsFlutterBinding.ensureInitialized(); + + FlutterError.onError = ExceptionHandler.onError; + + /// A callback that is invoked when an unhandled error occurs in the root + /// isolate. + PlatformDispatcher.instance.onError = (error, stack) { + ExceptionHandler.onError( + FlutterErrorDetails(exception: error, stack: stack)); + + return true; + }; + await setup(); + runApp(App()); + }, (error, stackTrace) async { + ExceptionHandler.onError( + FlutterErrorDetails(exception: error, stack: stackTrace)); + }); +} + +final getIt = GetIt.instance; + +Future setup() async { + getIt.registerFactory( + () => KeyService(getIt.get())); +} + +class App extends StatefulWidget { + const App({super.key}); + + @override + State createState() => _AppState(); +} + +class HomeWidget extends StatefulWidget { + const HomeWidget({super.key}); + + @override + State createState() => _HomeWidgetState(); +} + +class _AppState extends State { + @override + Widget build(BuildContext context) { + return MaterialApp(home: HomeWidget()); + } +} + +class _HomeWidgetState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + body: FutureBuilder( + future: connect(), + builder: (context, snapshot) { + if (!snapshot.hasData) return CircularProgressIndicator(); + return Center(child: Text("connected")); + }, + ), + ); + } + + static const name = "leo1"; + + Future connect() async { + calls.getVersion(); + final setupNode = await zano_wallet.setupNode( + address: "195.201.107.230:33336", + login: "", + password: "", + useSSL: false, + isLightWallet: false); + final path = await pathForWallet(name: name, type: WalletType.zano); + final credentials = ZanoNewWalletCredentials(name: name); + final keyService = KeyService(FlutterSecureStorage()); + final password = await keyService.getWalletPassword(walletName: credentials.name); + debugPrint("path $path password $password"); + final result = await calls.loadWallet(path, password, 0); + final map = json.decode(result) as Map; + int hWallet = 0; + if (map["result"] != null) { + hWallet = (map["result"] as Map)["wallet_id"] as int; + debugPrint("hWallet $hWallet"); + } + Future.delayed(Duration(seconds: 10)); + await calls.getWalletStatus(hWallet); + Future.delayed(Duration(seconds: 10)); + await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); + Future.delayed(Duration(seconds: 2)); + calls.closeWallet(hWallet); + return true; + } + + Future _connect() async { + calls.getVersion(); + final result = await zano_wallet.setupNode( + address: "195.201.107.230:33336", + login: "", + password: "", + useSSL: false, + isLightWallet: false); + //debugPrint("setup node result ${result}"); + //final name = "leo1"; + final path = await pathForWallet(name: name, type: WalletType.zano); + final credentials = ZanoNewWalletCredentials(name: name); + final keyService = KeyService(FlutterSecureStorage()); + final password = generateWalletPassword(); + credentials.password = password; + await keyService.saveWalletPassword( + password: password, walletName: credentials.name); + final createResult = await zano_wallet_manager.createWallet( + language: "", path: path, password: credentials.password!); + debugPrint("createWallet result $createResult"); + final map = json.decode(createResult) as Map; + int hWallet = -1; + if (map["result"] != null) { + hWallet = (map["result"] as Map)["wallet_id"] as int; + debugPrint("hWallet $hWallet"); + } + //await calls.loadWallet(path, password, 0); + calls.getConnectivityStatus(); + await calls.store(hWallet); + calls.getWalletInfo(hWallet); + calls.getWalletStatus(hWallet); + return true; + } +} diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 173ab39e4..f5589c155 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -1,6 +1,6 @@ part of 'zano.dart'; -class CWZanoAccountList extends ZanoAccountList { +/**class CWZanoAccountList extends ZanoAccountList { CWZanoAccountList(this._wallet); final Object _wallet; @@ -49,73 +49,20 @@ class CWZanoAccountList extends ZanoAccountList { await zanoWallet.walletAddresses.accountList .setLabelAccount(accountIndex: accountIndex, label: label); } -} - -class CWZanoSubaddressList extends MoneroSubaddressList { - CWZanoSubaddressList(this._wallet); - - final Object _wallet; - - @override - @computed - ObservableList get subaddresses { - final zanoWallet = _wallet as ZanoWallet; - final subAddresses = zanoWallet.walletAddresses.subaddressList.subaddresses - .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) - .toList(); - return ObservableList.of(subAddresses); - } - - @override - void update(Object wallet, {required int accountIndex}) { - final zanoWallet = wallet as ZanoWallet; - zanoWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); - } - - @override - void refresh(Object wallet, {required int accountIndex}) { - final zanoWallet = wallet as ZanoWallet; - zanoWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); - } - - @override - List getAll(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - return zanoWallet.walletAddresses.subaddressList - .getAll() - .map((sub) => Subaddress(id: sub.id, label: sub.label, address: sub.address)) - .toList(); - } - - @override - Future addSubaddress(Object wallet, - {required int accountIndex, required String label}) async { - final zanoWallet = wallet as ZanoWallet; - await zanoWallet.walletAddresses.subaddressList - .addSubaddress(accountIndex: accountIndex, label: label); - } - - @override - Future setLabelSubaddress(Object wallet, - {required int accountIndex, required int addressIndex, required String label}) async { - final zanoWallet = wallet as ZanoWallet; - await zanoWallet.walletAddresses.subaddressList - .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); - } -} +}*/ class CWZanoWalletDetails extends ZanoWalletDetails { CWZanoWalletDetails(this._wallet); final Object _wallet; - @computed - @override - Account get account { - final zanoWallet = _wallet as ZanoWallet; - final acc = zanoWallet.walletAddresses.account as monero_account.Account; - return Account(id: acc.id, label: acc.label); - } + // @computed + // @override + // Account get account { + // final zanoWallet = _wallet as ZanoWallet; + // final acc = zanoWallet.walletAddresses.account as monero_account.Account; + // return Account(id: acc.id, label: acc.label); + // } @computed @override @@ -130,15 +77,10 @@ class CWZanoWalletDetails extends ZanoWalletDetails { } class CWZano extends Zano { - @override + /**@override ZanoAccountList getAccountList(Object wallet) { return CWZanoAccountList(wallet); - } - - @override - MoneroSubaddressList getSubaddressList(Object wallet) { - return CWZanoSubaddressList(wallet); - } + }*/ @override TransactionHistoryBase getTransactionHistory(Object wallet) { @@ -147,7 +89,7 @@ class CWZano extends Zano { } @override - ZanoWalletDetails getMoneroWalletDetails(Object wallet) { + ZanoWalletDetails getZanoWalletDetails(Object wallet) { return CWZanoWalletDetails(wallet); } @@ -231,8 +173,8 @@ class CWZano extends Zano { @override WalletCredentials createZanoNewWalletCredentials( - {required String name, required String language, String? password}) { - return ZanoNewWalletCredentials(name: name, password: password, language: language); + {required String name, String? password}) { + return ZanoNewWalletCredentials(name: name, password: password); } @override @@ -283,18 +225,18 @@ class CWZano extends Zano { return moneroParseAmount(amount: amount); } - @override - Account getCurrentAccount(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - final acc = zanoWallet.walletAddresses.account as monero_account.Account; - return Account(id: acc.id, label: acc.label); - } + // @override + // Account getCurrentAccount(Object wallet) { + // final zanoWallet = wallet as ZanoWallet; + // final acc = zanoWallet.walletAddresses.account as monero_account.Account; + // return Account(id: acc.id, label: acc.label); + // } - @override - void setCurrentAccount(Object wallet, int id, String label) { - final zanoWallet = wallet as ZanoWallet; - zanoWallet.walletAddresses.account = monero_account.Account(id: id, label: label); - } + // @override + // void setCurrentAccount(Object wallet, int id, String label) { + // final zanoWallet = wallet as ZanoWallet; + // zanoWallet.walletAddresses.account = monero_account.Account(id: id, label: label); + // } @override void onStartup() { diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index 62ba35b64..da07be14e 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -37,21 +37,21 @@ part 'cw_zano.dart'; Zano? zano = CWZano(); -class Account { - Account({required this.id, required this.label}); - final int id; - final String label; -} +// class Account { +// Account({required this.id, required this.label}); +// final int id; +// final String label; +// } -class Subaddress { - Subaddress({ - required this.id, - required this.label, - required this.address}); - final int id; - final String label; - final String address; -} +// class Subaddress { +// Subaddress({ +// required this.id, +// required this.label, +// required this.address}); +// final int id; +// final String label; +// final String address; +// } class ZanoBalance extends Balance { ZanoBalance({required this.fullBalance, required this.unlockedBalance}) @@ -89,21 +89,19 @@ class AssetRate { abstract class ZanoWalletDetails { // FIX-ME: it's abstruct class - @observable - late Account account; + // @observable + // late Account account; // FIX-ME: it's abstruct class @observable late ZanoBalance balance; } abstract class Zano { - ZanoAccountList getAccountList(Object wallet); + /**ZanoAccountList getAccountList(Object wallet);*/ - MoneroSubaddressList getSubaddressList(Object wallet); - TransactionHistoryBase getTransactionHistory(Object wallet); - ZanoWalletDetails getMoneroWalletDetails(Object wallet); + ZanoWalletDetails getZanoWalletDetails(Object wallet); String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); @@ -123,14 +121,14 @@ abstract class Zano { required String language, required int height}); WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); - WalletCredentials createZanoNewWalletCredentials({required String name, required String language, String password}); + WalletCredentials createZanoNewWalletCredentials({required String name, String password}); Map getKeys(Object wallet); Object createZanoTransactionCreationCredentials({required List outputs, required TransactionPriority priority, required String assetType}); String formatterMoneroAmountToString({required int amount}); double formatterMoneroAmountToDouble({required int amount}); int formatterMoneroParseAmount({required String amount}); - Account getCurrentAccount(Object wallet); - void setCurrentAccount(Object wallet, int id, String label); + // Account getCurrentAccount(Object wallet); + // void setCurrentAccount(Object wallet, int id, String label); void onStartup(); int getTransactionInfoAccountId(TransactionInfo tx); WalletService createZanoWalletService(Box walletInfoSource); @@ -138,22 +136,22 @@ abstract class Zano { List getAssetRate(); } -abstract class MoneroSubaddressList { - ObservableList get subaddresses; - void update(Object wallet, {required int accountIndex}); - void refresh(Object wallet, {required int accountIndex}); - List getAll(Object wallet); - Future addSubaddress(Object wallet, {required int accountIndex, required String label}); - Future setLabelSubaddress(Object wallet, - {required int accountIndex, required int addressIndex, required String label}); -} +// abstract class MoneroSubaddressList { +// ObservableList get subaddresses; +// void update(Object wallet, {required int accountIndex}); +// void refresh(Object wallet, {required int accountIndex}); +// List getAll(Object wallet); +// Future addSubaddress(Object wallet, {required int accountIndex, required String label}); +// Future setLabelSubaddress(Object wallet, +// {required int accountIndex, required int addressIndex, required String label}); +// } -abstract class ZanoAccountList { - ObservableList get accounts; - void update(Object wallet); - void refresh(Object wallet); - List getAll(Object wallet); - Future addAccount(Object wallet, {required String label}); - Future setLabelAccount(Object wallet, {required int accountIndex, required String label}); -} +// abstract class ZanoAccountList { +// ObservableList get accounts; +// void update(Object wallet); +// void refresh(Object wallet); +// List getAll(Object wallet); +// Future addAccount(Object wallet, {required String label}); +// Future setLabelAccount(Object wallet, {required int accountIndex, required String label}); +// } \ No newline at end of file From 2d886e1213c1e4e7db35414a0519e88bb89d4891 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 2 Dec 2023 09:42:00 +0000 Subject: [PATCH 11/58] zano.dart test app --- cw_zano/lib/api/calls.dart | 87 +++- cw_zano/lib/api/model.dart | 82 +-- cw_zano/lib/api/model/asset_info.dart | 34 ++ cw_zano/lib/api/model/balance.dart | 27 + cw_zano/lib/api/model/destination.dart | 20 + cw_zano/lib/api/model/employed_entries.dart | 20 + .../model/get_recent_txs_and_info_params.dart | 13 + .../lib/api/model/get_wallet_info_result.dart | 13 + .../api/model/get_wallet_status_result.dart | 35 ++ cw_zano/lib/api/model/history.dart | 71 +++ cw_zano/lib/api/model/load_wallet_result.dart | 41 ++ cw_zano/lib/api/model/receive.dart | 13 + cw_zano/lib/api/model/recent_history.dart | 22 + cw_zano/lib/api/model/subtransfer.dart | 14 + cw_zano/lib/api/model/transfer_params.dart | 41 ++ cw_zano/lib/api/model/wi.dart | 34 ++ cw_zano/lib/api/model/wi_extended.dart | 17 + lib/zano.dart | 298 ++++++++--- lib/zano_connected_widget.dart | 469 ++++++++++++++++++ 19 files changed, 1206 insertions(+), 145 deletions(-) create mode 100644 cw_zano/lib/api/model/asset_info.dart create mode 100644 cw_zano/lib/api/model/balance.dart create mode 100644 cw_zano/lib/api/model/destination.dart create mode 100644 cw_zano/lib/api/model/employed_entries.dart create mode 100644 cw_zano/lib/api/model/get_recent_txs_and_info_params.dart create mode 100644 cw_zano/lib/api/model/get_wallet_info_result.dart create mode 100644 cw_zano/lib/api/model/get_wallet_status_result.dart create mode 100644 cw_zano/lib/api/model/history.dart create mode 100644 cw_zano/lib/api/model/load_wallet_result.dart create mode 100644 cw_zano/lib/api/model/receive.dart create mode 100644 cw_zano/lib/api/model/recent_history.dart create mode 100644 cw_zano/lib/api/model/subtransfer.dart create mode 100644 cw_zano/lib/api/model/transfer_params.dart create mode 100644 cw_zano/lib/api/model/wi.dart create mode 100644 cw_zano/lib/api/model/wi_extended.dart create mode 100644 lib/zano_connected_widget.dart diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart index 8d0a87df8..31f3fcb5d 100644 --- a/cw_zano/lib/api/calls.dart +++ b/cw_zano/lib/api/calls.dart @@ -3,6 +3,8 @@ import 'dart:convert'; import 'package:cw_zano/api/convert_utf8_to_string.dart'; import 'package:cw_zano/api/model.dart'; +import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; +import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; @@ -65,6 +67,22 @@ final _closeWalletNative = zanoApi typedef _close_wallet = Void Function(Int64); typedef _closeWalletStatus = void Function(int hWallet); +// get_current_tx_fee +final _getCurrentTxFeeNative = zanoApi + .lookup>('get_current_tx_fee') + .asFunction<_getCurrentTxFee>(); +typedef _get_current_tx_fee = Int64 Function(Int64); +typedef _getCurrentTxFee = int Function(int priority); + +final _restoreWalletFromSeedNative = zanoApi + .lookup>( + 'restore_wallet_from_seed') + .asFunction<_RestoreWalletFromSeed>(); +typedef _restore_wallet_from_seed = Pointer Function( + Pointer, Pointer, Pointer, Int32, Int64, Pointer); +typedef _RestoreWalletFromSeed = Pointer Function( + Pointer, Pointer, Pointer, int, int, Pointer); + String doAsyncCall( {required String methodName, required int hWallet, @@ -73,7 +91,7 @@ String doAsyncCall( final paramsPointer = params.toNativeUtf8(); debugPrint( - "async_call method_name $methodName hWallet $hWallet params $params"); + 'async_call method_name $methodName hWallet $hWallet params $params'); final result = convertUTF8ToString( pointer: _asyncCallNative(methodNamePointer, hWallet, paramsPointer)); @@ -95,33 +113,34 @@ Future invokeMethod( })); debugPrint('invoke result $invokeResult'); final map = json.decode(invokeResult); - if (map["job_id"] != null) { - bool done = false; - do { - await Future.delayed(Duration(seconds: 3)); - final result = tryPullResult(map["job_id"] as int); - final map2 = json.decode(result); - done = map2["result"] == null || map2["result"]["error"] == null; - } while (!done); + if (map['job_id'] != null) { + await Future.delayed(Duration(seconds: 3)); + final result = tryPullResult(map['job_id'] as int); + return result; } - return ""; + return invokeResult; } Future store(int hWallet) async { - // debugPrint("store hWallet $hWallet"); - // final result = doAsyncCall( - // methodName: 'invoke', - // hWallet: hWallet, - // params: "{method: 'store', params: {}}"); - // debugPrint('store result $result'); - // final map = json.decode(result); - // if (map["job_id"] != null) { - // await Future.delayed(Duration(seconds: 1)); - // tryPullResult(map["job_id"] as int); - // } return await invokeMethod(hWallet, 'store', '{}'); } +Future transfer(int hWallet, TransferParams params) async { + final invokeResult = await doAsyncCall( + methodName: 'invoke', + hWallet: hWallet, + params: '{"method": "transfer","params": ${jsonEncode(params)}}', + ); + debugPrint('invoke result $invokeResult'); + var map = json.decode(invokeResult); + if (map['job_id'] != null) { + await Future.delayed(Duration(seconds: 3)); + final result = tryPullResult(map['job_id'] as int); + return result; + } + return invokeResult; +} + Future getRecentTxsAndInfo( {required int hWallet, required int offset, @@ -140,17 +159,24 @@ Future getRecentTxsAndInfo( } String getWalletStatus(int hWallet) { - debugPrint("get_wallet_status hWallet $hWallet"); + debugPrint('get_wallet_status hWallet $hWallet'); final result = convertUTF8ToString(pointer: _getWalletStatusNative(hWallet)); debugPrint('get_wallet_status result $result'); return result; } void closeWallet(int hWallet) { - debugPrint("close_wallet hWallet $hWallet"); + debugPrint('close_wallet hWallet $hWallet'); _closeWalletNative(hWallet); } +int getCurrentTxFee(int priority) { + debugPrint('get_current_tx_fee priority $priority'); + final result = _getCurrentTxFeeNative(priority); + debugPrint('get_current_tx_fee result $result'); + return result; +} + String getWalletInfo(int hWallet) { debugPrint('get_wallet_info hWallet $hWallet'); final result = convertUTF8ToString(pointer: _getWalletInfoNative(hWallet)); @@ -170,14 +196,25 @@ String getVersion() { return result; } +String restoreWalletFromSeed(String path, String password, String seed) { + debugPrint('restore_wallet_from_seed path $path password $password seed $seed'); + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final seedPointer = seed.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final result = convertUTF8ToString(pointer: _restoreWalletFromSeedNative(pathPointer, + passwordPointer, seedPointer, 0, 0, errorMessagePointer)); + return result; +} + String loadWallet(String path, String password, int nettype) { - debugPrint("load_wallet path $path password $password nettype $nettype"); + debugPrint('load_wallet path $path password $password nettype $nettype'); final pathPointer = path.toNativeUtf8(); final passwordPointer = password.toNativeUtf8(); final result = convertUTF8ToString( pointer: _loadWalletNative(pathPointer, passwordPointer, nettype), ); - debugPrint("load_wallet result $result"); + debugPrint('load_wallet result $result'); return result; } diff --git a/cw_zano/lib/api/model.dart b/cw_zano/lib/api/model.dart index b05a7630f..412dfc21b 100644 --- a/cw_zano/lib/api/model.dart +++ b/cw_zano/lib/api/model.dart @@ -1,49 +1,49 @@ -class Destination { - final String amount; - final String address; - final String assetId; +// class Destination { +// final String amount; +// final String address; +// final String assetId; - Destination({required this.amount, required this.address, required this.assetId}); +// Destination({required this.amount, required this.address, required this.assetId}); - Map toJson() => { - "amount": amount, - "address": address, - "asset_id": assetId, - }; -} +// Map toJson() => { +// "amount": amount, +// "address": address, +// "asset_id": assetId, +// }; +// } -class TransferParams { - final List destinations; - final int fee; - final int mixin; - final String paymentId; - final String comment; - final bool pushPayer; - final bool hideReceiver; +// class TransferParams { +// final List destinations; +// final int fee; +// final int mixin; +// final String paymentId; +// final String comment; +// final bool pushPayer; +// final bool hideReceiver; - TransferParams({required this.destinations, required this.fee, required this.mixin, required this.paymentId, required this.comment, required this.pushPayer, required this.hideReceiver}); +// TransferParams({required this.destinations, required this.fee, required this.mixin, required this.paymentId, required this.comment, required this.pushPayer, required this.hideReceiver}); - Map toJson() => { - "destinations": destinations, - "fee": fee, - "mixin": mixin, - "payment_id": paymentId, - "comment": comment, - "push_payer": pushPayer, - "hide_receiver": hideReceiver, - }; -} +// Map toJson() => { +// "destinations": destinations, +// "fee": fee, +// "mixin": mixin, +// "payment_id": paymentId, +// "comment": comment, +// "push_payer": pushPayer, +// "hide_receiver": hideReceiver, +// }; +// } -class GetRecentTxsAndInfoParams { - final int offset; - final int count; - final bool updateProvisionInfo; +// class GetRecentTxsAndInfoParams { +// final int offset; +// final int count; +// final bool updateProvisionInfo; - GetRecentTxsAndInfoParams({required this.offset, required this.count, required this.updateProvisionInfo}); +// GetRecentTxsAndInfoParams({required this.offset, required this.count, required this.updateProvisionInfo}); - Map toJson() => { - "offset": offset, - "count": count, - "update_provision_info": updateProvisionInfo, - }; -} \ No newline at end of file +// Map toJson() => { +// "offset": offset, +// "count": count, +// "update_provision_info": updateProvisionInfo, +// }; +// } \ No newline at end of file diff --git a/cw_zano/lib/api/model/asset_info.dart b/cw_zano/lib/api/model/asset_info.dart new file mode 100644 index 000000000..0b7605a17 --- /dev/null +++ b/cw_zano/lib/api/model/asset_info.dart @@ -0,0 +1,34 @@ +class AssetInfo { + final String assetId; + final int currentSupply; + final int decimalPoint; + final String fullName; + final bool hiddenSupply; + final String metaInfo; + final String owner; + final String ticker; + final int totalMaxSupply; + + AssetInfo( + {required this.assetId, + required this.currentSupply, + required this.decimalPoint, + required this.fullName, + required this.hiddenSupply, + required this.metaInfo, + required this.owner, + required this.ticker, + required this.totalMaxSupply}); + + factory AssetInfo.fromJson(Map json) => AssetInfo( + assetId: json['asset_id'] as String, + currentSupply: json['current_supply'] as int, + decimalPoint: json['decimal_point'] as int, + fullName: json['full_name'] as String, + hiddenSupply: json['hidden_supply'] as bool, + metaInfo: json['meta_info'] as String, + owner: json['owner'] as String, + ticker: json['ticker'] as String, + totalMaxSupply: json['total_max_supply'] as int, + ); +} diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart new file mode 100644 index 000000000..918bb1a06 --- /dev/null +++ b/cw_zano/lib/api/model/balance.dart @@ -0,0 +1,27 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/model/asset_info.dart'; + +class Balance { + final AssetInfo assetInfo; + final int awaitingIn; + final int awaitingOut; + final int total; + final int unlocked; + + Balance( + {required this.assetInfo, + required this.awaitingIn, + required this.awaitingOut, + required this.total, + required this.unlocked}); + + factory Balance.fromJson(Map json) => Balance( + assetInfo: + AssetInfo.fromJson(json['asset_info'] as Map), + awaitingIn: json['awaiting_in'] as int, + awaitingOut: json['awaiting_out'] as int, + total: json['total'] as int, + unlocked: json['unlocked'] as int, + ); +} diff --git a/cw_zano/lib/api/model/destination.dart b/cw_zano/lib/api/model/destination.dart new file mode 100644 index 000000000..ae2b5b283 --- /dev/null +++ b/cw_zano/lib/api/model/destination.dart @@ -0,0 +1,20 @@ +class Destination { + final String amount; + final String address; + final String assetId; + + Destination( + {required this.amount, required this.address, required this.assetId}); + + factory Destination.fromJson(Map json) => Destination( + amount: json['amount'] as String, + address: json['address'] as String, + assetId: json['asset_id'] as String, + ); + + Map toJson() => { + "amount": amount, + "address": address, + "asset_id": assetId, + }; +} diff --git a/cw_zano/lib/api/model/employed_entries.dart b/cw_zano/lib/api/model/employed_entries.dart new file mode 100644 index 000000000..091ea6d5f --- /dev/null +++ b/cw_zano/lib/api/model/employed_entries.dart @@ -0,0 +1,20 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/model/receive.dart'; + +class EmployedEntries { + final List receive; + final List send; + + EmployedEntries({required this.receive, required this.send}); + + factory EmployedEntries.fromJson(Map json) => + EmployedEntries( + receive: json['receive'] == null ? [] : (json['receive'] as List) + .map((e) => Receive.fromJson(e as Map)) + .toList(), + send: json['spent'] == null ? [] : (json['spent'] as List) + .map((e) => Receive.fromJson(e as Map)) + .toList(), + ); +} diff --git a/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart b/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart new file mode 100644 index 000000000..9866e4418 --- /dev/null +++ b/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart @@ -0,0 +1,13 @@ +class GetRecentTxsAndInfoParams { + final int offset; + final int count; + final bool updateProvisionInfo; + + GetRecentTxsAndInfoParams({required this.offset, required this.count, required this.updateProvisionInfo}); + + Map toJson() => { + "offset": offset, + "count": count, + "update_provision_info": updateProvisionInfo, + }; +} \ No newline at end of file diff --git a/cw_zano/lib/api/model/get_wallet_info_result.dart b/cw_zano/lib/api/model/get_wallet_info_result.dart new file mode 100644 index 000000000..1f7a3b64b --- /dev/null +++ b/cw_zano/lib/api/model/get_wallet_info_result.dart @@ -0,0 +1,13 @@ +import 'package:cw_zano/api/model/wi.dart'; +import 'package:cw_zano/api/model/wi_extended.dart'; + +class GetWalletInfoResult { + final Wi wi; + final WiExtended wiExtended; + + GetWalletInfoResult({required this.wi, required this.wiExtended}); + + factory GetWalletInfoResult.fromJson(Map json) => GetWalletInfoResult( + wi: Wi.fromJson(json['wi'] as Map), + wiExtended: WiExtended.fromJson(json['wi_extended'] as Map)); +} \ No newline at end of file diff --git a/cw_zano/lib/api/model/get_wallet_status_result.dart b/cw_zano/lib/api/model/get_wallet_status_result.dart new file mode 100644 index 000000000..f58d16a01 --- /dev/null +++ b/cw_zano/lib/api/model/get_wallet_status_result.dart @@ -0,0 +1,35 @@ +class GetWalletStatusResult { + final int currentDaemonHeight; + final int currentWalletHeight; + final bool isDaemonConnected; + final bool isInLongRefresh; + final int progress; + final int walletState; + + GetWalletStatusResult( + {required this.currentDaemonHeight, + required this.currentWalletHeight, + required this.isDaemonConnected, + required this.isInLongRefresh, + required this.progress, + required this.walletState}); + + factory GetWalletStatusResult.fromJson(Map json) => + GetWalletStatusResult( + currentDaemonHeight: json['current_daemon_height'] as int, + currentWalletHeight: json['current_wallet_height'] as int, + isDaemonConnected: json['is_daemon_connected'] as bool, + isInLongRefresh: json['is_in_long_refresh'] as bool, + progress: json['progress'] as int, + walletState: json['wallet_state'] as int, + ); + /* + "current_daemon_height": 238049, + "current_wallet_height": 238038, + "is_daemon_connected": true, + "is_in_long_refresh": true, + "progress": 0, + "wallet_state": 1 + + */ +} diff --git a/cw_zano/lib/api/model/history.dart b/cw_zano/lib/api/model/history.dart new file mode 100644 index 000000000..1a18cbb3d --- /dev/null +++ b/cw_zano/lib/api/model/history.dart @@ -0,0 +1,71 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/model/employed_entries.dart'; +import 'package:cw_zano/api/model/subtransfer.dart'; + +class History { + final String comment; + final EmployedEntries employedEntries; + final int fee; + final int height; + final bool isMining; + final bool isMixing; + final bool isService; + final String paymentId; + final List remoteAddresses; + final List remoteAliases; + final bool showSender; + final List subtransfers; + final int timestamp; + final int transferInternalIndex; + final int txBlobSize; + final String txHash; + final int txType; + final int unlockTime; + + History({ + required this.comment, + required this.employedEntries, + required this.fee, + required this.height, + required this.isMining, + required this.isMixing, + required this.isService, + required this.paymentId, + required this.remoteAddresses, + required this.remoteAliases, + required this.showSender, + required this.subtransfers, + required this.timestamp, + required this.transferInternalIndex, + required this.txBlobSize, + required this.txHash, + required this.txType, + required this.unlockTime, + }); + + factory History.fromJson(Map json) => History( + comment: json['comment'] as String, + employedEntries: EmployedEntries.fromJson( + json['employed_entries'] as Map), + fee: json['fee'] as int, + height: json['height'] as int, + isMining: json['is_mining'] as bool, + isMixing: json['is_mixing'] as bool, + isService: json['is_service'] as bool, + paymentId: json['payment_id'] as String, + remoteAddresses: json['remote_addresses'] == null ? [] : + (json['remote_addresses'] as List).cast(), + remoteAliases: json['remote_aliases'] == null ? [] : (json['remote_aliases'] as List).cast(), + showSender: json['show_sender'] as bool, + subtransfers: (json['subtransfers'] as List) + .map((e) => Subtransfer.fromJson(e as Map)) + .toList(), + timestamp: json['timestamp'] as int, + transferInternalIndex: json['transfer_internal_index'] as int, + txBlobSize: json['tx_blob_size'] as int, + txHash: json['tx_hash'] as String, + txType: json['tx_type'] as int, + unlockTime: json['unlock_time'] as int, + ); +} diff --git a/cw_zano/lib/api/model/load_wallet_result.dart b/cw_zano/lib/api/model/load_wallet_result.dart new file mode 100644 index 000000000..457edcbee --- /dev/null +++ b/cw_zano/lib/api/model/load_wallet_result.dart @@ -0,0 +1,41 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/model/recent_history.dart'; +import 'package:cw_zano/api/model/wi.dart'; + +class CreateLoadRestoreWalletResult { + final String name; + final String pass; + final RecentHistory recentHistory; + final bool recovered; + final String seed; + final int walletFileSize; + final int walletId; + final int walletLocalBcSize; + final Wi wi; + + CreateLoadRestoreWalletResult( + {required this.name, + required this.pass, + required this.recentHistory, + required this.recovered, + required this.seed, + required this.walletFileSize, + required this.walletId, + required this.walletLocalBcSize, + required this.wi}); + + factory CreateLoadRestoreWalletResult.fromJson(Map json) => + CreateLoadRestoreWalletResult( + name: json['name'] as String, + pass: json['pass'] as String, + recentHistory: RecentHistory.fromJson( + json['recent_history'] as Map), + recovered: json['recovered'] as bool, + seed: json['seed'] as String, + walletFileSize: json['wallet_file_size'] as int, + walletId: json['wallet_id'] as int, + walletLocalBcSize: json['wallet_local_bc_size'] as int, + wi: Wi.fromJson(json['wi'] as Map), + ); +} diff --git a/cw_zano/lib/api/model/receive.dart b/cw_zano/lib/api/model/receive.dart new file mode 100644 index 000000000..bb5817c94 --- /dev/null +++ b/cw_zano/lib/api/model/receive.dart @@ -0,0 +1,13 @@ +class Receive { + final int amount; + final String assetId; + final int index; + + Receive({required this.amount, required this.assetId, required this.index}); + + factory Receive.fromJson(Map json) => Receive( + amount: json['amount'] as int, + assetId: json['asset_id'] as String, + index: json['index'] as int, + ); +} diff --git a/cw_zano/lib/api/model/recent_history.dart b/cw_zano/lib/api/model/recent_history.dart new file mode 100644 index 000000000..5cbc1686c --- /dev/null +++ b/cw_zano/lib/api/model/recent_history.dart @@ -0,0 +1,22 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/model/history.dart'; + +class RecentHistory { + final List? history; + final int lastItemIndex; + final int totalHistoryItems; + + RecentHistory( + {required this.history, + required this.lastItemIndex, + required this.totalHistoryItems}); + + factory RecentHistory.fromJson(Map json) => RecentHistory( + history: json['history'] == null ? null : (json['history'] as List) + .map((e) => History.fromJson(e as Map)) + .toList(), + lastItemIndex: json['last_item_index'] as int, + totalHistoryItems: json['total_history_items'] as int, + ); +} diff --git a/cw_zano/lib/api/model/subtransfer.dart b/cw_zano/lib/api/model/subtransfer.dart new file mode 100644 index 000000000..56e6283e6 --- /dev/null +++ b/cw_zano/lib/api/model/subtransfer.dart @@ -0,0 +1,14 @@ +class Subtransfer { + final int amount; + final String assetId; + final bool isIncome; + + Subtransfer( + {required this.amount, required this.assetId, required this.isIncome}); + + factory Subtransfer.fromJson(Map json) => Subtransfer( + amount: json['amount'] as int, + assetId: json['asset_id'] as String, + isIncome: json['is_income'] as bool, + ); +} diff --git a/cw_zano/lib/api/model/transfer_params.dart b/cw_zano/lib/api/model/transfer_params.dart new file mode 100644 index 000000000..4283fc0f0 --- /dev/null +++ b/cw_zano/lib/api/model/transfer_params.dart @@ -0,0 +1,41 @@ +import 'package:cw_zano/api/model/destination.dart'; + +class TransferParams { + final List destinations; + final int fee; + final int mixin; + final String paymentId; + final String comment; + final bool pushPayer; + final bool hideReceiver; + + TransferParams({ + required this.destinations, + required this.fee, + required this.mixin, + required this.paymentId, + required this.comment, + required this.pushPayer, + required this.hideReceiver, + }); + + Map toJson() => { + "destinations": destinations, + "fee": fee, + "mixin": mixin, + "payment_id": paymentId, + "comment": comment, + "push_payer": pushPayer, + "hide_receiver": hideReceiver, + }; + + factory TransferParams.fromJson(Map json) => TransferParams( + destinations: (json['destinations'] as List).map((e) => Destination.fromJson(e as Map)).toList(), + fee: json['fee'] as int, + mixin: json['mixin'] as int, + paymentId: json['payment_id'] as String, + comment: json['comment'] as String, + pushPayer: json["push_payer"] as bool, + hideReceiver: json["hide_receiver"] as bool, + ); +} diff --git a/cw_zano/lib/api/model/wi.dart b/cw_zano/lib/api/model/wi.dart new file mode 100644 index 000000000..b02a38523 --- /dev/null +++ b/cw_zano/lib/api/model/wi.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/model/balance.dart'; + +class Wi { + final String address; + final List balances; + final bool isAuditable; + final bool isWatchOnly; + final int minedTotal; + final String path; + final String viewSecKey; + + Wi( + {required this.address, + required this.balances, + required this.isAuditable, + required this.isWatchOnly, + required this.minedTotal, + required this.path, + required this.viewSecKey}); + + factory Wi.fromJson(Map json) => Wi( + address: json['address'] as String, + balances: (json['balances'] as List) + .map((e) => Balance.fromJson(e as Map)) + .toList(), + isAuditable: json['is_auditable'] as bool, + isWatchOnly: json['is_watch_only'] as bool, + minedTotal: json['mined_total'] as int, + path: json['path'] as String, + viewSecKey: json['view_sec_key'] as String, + ); +} diff --git a/cw_zano/lib/api/model/wi_extended.dart b/cw_zano/lib/api/model/wi_extended.dart new file mode 100644 index 000000000..81128643a --- /dev/null +++ b/cw_zano/lib/api/model/wi_extended.dart @@ -0,0 +1,17 @@ +class WiExtended { + final String seed; + final String spendPrivateKey; + final String spendPublicKey; + final String viewPrivateKey; + final String viewPublicKey; + + WiExtended({required this.seed, required this.spendPrivateKey, required this.spendPublicKey, required this.viewPrivateKey, required this.viewPublicKey}); + + factory WiExtended.fromJson(Map json) => WiExtended( + seed: json["seed"] as String, + spendPrivateKey: json["spend_private_key"] as String, + spendPublicKey: json["spend_public_key"] as String, + viewPrivateKey: json["view_private_key"] as String, + viewPublicKey: json["view_public_key"] as String, + ); +} \ No newline at end of file diff --git a/lib/zano.dart b/lib/zano.dart index d130d3454..a5b9b89dc 100644 --- a/lib/zano.dart +++ b/lib/zano.dart @@ -4,16 +4,20 @@ import 'dart:convert'; import 'package:cake_wallet/core/generate_wallet_password.dart'; import 'package:cake_wallet/core/key_service.dart'; import 'package:cake_wallet/utils/exception_handler.dart'; +import 'package:cake_wallet/zano_connected_widget.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/wallet_type.dart'; +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/model/balance.dart'; +import 'package:cw_zano/api/model/load_wallet_result.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; -import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/zano_wallet_service.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:get_it/get_it.dart'; +import 'package:shared_preferences/shared_preferences.dart'; Future main() async { await runZonedGuarded(() async { @@ -51,96 +55,232 @@ class App extends StatefulWidget { State createState() => _AppState(); } -class HomeWidget extends StatefulWidget { - const HomeWidget({super.key}); +// class HomeWidget extends StatefulWidget { +// const HomeWidget({super.key}); - @override - State createState() => _HomeWidgetState(); -} +// @override +// State createState() => _HomeWidgetState(); +// } class _AppState extends State { @override Widget build(BuildContext context) { - return MaterialApp(home: HomeWidget()); + return MaterialApp( + home: DisconnectedWidget(), //HomeWidget(), + routes: { + ConnectedWidget.route: (context) { + final address = ModalRoute.of(context)!.settings.arguments! as String; + return ConnectedWidget(address: address); + }, + DisconnectedWidget.route: (context) => DisconnectedWidget(), + }, + ); } } -class _HomeWidgetState extends State { +int hWallet = 0; +CreateLoadRestoreWalletResult? lwr; +List balances = []; +String seed = '', version = ''; +final assetIds = {}; +const walletWrongId = 'WALLET_WRONG_ID'; +const walletName = 'walletName'; + +Future init() async { + version = calls.getVersion(); + final setupNode = await zano_wallet.setupNode( + address: '195.201.107.230:33336', + login: '', + password: '', + useSSL: false, + isLightWallet: false); + if (!setupNode) { + debugPrint('error setting up node!'); + } +} + +Future create(String name) async { + debugPrint('create $name'); + await init(); + final path = await pathForWallet(name: name, type: WalletType.zano); + final credentials = ZanoNewWalletCredentials(name: name); + final keyService = KeyService(FlutterSecureStorage()); + final password = generateWalletPassword(); + credentials.password = password; + await keyService.saveWalletPassword( + password: password, walletName: credentials.name); + debugPrint('path $path password $password'); + final result = zano_wallet_manager.createWalletSync( + path: path, password: password, language: ''); + debugPrint('create result $result'); + return _parseResult(result); +} + +Future connect(String name) async { + debugPrint('connect'); + await init(); + final path = await pathForWallet(name: name, type: WalletType.zano); + final credentials = ZanoNewWalletCredentials(name: name); + final keyService = KeyService(FlutterSecureStorage()); + final password = + await keyService.getWalletPassword(walletName: credentials.name); + debugPrint('path $path password $password'); + final result = await calls.loadWallet(path, password, 0); + return _parseResult(result); +} + +Future restore(String name, String seed) async { + debugPrint("restore"); + await init(); + final path = await pathForWallet(name: name, type: WalletType.zano); + final credentials = ZanoNewWalletCredentials(name: name); + final keyService = KeyService(FlutterSecureStorage()); + final password = generateWalletPassword(); + credentials.password = password; + await keyService.saveWalletPassword( + password: password, walletName: credentials.name); + debugPrint('path $path password $password'); + var result = calls.restoreWalletFromSeed(path, password, seed); + debugPrint('restore result $result'); + //result = await calls.loadWallet(path, password, 0); + return _parseResult(result); +} + +String? _parseResult(String result) { + final map = json.decode(result) as Map; +if (map['result'] != null) { + lwr = CreateLoadRestoreWalletResult.fromJson(map['result'] as Map); + balances = lwr!.wi.balances; + hWallet = lwr!.walletId; + assetIds.clear(); + for (final balance in lwr!.wi.balances) { + assetIds[balance.assetInfo.assetId] = balance.assetInfo.ticker; + } + return lwr!.wi.address; + } + return null; +} + +void close() { + calls.closeWallet(hWallet); +} + +class DisconnectedWidget extends StatefulWidget { + const DisconnectedWidget({super.key}); + static const route = 'disconnected'; + + @override + State createState() => _DisconnectedWidgetState(); +} + +class _DisconnectedWidgetState extends State { + late final TextEditingController _name = TextEditingController(text: "wallet"); + late final TextEditingController _seed = TextEditingController( + text: + "palm annoy brush task almost through here sent doll guilty smart horse mere canvas flirt advice fruit known shower happiness steel autumn beautiful approach anymore canvas"); + bool _loading = false; + + @override + void initState() { + super.initState(); + () async { + final preferences = await SharedPreferences.getInstance(); + final value = preferences.getString(walletName); + if (value != null && value.isNotEmpty) _name.text = value; + }(); + } + @override Widget build(BuildContext context) { return Scaffold( - body: FutureBuilder( - future: connect(), - builder: (context, snapshot) { - if (!snapshot.hasData) return CircularProgressIndicator(); - return Center(child: Text("connected")); - }, + appBar: AppBar(title: Text('Disconnected')), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Stack( + children: [ + Opacity( + opacity: _loading ? 0.5 : 1, + child: Column( + children: [ + TextField( + controller: _name, + decoration: InputDecoration(labelText: 'Wallet name')), + TextButton( + child: Text('Connect and Open Wallet'), + onPressed: () async { + //setState(() => _loading = true); + final preferences = + await SharedPreferences.getInstance(); + await preferences.setString(walletName, _name.text); + final result = await connect(_name.text); + //setState(() => _loading = false); + if (result != null) { + debugPrint("navigated to connected"); + Navigator.of(context).pushReplacementNamed( + ConnectedWidget.route, + arguments: result, + ); + } else { + debugPrint('connect no result'); + } + }), + SizedBox( + height: 16, + ), + TextButton( + child: Text('Create and Open Wallet'), + onPressed: () async { + //setState(() => _loading = true); + final preferences = + await SharedPreferences.getInstance(); + await preferences.setString(walletName, _name.text); + final result = await create(_name.text); + //setState(() => _loading = false); + if (result != null) { + debugPrint("navigating to connected"); + Navigator.of(context).pushReplacementNamed( + ConnectedWidget.route, + arguments: result, + ); + } else { + debugPrint('create no result'); + } + }), + SizedBox( + height: 16, + ), + TextField( + controller: _seed, + decoration: InputDecoration(labelText: 'Wallet seed')), + TextButton( + child: Text('Restore from seed'), + onPressed: () async { + final preferences = + await SharedPreferences.getInstance(); + await preferences.setString(walletName, _name.text); + final result = await restore(_name.text, _seed.text); + if (result != null) { + Navigator.of(context).pushReplacementNamed( + ConnectedWidget.route, + arguments: result, + ); + } else { + debugPrint('restore no result'); + } + }), + SizedBox( + height: 16, + ), + TextButton(child: Text('Close Wallet'), onPressed: close), + ], + ), + ), + if (_loading) Center(child: CircularProgressIndicator()), + ], + ), + ), ), ); } - - static const name = "leo1"; - - Future connect() async { - calls.getVersion(); - final setupNode = await zano_wallet.setupNode( - address: "195.201.107.230:33336", - login: "", - password: "", - useSSL: false, - isLightWallet: false); - final path = await pathForWallet(name: name, type: WalletType.zano); - final credentials = ZanoNewWalletCredentials(name: name); - final keyService = KeyService(FlutterSecureStorage()); - final password = await keyService.getWalletPassword(walletName: credentials.name); - debugPrint("path $path password $password"); - final result = await calls.loadWallet(path, password, 0); - final map = json.decode(result) as Map; - int hWallet = 0; - if (map["result"] != null) { - hWallet = (map["result"] as Map)["wallet_id"] as int; - debugPrint("hWallet $hWallet"); - } - Future.delayed(Duration(seconds: 10)); - await calls.getWalletStatus(hWallet); - Future.delayed(Duration(seconds: 10)); - await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); - Future.delayed(Duration(seconds: 2)); - calls.closeWallet(hWallet); - return true; - } - - Future _connect() async { - calls.getVersion(); - final result = await zano_wallet.setupNode( - address: "195.201.107.230:33336", - login: "", - password: "", - useSSL: false, - isLightWallet: false); - //debugPrint("setup node result ${result}"); - //final name = "leo1"; - final path = await pathForWallet(name: name, type: WalletType.zano); - final credentials = ZanoNewWalletCredentials(name: name); - final keyService = KeyService(FlutterSecureStorage()); - final password = generateWalletPassword(); - credentials.password = password; - await keyService.saveWalletPassword( - password: password, walletName: credentials.name); - final createResult = await zano_wallet_manager.createWallet( - language: "", path: path, password: credentials.password!); - debugPrint("createWallet result $createResult"); - final map = json.decode(createResult) as Map; - int hWallet = -1; - if (map["result"] != null) { - hWallet = (map["result"] as Map)["wallet_id"] as int; - debugPrint("hWallet $hWallet"); - } - //await calls.loadWallet(path, password, 0); - calls.getConnectivityStatus(); - await calls.store(hWallet); - calls.getWalletInfo(hWallet); - calls.getWalletStatus(hWallet); - return true; - } } diff --git a/lib/zano_connected_widget.dart b/lib/zano_connected_widget.dart new file mode 100644 index 000000000..6258f5d5b --- /dev/null +++ b/lib/zano_connected_widget.dart @@ -0,0 +1,469 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; + +import 'package:cake_wallet/zano.dart'; +import 'package:cw_zano/api/model/destination.dart'; +import 'package:cw_zano/api/model/get_wallet_info_result.dart'; +import 'package:cw_zano/api/model/get_wallet_status_result.dart'; +import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/transfer_params.dart'; +import 'package:flutter/material.dart'; +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:flutter/services.dart'; + +class ConnectedWidget extends StatefulWidget { + final String address; + const ConnectedWidget({super.key, required this.address}); + static const route = 'connected'; + + @override + State createState() => _ConnectedWidgetState(); +} + +class _ConnectedWidgetState extends State { + Timer? _longRefreshTimer; + GetWalletStatusResult? _gwsr; + int? _txFee; + final int _mixin = 10; + late final TextEditingController _destinationAddress = + TextEditingController(text: widget.address); + static const defaultAmount = 1.0; + late final TextEditingController _amount = TextEditingController(text: defaultAmount.toString()); + late String _amountFormatted = _mulBy10_12(defaultAmount); + late final TextEditingController _paymentId = TextEditingController(); + late final TextEditingController _comment = TextEditingController(text: "test"); + bool _pushPayer = false; + bool _hideReceiver = true; + String _transferResult = ''; + List? _transactions; + + @override + void initState() { + super.initState(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + // _getWalletStatus returning true if it's in long refresh + // in a long refresh we keep requesting _getWalletStatus until we get false + if (_getWalletStatus()) { + _longRefreshTimer = Timer.periodic(Duration(milliseconds: 1000), (timer) { + if (!_getWalletStatus()) { + _longRefreshTimer!.cancel(); + debugPrint('cancelling get wallet status timer'); + _getWalletInfo(); + } + }); + } + //_getWalletInfo(); + }); + } + + @override + void dispose() { + //_timer.cancel(); + // _myAddress.dispose(); + // _seed.dispose(); + _destinationAddress.dispose(); + _amount.dispose(); + _paymentId.dispose(); + _comment.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return DefaultTabController( + length: 4, + child: Scaffold( + appBar: AppBar( + title: Text('Version $version'), + actions: [ + IconButton( + icon: Icon(Icons.close), + onPressed: () { + close(); + Navigator.of(context).pushReplacementNamed(DisconnectedWidget.route); + }, + ) + ], + bottom: TabBar( + tabs: [ + Tab(text: 'Main'), + Tab(text: 'Transfer'), + Builder(builder: (context) { + if (lwr != null && lwr!.recentHistory.history != null) { + return Tab(text: 'History (${lwr!.recentHistory.history!.length})'); + } + return Tab(text: 'History'); + }), + Tab(text: 'Transactions') + ], + )), + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: TabBarView( + children: [ + _mainTab(context), + _transferTab(context), + _historyTab(), + _transactionsTab(), + ], + ), + ), + ), + ), + ); + } + + Widget _transactionsTab() { + return Column(children: [ + TextButton(onPressed: _getTransactions, child: Text('Update list of Transactions')), + Expanded(child: _transactionsListView(_transactions)), + ]); + } + + Widget _historyTab() { + if (lwr == null) return Text("Empty"); + return _transactionsListView(lwr!.recentHistory.history); + } + + ListView _transactionsListView(List? list) { + return ListView.builder( + itemCount: list != null ? list.length : 0, + itemBuilder: (context, index) { + final item = list![index]; + late String addr; + if (item.remoteAddresses.isNotEmpty) { + addr = _shorten(item.remoteAddresses.first); + } else { + addr = "???"; + } + return Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text("${index + 1}. ${_dateTime(item.timestamp)} Remote addr: $addr"), + if (item.remoteAddresses.isNotEmpty) + IconButton( + onPressed: () => + Clipboard.setData(ClipboardData(text: item.remoteAddresses.first)), + icon: Icon(Icons.copy), + ), + if (item.remoteAliases.isNotEmpty) Text(" (${item.remoteAliases.first})"), + ], + ), + Text(" txHash: ${item.txHash} comment: ${item.comment}"), + Text( + " paymentId: ${item.paymentId} height: ${item.height} fee: ${_divBy10_12(item.fee)}"), + if (item.employedEntries.receive.isNotEmpty) + Text(" Receive", style: TextStyle(fontWeight: FontWeight.bold)), + for (int i = 0; i < item.employedEntries.receive.length; i++) + Text( + ' ${item.employedEntries.receive[i].index}. ${_assetName(item.employedEntries.receive[i].assetId)} ${_divBy10_12(item.employedEntries.receive[i].amount)}'), + if (item.employedEntries.send.isNotEmpty) + Text(" Spent", style: TextStyle(fontWeight: FontWeight.bold)), + for (int i = 0; i < item.employedEntries.send.length; i++) + Text( + ' ${item.employedEntries.send[i].index}. ${_assetName(item.employedEntries.send[i].assetId)} ${_divBy10_12(item.employedEntries.send[i].amount)}'), + if (item.subtransfers.isNotEmpty) + Text(" Subtransfers", style: TextStyle(fontWeight: FontWeight.bold)), + for (int i = 0; i < item.subtransfers.length; i++) + Text( + ' ${item.subtransfers[i].isIncome ? 'In' : 'Out'}. ${_assetName(item.subtransfers[i].assetId)} ${_divBy10_12(item.subtransfers[i].amount)}'), + Divider(), + ], + ); + }, + ); + } + + Widget _transferTab(BuildContext context) { + return SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text('Remote Address ', style: TextStyle(fontWeight: FontWeight.bold)), + Expanded( + child: TextField( + controller: _destinationAddress, + ), + ), + IconButton( + onPressed: () => Clipboard.setData(ClipboardData(text: _destinationAddress.text)), + icon: Icon(Icons.copy)), + IconButton( + onPressed: () async { + final clipboard = await Clipboard.getData("text/plain"); + if (clipboard == null || clipboard.text == null) return; + setState(() { + _destinationAddress.text = clipboard.text!; + }); + }, + icon: Icon(Icons.paste)), + ], + ), + Row( + children: [ + // ${lwr!.wi.address} + Text('Amount ', style: TextStyle(fontWeight: FontWeight.bold)), + Expanded( + child: TextField( + controller: _amount, + onChanged: (value) => setState(() { + _amountFormatted = _mulBy10_12(double.parse(value)); + }), + ), + ), + Text("= ${_amountFormatted}"), + IconButton( + onPressed: () => Clipboard.setData(ClipboardData(text: _amount.text)), + icon: Icon(Icons.copy)), + ], + ), + if (_txFee != null) + Text('Fee: ${_divBy10_12(_txFee!)} (${_txFee!})') + else + Text("Pls get Tx Fee before transfer!"), + Text('Mixin: $_mixin'), + Row(children: [ + Text('Payment Id ', style: TextStyle(fontWeight: FontWeight.bold)), + Expanded(child: TextField(controller: _paymentId)), + ]), + Row(children: [ + Text('Comment ', style: TextStyle(fontWeight: FontWeight.bold)), + Expanded(child: TextField(controller: _comment)), + ]), + Row( + children: [ + Text('Push Payer ', style: TextStyle(fontWeight: FontWeight.bold)), + Checkbox( + value: _pushPayer, + onChanged: (value) => setState(() => _pushPayer = value ?? false)), + ], + ), + Row( + children: [ + Text('Hide Receiver ', style: TextStyle(fontWeight: FontWeight.bold)), + Checkbox( + value: _hideReceiver, + onChanged: (value) => setState(() => _hideReceiver = value ?? false)), + ], + ), + TextButton(onPressed: _transfer, child: Text('Transfer')), + const SizedBox(height: 16), + Text('Transfer result $_transferResult'), + ], + ), + ); + } + + Widget _mainTab(BuildContext context) { + return SingleChildScrollView( + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text('Wallet Info', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(width: 16), + TextButton(onPressed: _getWalletInfo, child: Text('Update WI & TxFee')), + ], + ), + Row( + children: [ + Text('My Address ', style: TextStyle(fontWeight: FontWeight.bold)), + Expanded( + child: Text( + widget.address, + maxLines: 1, + overflow: TextOverflow.ellipsis, + )), + IconButton( + onPressed: () => Clipboard.setData(ClipboardData(text: widget.address)), + icon: Icon(Icons.copy)), + ], + ), + for (final balance in balances) + Text( + 'Balance (${balance.assetInfo.ticker}) total: ${_divBy10_12(balance.total)}, unlocked: ${_divBy10_12(balance.unlocked)}'), + Row( + children: [ + Text('Seed ', style: TextStyle(fontWeight: FontWeight.bold)), + Expanded(child: Text(seed, maxLines: 1, overflow: TextOverflow.ellipsis)), + IconButton( + onPressed: () => Clipboard.setData(ClipboardData(text: seed)), + icon: Icon(Icons.copy)), + ], + ), + const SizedBox(height: 16), + Row( + children: [ + Text('Wallet Status', style: TextStyle(fontWeight: FontWeight.bold)), + const SizedBox(width: 16), + TextButton(onPressed: _getWalletStatus, child: Text('Update')), + ], + ), + if (_gwsr != null) ...[ + Row( + children: [ + Expanded(child: Text('Daemon Height ${_gwsr!.currentDaemonHeight}')), + Expanded(child: Text('Wallet Height ${_gwsr!.currentWalletHeight}')), + ], + ), + Row( + children: [ + Expanded(child: Text('Daemon Connected ${_gwsr!.isDaemonConnected}')), + Expanded(child: Text('In Long Refresh ${_gwsr!.isInLongRefresh}')), + ], + ), + Row( + children: [ + Expanded(child: Text('Progress ${_gwsr!.progress}')), + Expanded(child: Text('WalletState ${_gwsr!.walletState}')), + ], + ), + ], + const SizedBox(height: 16), + if (_txFee != null) Text('Tx Fee: ${_divBy10_12(_txFee!)} (${_txFee!})'), + TextButton( + onPressed: () { + close(); + Navigator.of(context).pushReplacementNamed(DisconnectedWidget.route); + }, + child: Text('Disconnect')), + ], + ), + ); + } + + Future _transfer() async { + final result = await calls.transfer( + hWallet, + TransferParams( + destinations: [ + Destination( + amount: _mulBy10_12(double.parse(_amount.text)), + address: _destinationAddress.text, + assetId: assetIds.keys.first, + ) + ], + fee: _txFee!, + mixin: _mixin, + paymentId: _paymentId.text, + comment: _comment.text, + pushPayer: _pushPayer, + hideReceiver: _hideReceiver, + )); + debugPrint('transfer result $result'); + final map = jsonDecode(result); + if (map['result'] == null) { + setState(() => _transferResult = 'empty result'); + } else { + if (map['result']['error'] != null) { + setState(() => _transferResult = + "error code ${map['result']['error']['code']} message ${map['result']['error']['message']} "); + } else if (map['result']['result'] != null) { + setState(() => _transferResult = + "transfer tx hash ${map['result']['result']['tx_hash']} size ${map['result']['result']['tx_size']} "); + } + } + } + + bool _getWalletStatus() { + final json = calls.getWalletStatus(hWallet); + if (json == walletWrongId) { + debugPrint('error $walletWrongId'); + setState(() => _gwsr = null); + return false; + } + try { + setState(() { + _gwsr = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + }); + return _gwsr!.isInLongRefresh; + } catch (e) { + debugPrint('exception $e'); + setState(() => _gwsr = null); + return false; + } + } + + void _getWalletInfo() { + final result = GetWalletInfoResult.fromJson( + jsonDecode(calls.getWalletInfo(hWallet)) as Map); + final fee = calls.getCurrentTxFee(0); + setState(() { + balances = result.wi.balances; + seed = result.wiExtended.seed; + _txFee = fee; + }); + // setState(() { + // _gwsr = GetWalletStatusResult.fromJson( + // jsonDecode(calls.getWalletStatus(hWallet)) as Map); + // }); + } + + Future _getTransactions() async { + final result = await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); + final map = jsonDecode(result); + if (map == null || map["result"] == null || map["result"]["result"] == null) { + setState(() => _transactions = null); + return; + } + setState(() => _transactions = map["result"]["result"]["transfers"] == null + ? null + : (map["result"]["result"]["transfers"] as List) + .map((e) => History.fromJson(e as Map)) + .toList()); + } + + String _divBy10_12(int value) { + return (value / pow(10, 12)).toString(); + } + + String _mulBy10_12(double value) { + var str = (value * pow(10, 12)).toString(); + if (str.contains('.')) str = str.split('.')[0]; + return str; + } + + String _shorten(String someId) { + if (someId.length < 9) return someId; + return '${someId.substring(0, 4).toUpperCase()}...${someId.substring(someId.length - 2)}'; + } + + String _assetName(String assetId) { + if (assetIds[assetId] != null) { + return assetIds[assetId]!; + } else { + return _shorten(assetId); + } + } + + String _dateTime(int timestamp) { + DateTime date = DateTime.fromMillisecondsSinceEpoch(timestamp * 1000); + return '${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')} ${date.hour.toString().padLeft(2, '0')}:${date.minute.toString().padLeft(2, '0')}'; + } + + Widget _row( + String first, String second, String third, String forth, String fifth, String sixth) => + Row( + children: [ + Expanded(child: Text(first)), + Expanded(flex: 2, child: Text(second)), + Expanded(flex: 2, child: Text(third)), + Expanded(flex: 3, child: Text(forth)), + Expanded(flex: 3, child: Text(fifth)), + Expanded(child: Text(sixth)), + ], + ); +} From 8d3dd6f202260f3bdc6f6e710bc85089d9049f59 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 14 Dec 2023 04:51:16 +0000 Subject: [PATCH 12/58] wallet recovery --- cw_core/lib/amount_converter.dart | 2 + cw_dummy/lib/dummy_wallet_service.dart | 5 +- cw_dummy/pubspec.yaml | 3 + cw_zano/ios/Classes/zano_api.cpp | 6 + ..._result.dart => create_wallet_result.dart} | 8 +- cw_zano/lib/api/model/history.dart | 2 +- cw_zano/lib/api/model/zano_wallet_keys.dart | 12 + cw_zano/lib/api/transaction_history.dart | 21 +- cw_zano/lib/api/wallet.dart | 239 +- cw_zano/lib/api/wallet_manager.dart | 10 +- cw_zano/lib/mnemonics/english.dart | 3252 ++++++++--------- cw_zano/lib/new_zano_addresses_base.dart | 19 + cw_zano/lib/new_zano_wallet.dart | 239 ++ cw_zano/lib/pending_zano_transaction.dart | 4 +- cw_zano/lib/zano_balance.dart | 54 +- cw_zano/lib/zano_transaction_info.dart | 24 +- cw_zano/lib/zano_wallet.dart | 259 +- cw_zano/lib/zano_wallet_service.dart | 145 +- lib/core/address_validator.dart | 2 + .../screens/restore/wallet_restore_page.dart | 2 + lib/view_model/send/output.dart | 4 +- lib/zano.dart | 44 +- lib/zano/zano.dart | 1 + 23 files changed, 2357 insertions(+), 2000 deletions(-) rename cw_zano/lib/api/model/{load_wallet_result.dart => create_wallet_result.dart} (85%) create mode 100644 cw_zano/lib/api/model/zano_wallet_keys.dart create mode 100644 cw_zano/lib/new_zano_addresses_base.dart create mode 100644 cw_zano/lib/new_zano_wallet.dart diff --git a/cw_core/lib/amount_converter.dart b/cw_core/lib/amount_converter.dart index a11907ef2..cdd79bc35 100644 --- a/cw_core/lib/amount_converter.dart +++ b/cw_core/lib/amount_converter.dart @@ -96,6 +96,8 @@ class AmountConverter { case CryptoCurrency.xnzd: case CryptoCurrency.xusd: return _moneroAmountToString(amount); + case CryptoCurrency.zano: + return _moneroAmountToString(amount); default: return ''; } diff --git a/cw_dummy/lib/dummy_wallet_service.dart b/cw_dummy/lib/dummy_wallet_service.dart index bb9e77838..85a71dbf5 100644 --- a/cw_dummy/lib/dummy_wallet_service.dart +++ b/cw_dummy/lib/dummy_wallet_service.dart @@ -1,10 +1,13 @@ import 'package:cw_core/balance.dart'; +import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/transaction_history.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; + import 'package:hive/hive.dart'; import 'dummy_wallet_creation_credentials.dart'; @@ -15,7 +18,7 @@ class DummyWalletService extends WalletService walletInfoSource; @override - Future, TransactionInfo>> create(DummyNewWalletCredentials credentials) => throw UnimplementedError(); + Future, TransactionInfo>> create(WalletCredentials credentials) => throw UnimplementedError(); @override WalletType getType() => WalletType.dummy; diff --git a/cw_dummy/pubspec.yaml b/cw_dummy/pubspec.yaml index d7fe703b8..ae3d9135e 100644 --- a/cw_dummy/pubspec.yaml +++ b/cw_dummy/pubspec.yaml @@ -20,6 +20,9 @@ dependencies: cw_core: path: ../cw_core + cw_zano: + path: ../cw_zano + dev_dependencies: flutter_test: sdk: flutter diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index 676b5adaa..85b0f93df 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -419,6 +419,12 @@ extern "C" return strdup(plain_wallet::get_wallet_status(hwallet).c_str()); } + char* get_address_info(char* address) + { + return strdup(plain_wallet::get_address_info(address).c_str()); + } + + char* async_call(char* method_name, uint64_t instance_id, char* params) { return strdup(plain_wallet::async_call(method_name, instance_id, params).c_str()); diff --git a/cw_zano/lib/api/model/load_wallet_result.dart b/cw_zano/lib/api/model/create_wallet_result.dart similarity index 85% rename from cw_zano/lib/api/model/load_wallet_result.dart rename to cw_zano/lib/api/model/create_wallet_result.dart index 457edcbee..83f0253e0 100644 --- a/cw_zano/lib/api/model/load_wallet_result.dart +++ b/cw_zano/lib/api/model/create_wallet_result.dart @@ -3,7 +3,7 @@ import 'dart:convert'; import 'package:cw_zano/api/model/recent_history.dart'; import 'package:cw_zano/api/model/wi.dart'; -class CreateLoadRestoreWalletResult { +class CreateWalletResult { final String name; final String pass; final RecentHistory recentHistory; @@ -14,7 +14,7 @@ class CreateLoadRestoreWalletResult { final int walletLocalBcSize; final Wi wi; - CreateLoadRestoreWalletResult( + CreateWalletResult( {required this.name, required this.pass, required this.recentHistory, @@ -25,8 +25,8 @@ class CreateLoadRestoreWalletResult { required this.walletLocalBcSize, required this.wi}); - factory CreateLoadRestoreWalletResult.fromJson(Map json) => - CreateLoadRestoreWalletResult( + factory CreateWalletResult.fromJson(Map json) => + CreateWalletResult( name: json['name'] as String, pass: json['pass'] as String, recentHistory: RecentHistory.fromJson( diff --git a/cw_zano/lib/api/model/history.dart b/cw_zano/lib/api/model/history.dart index 1a18cbb3d..0a23743e5 100644 --- a/cw_zano/lib/api/model/history.dart +++ b/cw_zano/lib/api/model/history.dart @@ -62,7 +62,7 @@ class History { .map((e) => Subtransfer.fromJson(e as Map)) .toList(), timestamp: json['timestamp'] as int, - transferInternalIndex: json['transfer_internal_index'] as int, + transferInternalIndex: json['transfer_internal_index'] is double ? (json['transfer_internal_index'] as double).toInt() : json['transfer_internal_index'] as int, txBlobSize: json['tx_blob_size'] as int, txHash: json['tx_hash'] as String, txType: json['tx_type'] as int, diff --git a/cw_zano/lib/api/model/zano_wallet_keys.dart b/cw_zano/lib/api/model/zano_wallet_keys.dart new file mode 100644 index 000000000..5a224633b --- /dev/null +++ b/cw_zano/lib/api/model/zano_wallet_keys.dart @@ -0,0 +1,12 @@ +class ZanoWalletKeys { + const ZanoWalletKeys( + {required this.privateSpendKey, + required this.privateViewKey, + required this.publicSpendKey, + required this.publicViewKey}); + + final String publicViewKey; + final String privateViewKey; + final String publicSpendKey; + final String privateSpendKey; +} \ No newline at end of file diff --git a/cw_zano/lib/api/transaction_history.dart b/cw_zano/lib/api/transaction_history.dart index 8e9fdf1e8..5493349df 100644 --- a/cw_zano/lib/api/transaction_history.dart +++ b/cw_zano/lib/api/transaction_history.dart @@ -32,9 +32,9 @@ final transactionCreateMultDestNative = zanoApi 'transaction_create_mult_dest') .asFunction(); -final transactionCommitNative = zanoApi - .lookup>('transaction_commit') - .asFunction(); +// final transactionCommitNative = zanoApi +// .lookup>('transaction_commit') +// .asFunction(); final getTxKeyNative = zanoApi .lookup>('get_tx_key') @@ -53,11 +53,11 @@ String getTxKey(String txId) { return ''; } -void refreshTransactions() { - // TODO: fix it - //transactionsRefreshNative(); - debugPrint("refreshing transactions"); -} +// void refreshTransactions() { +// // TODO: fix it +// //transactionsRefreshNative(); +// debugPrint("refreshing transactions"); +// } int countOfTransactions() { //return transactionsCountNative(); @@ -184,8 +184,9 @@ void commitTransactionFromPointerAddress({required int address}) => void commitTransaction( {required Pointer transactionPointer}) { final errorMessagePointer = calloc(); - final isCommited = - transactionCommitNative(transactionPointer, errorMessagePointer) != 0; + print("commit transaction"); + final isCommited = true; + //transactionCommitNative(transactionPointer, errorMessagePointer) != 0; if (!isCommited) { final message = errorMessagePointer.ref.getValue(); diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart index a78dfed90..a15945c70 100644 --- a/cw_zano/lib/api/wallet.dart +++ b/cw_zano/lib/api/wallet.dart @@ -1,5 +1,12 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:ffi'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_zano/api/model/get_wallet_info_result.dart'; +import 'package:cw_zano/api/model/get_wallet_status_result.dart'; +import 'package:cw_zano/api/model/zano_wallet_keys.dart'; +import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/zano_wallet.dart'; import 'package:ffi/ffi.dart'; import 'package:cw_zano/api/structs/ut8_box.dart'; import 'package:cw_zano/api/convert_utf8_to_string.dart'; @@ -10,19 +17,18 @@ import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/exceptions/setup_wallet_exception.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; +import 'package:mobx/mobx.dart' as mobx; int _boolToInt(bool value) => value ? 1 : 0; -final getFileNameNative = zanoApi - .lookup>('get_filename') - .asFunction(); +final getFileNameNative = + zanoApi.lookup>('get_filename').asFunction(); /*final getSeedNative = zanoApi.lookup>('seed').asFunction();*/ -final getAddressNative = zanoApi - .lookup>('get_address') - .asFunction(); +final getAddressNative = + zanoApi.lookup>('get_address').asFunction(); final getFullBalanceNative = zanoApi .lookup>('get_full_balance') @@ -36,42 +42,36 @@ final getUnlockedBalanceNative = zanoApi .lookup>('get_current_height') .asFunction();*/ -final getNodeHeightNative = zanoApi - .lookup>('get_node_height') - .asFunction(); +// final getNodeHeightNative = zanoApi +// .lookup>('get_node_height') +// .asFunction(); -final isConnectedNative = zanoApi - .lookup>('is_connected') - .asFunction(); +final isConnectedNative = + zanoApi.lookup>('is_connected').asFunction(); -final setupNodeNative = zanoApi - .lookup>('setup_node') - .asFunction(); +final setupNodeNative = + zanoApi.lookup>('setup_node').asFunction(); -final startRefreshNative = zanoApi - .lookup>('start_refresh') - .asFunction(); +// final startRefreshNative = zanoApi +// .lookup>('start_refresh') +// .asFunction(); -final connecToNodeNative = zanoApi - .lookup>('connect_to_node') - .asFunction(); +final connecToNodeNative = + zanoApi.lookup>('connect_to_node').asFunction(); final setRefreshFromBlockHeightNative = zanoApi - .lookup>( - 'set_refresh_from_block_height') + .lookup>('set_refresh_from_block_height') .asFunction(); -final setRecoveringFromSeedNative = zanoApi - .lookup>( - 'set_recovering_from_seed') - .asFunction(); +// final setRecoveringFromSeedNative = zanoApi +// .lookup>('set_recovering_from_seed') +// .asFunction(); -final storeNative = - zanoApi.lookup>('store').asFunction(); -final setPasswordNative = zanoApi - .lookup>('set_password') - .asFunction(); +final storeNative = zanoApi.lookup>('store').asFunction(); + +final setPasswordNative = + zanoApi.lookup>('set_password').asFunction(); /**final setListenerNative = zanoApi .lookup>('set_listener') @@ -85,18 +85,15 @@ final isNeededToRefreshNative = zanoApi .lookup>('is_needed_to_refresh') .asFunction(); -final isNewTransactionExistNative = zanoApi - .lookup>( - 'is_new_transaction_exist') - .asFunction(); +// final isNewTransactionExistNative = zanoApi +// .lookup>('is_new_transaction_exist') +// .asFunction(); -final getSecretViewKeyNative = zanoApi - .lookup>('secret_view_key') - .asFunction(); +final getSecretViewKeyNative = + zanoApi.lookup>('secret_view_key').asFunction(); -final getPublicViewKeyNative = zanoApi - .lookup>('public_view_key') - .asFunction(); +final getPublicViewKeyNative = + zanoApi.lookup>('public_view_key').asFunction(); final getSecretSpendKeyNative = zanoApi .lookup>('secret_spend_key') @@ -110,27 +107,25 @@ final closeCurrentWalletNative = zanoApi .lookup>('close_current_wallet') .asFunction(); -final onStartupNative = zanoApi - .lookup>('on_startup') - .asFunction(); +final onStartupNative = + zanoApi.lookup>('on_startup').asFunction(); final rescanBlockchainAsyncNative = zanoApi .lookup>('rescan_blockchain') .asFunction(); -final setTrustedDaemonNative = zanoApi - .lookup>('set_trusted_daemon') - .asFunction(); +// final setTrustedDaemonNative = zanoApi +// .lookup>('set_trusted_daemon') +// .asFunction(); -final trustedDaemonNative = zanoApi - .lookup>('trusted_daemon') - .asFunction(); +final trustedDaemonNative = + zanoApi.lookup>('trusted_daemon').asFunction(); int getSyncingHeight() => getSyncingHeightNative(); bool isNeededToRefresh() => isNeededToRefreshNative() != 0; -bool isNewTransactionExist() => isNewTransactionExistNative() != 0; +//bool isNewTransactionExist() => isNewTransactionExistNative() != 0; String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); @@ -139,29 +134,49 @@ String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); String getAddress({int accountIndex = 0, int addressIndex = 0}) => convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); -int getFullBalance({int accountIndex = 0}) => - getFullBalanceNative(accountIndex); +int getFullBalance({int accountIndex = 0}) => getFullBalanceNative(accountIndex); -int getUnlockedBalance({int accountIndex = 0}) => - getUnlockedBalanceNative(accountIndex); +int getUnlockedBalance({int accountIndex = 0}) => getUnlockedBalanceNative(accountIndex); int getCurrentHeight(int hWallet) { - calls.getWalletStatus(hWallet); - return -1; - //return getCurrentHeightNative(); + final json = calls.getWalletStatus(hWallet); + final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + return walletStatus.currentWalletHeight; } -int getNodeHeightSync() => getNodeHeightNative(); +int getNodeHeightSync(int hWallet) { + final json = calls.getWalletStatus(hWallet); + final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + return walletStatus.currentDaemonHeight; +} + +// int getWalletInfo(int hWallet) { +// final json = calls.getWalletInfo(hWallet); +// final walletInfo = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); +// zanoSeed = walletInfo.wiExtended.seed; +// zanoKeys = ZanoWalletKeys( +// privateSpendKey: walletInfo.wiExtended.spendPrivateKey, +// privateViewKey: walletInfo.wiExtended.viewPrivateKey, +// publicSpendKey: walletInfo.wiExtended.spendPublicKey, +// publicViewKey: walletInfo.wiExtended.viewPublicKey, +// ); +// return 0; +// } + +int getTxFee(int priority) { + return calls.getCurrentTxFee(priority); +} bool isConnectedSync() => isConnectedNative() != 0; -bool setupNodeSync( - {required String address, - String? login, - String? password, - bool useSSL = false, - bool isLightWallet = false, - /*String? socksProxyAddress*/}) { +bool setupNodeSync({ + required String address, + String? login, + String? password, + bool useSSL = false, + bool isLightWallet = false, + /*String? socksProxyAddress*/ +}) { final addressPointer = address.toNativeUtf8(); Pointer? loginPointer; Pointer? socksProxyAddressPointer; @@ -180,7 +195,8 @@ bool setupNodeSync( }*/ final errorMessagePointer = ''.toNativeUtf8(); - debugPrint("setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); + debugPrint( + "setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); // TODO: here can be ZERO! upd: no final isSetupNode = setupNodeNative( addressPointer, @@ -212,15 +228,14 @@ bool setupNodeSync( return isSetupNode; } -void startRefreshSync() => startRefreshNative(); +//void startRefreshSync() => startRefreshNative(); Future connectToNode() async => connecToNodeNative() != 0; -void setRefreshFromBlockHeight({required int height}) => - setRefreshFromBlockHeightNative(height); +void setRefreshFromBlockHeight({required int height}) => setRefreshFromBlockHeightNative(height); -void setRecoveringFromSeed({required bool isRecovery}) => - setRecoveringFromSeedNative(_boolToInt(isRecovery)); +// void setRecoveringFromSeed({required bool isRecovery}) => +// setRecoveringFromSeedNative(_boolToInt(isRecovery)); void storeSync(int hWallet) { calls.store(hWallet); @@ -247,17 +262,13 @@ void setPasswordSync(String password) { void closeCurrentWallet() => closeCurrentWalletNative(); -String getSecretViewKey() => - convertUTF8ToString(pointer: getSecretViewKeyNative()); +String getSecretViewKey() => convertUTF8ToString(pointer: getSecretViewKeyNative()); -String getPublicViewKey() => - convertUTF8ToString(pointer: getPublicViewKeyNative()); +String getPublicViewKey() => convertUTF8ToString(pointer: getPublicViewKeyNative()); -String getSecretSpendKey() => - convertUTF8ToString(pointer: getSecretSpendKeyNative()); +String getSecretSpendKey() => convertUTF8ToString(pointer: getSecretSpendKeyNative()); -String getPublicSpendKey() => - convertUTF8ToString(pointer: getPublicSpendKeyNative()); +String getPublicSpendKey() => convertUTF8ToString(pointer: getPublicSpendKeyNative()); class SyncListener { SyncListener(this.onNewBlock, this.onNewTransaction) @@ -273,36 +284,54 @@ class SyncListener { int _lastKnownBlockHeight; int _initialSyncHeight; - Future getNodeHeightOrUpdate(int baseHeight) async { + Future getNodeHeightOrUpdate(int hWallet, int baseHeight) async { if (_cachedBlockchainHeight < baseHeight || _cachedBlockchainHeight == 0) { - _cachedBlockchainHeight = await getNodeHeight(); + _cachedBlockchainHeight = await compute(getNodeHeightSync, hWallet); } return _cachedBlockchainHeight; } - void start() { + void start(ZanoWalletBase wallet, int hWallet) async { _cachedBlockchainHeight = 0; _lastKnownBlockHeight = 0; _initialSyncHeight = 0; - _updateSyncInfoTimer ??= - Timer.periodic(Duration(milliseconds: 1200), (_) async { - if (isNewTransactionExist()) { + _updateSyncInfoTimer ??= Timer.periodic(Duration(milliseconds: 1200), (_) async { + /**if (isNewTransactionExist()) { onNewTransaction?.call(); - } + }*/ - var syncHeight = getSyncingHeight(); + ///var syncHeight = getSyncingHeight(); + var syncHeight = getCurrentHeight(hWallet); if (syncHeight <= 0) { - // TODO: fix it - syncHeight = getCurrentHeight(-1); + syncHeight = getCurrentHeight(hWallet); } + //getWalletInfo(hWallet); + + final json = calls.getWalletInfo(hWallet); + final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); + wallet.seed = result.wiExtended.seed; + wallet.keys = ZanoWalletKeys( + privateSpendKey: result.wiExtended.spendPrivateKey, + privateViewKey: result.wiExtended.viewPrivateKey, + publicSpendKey: result.wiExtended.spendPublicKey, + publicViewKey: result.wiExtended.viewPublicKey, + ); + + final balance = result.wi.balances.first; + wallet.assetId = balance.assetInfo.assetId; + wallet.balance = mobx.ObservableMap.of( + {CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); + + getTxFee(hWallet); + if (_initialSyncHeight <= 0) { _initialSyncHeight = syncHeight; } - final bchHeight = await getNodeHeightOrUpdate(syncHeight); + final bchHeight = await getNodeHeightOrUpdate(hWallet, syncHeight); if (_lastKnownBlockHeight == syncHeight || syncHeight == null) { return; @@ -326,8 +355,8 @@ class SyncListener { void stop() => _updateSyncInfoTimer?.cancel(); } -SyncListener setListeners(void Function(int, int, double) onNewBlock, - void Function() onNewTransaction) { +SyncListener setListeners( + void Function(int, int, double) onNewBlock, void Function() onNewTransaction) { final listener = SyncListener(onNewBlock, onNewTransaction); /**setListenerNative();*/ return listener; @@ -346,19 +375,19 @@ bool _setupNodeSync(Map args) { /*final socksProxyAddress = (args['socksProxyAddress'] ?? '') as String;*/ return setupNodeSync( - address: address, - login: login, - password: password, - useSSL: useSSL, - isLightWallet: isLightWallet, - /*socksProxyAddress: socksProxyAddress*/); + address: address, + login: login, + password: password, + useSSL: useSSL, + isLightWallet: isLightWallet, /*socksProxyAddress: socksProxyAddress*/ + ); } bool _isConnected(Object _) => isConnectedSync(); -int _getNodeHeight(Object _) => getNodeHeightSync(); +//int _getNodeHeight(Object _) => getNodeHeightSync(); -void startRefresh() => startRefreshSync(); +//void startRefresh() => startRefreshSync(); Future setupNode( {required String address, @@ -380,11 +409,11 @@ Future store(int hWallet) => compute(_storeSync, 0); Future isConnected() => compute(_isConnected, 0); -Future getNodeHeight() => compute(_getNodeHeight, 0); +//Future getNodeHeight() => compute(_getNodeHeight, 0); void rescanBlockchainAsync() => rescanBlockchainAsyncNative(); -Future setTrustedDaemon(bool trusted) async => - setTrustedDaemonNative(_boolToInt(trusted)); +// Future setTrustedDaemon(bool trusted) async => +// setTrustedDaemonNative(_boolToInt(trusted)); Future trustedDaemon() async => trustedDaemonNative() != 0; diff --git a/cw_zano/lib/api/wallet_manager.dart b/cw_zano/lib/api/wallet_manager.dart index b2cc0e870..a121fe4db 100644 --- a/cw_zano/lib/api/wallet_manager.dart +++ b/cw_zano/lib/api/wallet_manager.dart @@ -200,11 +200,11 @@ Future _openWallet(Map args) async => loadWallet( bool _isWalletExist(String path) => isWalletExistSync(path: path); -void openWallet( - {required String path, - required String password, - int nettype = 0}) async => - loadWallet(path: path, password: password, nettype: nettype); +// void openWallet( +// {required String path, +// required String password, +// int nettype = 0}) async => +// loadWallet(path: path, password: password, nettype: nettype); Future openWalletAsync(Map args) async => compute(_openWallet, args); diff --git a/cw_zano/lib/mnemonics/english.dart b/cw_zano/lib/mnemonics/english.dart index fb464d04e..9749f974b 100644 --- a/cw_zano/lib/mnemonics/english.dart +++ b/cw_zano/lib/mnemonics/english.dart @@ -1,1630 +1,1630 @@ class EnglishMnemonics { static const words = [ - "abbey", - "abducts", - "ability", - "ablaze", - "abnormal", - "abort", - "abrasive", - "absorb", - "abyss", - "academy", - "aces", - "aching", - "acidic", - "acoustic", - "acquire", - "across", - "actress", - "acumen", - "adapt", - "addicted", - "adept", - "adhesive", - "adjust", - "adopt", - "adrenalin", - "adult", - "adventure", - "aerial", - "afar", - "affair", - "afield", - "afloat", - "afoot", - "afraid", - "after", - "against", - "agenda", - "aggravate", - "agile", - "aglow", - "agnostic", - "agony", - "agreed", - "ahead", - "aided", - "ailments", - "aimless", - "airport", - "aisle", - "ajar", - "akin", - "alarms", - "album", - "alchemy", - "alerts", - "algebra", - "alkaline", - "alley", - "almost", - "aloof", - "alpine", - "already", - "also", - "altitude", - "alumni", - "always", - "amaze", - "ambush", - "amended", - "amidst", - "ammo", - "amnesty", - "among", - "amply", - "amused", - "anchor", - "android", - "anecdote", - "angled", - "ankle", - "annoyed", - "answers", - "antics", - "anvil", - "anxiety", - "anybody", - "apart", - "apex", - "aphid", - "aplomb", - "apology", - "apply", - "apricot", - "aptitude", - "aquarium", - "arbitrary", - "archer", - "ardent", - "arena", - "argue", - "arises", - "army", - "around", - "arrow", - "arsenic", - "artistic", - "ascend", - "ashtray", - "aside", - "asked", - "asleep", - "aspire", - "assorted", - "asylum", - "athlete", - "atlas", - "atom", - "atrium", - "attire", - "auburn", - "auctions", - "audio", - "august", - "aunt", - "austere", - "autumn", - "avatar", - "avidly", - "avoid", - "awakened", - "awesome", - "awful", - "awkward", - "awning", - "awoken", - "axes", - "axis", - "axle", - "aztec", - "azure", - "baby", - "bacon", - "badge", - "baffles", - "bagpipe", - "bailed", - "bakery", - "balding", - "bamboo", - "banjo", - "baptism", - "basin", - "batch", - "bawled", - "bays", - "because", - "beer", - "befit", - "begun", - "behind", - "being", - "below", - "bemused", - "benches", - "berries", - "bested", - "betting", - "bevel", - "beware", - "beyond", - "bias", - "bicycle", - "bids", - "bifocals", - "biggest", - "bikini", - "bimonthly", - "binocular", - "biology", - "biplane", - "birth", - "biscuit", - "bite", - "biweekly", - "blender", - "blip", - "bluntly", - "boat", - "bobsled", - "bodies", - "bogeys", - "boil", - "boldly", - "bomb", - "border", - "boss", - "both", - "bounced", - "bovine", - "bowling", - "boxes", - "boyfriend", - "broken", - "brunt", - "bubble", - "buckets", - "budget", - "buffet", - "bugs", - "building", - "bulb", - "bumper", - "bunch", - "business", - "butter", - "buying", - "buzzer", - "bygones", - "byline", - "bypass", - "cabin", - "cactus", - "cadets", - "cafe", - "cage", - "cajun", - "cake", - "calamity", - "camp", - "candy", - "casket", - "catch", - "cause", - "cavernous", - "cease", - "cedar", - "ceiling", - "cell", - "cement", - "cent", - "certain", - "chlorine", - "chrome", - "cider", - "cigar", - "cinema", - "circle", - "cistern", - "citadel", - "civilian", - "claim", - "click", - "clue", - "coal", - "cobra", - "cocoa", - "code", - "coexist", - "coffee", - "cogs", - "cohesive", - "coils", - "colony", - "comb", - "cool", - "copy", - "corrode", - "costume", - "cottage", - "cousin", - "cowl", - "criminal", - "cube", - "cucumber", - "cuddled", - "cuffs", - "cuisine", - "cunning", - "cupcake", - "custom", - "cycling", - "cylinder", - "cynical", - "dabbing", - "dads", - "daft", - "dagger", - "daily", - "damp", - "dangerous", - "dapper", - "darted", - "dash", - "dating", - "dauntless", - "dawn", - "daytime", - "dazed", - "debut", - "decay", - "dedicated", - "deepest", - "deftly", - "degrees", - "dehydrate", - "deity", - "dejected", - "delayed", - "demonstrate", - "dented", - "deodorant", - "depth", - "desk", - "devoid", - "dewdrop", - "dexterity", - "dialect", - "dice", - "diet", - "different", - "digit", - "dilute", - "dime", - "dinner", - "diode", - "diplomat", - "directed", - "distance", - "ditch", - "divers", - "dizzy", - "doctor", - "dodge", - "does", - "dogs", - "doing", - "dolphin", - "domestic", - "donuts", - "doorway", - "dormant", - "dosage", - "dotted", - "double", - "dove", - "down", - "dozen", - "dreams", - "drinks", - "drowning", - "drunk", - "drying", - "dual", - "dubbed", - "duckling", - "dude", - "duets", - "duke", - "dullness", - "dummy", - "dunes", - "duplex", - "duration", - "dusted", - "duties", - "dwarf", - "dwelt", - "dwindling", - "dying", - "dynamite", - "dyslexic", - "each", - "eagle", - "earth", - "easy", - "eating", - "eavesdrop", - "eccentric", - "echo", - "eclipse", - "economics", - "ecstatic", - "eden", - "edgy", - "edited", - "educated", - "eels", - "efficient", - "eggs", - "egotistic", - "eight", - "either", - "eject", - "elapse", - "elbow", - "eldest", - "eleven", - "elite", - "elope", - "else", - "eluded", - "emails", - "ember", - "emerge", - "emit", - "emotion", - "empty", - "emulate", - "energy", - "enforce", - "enhanced", - "enigma", - "enjoy", - "enlist", - "enmity", - "enough", - "enraged", - "ensign", - "entrance", - "envy", - "epoxy", - "equip", - "erase", - "erected", - "erosion", - "error", - "eskimos", - "espionage", - "essential", - "estate", - "etched", - "eternal", - "ethics", - "etiquette", - "evaluate", - "evenings", - "evicted", - "evolved", - "examine", - "excess", - "exhale", - "exit", - "exotic", - "exquisite", - "extra", - "exult", - "fabrics", - "factual", - "fading", - "fainted", - "faked", - "fall", - "family", - "fancy", - "farming", - "fatal", - "faulty", - "fawns", - "faxed", - "fazed", - "feast", - "february", - "federal", - "feel", - "feline", - "females", - "fences", - "ferry", - "festival", - "fetches", - "fever", - "fewest", - "fiat", - "fibula", - "fictional", - "fidget", - "fierce", - "fifteen", - "fight", - "films", - "firm", - "fishing", - "fitting", - "five", - "fixate", - "fizzle", - "fleet", - "flippant", - "flying", - "foamy", - "focus", - "foes", - "foggy", - "foiled", - "folding", - "fonts", - "foolish", - "fossil", - "fountain", - "fowls", - "foxes", - "foyer", - "framed", - "friendly", - "frown", - "fruit", - "frying", - "fudge", - "fuel", - "fugitive", - "fully", - "fuming", - "fungal", - "furnished", - "fuselage", - "future", - "fuzzy", - "gables", - "gadget", - "gags", - "gained", - "galaxy", - "gambit", - "gang", - "gasp", - "gather", - "gauze", - "gave", - "gawk", - "gaze", - "gearbox", - "gecko", - "geek", - "gels", - "gemstone", - "general", - "geometry", - "germs", - "gesture", - "getting", - "geyser", - "ghetto", - "ghost", - "giant", - "giddy", - "gifts", - "gigantic", - "gills", - "gimmick", - "ginger", - "girth", - "giving", - "glass", - "gleeful", - "glide", - "gnaw", - "gnome", - "goat", - "goblet", - "godfather", - "goes", - "goggles", - "going", - "goldfish", - "gone", - "goodbye", - "gopher", - "gorilla", - "gossip", - "gotten", - "gourmet", - "governing", - "gown", - "greater", - "grunt", - "guarded", - "guest", - "guide", - "gulp", - "gumball", - "guru", - "gusts", - "gutter", - "guys", - "gymnast", - "gypsy", - "gyrate", - "habitat", - "hacksaw", - "haggled", - "hairy", - "hamburger", - "happens", - "hashing", - "hatchet", - "haunted", - "having", - "hawk", - "haystack", - "hazard", - "hectare", - "hedgehog", - "heels", - "hefty", - "height", - "hemlock", - "hence", - "heron", - "hesitate", - "hexagon", - "hickory", - "hiding", - "highway", - "hijack", - "hiker", - "hills", - "himself", - "hinder", - "hippo", - "hire", - "history", - "hitched", - "hive", - "hoax", - "hobby", - "hockey", - "hoisting", - "hold", - "honked", - "hookup", - "hope", - "hornet", - "hospital", - "hotel", - "hounded", - "hover", - "howls", - "hubcaps", - "huddle", - "huge", - "hull", - "humid", - "hunter", - "hurried", - "husband", - "huts", - "hybrid", - "hydrogen", - "hyper", - "iceberg", - "icing", - "icon", - "identity", - "idiom", - "idled", - "idols", - "igloo", - "ignore", - "iguana", - "illness", - "imagine", - "imbalance", - "imitate", - "impel", - "inactive", - "inbound", - "incur", - "industrial", - "inexact", - "inflamed", - "ingested", - "initiate", - "injury", - "inkling", - "inline", - "inmate", - "innocent", - "inorganic", - "input", - "inquest", - "inroads", - "insult", - "intended", - "inundate", - "invoke", - "inwardly", - "ionic", - "irate", - "iris", - "irony", - "irritate", - "island", - "isolated", - "issued", - "italics", - "itches", - "items", - "itinerary", - "itself", - "ivory", - "jabbed", - "jackets", - "jaded", - "jagged", - "jailed", - "jamming", - "january", - "jargon", - "jaunt", - "javelin", - "jaws", - "jazz", - "jeans", - "jeers", - "jellyfish", - "jeopardy", - "jerseys", - "jester", - "jetting", - "jewels", - "jigsaw", - "jingle", - "jittery", - "jive", - "jobs", - "jockey", - "jogger", - "joining", - "joking", - "jolted", - "jostle", - "journal", - "joyous", - "jubilee", - "judge", - "juggled", - "juicy", - "jukebox", - "july", - "jump", - "junk", - "jury", - "justice", - "juvenile", - "kangaroo", - "karate", - "keep", - "kennel", - "kept", - "kernels", - "kettle", - "keyboard", - "kickoff", - "kidneys", - "king", - "kiosk", - "kisses", - "kitchens", - "kiwi", - "knapsack", - "knee", - "knife", - "knowledge", - "knuckle", - "koala", - "laboratory", - "ladder", - "lagoon", - "lair", - "lakes", - "lamb", - "language", - "laptop", - "large", - "last", - "later", - "launching", - "lava", - "lawsuit", - "layout", - "lazy", - "lectures", - "ledge", - "leech", - "left", - "legion", - "leisure", - "lemon", - "lending", - "leopard", - "lesson", - "lettuce", - "lexicon", - "liar", - "library", - "licks", - "lids", - "lied", - "lifestyle", - "light", - "likewise", - "lilac", - "limits", - "linen", - "lion", - "lipstick", - "liquid", - "listen", - "lively", - "loaded", - "lobster", - "locker", - "lodge", - "lofty", - "logic", - "loincloth", - "long", - "looking", - "lopped", - "lordship", - "losing", - "lottery", - "loudly", - "love", - "lower", - "loyal", - "lucky", - "luggage", - "lukewarm", - "lullaby", - "lumber", - "lunar", - "lurk", - "lush", - "luxury", - "lymph", - "lynx", - "lyrics", - "macro", - "madness", - "magically", - "mailed", - "major", - "makeup", - "malady", - "mammal", - "maps", - "masterful", - "match", - "maul", - "maverick", - "maximum", - "mayor", - "maze", - "meant", - "mechanic", - "medicate", - "meeting", - "megabyte", - "melting", - "memoir", - "menu", - "merger", - "mesh", - "metro", - "mews", - "mice", - "midst", - "mighty", - "mime", - "mirror", - "misery", - "mittens", - "mixture", - "moat", - "mobile", - "mocked", - "mohawk", - "moisture", - "molten", - "moment", - "money", - "moon", - "mops", - "morsel", - "mostly", - "motherly", - "mouth", - "movement", - "mowing", - "much", - "muddy", - "muffin", - "mugged", - "mullet", - "mumble", - "mundane", - "muppet", - "mural", - "musical", - "muzzle", - "myriad", - "mystery", - "myth", - "nabbing", - "nagged", - "nail", - "names", - "nanny", - "napkin", - "narrate", - "nasty", - "natural", - "nautical", - "navy", - "nearby", - "necklace", - "needed", - "negative", - "neither", - "neon", - "nephew", - "nerves", - "nestle", - "network", - "neutral", - "never", - "newt", - "nexus", - "nibs", - "niche", - "niece", - "nifty", - "nightly", - "nimbly", - "nineteen", - "nirvana", - "nitrogen", - "nobody", - "nocturnal", - "nodes", - "noises", - "nomad", - "noodles", - "northern", - "nostril", - "noted", - "nouns", - "novelty", - "nowhere", - "nozzle", - "nuance", - "nucleus", - "nudged", - "nugget", - "nuisance", - "null", - "number", - "nuns", - "nurse", - "nutshell", - "nylon", - "oaks", - "oars", - "oasis", - "oatmeal", - "obedient", - "object", - "obliged", - "obnoxious", - "observant", - "obtains", - "obvious", - "occur", - "ocean", - "october", - "odds", - "odometer", - "offend", - "often", - "oilfield", - "ointment", - "okay", - "older", - "olive", - "olympics", - "omega", - "omission", - "omnibus", - "onboard", - "oncoming", - "oneself", - "ongoing", - "onion", - "online", - "onslaught", - "onto", - "onward", - "oozed", - "opacity", - "opened", - "opposite", - "optical", - "opus", - "orange", - "orbit", - "orchid", - "orders", - "organs", - "origin", - "ornament", - "orphans", - "oscar", - "ostrich", - "otherwise", - "otter", - "ouch", - "ought", - "ounce", - "ourselves", - "oust", - "outbreak", - "oval", - "oven", - "owed", - "owls", - "owner", - "oxidant", - "oxygen", - "oyster", - "ozone", - "pact", - "paddles", - "pager", - "pairing", - "palace", - "pamphlet", - "pancakes", - "paper", - "paradise", - "pastry", - "patio", - "pause", - "pavements", - "pawnshop", - "payment", - "peaches", - "pebbles", - "peculiar", - "pedantic", - "peeled", - "pegs", - "pelican", - "pencil", - "people", - "pepper", - "perfect", - "pests", - "petals", - "phase", - "pheasants", - "phone", - "phrases", - "physics", - "piano", - "picked", - "pierce", - "pigment", - "piloted", - "pimple", - "pinched", - "pioneer", - "pipeline", - "pirate", - "pistons", - "pitched", - "pivot", - "pixels", - "pizza", - "playful", - "pledge", - "pliers", - "plotting", - "plus", - "plywood", - "poaching", - "pockets", - "podcast", - "poetry", - "point", - "poker", - "polar", - "ponies", - "pool", - "popular", - "portents", - "possible", - "potato", - "pouch", - "poverty", - "powder", - "pram", - "present", - "pride", - "problems", - "pruned", - "prying", - "psychic", - "public", - "puck", - "puddle", - "puffin", - "pulp", - "pumpkins", - "punch", - "puppy", - "purged", - "push", - "putty", - "puzzled", - "pylons", - "pyramid", - "python", - "queen", - "quick", - "quote", - "rabbits", - "racetrack", - "radar", - "rafts", - "rage", - "railway", - "raking", - "rally", - "ramped", - "randomly", - "rapid", - "rarest", - "rash", - "rated", - "ravine", - "rays", - "razor", - "react", - "rebel", - "recipe", - "reduce", - "reef", - "refer", - "regular", - "reheat", - "reinvest", - "rejoices", - "rekindle", - "relic", - "remedy", - "renting", - "reorder", - "repent", - "request", - "reruns", - "rest", - "return", - "reunion", - "revamp", - "rewind", - "rhino", - "rhythm", - "ribbon", - "richly", - "ridges", - "rift", - "rigid", - "rims", - "ringing", - "riots", - "ripped", - "rising", - "ritual", - "river", - "roared", - "robot", - "rockets", - "rodent", - "rogue", - "roles", - "romance", - "roomy", - "roped", - "roster", - "rotate", - "rounded", - "rover", - "rowboat", - "royal", - "ruby", - "rudely", - "ruffled", - "rugged", - "ruined", - "ruling", - "rumble", - "runway", - "rural", - "rustled", - "ruthless", - "sabotage", - "sack", - "sadness", - "safety", - "saga", - "sailor", - "sake", - "salads", - "sample", - "sanity", - "sapling", - "sarcasm", - "sash", - "satin", - "saucepan", - "saved", - "sawmill", - "saxophone", - "sayings", - "scamper", - "scenic", - "school", - "science", - "scoop", - "scrub", - "scuba", - "seasons", - "second", - "sedan", - "seeded", - "segments", - "seismic", - "selfish", - "semifinal", - "sensible", - "september", - "sequence", - "serving", - "session", - "setup", - "seventh", - "sewage", - "shackles", - "shelter", - "shipped", - "shocking", - "shrugged", - "shuffled", - "shyness", - "siblings", - "sickness", - "sidekick", - "sieve", - "sifting", - "sighting", - "silk", - "simplest", - "sincerely", - "sipped", - "siren", - "situated", - "sixteen", - "sizes", - "skater", - "skew", - "skirting", - "skulls", - "skydive", - "slackens", - "sleepless", - "slid", - "slower", - "slug", - "smash", - "smelting", - "smidgen", - "smog", - "smuggled", - "snake", - "sneeze", - "sniff", - "snout", - "snug", - "soapy", - "sober", - "soccer", - "soda", - "software", - "soggy", - "soil", - "solved", - "somewhere", - "sonic", - "soothe", - "soprano", - "sorry", - "southern", - "sovereign", - "sowed", - "soya", - "space", - "speedy", - "sphere", - "spiders", - "splendid", - "spout", - "sprig", - "spud", - "spying", - "square", - "stacking", - "stellar", - "stick", - "stockpile", - "strained", - "stunning", - "stylishly", - "subtly", - "succeed", - "suddenly", - "suede", - "suffice", - "sugar", - "suitcase", - "sulking", - "summon", - "sunken", - "superior", - "surfer", - "sushi", - "suture", - "swagger", - "swept", - "swiftly", - "sword", - "swung", - "syllabus", - "symptoms", - "syndrome", - "syringe", - "system", - "taboo", - "tacit", - "tadpoles", - "tagged", - "tail", - "taken", - "talent", - "tamper", - "tanks", - "tapestry", - "tarnished", - "tasked", - "tattoo", - "taunts", - "tavern", - "tawny", - "taxi", - "teardrop", - "technical", - "tedious", - "teeming", - "tell", - "template", - "tender", - "tepid", - "tequila", - "terminal", - "testing", - "tether", - "textbook", - "thaw", - "theatrics", - "thirsty", - "thorn", - "threaten", - "thumbs", - "thwart", - "ticket", - "tidy", - "tiers", - "tiger", - "tilt", - "timber", - "tinted", - "tipsy", - "tirade", - "tissue", - "titans", - "toaster", - "tobacco", - "today", - "toenail", - "toffee", - "together", - "toilet", - "token", - "tolerant", - "tomorrow", - "tonic", - "toolbox", - "topic", - "torch", - "tossed", - "total", - "touchy", - "towel", - "toxic", - "toyed", - "trash", - "trendy", - "tribal", - "trolling", - "truth", - "trying", - "tsunami", - "tubes", - "tucks", - "tudor", - "tuesday", - "tufts", - "tugs", - "tuition", - "tulips", - "tumbling", - "tunnel", - "turnip", - "tusks", - "tutor", - "tuxedo", - "twang", - "tweezers", - "twice", - "twofold", - "tycoon", - "typist", - "tyrant", - "ugly", - "ulcers", - "ultimate", - "umbrella", - "umpire", - "unafraid", - "unbending", - "uncle", - "under", - "uneven", - "unfit", - "ungainly", - "unhappy", - "union", - "unjustly", - "unknown", - "unlikely", - "unmask", - "unnoticed", - "unopened", - "unplugs", - "unquoted", - "unrest", - "unsafe", - "until", - "unusual", - "unveil", - "unwind", - "unzip", - "upbeat", - "upcoming", - "update", - "upgrade", - "uphill", - "upkeep", - "upload", - "upon", - "upper", - "upright", - "upstairs", - "uptight", - "upwards", - "urban", - "urchins", - "urgent", - "usage", - "useful", - "usher", - "using", - "usual", - "utensils", - "utility", - "utmost", - "utopia", - "uttered", - "vacation", - "vague", - "vain", - "value", - "vampire", - "vane", - "vapidly", - "vary", - "vastness", - "vats", - "vaults", - "vector", - "veered", - "vegan", - "vehicle", - "vein", - "velvet", - "venomous", - "verification", - "vessel", - "veteran", - "vexed", - "vials", - "vibrate", - "victim", - "video", - "viewpoint", - "vigilant", - "viking", - "village", - "vinegar", - "violin", - "vipers", - "virtual", - "visited", - "vitals", - "vivid", - "vixen", - "vocal", - "vogue", - "voice", - "volcano", - "vortex", - "voted", - "voucher", - "vowels", - "voyage", - "vulture", - "wade", - "waffle", - "wagtail", - "waist", - "waking", - "wallets", - "wanted", - "warped", - "washing", - "water", - "waveform", - "waxing", - "wayside", - "weavers", - "website", - "wedge", - "weekday", - "weird", - "welders", - "went", - "wept", - "were", - "western", - "wetsuit", - "whale", - "when", - "whipped", - "whole", - "wickets", - "width", - "wield", - "wife", - "wiggle", - "wildly", - "winter", - "wipeout", - "wiring", - "wise", - "withdrawn", - "wives", - "wizard", - "wobbly", - "woes", - "woken", - "wolf", - "womanly", - "wonders", - "woozy", - "worry", - "wounded", - "woven", - "wrap", - "wrist", - "wrong", - "yacht", - "yahoo", - "yanks", - "yard", - "yawning", - "yearbook", - "yellow", - "yesterday", - "yeti", - "yields", - "yodel", - "yoga", - "younger", - "yoyo", - "zapped", - "zeal", - "zebra", - "zero", - "zesty", - "zigzags", - "zinger", - "zippers", - "zodiac", - "zombie", - "zones", - "zoom" + "like", + "just", + "love", + "know", + "never", + "want", + "time", + "out", + "there", + "make", + "look", + "eye", + "down", + "only", + "think", + "heart", + "back", + "then", + "into", + "about", + "more", + "away", + "still", + "them", + "take", + "thing", + "even", + "through", + "long", + "always", + "world", + "too", + "friend", + "tell", + "try", + "hand", + "thought", + "over", + "here", + "other", + "need", + "smile", + "again", + "much", + "cry", + "been", + "night", + "ever", + "little", + "said", + "end", + "some", + "those", + "around", + "mind", + "people", + "girl", + "leave", + "dream", + "left", + "turn", + "myself", + "give", + "nothing", + "really", + "off", + "before", + "something", + "find", + "walk", + "wish", + "good", + "once", + "place", + "ask", + "stop", + "keep", + "watch", + "seem", + "everything", + "wait", + "got", + "yet", + "made", + "remember", + "start", + "alone", + "run", + "hope", + "maybe", + "believe", + "body", + "hate", + "after", + "close", + "talk", + "stand", + "own", + "each", + "hurt", + "help", + "home", + "god", + "soul", + "new", + "many", + "two", + "inside", + "should", + "true", + "first", + "fear", + "mean", + "better", + "play", + "another", + "gone", + "change", + "use", + "wonder", + "someone", + "hair", + "cold", + "open", + "best", + "any", + "behind", + "happen", + "water", + "dark", + "laugh", + "stay", + "forever", + "name", + "work", + "show", + "sky", + "break", + "came", + "deep", + "door", + "put", + "black", + "together", + "upon", + "happy", + "such", + "great", + "white", + "matter", + "fill", + "past", + "please", + "burn", + "cause", + "enough", + "touch", + "moment", + "soon", + "voice", + "scream", + "anything", + "stare", + "sound", + "red", + "everyone", + "hide", + "kiss", + "truth", + "death", + "beautiful", + "mine", + "blood", + "broken", + "very", + "pass", + "next", + "forget", + "tree", + "wrong", + "air", + "mother", + "understand", + "lip", + "hit", + "wall", + "memory", + "sleep", + "free", + "high", + "realize", + "school", + "might", + "skin", + "sweet", + "perfect", + "blue", + "kill", + "breath", + "dance", + "against", + "fly", + "between", + "grow", + "strong", + "under", + "listen", + "bring", + "sometimes", + "speak", + "pull", + "person", + "become", + "family", + "begin", + "ground", + "real", + "small", + "father", + "sure", + "feet", + "rest", + "young", + "finally", + "land", + "across", + "today", + "different", + "guy", + "line", + "fire", + "reason", + "reach", + "second", + "slowly", + "write", + "eat", + "smell", + "mouth", + "step", + "learn", + "three", + "floor", + "promise", + "breathe", + "darkness", + "push", + "earth", + "guess", + "save", + "song", + "above", + "along", + "both", + "color", + "house", + "almost", + "sorry", + "anymore", + "brother", + "okay", + "dear", + "game", + "fade", + "already", + "apart", + "warm", + "beauty", + "heard", + "notice", + "question", + "shine", + "began", + "piece", + "whole", + "shadow", + "secret", + "street", + "within", + "finger", + "point", + "morning", + "whisper", + "child", + "moon", + "green", + "story", + "glass", + "kid", + "silence", + "since", + "soft", + "yourself", + "empty", + "shall", + "angel", + "answer", + "baby", + "bright", + "dad", + "path", + "worry", + "hour", + "drop", + "follow", + "power", + "war", + "half", + "flow", + "heaven", + "act", + "chance", + "fact", + "least", + "tired", + "children", + "near", + "quite", + "afraid", + "rise", + "sea", + "taste", + "window", + "cover", + "nice", + "trust", + "lot", + "sad", + "cool", + "force", + "peace", + "return", + "blind", + "easy", + "ready", + "roll", + "rose", + "drive", + "held", + "music", + "beneath", + "hang", + "mom", + "paint", + "emotion", + "quiet", + "clear", + "cloud", + "few", + "pretty", + "bird", + "outside", + "paper", + "picture", + "front", + "rock", + "simple", + "anyone", + "meant", + "reality", + "road", + "sense", + "waste", + "bit", + "leaf", + "thank", + "happiness", + "meet", + "men", + "smoke", + "truly", + "decide", + "self", + "age", + "book", + "form", + "alive", + "carry", + "escape", + "damn", + "instead", + "able", + "ice", + "minute", + "throw", + "catch", + "leg", + "ring", + "course", + "goodbye", + "lead", + "poem", + "sick", + "corner", + "desire", + "known", + "problem", + "remind", + "shoulder", + "suppose", + "toward", + "wave", + "drink", + "jump", + "woman", + "pretend", + "sister", + "week", + "human", + "joy", + "crack", + "grey", + "pray", + "surprise", + "dry", + "knee", + "less", + "search", + "bleed", + "caught", + "clean", + "embrace", + "future", + "king", + "son", + "sorrow", + "chest", + "hug", + "remain", + "sat", + "worth", + "blow", + "daddy", + "final", + "parent", + "tight", + "also", + "create", + "lonely", + "safe", + "cross", + "dress", + "evil", + "silent", + "bone", + "fate", + "perhaps", + "anger", + "class", + "scar", + "snow", + "tiny", + "tonight", + "continue", + "control", + "dog", + "edge", + "mirror", + "month", + "suddenly", + "comfort", + "given", + "loud", + "quickly", + "gaze", + "plan", + "rush", + "stone", + "town", + "battle", + "ignore", + "spirit", + "stood", + "stupid", + "yours", + "brown", + "build", + "dust", + "hey", + "kept", + "pay", + "phone", + "twist", + "although", + "ball", + "beyond", + "hidden", + "nose", + "taken", + "fail", + "float", + "pure", + "somehow", + "wash", + "wrap", + "angry", + "cheek", + "creature", + "forgotten", + "heat", + "rip", + "single", + "space", + "special", + "weak", + "whatever", + "yell", + "anyway", + "blame", + "job", + "choose", + "country", + "curse", + "drift", + "echo", + "figure", + "grew", + "laughter", + "neck", + "suffer", + "worse", + "yeah", + "disappear", + "foot", + "forward", + "knife", + "mess", + "somewhere", + "stomach", + "storm", + "beg", + "idea", + "lift", + "offer", + "breeze", + "field", + "five", + "often", + "simply", + "stuck", + "win", + "allow", + "confuse", + "enjoy", + "except", + "flower", + "seek", + "strength", + "calm", + "grin", + "gun", + "heavy", + "hill", + "large", + "ocean", + "shoe", + "sigh", + "straight", + "summer", + "tongue", + "accept", + "crazy", + "everyday", + "exist", + "grass", + "mistake", + "sent", + "shut", + "surround", + "table", + "ache", + "brain", + "destroy", + "heal", + "nature", + "shout", + "sign", + "stain", + "choice", + "doubt", + "glance", + "glow", + "mountain", + "queen", + "stranger", + "throat", + "tomorrow", + "city", + "either", + "fish", + "flame", + "rather", + "shape", + "spin", + "spread", + "ash", + "distance", + "finish", + "image", + "imagine", + "important", + "nobody", + "shatter", + "warmth", + "became", + "feed", + "flesh", + "funny", + "lust", + "shirt", + "trouble", + "yellow", + "attention", + "bare", + "bite", + "money", + "protect", + "amaze", + "appear", + "born", + "choke", + "completely", + "daughter", + "fresh", + "friendship", + "gentle", + "probably", + "six", + "deserve", + "expect", + "grab", + "middle", + "nightmare", + "river", + "thousand", + "weight", + "worst", + "wound", + "barely", + "bottle", + "cream", + "regret", + "relationship", + "stick", + "test", + "crush", + "endless", + "fault", + "itself", + "rule", + "spill", + "art", + "circle", + "join", + "kick", + "mask", + "master", + "passion", + "quick", + "raise", + "smooth", + "unless", + "wander", + "actually", + "broke", + "chair", + "deal", + "favorite", + "gift", + "note", + "number", + "sweat", + "box", + "chill", + "clothes", + "lady", + "mark", + "park", + "poor", + "sadness", + "tie", + "animal", + "belong", + "brush", + "consume", + "dawn", + "forest", + "innocent", + "pen", + "pride", + "stream", + "thick", + "clay", + "complete", + "count", + "draw", + "faith", + "press", + "silver", + "struggle", + "surface", + "taught", + "teach", + "wet", + "bless", + "chase", + "climb", + "enter", + "letter", + "melt", + "metal", + "movie", + "stretch", + "swing", + "vision", + "wife", + "beside", + "crash", + "forgot", + "guide", + "haunt", + "joke", + "knock", + "plant", + "pour", + "prove", + "reveal", + "steal", + "stuff", + "trip", + "wood", + "wrist", + "bother", + "bottom", + "crawl", + "crowd", + "fix", + "forgive", + "frown", + "grace", + "loose", + "lucky", + "party", + "release", + "surely", + "survive", + "teacher", + "gently", + "grip", + "speed", + "suicide", + "travel", + "treat", + "vein", + "written", + "cage", + "chain", + "conversation", + "date", + "enemy", + "however", + "interest", + "million", + "page", + "pink", + "proud", + "sway", + "themselves", + "winter", + "church", + "cruel", + "cup", + "demon", + "experience", + "freedom", + "pair", + "pop", + "purpose", + "respect", + "shoot", + "softly", + "state", + "strange", + "bar", + "birth", + "curl", + "dirt", + "excuse", + "lord", + "lovely", + "monster", + "order", + "pack", + "pants", + "pool", + "scene", + "seven", + "shame", + "slide", + "ugly", + "among", + "blade", + "blonde", + "closet", + "creek", + "deny", + "drug", + "eternity", + "gain", + "grade", + "handle", + "key", + "linger", + "pale", + "prepare", + "swallow", + "swim", + "tremble", + "wheel", + "won", + "cast", + "cigarette", + "claim", + "college", + "direction", + "dirty", + "gather", + "ghost", + "hundred", + "loss", + "lung", + "orange", + "present", + "swear", + "swirl", + "twice", + "wild", + "bitter", + "blanket", + "doctor", + "everywhere", + "flash", + "grown", + "knowledge", + "numb", + "pressure", + "radio", + "repeat", + "ruin", + "spend", + "unknown", + "buy", + "clock", + "devil", + "early", + "false", + "fantasy", + "pound", + "precious", + "refuse", + "sheet", + "teeth", + "welcome", + "add", + "ahead", + "block", + "bury", + "caress", + "content", + "depth", + "despite", + "distant", + "marry", + "purple", + "threw", + "whenever", + "bomb", + "dull", + "easily", + "grasp", + "hospital", + "innocence", + "normal", + "receive", + "reply", + "rhyme", + "shade", + "someday", + "sword", + "toe", + "visit", + "asleep", + "bought", + "center", + "consider", + "flat", + "hero", + "history", + "ink", + "insane", + "muscle", + "mystery", + "pocket", + "reflection", + "shove", + "silently", + "smart", + "soldier", + "spot", + "stress", + "train", + "type", + "view", + "whether", + "bus", + "energy", + "explain", + "holy", + "hunger", + "inch", + "magic", + "mix", + "noise", + "nowhere", + "prayer", + "presence", + "shock", + "snap", + "spider", + "study", + "thunder", + "trail", + "admit", + "agree", + "bag", + "bang", + "bound", + "butterfly", + "cute", + "exactly", + "explode", + "familiar", + "fold", + "further", + "pierce", + "reflect", + "scent", + "selfish", + "sharp", + "sink", + "spring", + "stumble", + "universe", + "weep", + "women", + "wonderful", + "action", + "ancient", + "attempt", + "avoid", + "birthday", + "branch", + "chocolate", + "core", + "depress", + "drunk", + "especially", + "focus", + "fruit", + "honest", + "match", + "palm", + "perfectly", + "pillow", + "pity", + "poison", + "roar", + "shift", + "slightly", + "thump", + "truck", + "tune", + "twenty", + "unable", + "wipe", + "wrote", + "coat", + "constant", + "dinner", + "drove", + "egg", + "eternal", + "flight", + "flood", + "frame", + "freak", + "gasp", + "glad", + "hollow", + "motion", + "peer", + "plastic", + "root", + "screen", + "season", + "sting", + "strike", + "team", + "unlike", + "victim", + "volume", + "warn", + "weird", + "attack", + "await", + "awake", + "built", + "charm", + "crave", + "despair", + "fought", + "grant", + "grief", + "horse", + "limit", + "message", + "ripple", + "sanity", + "scatter", + "serve", + "split", + "string", + "trick", + "annoy", + "blur", + "boat", + "brave", + "clearly", + "cling", + "connect", + "fist", + "forth", + "imagination", + "iron", + "jock", + "judge", + "lesson", + "milk", + "misery", + "nail", + "naked", + "ourselves", + "poet", + "possible", + "princess", + "sail", + "size", + "snake", + "society", + "stroke", + "torture", + "toss", + "trace", + "wise", + "bloom", + "bullet", + "cell", + "check", + "cost", + "darling", + "during", + "footstep", + "fragile", + "hallway", + "hardly", + "horizon", + "invisible", + "journey", + "midnight", + "mud", + "nod", + "pause", + "relax", + "shiver", + "sudden", + "value", + "youth", + "abuse", + "admire", + "blink", + "breast", + "bruise", + "constantly", + "couple", + "creep", + "curve", + "difference", + "dumb", + "emptiness", + "gotta", + "honor", + "plain", + "planet", + "recall", + "rub", + "ship", + "slam", + "soar", + "somebody", + "tightly", + "weather", + "adore", + "approach", + "bond", + "bread", + "burst", + "candle", + "coffee", + "cousin", + "crime", + "desert", + "flutter", + "frozen", + "grand", + "heel", + "hello", + "language", + "level", + "movement", + "pleasure", + "powerful", + "random", + "rhythm", + "settle", + "silly", + "slap", + "sort", + "spoken", + "steel", + "threaten", + "tumble", + "upset", + "aside", + "awkward", + "bee", + "blank", + "board", + "button", + "card", + "carefully", + "complain", + "crap", + "deeply", + "discover", + "drag", + "dread", + "effort", + "entire", + "fairy", + "giant", + "gotten", + "greet", + "illusion", + "jeans", + "leap", + "liquid", + "march", + "mend", + "nervous", + "nine", + "replace", + "rope", + "spine", + "stole", + "terror", + "accident", + "apple", + "balance", + "boom", + "childhood", + "collect", + "demand", + "depression", + "eventually", + "faint", + "glare", + "goal", + "group", + "honey", + "kitchen", + "laid", + "limb", + "machine", + "mere", + "mold", + "murder", + "nerve", + "painful", + "poetry", + "prince", + "rabbit", + "shelter", + "shore", + "shower", + "soothe", + "stair", + "steady", + "sunlight", + "tangle", + "tease", + "treasure", + "uncle", + "begun", + "bliss", + "canvas", + "cheer", + "claw", + "clutch", + "commit", + "crimson", + "crystal", + "delight", + "doll", + "existence", + "express", + "fog", + "football", + "gay", + "goose", + "guard", + "hatred", + "illuminate", + "mass", + "math", + "mourn", + "rich", + "rough", + "skip", + "stir", + "student", + "style", + "support", + "thorn", + "tough", + "yard", + "yearn", + "yesterday", + "advice", + "appreciate", + "autumn", + "bank", + "beam", + "bowl", + "capture", + "carve", + "collapse", + "confusion", + "creation", + "dove", + "feather", + "girlfriend", + "glory", + "government", + "harsh", + "hop", + "inner", + "loser", + "moonlight", + "neighbor", + "neither", + "peach", + "pig", + "praise", + "screw", + "shield", + "shimmer", + "sneak", + "stab", + "subject", + "throughout", + "thrown", + "tower", + "twirl", + "wow", + "army", + "arrive", + "bathroom", + "bump", + "cease", + "cookie", + "couch", + "courage", + "dim", + "guilt", + "howl", + "hum", + "husband", + "insult", + "led", + "lunch", + "mock", + "mostly", + "natural", + "nearly", + "needle", + "nerd", + "peaceful", + "perfection", + "pile", + "price", + "remove", + "roam", + "sanctuary", + "serious", + "shiny", + "shook", + "sob", + "stolen", + "tap", + "vain", + "void", + "warrior", + "wrinkle", + "affection", + "apologize", + "blossom", + "bounce", + "bridge", + "cheap", + "crumble", + "decision", + "descend", + "desperately", + "dig", + "dot", + "flip", + "frighten", + "heartbeat", + "huge", + "lazy", + "lick", + "odd", + "opinion", + "process", + "puzzle", + "quietly", + "retreat", + "score", + "sentence", + "separate", + "situation", + "skill", + "soak", + "square", + "stray", + "taint", + "task", + "tide", + "underneath", + "veil", + "whistle", + "anywhere", + "bedroom", + "bid", + "bloody", + "burden", + "careful", + "compare", + "concern", + "curtain", + "decay", + "defeat", + "describe", + "double", + "dreamer", + "driver", + "dwell", + "evening", + "flare", + "flicker", + "grandma", + "guitar", + "harm", + "horrible", + "hungry", + "indeed", + "lace", + "melody", + "monkey", + "nation", + "object", + "obviously", + "rainbow", + "salt", + "scratch", + "shown", + "shy", + "stage", + "stun", + "third", + "tickle", + "useless", + "weakness", + "worship", + "worthless", + "afternoon", + "beard", + "boyfriend", + "bubble", + "busy", + "certain", + "chin", + "concrete", + "desk", + "diamond", + "doom", + "drawn", + "due", + "felicity", + "freeze", + "frost", + "garden", + "glide", + "harmony", + "hopefully", + "hunt", + "jealous", + "lightning", + "mama", + "mercy", + "peel", + "physical", + "position", + "pulse", + "punch", + "quit", + "rant", + "respond", + "salty", + "sane", + "satisfy", + "savior", + "sheep", + "slept", + "social", + "sport", + "tuck", + "utter", + "valley", + "wolf", + "aim", + "alas", + "alter", + "arrow", + "awaken", + "beaten", + "belief", + "brand", + "ceiling", + "cheese", + "clue", + "confidence", + "connection", + "daily", + "disguise", + "eager", + "erase", + "essence", + "everytime", + "expression", + "fan", + "flag", + "flirt", + "foul", + "fur", + "giggle", + "glorious", + "ignorance", + "law", + "lifeless", + "measure", + "mighty", + "muse", + "north", + "opposite", + "paradise", + "patience", + "patient", + "pencil", + "petal", + "plate", + "ponder", + "possibly", + "practice", + "slice", + "spell", + "stock", + "strife", + "strip", + "suffocate", + "suit", + "tender", + "tool", + "trade", + "velvet", + "verse", + "waist", + "witch", + "aunt", + "bench", + "bold", + "cap", + "certainly", + "click", + "companion", + "creator", + "dart", + "delicate", + "determine", + "dish", + "dragon", + "drama", + "drum", + "dude", + "everybody", + "feast", + "forehead", + "former", + "fright", + "fully", + "gas", + "hook", + "hurl", + "invite", + "juice", + "manage", + "moral", + "possess", + "raw", + "rebel", + "royal", + "scale", + "scary", + "several", + "slight", + "stubborn", + "swell", + "talent", + "tea", + "terrible", + "thread", + "torment", + "trickle", + "usually", + "vast", + "violence", + "weave", + "acid", + "agony", + "ashamed", + "awe", + "belly", + "blend", + "blush", + "character", + "cheat", + "common", + "company", + "coward", + "creak", + "danger", + "deadly", + "defense", + "define", + "depend", + "desperate", + "destination", + "dew", + "duck", + "dusty", + "embarrass", + "engine", + "example", + "explore", + "foe", + "freely", + "frustrate", + "generation", + "glove", + "guilty", + "health", + "hurry", + "idiot", + "impossible", + "inhale", + "jaw", + "kingdom", + "mention", + "mist", + "moan", + "mumble", + "mutter", + "observe", + "ode", + "pathetic", + "pattern", + "pie", + "prefer", + "puff", + "rape", + "rare", + "revenge", + "rude", + "scrape", + "spiral", + "squeeze", + "strain", + "sunset", + "suspend", + "sympathy", + "thigh", + "throne", + "total", + "unseen", + "weapon", + "weary" ]; } diff --git a/cw_zano/lib/new_zano_addresses_base.dart b/cw_zano/lib/new_zano_addresses_base.dart new file mode 100644 index 000000000..4c06d5ac7 --- /dev/null +++ b/cw_zano/lib/new_zano_addresses_base.dart @@ -0,0 +1,19 @@ +import 'package:cw_core/wallet_addresses.dart'; + +class NewZanoWalletAddresses extends WalletAddresses { + @override + String address; + + NewZanoWalletAddresses(super.walletInfo): address = ""; + + @override + Future init() async { + print("NewZanoWalletAddresses init"); + } + + @override + Future updateAddressesInBox() async { + print("NewZanoWalletAddresses updateAddressesInBox"); + } + +} \ No newline at end of file diff --git a/cw_zano/lib/new_zano_wallet.dart b/cw_zano/lib/new_zano_wallet.dart new file mode 100644 index 000000000..4dbf92ce0 --- /dev/null +++ b/cw_zano/lib/new_zano_wallet.dart @@ -0,0 +1,239 @@ +import 'dart:async'; + +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_addresses.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_zano/api/model/balance.dart'; +import 'package:cw_zano/api/model/create_wallet_result.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/zano_transaction_history.dart'; +import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:mobx/src/api/observable_collections.dart'; +import 'package:cw_zano/api/wallet.dart' as zano_wallet; +import 'dart:convert'; +import 'dart:ffi'; + +import 'package:cw_zano/api/signatures.dart'; +import 'package:cw_zano/api/types.dart'; +import 'package:ffi/ffi.dart'; + +import 'api/model/zano_wallet_keys.dart'; +import 'new_zano_addresses_base.dart'; + +typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); +typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); + +class NewZanoWallet extends WalletBase { + @override + SyncStatus syncStatus; + + Timer? _autoSaveTimer; + + static const int _autoSaveInterval = 30; + + NewZanoWallet(super.walletInfo) + : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), + walletAddresses = NewZanoWalletAddresses(walletInfo), + syncStatus = NotConnectedSyncStatus() { + transactionHistory = ZanoTransactionHistory(); + } + + Future init() async { + print("NewZanoWallet init"); + if (walletInfo.isRecovery) { + print("is recovery"); + } + _autoSaveTimer = + Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); + } + + String getTransactionAddress(int accountIndex, int addressIndex) { + print("NewZanoWallet getTransactionAddress"); + return ""; + } + + @override + ObservableMap balance; + + @override + int calculateEstimatedFee(TransactionPriority priority, int? amount) { + // TODO: implement calculateEstimatedFee + throw UnimplementedError(); + } + + @override + Future changePassword(String password) { + // TODO: implement changePassword + throw UnimplementedError(); + } + + @override + void close() { + // TODO: implement close + } + + @override + Future connectToNode({required Node node}) async { + print("NewZanoWallet connecttoNode"); + try { + syncStatus = ConnectingSyncStatus(); + _setupNode(address: "195.201.107.230:33336", login: "", password: ""); + syncStatus = ConnectedSyncStatus(); + } catch (e) { + syncStatus = FailedSyncStatus(); + print("connectToNode error $e"); + } + } + + @override + Future createTransaction(Object credentials) { + // TODO: implement createTransaction + throw UnimplementedError(); + } + + @override + Future> fetchTransactions() { + // TODO: implement fetchTransactions + throw UnimplementedError(); + } + + @override + ZanoWalletKeys get keys => ZanoWalletKeys( + privateSpendKey: "", privateViewKey: "", publicSpendKey: "", publicViewKey: ""); + + @override + Future renameWalletFiles(String newWalletName) { + // TODO: implement renameWalletFiles + throw UnimplementedError(); + } + + @override + Future rescan({required int height}) { + // TODO: implement rescan + throw UnimplementedError(); + } + + @override + Future save() async { + await walletAddresses.updateAddressesInBox(); + if (hWallet != null) await zano_wallet.store(hWallet!); + } + + @override + // TODO: implement seed + String? seed = "Тут пока пусто"; + + @override + Future startSync() { + // TODO: implement startSync + throw UnimplementedError(); + } + + @override + Future? updateBalance() { + // TODO: implement updateBalance + throw UnimplementedError(); + } + + @override + NewZanoWalletAddresses walletAddresses; + + CreateWalletResult? createWalletResult; + List? balances; + int? hWallet; + final assetIds = {}; + + final _setupNodeNative = + zanoApi.lookup>('setup_node').asFunction(); + final _createWalletNative = + zanoApi.lookup>('create_wallet').asFunction(); + + final _loadWalletNative = + zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); + + bool _setupNode( + {required String address, + required String login, + required String password, + bool useSSL = false, + bool isLightWallet = false}) { + final addressPointer = address.toNativeUtf8(); + final loginPointer = login.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + print( + "setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); + final result = _intToBool(_setupNodeNative(addressPointer, loginPointer, passwordPointer, + _boolToInt(useSSL), _boolToInt(isLightWallet), errorMessagePointer)); + print("setup_node result $result"); + calloc.free(addressPointer); + calloc.free(loginPointer); + calloc.free(passwordPointer); + return result; + } + + String _createWalletSync( + {required String path, required String password, required String language, int nettype = 0}) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final languagePointer = language.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + print("create_wallet path $path password $password language $language"); + final result = _convertUTF8ToString( + pointer: _createWalletNative( + pathPointer, passwordPointer, languagePointer, nettype, errorMessagePointer)); + print("create_wallet $result"); + calloc.free(pathPointer); + calloc.free(passwordPointer); + calloc.free(languagePointer); + + return result; + } + + void createWallet({required String path, required String password}) { + final createResult = _createWalletSync(path: path, password: password, language: ""); + final address = _parseResult(createResult)!; + walletAddresses.address = address; + } + + String loadWallet(String path, String password) { + print('load_wallet path $path password $password'); + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final result = _convertUTF8ToString( + pointer: _loadWalletNative(pathPointer, passwordPointer, 0), + ); + print('load_wallet result $result'); + return result; + } + + int _boolToInt(bool value) => value ? 1 : 0; + bool _intToBool(int value) => value != 0; + String _convertUTF8ToString({required Pointer pointer}) { + final str = pointer.toDartString(); + calloc.free(pointer); + return str; + } + + // TODO: kind of stupid thing, in one method parsing json and then setting properties of a class + String? _parseResult(String result) { + final map = json.decode(result) as Map; + if (map['result'] != null) { + createWalletResult = + CreateWalletResult.fromJson(map['result'] as Map); + balances = createWalletResult!.wi.balances; + hWallet = createWalletResult!.walletId; + assetIds.clear(); + for (final balance in createWalletResult!.wi.balances) { + assetIds[balance.assetInfo.assetId] = balance.assetInfo.ticker; + } + return createWalletResult!.wi.address; + } + return null; + } +} diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index 2663a4868..709281bb1 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -27,8 +27,10 @@ class PendingZanoTransaction with PendingTransaction { String get hex => ''; @override - String get amountFormatted => AmountConverter.amountIntToString( + String get amountFormatted { + return AmountConverter.amountIntToString( cryptoCurrency, pendingTransactionDescription.amount); + } @override String get feeFormatted => AmountConverter.amountIntToString( diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/zano_balance.dart index 8d73f7b6c..a4978abb6 100644 --- a/cw_zano/lib/zano_balance.dart +++ b/cw_zano/lib/zano_balance.dart @@ -1,53 +1,23 @@ import 'package:cw_core/balance.dart'; import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_balance.dart'; import 'package:cw_zano/api/balance_list.dart'; import 'package:cw_zano/api/structs/zano_balance_row.dart'; class ZanoBalance extends Balance { - ZanoBalance(super.available, super.additional); - late int unlockedBalance; - @override - // TODO: implement formattedAdditionalBalance - String get formattedAdditionalBalance { - // TODO: fix it - return "0"; - } + final int total; + final int unlocked; + ZanoBalance({required this.total, required this.unlocked}): super(unlocked, 0); + @override - // TODO: implement formattedAvailableBalance - String get formattedAvailableBalance { - // TODO: fix it - return "0"; - } + String get formattedAdditionalBalance => moneroAmountToString(amount: additional); + + @override + String get formattedAvailableBalance => moneroAmountToString(amount: unlocked); + + @override + String get formattedFrozenBalance => total == unlocked ? '' : moneroAmountToString(amount: total - unlocked); } - -Map getZanoBalance() { - // TODO: fix it - return { CryptoCurrency.zano: ZanoBalance(0, 0) }; -} - -/*Map getZanoBalance({required int accountIndex}) { - final fullBalances = getZanoFullBalance(accountIndex: accountIndex); - final unlockedBalances = getZanoUnlockedBalance(accountIndex: accountIndex); - final zanoBalances = {}; - final balancesLength = fullBalances.length; - - for (int i = 0; i < balancesLength; i++) { - final assetType = fullBalances[i].getAssetType(); - final fullBalance = fullBalances[i].getAmount(); - final unlockedBalance = unlockedBalances[i].getAmount(); - final moneroBalance = MoneroBalance( - fullBalance: fullBalance, unlockedBalance: unlockedBalance); - final currency = CryptoCurrency.fromString(assetType); - - if (inactiveBalances.indexOf(currency) >= 0) { - continue; - } - - zanoBalances[currency] = moneroBalance; - } - - return zanoBalances; -}*/ diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/zano_transaction_info.dart index 839a73426..48f4b6e93 100644 --- a/cw_zano/lib/zano_transaction_info.dart +++ b/cw_zano/lib/zano_transaction_info.dart @@ -1,5 +1,6 @@ import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_zano/api/model/history.dart'; import 'package:cw_zano/api/structs/transaction_info_row.dart'; import 'package:cw_core/parseBoolFromString.dart'; import 'package:cw_core/transaction_direction.dart'; @@ -19,7 +20,22 @@ class ZanoTransactionInfo extends TransactionInfo { this.fee, this.confirmations); - ZanoTransactionInfo.fromMap(Map map) + ZanoTransactionInfo.fromHistory(History history) + : id = history.txHash, + height = history.height, + direction = history.subtransfers.first.isIncome ? TransactionDirection.incoming : + TransactionDirection.outgoing, + date = DateTime.fromMillisecondsSinceEpoch(history.timestamp * 1000), + isPending = false, + amount = history.subtransfers.first.amount, + accountIndex = 0, + addressIndex = 0, + fee = history.fee, + confirmations = 1, + assetType = 'ZANO', // TODO: FIXIT: + recipientAddress = history.remoteAddresses.isNotEmpty ? history.remoteAddresses.first : ''; + + /*ZanoTransactionInfo.fromMap(Map map) : id = (map['hash'] ?? '') as String, height = (map['height'] ?? 0) as int, direction = @@ -33,9 +49,9 @@ class ZanoTransactionInfo extends TransactionInfo { addressIndex = map['addressIndex'] as int, confirmations = map['confirmations'] as int, key = getTxKey((map['hash'] ?? '') as String), - fee = map['fee'] as int? ?? 0; + fee = map['fee'] as int? ?? 0;*/ - ZanoTransactionInfo.fromRow(TransactionInfoRow row) + /*ZanoTransactionInfo.fromRow(TransactionInfoRow row) : id = row.getHash(), height = row.blockHeight, direction = parseTransactionDirectionFromInt(row.direction) ?? @@ -48,7 +64,7 @@ class ZanoTransactionInfo extends TransactionInfo { confirmations = row.confirmations, key = null, //getTxKey(row.getHash()), fee = row.fee, - assetType = row.getAssetType(); + assetType = row.getAssetType();*/ final String id; final int height; diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 55be9404c..d744a48bc 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -1,37 +1,35 @@ import 'dart:async'; +import 'dart:convert'; +import 'dart:ffi'; import 'dart:io'; +import 'dart:math'; + import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/pathForWallet.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_zano/api/zano_output.dart'; -import 'package:cw_zano/zano_transaction_creation_credentials.dart'; -import 'package:cw_core/monero_amount_format.dart'; -import 'package:cw_zano/zano_transaction_creation_exception.dart'; -import 'package:cw_zano/zano_transaction_info.dart'; -import 'package:cw_zano/zano_wallet_addresses.dart'; -import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_core/monero_wallet_utils.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/model/destination.dart'; +import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/transfer_params.dart'; +import 'package:cw_zano/api/model/zano_wallet_keys.dart'; import 'package:cw_zano/api/structs/pending_transaction.dart'; -import 'package:flutter/foundation.dart'; -import 'package:mobx/mobx.dart'; -import 'package:cw_zano/api/transaction_history.dart' - as zano_transaction_history; //import 'package:cw_zano/wallet.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; -import 'package:cw_zano/api/transaction_history.dart' as transaction_history; -import 'package:cw_zano/api/zano_output.dart'; +import 'package:cw_zano/api/zano_api.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; -import 'package:cw_core/monero_wallet_keys.dart'; -import 'package:cw_core/monero_balance.dart'; -import 'package:cw_zano/zano_transaction_history.dart'; -import 'package:cw_core/account.dart'; -import 'package:cw_core/pending_transaction.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/sync_status.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/node.dart'; -import 'package:cw_core/monero_transaction_priority.dart'; import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/zano_transaction_creation_credentials.dart'; +import 'package:cw_zano/zano_transaction_history.dart'; +import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:cw_zano/zano_wallet_addresses.dart'; +import 'package:ffi/ffi.dart'; +import 'package:mobx/mobx.dart'; part 'zano_wallet.g.dart'; @@ -39,21 +37,16 @@ const moneroBlockSize = 1000; class ZanoWallet = ZanoWalletBase with _$ZanoWallet; -abstract class ZanoWalletBase - extends WalletBase - with Store { - ZanoWalletBase.simple({required WalletInfo walletInfo}) - : balance = ObservableMap(), - _isTransactionUpdating = false, - _hasSyncAfterStartup = false, - walletAddresses = ZanoWalletAddresses(walletInfo), - syncStatus = NotConnectedSyncStatus(), - super(walletInfo) { - transactionHistory = ZanoTransactionHistory(); - } +typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); +typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); - ZanoWalletBase({required WalletInfo walletInfo}) - : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(0, 0)}), + +const int zanoMixin = 10; + +abstract class ZanoWalletBase + extends WalletBase with Store { + ZanoWalletBase(WalletInfo walletInfo) + : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), _isTransactionUpdating = false, _hasSyncAfterStartup = false, walletAddresses = ZanoWalletAddresses(walletInfo), @@ -70,6 +63,9 @@ abstract class ZanoWalletBase });*/ } + List history = []; + String assetId = ''; + static const int _autoSaveInterval = 30; @override @@ -84,20 +80,11 @@ abstract class ZanoWalletBase ObservableMap balance; @override - String get seed { - // TODO: fix it - //return calls.seed(hWallet); - return "test"; - /**zano_wallet.getSeed();*/ - } + String seed = ''; @override - // TODO: ?? why monero - MoneroWalletKeys get keys => MoneroWalletKeys( - privateSpendKey: zano_wallet.getSecretSpendKey(), - privateViewKey: zano_wallet.getSecretViewKey(), - publicSpendKey: zano_wallet.getPublicSpendKey(), - publicViewKey: zano_wallet.getPublicViewKey()); + ZanoWalletKeys keys = ZanoWalletKeys( + privateSpendKey: '', privateViewKey: '', publicSpendKey: '', publicViewKey: ''); zano_wallet.SyncListener? _listener; /**ReactionDisposer? _onAccountChangeReaction;*/ @@ -115,21 +102,20 @@ abstract class ZanoWalletBase Future init() async { await walletAddresses.init(); - balance - .addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); + ///balance.addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); _setListeners(); await updateTransactions(); if (walletInfo.isRecovery) { - zano_wallet.setRecoveringFromSeed(isRecovery: walletInfo.isRecovery); + ///zano_wallet.setRecoveringFromSeed(isRecovery: walletInfo.isRecovery); if (zano_wallet.getCurrentHeight(hWallet) <= 1) { zano_wallet.setRefreshFromBlockHeight(height: walletInfo.restoreHeight); } } - _autoSaveTimer = Timer.periodic( - Duration(seconds: _autoSaveInterval), (_) async => await save()); + _autoSaveTimer = + Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); } @override @@ -155,7 +141,7 @@ abstract class ZanoWalletBase /*socksProxyAddress: node.socksProxyAddress*/ ); - zano_wallet.setTrustedDaemon(node.trusted); + //zano_wallet.setTrustedDaemon(node.trusted); syncStatus = ConnectedSyncStatus(); } catch (e) { syncStatus = FailedSyncStatus(); @@ -171,9 +157,10 @@ abstract class ZanoWalletBase try { syncStatus = AttemptingSyncStatus(); - zano_wallet.startRefresh(); + //zano_wallet.startRefresh(); + print("start refresh"); _setListeners(); - _listener?.start(); + _listener?.start(this, hWallet); } catch (e) { syncStatus = FailedSyncStatus(); print(e); @@ -183,7 +170,38 @@ abstract class ZanoWalletBase @override Future createTransaction(Object credentials) async { - final _credentials = credentials as ZanoTransactionCreationCredentials; + final creds = credentials as ZanoTransactionCreationCredentials; + final output = creds.outputs.first; + final address = output.isParsedAddress && (output.extractedAddress?.isNotEmpty ?? false) + ? output.extractedAddress! + : output.address; + final amount = output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); + final int? formattedAmount = output.sendAll ? null : output.formattedCryptoAmount; + final fee = calculateEstimatedFee(creds.priority); + // final result = await calls.transfer( + // hWallet, + // TransferParams( + // destinations: [ + // Destination( + // amount: amount!, + // address: address, + // assetId: assetId, + // ) + // ], + // fee: fee, + // mixin: zanoMixin, + // paymentId: '', // TODO: fixit + // comment: output.note ?? '', + // pushPayer: false, + // hideReceiver: false, + // )); + int iAmount = (double.parse(amount!) * pow(10, 12)).toInt(); + final description = PendingTransactionDescription( + amount: iAmount, fee: fee, hash: 'fade', pointerAddress: 0); + final transaction = PendingZanoTransaction(description, CryptoCurrency.zano); + return transaction; + + /*final _credentials = credentials as ZanoTransactionCreationCredentials; final outputs = _credentials.outputs; final hasMultiDestination = outputs.length > 1; final assetType = @@ -249,29 +267,12 @@ abstract class ZanoWalletBase priorityRaw: _credentials.priority.serialize()); } - return PendingZanoTransaction(pendingTransactionDescription, assetType); + return PendingZanoTransaction(pendingTransactionDescription, assetType);*/ } @override - int calculateEstimatedFee(TransactionPriority priority, int? amount) { - // FIXME: hardcoded value; - - if (priority is MoneroTransactionPriority) { - switch (priority) { - case MoneroTransactionPriority.slow: - return 24590000; - case MoneroTransactionPriority.automatic: - return 123050000; - case MoneroTransactionPriority.medium: - return 245029999; - case MoneroTransactionPriority.fast: - return 614530000; - case MoneroTransactionPriority.fastest: - return 26021600000; - } - } - - return 0; + int calculateEstimatedFee(TransactionPriority priority, [int? amount = null]) { + return calls.getCurrentTxFee(priority.raw); } @override @@ -310,7 +311,7 @@ abstract class ZanoWalletBase zano_wallet.setPasswordSync(password); } - Future getNodeHeight() async => zano_wallet.getNodeHeight(); + //Future getNodeHeight() async => zano_wallet.getNodeHeight(); Future isConnected() async => zano_wallet.isConnected(); @@ -334,18 +335,37 @@ abstract class ZanoWalletBase } String getTransactionAddress(int accountIndex, int addressIndex) => - zano_wallet.getAddress( - accountIndex: accountIndex, addressIndex: addressIndex); + zano_wallet.getAddress(accountIndex: accountIndex, addressIndex: addressIndex); + + Future _refreshTransactions() async { + final result = await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); + final map = jsonDecode(result); + if (map == null || map["result"] == null || map["result"]["result"] == null) { + return; + } + if (map["result"]["result"]["transfers"] != null) + history = (map["result"]["result"]["transfers"] as List) + .map((e) => History.fromJson(e as Map)) + .toList(); + } @override Future> fetchTransactions() async { - zano_transaction_history.refreshTransactions(); - return _getAllTransactions(null) + //zano_transaction_history.refreshTransactions(); + await _refreshTransactions(); + return history + .map((history) => ZanoTransactionInfo.fromHistory(history)) .fold>({}, (Map acc, ZanoTransactionInfo tx) { acc[tx.id] = tx; return acc; }); + // return _getAllTransactions(null) + // .fold>({}, + // (Map acc, ZanoTransactionInfo tx) { + // acc[tx.id] = tx; + // return acc; + // }); } Future updateTransactions() async { @@ -365,11 +385,11 @@ abstract class ZanoWalletBase } } - List _getAllTransactions(dynamic _) => - zano_transaction_history - .getAllTransations() - .map((row) => ZanoTransactionInfo.fromRow(row)) - .toList(); + // List _getAllTransactions(dynamic _) => + // zano_transaction_history + // .getAllTransations() + // .map((row) => ZanoTransactionInfo.fromRow(row)) + // .toList(); void _setListeners() { _listener?.stop(); @@ -385,36 +405,39 @@ abstract class ZanoWalletBase if (currentHeight <= 1) { final height = _getHeightByDate(walletInfo.date); - zano_wallet.setRecoveringFromSeed(isRecovery: true); + ///zano_wallet.setRecoveringFromSeed(isRecovery: true); zano_wallet.setRefreshFromBlockHeight(height: height); } } - int _getHeightDistance(DateTime date) { - final distance = - DateTime.now().millisecondsSinceEpoch - date.millisecondsSinceEpoch; - final daysTmp = (distance / 86400).round(); - final days = daysTmp < 1 ? 1 : daysTmp; + // int _getHeightDistance(DateTime date) { + // final distance = + // DateTime.now().millisecondsSinceEpoch - date.millisecondsSinceEpoch; + // final daysTmp = (distance / 86400).round(); + // final days = daysTmp < 1 ? 1 : daysTmp; - return days * 1000; - } + // return days * 1000; + // } int _getHeightByDate(DateTime date) { - final nodeHeight = zano_wallet.getNodeHeightSync(); - final heightDistance = _getHeightDistance(date); + // TODO: !!! 12/10 commented + return 0; + // final nodeHeight = zano_wallet.getNodeHeightSync(); + // final heightDistance = _getHeightDistance(date); - if (nodeHeight <= 0) { - return 0; - } + // if (nodeHeight <= 0) { + // return 0; + // } - return nodeHeight - heightDistance; + // return nodeHeight - heightDistance; } - void _askForUpdateBalance() => - balance.addAll(getZanoBalance()); + void _askForUpdateBalance() { + print("ask for update balance"); + //balance.addAll(getZanoBalance()); + } - Future _askForUpdateTransactionHistory() async => - await updateTransactions(); + Future _askForUpdateTransactionHistory() async => await updateTransactions(); void _onNewBlock(int height, int blocksLeft, double ptc) async { try { @@ -455,4 +478,24 @@ abstract class ZanoWalletBase print(e.toString()); } } + + final _loadWalletNative = + zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); + + String loadWallet(String path, String password) { + print('load_wallet path $path password $password'); + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final result = _convertUTF8ToString( + pointer: _loadWalletNative(pathPointer, passwordPointer, 0), + ); + print('load_wallet result $result'); + return result; + } + + String _convertUTF8ToString({required Pointer pointer}) { + final str = pointer.toDartString(); + calloc.free(pointer); + return str; + } } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index f39868680..0a6de12c8 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -1,8 +1,13 @@ +import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/node.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/monero_wallet_utils.dart'; +import 'package:cw_zano/api/model/create_wallet_result.dart'; +import 'package:cw_zano/new_zano_wallet.dart'; +import 'package:cw_zano/zano_balance.dart'; import 'package:hive/hive.dart'; import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; import 'package:cw_zano/api/wallet.dart' as zano_wallet; @@ -14,6 +19,7 @@ import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; +import 'package:mobx/mobx.dart'; class ZanoNewWalletCredentials extends WalletCredentials { ZanoNewWalletCredentials({required String name, String? password}) @@ -22,10 +28,7 @@ class ZanoNewWalletCredentials extends WalletCredentials { class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { ZanoRestoreWalletFromSeedCredentials( - {required String name, - required String password, - required int height, - required this.mnemonic}) + {required String name, required String password, required int height, required this.mnemonic}) : super(name: name, password: password, height: height); final String mnemonic; @@ -53,10 +56,8 @@ class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { final String spendKey; } -class ZanoWalletService extends WalletService< - ZanoNewWalletCredentials, - ZanoRestoreWalletFromSeedCredentials, - ZanoRestoreWalletFromKeysCredentials> { +class ZanoWalletService extends WalletService { ZanoWalletService(this.walletInfoSource); final Box walletInfoSource; @@ -69,18 +70,38 @@ class ZanoWalletService extends WalletService< @override WalletType getType() => WalletType.zano; + // @override + // Future create(WalletCredentials credentials) async { + // try { + // final wallet = ZanoWallet(credentials.walletInfo!); + // wallet.connectToNode(node: Node()); // TODO: Node() ??? + // //wallet.setupNode(address: "195.201.107.230:33336", login: "", password: ""); + // final path = await pathForWallet(name: credentials.name, type: getType()); + // wallet.createWallet(path: path, password: credentials.password!); + // return wallet; + // } catch (e) { + // print("ZanoWalletService.create error $e"); + // rethrow; + // } + // } + @override - Future create(ZanoNewWalletCredentials credentials) async { + Future create(WalletCredentials credentials) async { try { - final wallet = ZanoWallet.simple(walletInfo: credentials.walletInfo!); - wallet.connectToNode(node: Node()); + final wallet = ZanoWallet(credentials.walletInfo!); + await wallet.connectToNode(node: Node()); final path = await pathForWallet(name: credentials.name, type: getType()); final result = await zano_wallet_manager.createWallet( language: "", path: path, password: credentials.password!); - hWallet = -1; - wallet.hWallet = hWallet; - // TODO: remove it - calls.store(hWallet); + print("create wallet result $result"); + final map = json.decode(result) as Map; + if (map['result'] != null) { + final createWalletResult = + CreateWalletResult.fromJson(map['result'] as Map); + _parseCreateWalletResult(createWalletResult, wallet); + } + // TODO: remove it TODO why? + await calls.store(hWallet); await wallet.init(); return wallet; } catch (e) { @@ -111,40 +132,39 @@ class ZanoWalletService extends WalletService< await repairOldAndroidWallet(name); } - await zano_wallet_manager - .openWalletAsync({'path': path, 'password': password}); - final walletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(name, getType()))!; - final wallet = ZanoWallet(walletInfo: walletInfo); - /*final isValid = wallet.walletAddresses.validate(); - - if (!isValid) { - await restoreOrResetWalletFiles(name); - wallet.close(); - return openWallet(name, password); - }*/ - + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!; + final wallet = ZanoWallet(walletInfo); + await wallet.connectToNode(node: Node()); + final result = wallet.loadWallet(path, password); + print("load wallet result $result"); + final map = json.decode(result) as Map; + if (map['result'] != null) { + final createWalletResult = + CreateWalletResult.fromJson(map['result'] as Map); + _parseCreateWalletResult(createWalletResult, wallet); + } + await calls.store(hWallet); await wallet.init(); - return wallet; } catch (e) { - // TODO: Implement Exception for wallet list service. - - if ((e.toString().contains('bad_alloc') || - (e is WalletOpeningException && - (e.message == 'std::bad_alloc' || - e.message.contains('bad_alloc')))) || - (e.toString().contains('does not correspond') || - (e is WalletOpeningException && - e.message.contains('does not correspond')))) { - await restoreOrResetWalletFiles(name); - return openWallet(name, password); - } - rethrow; } } + void _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) { + hWallet = result.walletId; + wallet.hWallet = hWallet; + wallet.walletAddresses.address = result.wi.address; + final balance = result.wi.balances.first; + wallet.assetId = balance.assetInfo.assetId; + wallet.balance = ObservableMap.of( + {CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); + if (result.recentHistory.history != null) { + wallet.history = result.recentHistory.history!; + } + } + @override Future remove(String wallet) async { final path = await pathForWalletDir(name: wallet, type: getType()); @@ -161,11 +181,10 @@ class ZanoWalletService extends WalletService< } @override - Future rename( - String currentName, String password, String newName) async { - final currentWalletInfo = walletInfoSource.values.firstWhere( - (info) => info.id == WalletBase.idFor(currentName, getType())); - final currentWallet = ZanoWallet(walletInfo: currentWalletInfo); + Future rename(String currentName, String password, String newName) async { + final currentWalletInfo = walletInfoSource.values + .firstWhere((info) => info.id == WalletBase.idFor(currentName, getType())); + final currentWallet = ZanoWallet(currentWalletInfo); await currentWallet.renameWalletFiles(newName); @@ -177,8 +196,7 @@ class ZanoWalletService extends WalletService< } @override - Future restoreFromKeys( - ZanoRestoreWalletFromKeysCredentials credentials) async { + Future restoreFromKeys(ZanoRestoreWalletFromKeysCredentials credentials) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); await zano_wallet_manager.restoreFromKeys( @@ -189,7 +207,7 @@ class ZanoWalletService extends WalletService< address: credentials.address, viewKey: credentials.viewKey, spendKey: credentials.spendKey); - final wallet = ZanoWallet(walletInfo: credentials.walletInfo!); + final wallet = ZanoWallet(credentials.walletInfo!); await wallet.init(); return wallet; @@ -201,18 +219,21 @@ class ZanoWalletService extends WalletService< } @override - Future restoreFromSeed( - ZanoRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(ZanoRestoreWalletFromSeedCredentials credentials) async { try { + final wallet = ZanoWallet(credentials.walletInfo!); + await wallet.connectToNode(node: Node()); final path = await pathForWallet(name: credentials.name, type: getType()); - await zano_wallet_manager.restoreFromSeed( - path: path, - password: credentials.password!, - seed: credentials.mnemonic, - restoreHeight: credentials.height!); - final wallet = ZanoWallet(walletInfo: credentials.walletInfo!); + final result = calls.restoreWalletFromSeed(path, credentials.password!, credentials.mnemonic); + print('restore wallet from seed result $result'); + final map = json.decode(result) as Map; + if (map['result'] != null) { + final createWalletResult = + CreateWalletResult.fromJson(map['result'] as Map); + _parseCreateWalletResult(createWalletResult, wallet); + } + await calls.store(hWallet); await wallet.init(); - return wallet; } catch (e) { // TODO: Implement Exception for wallet list service. @@ -227,16 +248,14 @@ class ZanoWalletService extends WalletService< return; } - final oldAndroidWalletDirPath = - await outdatedAndroidPathForWalletDir(name: name); + final oldAndroidWalletDirPath = await outdatedAndroidPathForWalletDir(name: name); final dir = Directory(oldAndroidWalletDirPath); if (!dir.existsSync()) { return; } - final newWalletDirPath = - await pathForWalletDir(name: name, type: getType()); + final newWalletDirPath = await pathForWalletDir(name: name, type: getType()); dir.listSync().forEach((f) { final file = File(f.path); diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index f2a235363..6cbaf4657 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -239,6 +239,8 @@ class AddressValidator extends TextValidator { return [64]; case CryptoCurrency.btcln: return null; + case CryptoCurrency.zano: + return [97]; default: return []; } diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index bea84a7c9..75ded88a5 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -211,6 +211,8 @@ class WalletRestorePage extends BasePage { final seedWords = walletRestoreFromSeedFormKey.currentState!.seedWidgetStateKey.currentState!.text.split(' '); + if (walletRestoreViewModel.type == WalletType.zano) return true; + if ((walletRestoreViewModel.type == WalletType.monero || walletRestoreViewModel.type == WalletType.haven) && seedWords.length != WalletRestoreViewModelBase.moneroSeedMnemonicLength) { diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index 4daa228ca..ff2164f7f 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -258,8 +258,8 @@ abstract class OutputBase with Store { break; case WalletType.dummy: case WalletType.zano: - // TODO: enter correct values - throw UnimplementedError(); + maximumFractionDigits = 12; + break; default: break; } diff --git a/lib/zano.dart b/lib/zano.dart index a5b9b89dc..912c0d1d8 100644 --- a/lib/zano.dart +++ b/lib/zano.dart @@ -9,7 +9,7 @@ import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/model/balance.dart'; -import 'package:cw_zano/api/model/load_wallet_result.dart'; +import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; import 'package:cw_zano/zano_wallet_service.dart'; @@ -28,24 +28,21 @@ Future main() async { /// A callback that is invoked when an unhandled error occurs in the root /// isolate. PlatformDispatcher.instance.onError = (error, stack) { - ExceptionHandler.onError( - FlutterErrorDetails(exception: error, stack: stack)); + ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stack)); return true; }; await setup(); runApp(App()); }, (error, stackTrace) async { - ExceptionHandler.onError( - FlutterErrorDetails(exception: error, stack: stackTrace)); + ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stackTrace)); }); } final getIt = GetIt.instance; Future setup() async { - getIt.registerFactory( - () => KeyService(getIt.get())); + getIt.registerFactory(() => KeyService(getIt.get())); } class App extends StatefulWidget { @@ -79,7 +76,7 @@ class _AppState extends State { } int hWallet = 0; -CreateLoadRestoreWalletResult? lwr; +CreateWalletResult? lwr; List balances = []; String seed = '', version = ''; final assetIds = {}; @@ -107,11 +104,9 @@ Future create(String name) async { final keyService = KeyService(FlutterSecureStorage()); final password = generateWalletPassword(); credentials.password = password; - await keyService.saveWalletPassword( - password: password, walletName: credentials.name); + await keyService.saveWalletPassword(password: password, walletName: credentials.name); debugPrint('path $path password $password'); - final result = zano_wallet_manager.createWalletSync( - path: path, password: password, language: ''); + final result = zano_wallet_manager.createWalletSync(path: path, password: password, language: ''); debugPrint('create result $result'); return _parseResult(result); } @@ -122,8 +117,7 @@ Future connect(String name) async { final path = await pathForWallet(name: name, type: WalletType.zano); final credentials = ZanoNewWalletCredentials(name: name); final keyService = KeyService(FlutterSecureStorage()); - final password = - await keyService.getWalletPassword(walletName: credentials.name); + final password = await keyService.getWalletPassword(walletName: credentials.name); debugPrint('path $path password $password'); final result = await calls.loadWallet(path, password, 0); return _parseResult(result); @@ -137,8 +131,7 @@ Future restore(String name, String seed) async { final keyService = KeyService(FlutterSecureStorage()); final password = generateWalletPassword(); credentials.password = password; - await keyService.saveWalletPassword( - password: password, walletName: credentials.name); + await keyService.saveWalletPassword(password: password, walletName: credentials.name); debugPrint('path $path password $password'); var result = calls.restoreWalletFromSeed(path, password, seed); debugPrint('restore result $result'); @@ -148,8 +141,8 @@ Future restore(String name, String seed) async { String? _parseResult(String result) { final map = json.decode(result) as Map; -if (map['result'] != null) { - lwr = CreateLoadRestoreWalletResult.fromJson(map['result'] as Map); + if (map['result'] != null) { + lwr = CreateWalletResult.fromJson(map['result'] as Map); balances = lwr!.wi.balances; hWallet = lwr!.walletId; assetIds.clear(); @@ -204,14 +197,12 @@ class _DisconnectedWidgetState extends State { child: Column( children: [ TextField( - controller: _name, - decoration: InputDecoration(labelText: 'Wallet name')), + controller: _name, decoration: InputDecoration(labelText: 'Wallet name')), TextButton( child: Text('Connect and Open Wallet'), onPressed: () async { //setState(() => _loading = true); - final preferences = - await SharedPreferences.getInstance(); + final preferences = await SharedPreferences.getInstance(); await preferences.setString(walletName, _name.text); final result = await connect(_name.text); //setState(() => _loading = false); @@ -232,8 +223,7 @@ class _DisconnectedWidgetState extends State { child: Text('Create and Open Wallet'), onPressed: () async { //setState(() => _loading = true); - final preferences = - await SharedPreferences.getInstance(); + final preferences = await SharedPreferences.getInstance(); await preferences.setString(walletName, _name.text); final result = await create(_name.text); //setState(() => _loading = false); @@ -251,13 +241,11 @@ class _DisconnectedWidgetState extends State { height: 16, ), TextField( - controller: _seed, - decoration: InputDecoration(labelText: 'Wallet seed')), + controller: _seed, decoration: InputDecoration(labelText: 'Wallet seed')), TextButton( child: Text('Restore from seed'), onPressed: () async { - final preferences = - await SharedPreferences.getInstance(); + final preferences = await SharedPreferences.getInstance(); await preferences.setString(walletName, _name.text); final result = await restore(_name.text, _seed.text); if (result != null) { diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index da07be14e..bf712e25d 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -1,3 +1,4 @@ +import 'package:cw_zano/new_zano_wallet.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; import 'package:cw_core/wallet_credentials.dart'; From 3eaec03b6c70902c9ca509119ebda615844e05a7 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 16 Dec 2023 08:49:23 +0000 Subject: [PATCH 13/58] added pending transfer, some cleanup of unused --- cw_zano/lib/api/account_list.dart | 85 - cw_zano/lib/api/asset_types.dart | 23 - cw_zano/lib/api/balance_list.dart | 55 - cw_zano/lib/api/calls.dart | 82 +- .../connection_to_node_exception.dart | 5 - .../creation_transaction_exception.dart | 8 - .../exceptions/setup_wallet_exception.dart | 5 - .../exceptions/wallet_creation_exception.dart | 8 - .../exceptions/wallet_opening_exception.dart | 8 - .../wallet_restore_from_seed_exception.dart | 5 - cw_zano/lib/api/model.dart | 49 - cw_zano/lib/api/model/balance.dart | 2 - .../lib/api/model/create_wallet_result.dart | 2 - cw_zano/lib/api/model/employed_entries.dart | 2 - cw_zano/lib/api/model/history.dart | 2 - cw_zano/lib/api/model/recent_history.dart | 2 - cw_zano/lib/api/model/transfer_result.dart | 13 + cw_zano/lib/api/model/wi.dart | 2 - cw_zano/lib/api/signatures.dart | 81 +- cw_zano/lib/api/structs/account_row.dart | 12 - .../lib/api/structs/pending_transaction.dart | 27 - cw_zano/lib/api/structs/subaddress_row.dart | 15 - .../lib/api/structs/transaction_info_row.dart | 44 - cw_zano/lib/api/structs/zano_balance_row.dart | 12 - cw_zano/lib/api/structs/zano_rate.dart | 12 - cw_zano/lib/api/subaddress_list.dart | 103 -- cw_zano/lib/api/transaction_history.dart | 250 --- cw_zano/lib/api/types.dart | 41 +- cw_zano/lib/api/wallet.dart | 9 +- cw_zano/lib/api/wallet_manager.dart | 180 +- cw_zano/lib/api/zano_output.dart | 8 - cw_zano/lib/mnemonics/chinese_simplified.dart | 1630 ----------------- cw_zano/lib/mnemonics/dutch.dart | 1630 ----------------- cw_zano/lib/mnemonics/french.dart | 1630 ----------------- cw_zano/lib/mnemonics/german.dart | 1630 ----------------- cw_zano/lib/mnemonics/italian.dart | 1630 ----------------- cw_zano/lib/mnemonics/japanese.dart | 1630 ----------------- cw_zano/lib/mnemonics/portuguese.dart | 1630 ----------------- cw_zano/lib/mnemonics/russian.dart | 1630 ----------------- cw_zano/lib/mnemonics/spanish.dart | 1630 ----------------- cw_zano/lib/new_zano_addresses_base.dart | 19 - cw_zano/lib/new_zano_wallet.dart | 239 --- cw_zano/lib/pending_zano_transaction.dart | 93 +- cw_zano/lib/update_zano_rate.dart | 15 - cw_zano/lib/zano_account_list.dart | 89 - cw_zano/lib/zano_balance.dart | 11 +- cw_zano/lib/zano_subaddress_list.dart | 88 - .../zano_transaction_creation_exception.dart | 8 - cw_zano/lib/zano_transaction_info.dart | 11 +- cw_zano/lib/zano_wallet.dart | 18 +- cw_zano/lib/zano_wallet_addresses.dart | 4 - cw_zano/lib/zano_wallet_service.dart | 31 +- lib/core/seed_validator.dart | 2 +- .../transaction_details_view_model.dart | 2 +- lib/zano.dart | 2 +- lib/zano/cw_zano.dart | 34 +- lib/zano/zano.dart | 15 +- 57 files changed, 314 insertions(+), 16189 deletions(-) delete mode 100644 cw_zano/lib/api/account_list.dart delete mode 100644 cw_zano/lib/api/asset_types.dart delete mode 100644 cw_zano/lib/api/balance_list.dart delete mode 100644 cw_zano/lib/api/exceptions/connection_to_node_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/creation_transaction_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/setup_wallet_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/wallet_creation_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/wallet_opening_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart delete mode 100644 cw_zano/lib/api/model.dart create mode 100644 cw_zano/lib/api/model/transfer_result.dart delete mode 100644 cw_zano/lib/api/structs/account_row.dart delete mode 100644 cw_zano/lib/api/structs/pending_transaction.dart delete mode 100644 cw_zano/lib/api/structs/subaddress_row.dart delete mode 100644 cw_zano/lib/api/structs/transaction_info_row.dart delete mode 100644 cw_zano/lib/api/structs/zano_balance_row.dart delete mode 100644 cw_zano/lib/api/structs/zano_rate.dart delete mode 100644 cw_zano/lib/api/subaddress_list.dart delete mode 100644 cw_zano/lib/api/transaction_history.dart delete mode 100644 cw_zano/lib/api/zano_output.dart delete mode 100644 cw_zano/lib/mnemonics/chinese_simplified.dart delete mode 100644 cw_zano/lib/mnemonics/dutch.dart delete mode 100644 cw_zano/lib/mnemonics/french.dart delete mode 100644 cw_zano/lib/mnemonics/german.dart delete mode 100644 cw_zano/lib/mnemonics/italian.dart delete mode 100644 cw_zano/lib/mnemonics/japanese.dart delete mode 100644 cw_zano/lib/mnemonics/portuguese.dart delete mode 100644 cw_zano/lib/mnemonics/russian.dart delete mode 100644 cw_zano/lib/mnemonics/spanish.dart delete mode 100644 cw_zano/lib/new_zano_addresses_base.dart delete mode 100644 cw_zano/lib/new_zano_wallet.dart delete mode 100644 cw_zano/lib/update_zano_rate.dart delete mode 100644 cw_zano/lib/zano_account_list.dart delete mode 100644 cw_zano/lib/zano_subaddress_list.dart delete mode 100644 cw_zano/lib/zano_transaction_creation_exception.dart diff --git a/cw_zano/lib/api/account_list.dart b/cw_zano/lib/api/account_list.dart deleted file mode 100644 index b5d398fe7..000000000 --- a/cw_zano/lib/api/account_list.dart +++ /dev/null @@ -1,85 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/structs/account_row.dart'; -import 'package:flutter/foundation.dart'; -import 'package:cw_zano/api/wallet.dart'; - -// final accountSizeNative = zanoApi -// .lookup>('account_size') -// .asFunction(); - -// final accountRefreshNative = zanoApi -// .lookup>('account_refresh') -// .asFunction(); - -// final accountGetAllNative = zanoApi -// .lookup>('account_get_all') -// .asFunction(); - -// final accountAddNewNative = zanoApi -// .lookup>('account_add_row') -// .asFunction(); - -// final accountSetLabelNative = zanoApi -// .lookup>('account_set_label_row') -// .asFunction(); - -bool isUpdating = false; - -/**void refreshAccounts() { - try { - isUpdating = true; - accountRefreshNative(); - isUpdating = false; - } catch (e) { - isUpdating = false; - rethrow; - } -}*/ - -/**List getAllAccount() { - final size = accountSizeNative(); - final accountAddressesPointer = accountGetAllNative(); - final accountAddresses = accountAddressesPointer.asTypedList(size); - - return accountAddresses - .map((addr) => Pointer.fromAddress(addr).ref) - .toList(); -}*/ - -/**void addAccountSync({required String label}) { - final labelPointer = label.toNativeUtf8(); - accountAddNewNative(labelPointer); - calloc.free(labelPointer); -}*/ - -/**void setLabelForAccountSync( - {required int accountIndex, required String label}) { - final labelPointer = label.toNativeUtf8(); - accountSetLabelNative(accountIndex, labelPointer); - calloc.free(labelPointer); -}*/ - -/**void _addAccount(String label) => addAccountSync(label: label);*/ - -/**void _setLabelForAccount(Map args) { - final label = args['label'] as String; - final accountIndex = args['accountIndex'] as int; - - setLabelForAccountSync(label: label, accountIndex: accountIndex); -}*/ - -/**Future addAccount({required String label}) async { - await compute(_addAccount, label); - await store(); -}*/ - -/**Future setLabelForAccount( - {required int accountIndex, required String label}) async { - await compute( - _setLabelForAccount, {'accountIndex': accountIndex, 'label': label}); - await store(); -}*/ diff --git a/cw_zano/lib/api/asset_types.dart b/cw_zano/lib/api/asset_types.dart deleted file mode 100644 index 1ccfbec49..000000000 --- a/cw_zano/lib/api/asset_types.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'dart:ffi'; -import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:ffi/ffi.dart'; - -final assetTypesSizeNative = zanoApi - .lookup>('asset_types_size') - .asFunction(); - -final getAssetTypesNative = zanoApi - .lookup>('asset_types') - .asFunction(); - -List getAssetTypes() { - List assetTypes = []; - Pointer> assetTypePointers = getAssetTypesNative(); - Pointer assetpointer = assetTypePointers.elementAt(0)[0]; - String asset = convertUTF8ToString(pointer: assetpointer); - - return assetTypes; -} diff --git a/cw_zano/lib/api/balance_list.dart b/cw_zano/lib/api/balance_list.dart deleted file mode 100644 index c391dc8ff..000000000 --- a/cw_zano/lib/api/balance_list.dart +++ /dev/null @@ -1,55 +0,0 @@ -import 'dart:ffi'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/structs/zano_balance_row.dart'; -import 'package:cw_zano/api/structs/zano_rate.dart'; -import 'asset_types.dart'; - -List getZanoFullBalance({int accountIndex = 0}) { - final size = assetTypesSizeNative(); - final balanceAddressesPointer = getZanoFullBalanceNative(accountIndex); - final balanceAddresses = balanceAddressesPointer.asTypedList(size); - - return balanceAddresses - .map((addr) => Pointer.fromAddress(addr).ref) - .toList(); -} - -List getZanoUnlockedBalance({int accountIndex = 0}) { - final size = assetTypesSizeNative(); - final balanceAddressesPointer = getZanoUnlockedBalanceNative(accountIndex); - final balanceAddresses = balanceAddressesPointer.asTypedList(size); - - return balanceAddresses - .map((addr) => Pointer.fromAddress(addr).ref) - .toList(); -} - -List getRate() { - updateRateNative(); - final size = sizeOfRateNative(); - final ratePointer = getRateNative(); - final rate = ratePointer.asTypedList(size); - - return rate.map((addr) => Pointer.fromAddress(addr).ref).toList(); -} - -final getZanoFullBalanceNative = zanoApi - .lookup>('get_full_balance') - .asFunction(); - -final getZanoUnlockedBalanceNative = zanoApi - .lookup>('get_unlocked_balance') - .asFunction(); - -final getRateNative = - zanoApi.lookup>('get_rate').asFunction(); - -final sizeOfRateNative = zanoApi - .lookup>('size_of_rate') - .asFunction(); - -final updateRateNative = zanoApi - .lookup>('update_rate') - .asFunction(); diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart index 31f3fcb5d..ddc731677 100644 --- a/cw_zano/lib/api/calls.dart +++ b/cw_zano/lib/api/calls.dart @@ -2,18 +2,24 @@ import 'dart:ffi'; import 'dart:convert'; import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/model.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; -final _asyncCallNative = zanoApi - .lookup>('async_call') - .asFunction<_AsyncCall>(); -typedef _async_call = Pointer Function( - Pointer, Int64, Pointer); +// create_wallet +final _createWalletNative = + zanoApi.lookup>('create_wallet').asFunction<_CreateWallet>(); +typedef _create_wallet = Pointer Function( + Pointer, Pointer, Pointer, Int32, Pointer); +typedef _CreateWallet = Pointer Function( + Pointer, Pointer, Pointer, int, Pointer); + +// async_call +final _asyncCallNative = + zanoApi.lookup>('async_call').asFunction<_AsyncCall>(); +typedef _async_call = Pointer Function(Pointer, Int64, Pointer); typedef _AsyncCall = Pointer Function( Pointer methodName, int hWallet, Pointer params); @@ -39,18 +45,15 @@ typedef _get_connectivity_status = Pointer Function(); typedef _GetConnectivityStatus = Pointer Function(); // get_version -final _getVersionNative = zanoApi - .lookup>('get_version') - .asFunction<_GetVersion>(); +final _getVersionNative = + zanoApi.lookup>('get_version').asFunction<_GetVersion>(); typedef _get_version = Pointer Function(); typedef _GetVersion = Pointer Function(); // load_wallet -final _loadWalletNative = zanoApi - .lookup>('load_wallet') - .asFunction<_LoadWallet>(); -typedef _load_wallet = Pointer Function( - Pointer, Pointer, Int8); +final _loadWalletNative = + zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); +typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); // try_pull_result @@ -61,9 +64,8 @@ typedef _try_pull_result = Pointer Function(Int64); typedef _TryPullResult = Pointer Function(int hWallet); // close_wallet -final _closeWalletNative = zanoApi - .lookup>('close_wallet') - .asFunction<_closeWalletStatus>(); +final _closeWalletNative = + zanoApi.lookup>('close_wallet').asFunction<_closeWalletStatus>(); typedef _close_wallet = Void Function(Int64); typedef _closeWalletStatus = void Function(int hWallet); @@ -75,25 +77,20 @@ typedef _get_current_tx_fee = Int64 Function(Int64); typedef _getCurrentTxFee = int Function(int priority); final _restoreWalletFromSeedNative = zanoApi - .lookup>( - 'restore_wallet_from_seed') + .lookup>('restore_wallet_from_seed') .asFunction<_RestoreWalletFromSeed>(); typedef _restore_wallet_from_seed = Pointer Function( Pointer, Pointer, Pointer, Int32, Int64, Pointer); typedef _RestoreWalletFromSeed = Pointer Function( Pointer, Pointer, Pointer, int, int, Pointer); -String doAsyncCall( - {required String methodName, - required int hWallet, - required String params}) { +String doAsyncCall({required String methodName, required int hWallet, required String params}) { final methodNamePointer = methodName.toNativeUtf8(); final paramsPointer = params.toNativeUtf8(); - debugPrint( - 'async_call method_name $methodName hWallet $hWallet params $params'); - final result = convertUTF8ToString( - pointer: _asyncCallNative(methodNamePointer, hWallet, paramsPointer)); + debugPrint('async_call method_name $methodName hWallet $hWallet params $params'); + final result = + convertUTF8ToString(pointer: _asyncCallNative(methodNamePointer, hWallet, paramsPointer)); calloc.free(methodNamePointer); calloc.free(paramsPointer); @@ -101,8 +98,25 @@ String doAsyncCall( return result; } -Future invokeMethod( - int hWallet, String methodName, String params) async { +String createWallet( + {required String path, required String password, required String language, int nettype = 0}) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final languagePointer = language.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + debugPrint('create_wallet path $path password $password language $language'); + final result = convertUTF8ToString( + pointer: _createWalletNative( + pathPointer, passwordPointer, languagePointer, nettype, errorMessagePointer)); + debugPrint('create_wallet result $result'); + calloc.free(pathPointer); + calloc.free(passwordPointer); + calloc.free(languagePointer); + + return result; +} + +Future invokeMethod(int hWallet, String methodName, String params) async { debugPrint('invoke method $methodName params $params'); final invokeResult = doAsyncCall( methodName: 'invoke', @@ -134,6 +148,7 @@ Future transfer(int hWallet, TransferParams params) async { debugPrint('invoke result $invokeResult'); var map = json.decode(invokeResult); if (map['job_id'] != null) { + // TODO: fixit await Future.delayed(Duration(seconds: 3)); final result = tryPullResult(map['job_id'] as int); return result; @@ -151,9 +166,7 @@ Future getRecentTxsAndInfo( 'get_recent_txs_and_info', json.encode( GetRecentTxsAndInfoParams( - offset: offset, - count: count, - updateProvisionInfo: updateProvisionInfo), + offset: offset, count: count, updateProvisionInfo: updateProvisionInfo), ), ); } @@ -202,8 +215,9 @@ String restoreWalletFromSeed(String path, String password, String seed) { final passwordPointer = password.toNativeUtf8(); final seedPointer = seed.toNativeUtf8(); final errorMessagePointer = ''.toNativeUtf8(); - final result = convertUTF8ToString(pointer: _restoreWalletFromSeedNative(pathPointer, - passwordPointer, seedPointer, 0, 0, errorMessagePointer)); + final result = convertUTF8ToString( + pointer: _restoreWalletFromSeedNative( + pathPointer, passwordPointer, seedPointer, 0, 0, errorMessagePointer)); return result; } diff --git a/cw_zano/lib/api/exceptions/connection_to_node_exception.dart b/cw_zano/lib/api/exceptions/connection_to_node_exception.dart deleted file mode 100644 index 483b0a174..000000000 --- a/cw_zano/lib/api/exceptions/connection_to_node_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -class ConnectionToNodeException implements Exception { - ConnectionToNodeException({required this.message}); - - final String message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/creation_transaction_exception.dart b/cw_zano/lib/api/exceptions/creation_transaction_exception.dart deleted file mode 100644 index 7b55ec074..000000000 --- a/cw_zano/lib/api/exceptions/creation_transaction_exception.dart +++ /dev/null @@ -1,8 +0,0 @@ -class CreationTransactionException implements Exception { - CreationTransactionException({required this.message}); - - final String message; - - @override - String toString() => message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/setup_wallet_exception.dart b/cw_zano/lib/api/exceptions/setup_wallet_exception.dart deleted file mode 100644 index b6e0c1f18..000000000 --- a/cw_zano/lib/api/exceptions/setup_wallet_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -class SetupWalletException implements Exception { - SetupWalletException({required this.message}); - - final String message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_creation_exception.dart b/cw_zano/lib/api/exceptions/wallet_creation_exception.dart deleted file mode 100644 index 6052366b9..000000000 --- a/cw_zano/lib/api/exceptions/wallet_creation_exception.dart +++ /dev/null @@ -1,8 +0,0 @@ -class WalletCreationException implements Exception { - WalletCreationException({required this.message}); - - final String message; - - @override - String toString() => message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_opening_exception.dart b/cw_zano/lib/api/exceptions/wallet_opening_exception.dart deleted file mode 100644 index df7a850a4..000000000 --- a/cw_zano/lib/api/exceptions/wallet_opening_exception.dart +++ /dev/null @@ -1,8 +0,0 @@ -class WalletOpeningException implements Exception { - WalletOpeningException({required this.message}); - - final String message; - - @override - String toString() => message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart b/cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart deleted file mode 100644 index 004cd7958..000000000 --- a/cw_zano/lib/api/exceptions/wallet_restore_from_seed_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -class WalletRestoreFromSeedException implements Exception { - WalletRestoreFromSeedException({required this.message}); - - final String message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/model.dart b/cw_zano/lib/api/model.dart deleted file mode 100644 index 412dfc21b..000000000 --- a/cw_zano/lib/api/model.dart +++ /dev/null @@ -1,49 +0,0 @@ -// class Destination { -// final String amount; -// final String address; -// final String assetId; - -// Destination({required this.amount, required this.address, required this.assetId}); - -// Map toJson() => { -// "amount": amount, -// "address": address, -// "asset_id": assetId, -// }; -// } - -// class TransferParams { -// final List destinations; -// final int fee; -// final int mixin; -// final String paymentId; -// final String comment; -// final bool pushPayer; -// final bool hideReceiver; - -// TransferParams({required this.destinations, required this.fee, required this.mixin, required this.paymentId, required this.comment, required this.pushPayer, required this.hideReceiver}); - -// Map toJson() => { -// "destinations": destinations, -// "fee": fee, -// "mixin": mixin, -// "payment_id": paymentId, -// "comment": comment, -// "push_payer": pushPayer, -// "hide_receiver": hideReceiver, -// }; -// } - -// class GetRecentTxsAndInfoParams { -// final int offset; -// final int count; -// final bool updateProvisionInfo; - -// GetRecentTxsAndInfoParams({required this.offset, required this.count, required this.updateProvisionInfo}); - -// Map toJson() => { -// "offset": offset, -// "count": count, -// "update_provision_info": updateProvisionInfo, -// }; -// } \ No newline at end of file diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index 918bb1a06..8ff18d891 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:cw_zano/api/model/asset_info.dart'; class Balance { diff --git a/cw_zano/lib/api/model/create_wallet_result.dart b/cw_zano/lib/api/model/create_wallet_result.dart index 83f0253e0..7b07f9045 100644 --- a/cw_zano/lib/api/model/create_wallet_result.dart +++ b/cw_zano/lib/api/model/create_wallet_result.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:cw_zano/api/model/recent_history.dart'; import 'package:cw_zano/api/model/wi.dart'; diff --git a/cw_zano/lib/api/model/employed_entries.dart b/cw_zano/lib/api/model/employed_entries.dart index 091ea6d5f..59e5fe34d 100644 --- a/cw_zano/lib/api/model/employed_entries.dart +++ b/cw_zano/lib/api/model/employed_entries.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:cw_zano/api/model/receive.dart'; class EmployedEntries { diff --git a/cw_zano/lib/api/model/history.dart b/cw_zano/lib/api/model/history.dart index 0a23743e5..2310e8519 100644 --- a/cw_zano/lib/api/model/history.dart +++ b/cw_zano/lib/api/model/history.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:cw_zano/api/model/employed_entries.dart'; import 'package:cw_zano/api/model/subtransfer.dart'; diff --git a/cw_zano/lib/api/model/recent_history.dart b/cw_zano/lib/api/model/recent_history.dart index 5cbc1686c..87d1aafa7 100644 --- a/cw_zano/lib/api/model/recent_history.dart +++ b/cw_zano/lib/api/model/recent_history.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:cw_zano/api/model/history.dart'; class RecentHistory { diff --git a/cw_zano/lib/api/model/transfer_result.dart b/cw_zano/lib/api/model/transfer_result.dart new file mode 100644 index 000000000..4b43f38ff --- /dev/null +++ b/cw_zano/lib/api/model/transfer_result.dart @@ -0,0 +1,13 @@ +class TransferResult { + final String txHash; + final int txSize; + final String txUnsignedHex; + + TransferResult({required this.txHash, required this.txSize, required this.txUnsignedHex}); + + factory TransferResult.fromJson(Map json) => TransferResult( + txHash: json['tx_hash'] as String, + txSize: json['tx_size'] as int, + txUnsignedHex: json['tx_unsigned_hex'] as String, + ); +} diff --git a/cw_zano/lib/api/model/wi.dart b/cw_zano/lib/api/model/wi.dart index b02a38523..78a720c9c 100644 --- a/cw_zano/lib/api/model/wi.dart +++ b/cw_zano/lib/api/model/wi.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:cw_zano/api/model/balance.dart'; class Wi { diff --git a/cw_zano/lib/api/signatures.dart b/cw_zano/lib/api/signatures.dart index d233c5d43..64d096ca1 100644 --- a/cw_zano/lib/api/signatures.dart +++ b/cw_zano/lib/api/signatures.dart @@ -1,10 +1,9 @@ import 'dart:ffi'; -import 'package:cw_zano/api/structs/pending_transaction.dart'; import 'package:cw_zano/api/structs/ut8_box.dart'; import 'package:ffi/ffi.dart'; -typedef create_wallet = Pointer Function( - Pointer, Pointer, Pointer, Int32, Pointer); +// typedef create_wallet = Pointer Function( +// Pointer, Pointer, Pointer, Int32, Pointer); typedef restore_wallet_from_seed = Int8 Function( Pointer, Pointer, Pointer, Int32, Int64, Pointer); @@ -22,7 +21,7 @@ typedef restore_wallet_from_keys = Int8 Function( typedef is_wallet_exist = Int8 Function(Pointer); -typedef load_wallet = Int8 Function(Pointer, Pointer, Int8); +//typedef load_wallet = Int8 Function(Pointer, Pointer, Int8); typedef error_string = Pointer Function(); @@ -68,60 +67,60 @@ typedef get_syncing_height = Int64 Function(); typedef is_needed_to_refresh = Int8 Function(); -typedef is_new_transaction_exist = Int8 Function(); +// typedef is_new_transaction_exist = Int8 Function(); -typedef subaddrress_size = Int32 Function(); +// typedef subaddrress_size = Int32 Function(); -typedef subaddrress_refresh = Void Function(Int32); +// typedef subaddrress_refresh = Void Function(Int32); -typedef subaddress_get_all = Pointer Function(); +// typedef subaddress_get_all = Pointer Function(); -typedef subaddress_add_new = Void Function( - Int32 accountIndex, Pointer label); +// typedef subaddress_add_new = Void Function( +// Int32 accountIndex, Pointer label); -typedef subaddress_set_label = Void Function( - Int32 accountIndex, Int32 addressIndex, Pointer label); +// typedef subaddress_set_label = Void Function( +// Int32 accountIndex, Int32 addressIndex, Pointer label); -typedef account_size = Int32 Function(); +// typedef account_size = Int32 Function(); -typedef account_refresh = Void Function(); +// typedef account_refresh = Void Function(); -typedef account_get_all = Pointer Function(); +// typedef account_get_all = Pointer Function(); -typedef account_add_new = Void Function(Pointer label); +// typedef account_add_new = Void Function(Pointer label); -typedef account_set_label = Void Function( - Int32 accountIndex, Pointer label); +// typedef account_set_label = Void Function( +// Int32 accountIndex, Pointer label); -typedef transactions_refresh = Void Function(); +//typedef transactions_refresh = Void Function(); -typedef get_tx_key = Pointer? Function(Pointer txId); +//typedef get_tx_key = Pointer? Function(Pointer txId); -typedef transactions_count = Int64 Function(); +//typedef transactions_count = Int64 Function(); -typedef transactions_get_all = Pointer Function(); +//typedef transactions_get_all = Pointer Function(); -typedef transaction_create = Int8 Function( - Pointer address, - Pointer assetType, - Pointer paymentId, - Pointer amount, - Int8 priorityRaw, - Pointer error, - Pointer pendingTransaction); +// typedef transaction_create = Int8 Function( +// Pointer address, +// Pointer assetType, +// Pointer paymentId, +// Pointer amount, +// Int8 priorityRaw, +// Pointer error, +// Pointer pendingTransaction); -typedef transaction_create_mult_dest = Int8 Function( - Pointer> addresses, - Pointer assetType, - Pointer paymentId, - Pointer> amounts, - Int32 size, - Int8 priorityRaw, - Pointer error, - Pointer pendingTransaction); +// typedef transaction_create_mult_dest = Int8 Function( +// Pointer> addresses, +// Pointer assetType, +// Pointer paymentId, +// Pointer> amounts, +// Int32 size, +// Int8 priorityRaw, +// Pointer error, +// Pointer pendingTransaction); -typedef transaction_commit = Int8 Function( - Pointer, Pointer); +// typedef transaction_commit = Int8 Function( +// Pointer, Pointer); typedef secret_view_key = Pointer Function(); diff --git a/cw_zano/lib/api/structs/account_row.dart b/cw_zano/lib/api/structs/account_row.dart deleted file mode 100644 index aa492ee0f..000000000 --- a/cw_zano/lib/api/structs/account_row.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -class AccountRow extends Struct { - @Int64() - external int id; - - external Pointer label; - - String getLabel() => label.toDartString(); - int getId() => id; -} diff --git a/cw_zano/lib/api/structs/pending_transaction.dart b/cw_zano/lib/api/structs/pending_transaction.dart deleted file mode 100644 index 12e5233f1..000000000 --- a/cw_zano/lib/api/structs/pending_transaction.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -class PendingTransactionRaw extends Struct { - @Int64() - external int amount; - - @Int64() - external int fee; - - external Pointer hash; - - String getHash() => hash.toDartString(); -} - -class PendingTransactionDescription { - PendingTransactionDescription({ - required this.amount, - required this.fee, - required this.hash, - required this.pointerAddress}); - - final int amount; - final int fee; - final String hash; - final int pointerAddress; -} \ No newline at end of file diff --git a/cw_zano/lib/api/structs/subaddress_row.dart b/cw_zano/lib/api/structs/subaddress_row.dart deleted file mode 100644 index d593a793d..000000000 --- a/cw_zano/lib/api/structs/subaddress_row.dart +++ /dev/null @@ -1,15 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -class SubaddressRow extends Struct { - @Int64() - external int id; - - external Pointer address; - - external Pointer label; - - String getLabel() => label.toDartString(); - String getAddress() => address.toDartString(); - int getId() => id; -} \ No newline at end of file diff --git a/cw_zano/lib/api/structs/transaction_info_row.dart b/cw_zano/lib/api/structs/transaction_info_row.dart deleted file mode 100644 index 177cdfde7..000000000 --- a/cw_zano/lib/api/structs/transaction_info_row.dart +++ /dev/null @@ -1,44 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -class TransactionInfoRow extends Struct { - @Uint64() - external int amount; - - @Uint64() - external int fee; - - @Uint64() - external int blockHeight; - - @Uint64() - external int confirmations; - - @Uint32() - external int subaddrAccount; - - @Int8() - external int direction; - - @Int8() - external int isPending; - - @Uint32() - external int subaddrIndex; - - external Pointer hash; - - external Pointer paymentId; - - external Pointer assetType; - - @Int64() - external int datetime; - - int getDatetime() => datetime; - int getAmount() => amount >= 0 ? amount : amount * -1; - bool getIsPending() => isPending != 0; - String getHash() => hash.toDartString(); - String getPaymentId() => paymentId.toDartString(); - String getAssetType() => assetType.toDartString(); -} diff --git a/cw_zano/lib/api/structs/zano_balance_row.dart b/cw_zano/lib/api/structs/zano_balance_row.dart deleted file mode 100644 index ca7658ba1..000000000 --- a/cw_zano/lib/api/structs/zano_balance_row.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -class ZanoBalanceRow extends Struct { - @Int64() - external int amount; - - external Pointer assetType; - - int getAmount() => amount; - String getAssetType() => assetType.toDartString(); -} diff --git a/cw_zano/lib/api/structs/zano_rate.dart b/cw_zano/lib/api/structs/zano_rate.dart deleted file mode 100644 index baff78727..000000000 --- a/cw_zano/lib/api/structs/zano_rate.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -class ZanoRate extends Struct { - @Int64() - external int rate; - - external Pointer assetType; - - int getRate() => rate; - String getAssetType() => assetType.toDartString(); -} diff --git a/cw_zano/lib/api/subaddress_list.dart b/cw_zano/lib/api/subaddress_list.dart deleted file mode 100644 index 885e8178e..000000000 --- a/cw_zano/lib/api/subaddress_list.dart +++ /dev/null @@ -1,103 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; -import 'package:flutter/foundation.dart'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/structs/subaddress_row.dart'; -import 'package:cw_zano/api/wallet.dart'; - -/** -final subaddressSizeNative = zanoApi - .lookup>('subaddrress_size') - .asFunction(); - -final subaddressRefreshNative = zanoApi - .lookup>('subaddress_refresh') - .asFunction(); - -final subaddrressGetAllNative = zanoApi - .lookup>('subaddrress_get_all') - .asFunction(); - -final subaddrressAddNewNative = zanoApi - .lookup>('subaddress_add_row') - .asFunction(); - -final subaddrressSetLabelNative = zanoApi - .lookup>('subaddress_set_label') - .asFunction(); - -bool isUpdating = false; - -void refreshSubaddresses({required int accountIndex}) { - try { - isUpdating = true; - subaddressRefreshNative(accountIndex); - isUpdating = false; - } catch (e) { - isUpdating = false; - rethrow; - } -} - -List getAllSubaddresses() { - final size = subaddressSizeNative(); - final subaddressAddressesPointer = subaddrressGetAllNative(); - final subaddressAddresses = subaddressAddressesPointer.asTypedList(size); - - return subaddressAddresses - .map((addr) => Pointer.fromAddress(addr).ref) - .toList(); -} - -void addSubaddressSync({required int accountIndex, required String label}) { - final labelPointer = label.toNativeUtf8(); - subaddrressAddNewNative(accountIndex, labelPointer); - calloc.free(labelPointer); -} - -void setLabelForSubaddressSync( - {required int accountIndex, - required int addressIndex, - required String label}) { - final labelPointer = label.toNativeUtf8(); - - subaddrressSetLabelNative(accountIndex, addressIndex, labelPointer); - calloc.free(labelPointer); -} - -void _addSubaddress(Map args) { - final label = args['label'] as String; - final accountIndex = args['accountIndex'] as int; - - addSubaddressSync(accountIndex: accountIndex, label: label); -} - -void _setLabelForSubaddress(Map args) { - final label = args['label'] as String; - final accountIndex = args['accountIndex'] as int; - final addressIndex = args['addressIndex'] as int; - - setLabelForSubaddressSync( - accountIndex: accountIndex, addressIndex: addressIndex, label: label); -} - -Future addSubaddress({required int accountIndex, required String label}) async { - await compute, void>( - _addSubaddress, {'accountIndex': accountIndex, 'label': label}); - await store(); -} - -Future setLabelForSubaddress( - {required int accountIndex, - required int addressIndex, - required String label}) async { - await compute, void>(_setLabelForSubaddress, { - 'accountIndex': accountIndex, - 'addressIndex': addressIndex, - 'label': label - }); - await store(); -} -*/ \ No newline at end of file diff --git a/cw_zano/lib/api/transaction_history.dart b/cw_zano/lib/api/transaction_history.dart deleted file mode 100644 index 5493349df..000000000 --- a/cw_zano/lib/api/transaction_history.dart +++ /dev/null @@ -1,250 +0,0 @@ -import 'dart:ffi'; -import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/zano_output.dart'; -import 'package:cw_zano/api/structs/ut8_box.dart'; -import 'package:ffi/ffi.dart'; -import 'package:flutter/foundation.dart'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/structs/transaction_info_row.dart'; -import 'package:cw_zano/api/structs/pending_transaction.dart'; -import 'package:cw_zano/api/exceptions/creation_transaction_exception.dart'; - -/**final transactionsRefreshNative = zanoApi - .lookup>('transactions_refresh') - .asFunction();*/ - -/**final transactionsCountNative = zanoApi - .lookup>('transactions_count') - .asFunction();*/ - -final transactionsGetAllNative = zanoApi - .lookup>('transactions_get_all') - .asFunction(); - -final transactionCreateNative = zanoApi - .lookup>('transaction_create') - .asFunction(); - -final transactionCreateMultDestNative = zanoApi - .lookup>( - 'transaction_create_mult_dest') - .asFunction(); - -// final transactionCommitNative = zanoApi -// .lookup>('transaction_commit') -// .asFunction(); - -final getTxKeyNative = zanoApi - .lookup>('get_tx_key') - .asFunction(); - -String getTxKey(String txId) { - final txIdPointer = txId.toNativeUtf8(); - final keyPointer = getTxKeyNative(txIdPointer); - - calloc.free(txIdPointer); - - if (keyPointer != null) { - return convertUTF8ToString(pointer: keyPointer); - } - - return ''; -} - -// void refreshTransactions() { -// // TODO: fix it -// //transactionsRefreshNative(); -// debugPrint("refreshing transactions"); -// } - -int countOfTransactions() { - //return transactionsCountNative(); - // TODO: fix it - debugPrint("count of transactions"); - return 0; -} - -List getAllTransations() { - // TODO: fix it - return []; - /*final size = transactionsCountNative(); - final transactionsPointer = transactionsGetAllNative(); - final transactionsAddresses = transactionsPointer.asTypedList(size); - - return transactionsAddresses - .map((addr) => Pointer.fromAddress(addr).ref) - .toList();*/ -} - -PendingTransactionDescription createTransactionSync( - {required String address, - required String assetType, - required String paymentId, - required int priorityRaw, - String? amount}) { - final addressPointer = address.toNativeUtf8(); - final assetTypePointer = assetType.toNativeUtf8(); - final paymentIdPointer = paymentId.toNativeUtf8(); - final amountPointer = amount != null ? amount.toNativeUtf8() : nullptr; - final errorMessagePointer = calloc(); - final pendingTransactionRawPointer = calloc(); - final created = transactionCreateNative( - addressPointer, - assetTypePointer, - paymentIdPointer, - amountPointer, - priorityRaw, - errorMessagePointer, - pendingTransactionRawPointer) != - 0; - - calloc.free(addressPointer); - calloc.free(assetTypePointer); - calloc.free(paymentIdPointer); - - if (amountPointer != nullptr) { - calloc.free(amountPointer); - } - - if (!created) { - final message = errorMessagePointer.ref.getValue(); - calloc.free(errorMessagePointer); - throw CreationTransactionException(message: message); - } - - return PendingTransactionDescription( - amount: pendingTransactionRawPointer.ref.amount, - fee: pendingTransactionRawPointer.ref.fee, - hash: pendingTransactionRawPointer.ref.getHash(), - pointerAddress: pendingTransactionRawPointer.address); -} - -PendingTransactionDescription createTransactionMultDestSync( - {required List outputs, - required String assetType, - required String paymentId, - required int priorityRaw}) { - final int size = outputs.length; - final List> addressesPointers = - outputs.map((output) => output.address.toNativeUtf8()).toList(); - final Pointer> addressesPointerPointer = calloc(size); - final List> amountsPointers = - outputs.map((output) => output.amount.toNativeUtf8()).toList(); - final Pointer> amountsPointerPointer = calloc(size); - - for (int i = 0; i < size; i++) { - addressesPointerPointer[i] = addressesPointers[i]; - amountsPointerPointer[i] = amountsPointers[i]; - } - - final assetTypePointer = assetType.toNativeUtf8(); - final paymentIdPointer = paymentId.toNativeUtf8(); - final errorMessagePointer = calloc(); - final pendingTransactionRawPointer = calloc(); - final created = transactionCreateMultDestNative( - addressesPointerPointer, - assetTypePointer, - paymentIdPointer, - amountsPointerPointer, - size, - priorityRaw, - errorMessagePointer, - pendingTransactionRawPointer) != - 0; - - calloc.free(addressesPointerPointer); - calloc.free(assetTypePointer); - calloc.free(amountsPointerPointer); - - addressesPointers.forEach((element) => calloc.free(element)); - amountsPointers.forEach((element) => calloc.free(element)); - - calloc.free(paymentIdPointer); - - if (!created) { - final message = errorMessagePointer.ref.getValue(); - calloc.free(errorMessagePointer); - throw CreationTransactionException(message: message); - } - - return PendingTransactionDescription( - amount: pendingTransactionRawPointer.ref.amount, - fee: pendingTransactionRawPointer.ref.fee, - hash: pendingTransactionRawPointer.ref.getHash(), - pointerAddress: pendingTransactionRawPointer.address); -} - -void commitTransactionFromPointerAddress({required int address}) => - commitTransaction( - transactionPointer: - Pointer.fromAddress(address)); - -void commitTransaction( - {required Pointer transactionPointer}) { - final errorMessagePointer = calloc(); - print("commit transaction"); - final isCommited = true; - //transactionCommitNative(transactionPointer, errorMessagePointer) != 0; - - if (!isCommited) { - final message = errorMessagePointer.ref.getValue(); - calloc.free(errorMessagePointer); - throw CreationTransactionException(message: message); - } -} - -PendingTransactionDescription _createTransactionSync(Map args) { - final address = args['address'] as String; - final assetType = args['assetType'] as String; - final paymentId = args['paymentId'] as String; - final amount = args['amount'] as String; - final priorityRaw = args['priorityRaw'] as int; - - return createTransactionSync( - address: address, - assetType: assetType, - paymentId: paymentId, - amount: amount, - priorityRaw: priorityRaw); -} - -PendingTransactionDescription _createTransactionMultDestSync(Map args) { - final outputs = args['outputs'] as List; - final assetType = args['assetType'] as String; - final paymentId = args['paymentId'] as String; - final priorityRaw = args['priorityRaw'] as int; - - return createTransactionMultDestSync( - outputs: outputs, - assetType: assetType, - paymentId: paymentId, - priorityRaw: priorityRaw); -} - -Future createTransaction( - {required String address, - required String assetType, - required int priorityRaw, - String? amount, - String paymentId = ''}) => - compute(_createTransactionSync, { - 'address': address, - 'assetType': assetType, - 'paymentId': paymentId, - 'amount': amount, - 'priorityRaw': priorityRaw, - }); - -Future createTransactionMultDest( - {required List outputs, - required int priorityRaw, - String? assetType, - String paymentId = ''}) => - compute(_createTransactionMultDestSync, { - 'outputs': outputs, - 'assetType': assetType, - 'paymentId': paymentId, - 'priorityRaw': priorityRaw, - }); diff --git a/cw_zano/lib/api/types.dart b/cw_zano/lib/api/types.dart index 9608edee9..09e83213e 100644 --- a/cw_zano/lib/api/types.dart +++ b/cw_zano/lib/api/types.dart @@ -1,5 +1,4 @@ import 'dart:ffi'; -import 'package:cw_zano/api/structs/pending_transaction.dart'; import 'package:cw_zano/api/structs/ut8_box.dart'; import 'package:ffi/ffi.dart'; @@ -22,7 +21,7 @@ typedef RestoreWalletFromKeys = int Function( typedef IsWalletExist = int Function(Pointer); -typedef LoadWallet = int Function(Pointer, Pointer, int); +//typedef LoadWallet = int Function(Pointer, Pointer, int); typedef ErrorString = Pointer Function(); @@ -99,27 +98,27 @@ typedef TransactionsCount = int Function(); typedef TransactionsGetAll = Pointer Function(); -typedef TransactionCreate = int Function( - Pointer address, - Pointer assetType, - Pointer paymentId, - Pointer amount, - int priorityRaw, - Pointer error, - Pointer pendingTransaction); +// typedef TransactionCreate = int Function( +// Pointer address, +// Pointer assetType, +// Pointer paymentId, +// Pointer amount, +// int priorityRaw, +// Pointer error, +// Pointer pendingTransaction); -typedef TransactionCreateMultDest = int Function( - Pointer> addresses, - Pointer assetType, - Pointer paymentId, - Pointer> amounts, - int size, - int priorityRaw, - Pointer error, - Pointer pendingTransaction); +// typedef TransactionCreateMultDest = int Function( +// Pointer> addresses, +// Pointer assetType, +// Pointer paymentId, +// Pointer> amounts, +// int size, +// int priorityRaw, +// Pointer error, +// Pointer pendingTransaction); -typedef TransactionCommit = int Function( - Pointer, Pointer); +// typedef TransactionCommit = int Function( +// Pointer, Pointer); typedef SecretViewKey = Pointer Function(); diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart index a15945c70..3d996bf81 100644 --- a/cw_zano/lib/api/wallet.dart +++ b/cw_zano/lib/api/wallet.dart @@ -14,7 +14,6 @@ import 'package:cw_zano/api/signatures.dart'; import 'package:cw_zano/api/types.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:cw_zano/api/calls.dart' as calls; -import 'package:cw_zano/api/exceptions/setup_wallet_exception.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:mobx/mobx.dart' as mobx; @@ -163,9 +162,9 @@ int getNodeHeightSync(int hWallet) { // return 0; // } -int getTxFee(int priority) { - return calls.getCurrentTxFee(priority); -} +// int getTxFee(int priority) { +// return calls.getCurrentTxFee(priority); +// } bool isConnectedSync() => isConnectedNative() != 0; @@ -325,7 +324,7 @@ class SyncListener { wallet.balance = mobx.ObservableMap.of( {CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); - getTxFee(hWallet); + ///getTxFee(hWallet); if (_initialSyncHeight <= 0) { _initialSyncHeight = syncHeight; diff --git a/cw_zano/lib/api/wallet_manager.dart b/cw_zano/lib/api/wallet_manager.dart index a121fe4db..997e02102 100644 --- a/cw_zano/lib/api/wallet_manager.dart +++ b/cw_zano/lib/api/wallet_manager.dart @@ -5,15 +5,11 @@ import 'package:cw_zano/api/convert_utf8_to_string.dart'; import 'package:cw_zano/api/signatures.dart'; import 'package:cw_zano/api/types.dart'; import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/wallet.dart'; -import 'package:cw_zano/api/exceptions/wallet_opening_exception.dart'; -import 'package:cw_zano/api/exceptions/wallet_creation_exception.dart'; import 'package:cw_zano/api/exceptions/wallet_restore_from_keys_exception.dart'; -import 'package:cw_zano/api/exceptions/wallet_restore_from_seed_exception.dart'; -final createWalletNative = zanoApi - .lookup>('create_wallet') - .asFunction(); +// final createWalletNative = zanoApi +// .lookup>('create_wallet') +// .asFunction(); final restoreWalletFromSeedNative = zanoApi .lookup>( @@ -29,15 +25,15 @@ final isWalletExistNative = zanoApi .lookup>('is_wallet_exist') .asFunction(); -final loadWalletNative = zanoApi - .lookup>('load_wallet') - .asFunction(); +// final loadWalletNative = zanoApi +// .lookup>('load_wallet') +// .asFunction(); final errorStringNative = zanoApi .lookup>('error_string') .asFunction(); -String createWalletSync( +/*String createWalletSync( {required String path, required String password, required String language, @@ -63,7 +59,7 @@ String createWalletSync( return hWallet; // setupNodeSync(address: "node.moneroworld.com:18089");*/ -} +}*/ bool isWalletExistSync({required String path}) { final pathPointer = path.toNativeUtf8(); @@ -74,34 +70,34 @@ bool isWalletExistSync({required String path}) { return isExist; } -void restoreWalletFromSeedSync( - {required String path, - required String password, - required String seed, - int nettype = 0, - int restoreHeight = 0}) { - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final seedPointer = seed.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - final isWalletRestored = restoreWalletFromSeedNative( - pathPointer, - passwordPointer, - seedPointer, - nettype, - restoreHeight, - errorMessagePointer) != - 0; +// void restoreWalletFromSeedSync( +// {required String path, +// required String password, +// required String seed, +// int nettype = 0, +// int restoreHeight = 0}) { +// final pathPointer = path.toNativeUtf8(); +// final passwordPointer = password.toNativeUtf8(); +// final seedPointer = seed.toNativeUtf8(); +// final errorMessagePointer = ''.toNativeUtf8(); +// final isWalletRestored = restoreWalletFromSeedNative( +// pathPointer, +// passwordPointer, +// seedPointer, +// nettype, +// restoreHeight, +// errorMessagePointer) != +// 0; - calloc.free(pathPointer); - calloc.free(passwordPointer); - calloc.free(seedPointer); +// calloc.free(pathPointer); +// calloc.free(passwordPointer); +// calloc.free(seedPointer); - if (!isWalletRestored) { - throw WalletRestoreFromSeedException( - message: convertUTF8ToString(pointer: errorMessagePointer)); - } -} +// if (!isWalletRestored) { +// throw WalletRestoreFromSeedException( +// message: convertUTF8ToString(pointer: errorMessagePointer)); +// } +// } void restoreWalletFromKeysSync( {required String path, @@ -144,37 +140,37 @@ void restoreWalletFromKeysSync( } } -void loadWallet( - {required String path, required String password, int nettype = 0}) { - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final loaded = loadWalletNative(pathPointer, passwordPointer, nettype) != 0; - calloc.free(pathPointer); - calloc.free(passwordPointer); +// void loadWallet( +// {required String path, required String password, int nettype = 0}) { +// final pathPointer = path.toNativeUtf8(); +// final passwordPointer = password.toNativeUtf8(); +// final loaded = loadWalletNative(pathPointer, passwordPointer, nettype) != 0; +// calloc.free(pathPointer); +// calloc.free(passwordPointer); - if (!loaded) { - throw WalletOpeningException( - message: convertUTF8ToString(pointer: errorStringNative())); - } -} +// if (!loaded) { +// throw WalletOpeningException( +// message: convertUTF8ToString(pointer: errorStringNative())); +// } +// } -String _createWallet(Map args) { - final path = args['path'] as String; - final password = args['password'] as String; - final language = args['language'] as String; +// String _createWallet(Map args) { +// final path = args['path'] as String; +// final password = args['password'] as String; +// final language = args['language'] as String; - return createWalletSync(path: path, password: password, language: language); -} +// return createWalletSync(path: path, password: password, language: language); +// } -void _restoreFromSeed(Map args) { - final path = args['path'] as String; - final password = args['password'] as String; - final seed = args['seed'] as String; - final restoreHeight = args['restoreHeight'] as int; +// void _restoreFromSeed(Map args) { +// final path = args['path'] as String; +// final password = args['password'] as String; +// final seed = args['seed'] as String; +// final restoreHeight = args['restoreHeight'] as int; - restoreWalletFromSeedSync( - path: path, password: password, seed: seed, restoreHeight: restoreHeight); -} +// restoreWalletFromSeedSync( +// path: path, password: password, seed: seed, restoreHeight: restoreHeight); +// } void _restoreFromKeys(Map args) { final path = args['path'] as String; @@ -195,8 +191,8 @@ void _restoreFromKeys(Map args) { spendKey: spendKey); } -Future _openWallet(Map args) async => loadWallet( - path: args['path'] as String, password: args['password'] as String); +// Future _openWallet(Map args) async => loadWallet( +// path: args['path'] as String, password: args['password'] as String); bool _isWalletExist(String path) => isWalletExistSync(path: path); @@ -206,34 +202,34 @@ bool _isWalletExist(String path) => isWalletExistSync(path: path); // int nettype = 0}) async => // loadWallet(path: path, password: password, nettype: nettype); -Future openWalletAsync(Map args) async => - compute(_openWallet, args); +// Future openWalletAsync(Map args) async => +// compute(_openWallet, args); -Future createWallet( - {required String path, - required String password, - required String language, - int nettype = 0}) async => - compute, String>(_createWallet, { - 'path': path, - 'password': password, - 'language': language, - 'nettype': nettype - }); +// Future createWallet( +// {required String path, +// required String password, +// required String language, +// int nettype = 0}) async => +// compute, String>(_createWallet, { +// 'path': path, +// 'password': password, +// 'language': language, +// 'nettype': nettype +// }); -Future restoreFromSeed( - {required String path, - required String password, - required String seed, - int nettype = 0, - int restoreHeight = 0}) async => - compute, void>(_restoreFromSeed, { - 'path': path, - 'password': password, - 'seed': seed, - 'nettype': nettype, - 'restoreHeight': restoreHeight - }); +// Future restoreFromSeed( +// {required String path, +// required String password, +// required String seed, +// int nettype = 0, +// int restoreHeight = 0}) async => +// compute, void>(_restoreFromSeed, { +// 'path': path, +// 'password': password, +// 'seed': seed, +// 'nettype': nettype, +// 'restoreHeight': restoreHeight +// }); Future restoreFromKeys( {required String path, diff --git a/cw_zano/lib/api/zano_output.dart b/cw_zano/lib/api/zano_output.dart deleted file mode 100644 index 88d5ffe27..000000000 --- a/cw_zano/lib/api/zano_output.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:flutter/foundation.dart'; - -class ZanoOutput { - ZanoOutput({required this.address, required this.amount}); - - final String address; - final String amount; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/chinese_simplified.dart b/cw_zano/lib/mnemonics/chinese_simplified.dart deleted file mode 100644 index da3225041..000000000 --- a/cw_zano/lib/mnemonics/chinese_simplified.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class ChineseSimplifiedMnemonics { - static const words = [ - "的", - "一", - "是", - "在", - "不", - "了", - "有", - "和", - "人", - "这", - "中", - "大", - "为", - "上", - "个", - "国", - "我", - "以", - "要", - "他", - "时", - "来", - "用", - "们", - "生", - "到", - "作", - "地", - "于", - "出", - "就", - "分", - "对", - "成", - "会", - "可", - "主", - "发", - "年", - "动", - "同", - "工", - "也", - "能", - "下", - "过", - "子", - "说", - "产", - "种", - "面", - "而", - "方", - "后", - "多", - "定", - "行", - "学", - "法", - "所", - "民", - "得", - "经", - "十", - "三", - "之", - "进", - "着", - "等", - "部", - "度", - "家", - "电", - "力", - "里", - "如", - "水", - "化", - "高", - "自", - "二", - "理", - "起", - "小", - "物", - "现", - "实", - "加", - "量", - "都", - "两", - "体", - "制", - "机", - "当", - "使", - "点", - "从", - "业", - "本", - "去", - "把", - "性", - "好", - "应", - "开", - "它", - "合", - "还", - "因", - "由", - "其", - "些", - "然", - "前", - "外", - "天", - "政", - "四", - "日", - "那", - "社", - "义", - "事", - "平", - "形", - "相", - "全", - "表", - "间", - "样", - "与", - "关", - "各", - "重", - "新", - "线", - "内", - "数", - "正", - "心", - "反", - "你", - "明", - "看", - "原", - "又", - "么", - "利", - "比", - "或", - "但", - "质", - "气", - "第", - "向", - "道", - "命", - "此", - "变", - "条", - "只", - "没", - "结", - "解", - "问", - "意", - "建", - "月", - "公", - "无", - "系", - "军", - "很", - "情", - "者", - "最", - "立", - "代", - "想", - "已", - "通", - "并", - "提", - "直", - "题", - "党", - "程", - "展", - "五", - "果", - "料", - "象", - "员", - "革", - "位", - "入", - "常", - "文", - "总", - "次", - "品", - "式", - "活", - "设", - "及", - "管", - "特", - "件", - "长", - "求", - "老", - "头", - "基", - "资", - "边", - "流", - "路", - "级", - "少", - "图", - "山", - "统", - "接", - "知", - "较", - "将", - "组", - "见", - "计", - "别", - "她", - "手", - "角", - "期", - "根", - "论", - "运", - "农", - "指", - "几", - "九", - "区", - "强", - "放", - "决", - "西", - "被", - "干", - "做", - "必", - "战", - "先", - "回", - "则", - "任", - "取", - "据", - "处", - "队", - "南", - "给", - "色", - "光", - "门", - "即", - "保", - "治", - "北", - "造", - "百", - "规", - "热", - "领", - "七", - "海", - "口", - "东", - "导", - "器", - "压", - "志", - "世", - "金", - "增", - "争", - "济", - "阶", - "油", - "思", - "术", - "极", - "交", - "受", - "联", - "什", - "认", - "六", - "共", - "权", - "收", - "证", - "改", - "清", - "美", - "再", - "采", - "转", - "更", - "单", - "风", - "切", - "打", - "白", - "教", - "速", - "花", - "带", - "安", - "场", - "身", - "车", - "例", - "真", - "务", - "具", - "万", - "每", - "目", - "至", - "达", - "走", - "积", - "示", - "议", - "声", - "报", - "斗", - "完", - "类", - "八", - "离", - "华", - "名", - "确", - "才", - "科", - "张", - "信", - "马", - "节", - "话", - "米", - "整", - "空", - "元", - "况", - "今", - "集", - "温", - "传", - "土", - "许", - "步", - "群", - "广", - "石", - "记", - "需", - "段", - "研", - "界", - "拉", - "林", - "律", - "叫", - "且", - "究", - "观", - "越", - "织", - "装", - "影", - "算", - "低", - "持", - "音", - "众", - "书", - "布", - "复", - "容", - "儿", - "须", - "际", - "商", - "非", - "验", - "连", - "断", - "深", - "难", - "近", - "矿", - "千", - "周", - "委", - "素", - "技", - "备", - "半", - "办", - "青", - "省", - "列", - "习", - "响", - "约", - "支", - "般", - "史", - "感", - "劳", - "便", - "团", - "往", - "酸", - "历", - "市", - "克", - "何", - "除", - "消", - "构", - "府", - "称", - "太", - "准", - "精", - "值", - "号", - "率", - "族", - "维", - "划", - "选", - "标", - "写", - "存", - "候", - "毛", - "亲", - "快", - "效", - "斯", - "院", - "查", - "江", - "型", - "眼", - "王", - "按", - "格", - "养", - "易", - "置", - "派", - "层", - "片", - "始", - "却", - "专", - "状", - "育", - "厂", - "京", - "识", - "适", - "属", - "圆", - "包", - "火", - "住", - "调", - "满", - "县", - "局", - "照", - "参", - "红", - "细", - "引", - "听", - "该", - "铁", - "价", - "严", - "首", - "底", - "液", - "官", - "德", - "随", - "病", - "苏", - "失", - "尔", - "死", - "讲", - "配", - "女", - "黄", - "推", - "显", - "谈", - "罪", - "神", - "艺", - "呢", - "席", - "含", - "企", - "望", - "密", - "批", - "营", - "项", - "防", - "举", - "球", - "英", - "氧", - "势", - "告", - "李", - "台", - "落", - "木", - "帮", - "轮", - "破", - "亚", - "师", - "围", - "注", - "远", - "字", - "材", - "排", - "供", - "河", - "态", - "封", - "另", - "施", - "减", - "树", - "溶", - "怎", - "止", - "案", - "言", - "士", - "均", - "武", - "固", - "叶", - "鱼", - "波", - "视", - "仅", - "费", - "紧", - "爱", - "左", - "章", - "早", - "朝", - "害", - "续", - "轻", - "服", - "试", - "食", - "充", - "兵", - "源", - "判", - "护", - "司", - "足", - "某", - "练", - "差", - "致", - "板", - "田", - "降", - "黑", - "犯", - "负", - "击", - "范", - "继", - "兴", - "似", - "余", - "坚", - "曲", - "输", - "修", - "故", - "城", - "夫", - "够", - "送", - "笔", - "船", - "占", - "右", - "财", - "吃", - "富", - "春", - "职", - "觉", - "汉", - "画", - "功", - "巴", - "跟", - "虽", - "杂", - "飞", - "检", - "吸", - "助", - "升", - "阳", - "互", - "初", - "创", - "抗", - "考", - "投", - "坏", - "策", - "古", - "径", - "换", - "未", - "跑", - "留", - "钢", - "曾", - "端", - "责", - "站", - "简", - "述", - "钱", - "副", - "尽", - "帝", - "射", - "草", - "冲", - "承", - "独", - "令", - "限", - "阿", - "宣", - "环", - "双", - "请", - "超", - "微", - "让", - "控", - "州", - "良", - "轴", - "找", - "否", - "纪", - "益", - "依", - "优", - "顶", - "础", - "载", - "倒", - "房", - "突", - "坐", - "粉", - "敌", - "略", - "客", - "袁", - "冷", - "胜", - "绝", - "析", - "块", - "剂", - "测", - "丝", - "协", - "诉", - "念", - "陈", - "仍", - "罗", - "盐", - "友", - "洋", - "错", - "苦", - "夜", - "刑", - "移", - "频", - "逐", - "靠", - "混", - "母", - "短", - "皮", - "终", - "聚", - "汽", - "村", - "云", - "哪", - "既", - "距", - "卫", - "停", - "烈", - "央", - "察", - "烧", - "迅", - "境", - "若", - "印", - "洲", - "刻", - "括", - "激", - "孔", - "搞", - "甚", - "室", - "待", - "核", - "校", - "散", - "侵", - "吧", - "甲", - "游", - "久", - "菜", - "味", - "旧", - "模", - "湖", - "货", - "损", - "预", - "阻", - "毫", - "普", - "稳", - "乙", - "妈", - "植", - "息", - "扩", - "银", - "语", - "挥", - "酒", - "守", - "拿", - "序", - "纸", - "医", - "缺", - "雨", - "吗", - "针", - "刘", - "啊", - "急", - "唱", - "误", - "训", - "愿", - "审", - "附", - "获", - "茶", - "鲜", - "粮", - "斤", - "孩", - "脱", - "硫", - "肥", - "善", - "龙", - "演", - "父", - "渐", - "血", - "欢", - "械", - "掌", - "歌", - "沙", - "刚", - "攻", - "谓", - "盾", - "讨", - "晚", - "粒", - "乱", - "燃", - "矛", - "乎", - "杀", - "药", - "宁", - "鲁", - "贵", - "钟", - "煤", - "读", - "班", - "伯", - "香", - "介", - "迫", - "句", - "丰", - "培", - "握", - "兰", - "担", - "弦", - "蛋", - "沉", - "假", - "穿", - "执", - "答", - "乐", - "谁", - "顺", - "烟", - "缩", - "征", - "脸", - "喜", - "松", - "脚", - "困", - "异", - "免", - "背", - "星", - "福", - "买", - "染", - "井", - "概", - "慢", - "怕", - "磁", - "倍", - "祖", - "皇", - "促", - "静", - "补", - "评", - "翻", - "肉", - "践", - "尼", - "衣", - "宽", - "扬", - "棉", - "希", - "伤", - "操", - "垂", - "秋", - "宜", - "氢", - "套", - "督", - "振", - "架", - "亮", - "末", - "宪", - "庆", - "编", - "牛", - "触", - "映", - "雷", - "销", - "诗", - "座", - "居", - "抓", - "裂", - "胞", - "呼", - "娘", - "景", - "威", - "绿", - "晶", - "厚", - "盟", - "衡", - "鸡", - "孙", - "延", - "危", - "胶", - "屋", - "乡", - "临", - "陆", - "顾", - "掉", - "呀", - "灯", - "岁", - "措", - "束", - "耐", - "剧", - "玉", - "赵", - "跳", - "哥", - "季", - "课", - "凯", - "胡", - "额", - "款", - "绍", - "卷", - "齐", - "伟", - "蒸", - "殖", - "永", - "宗", - "苗", - "川", - "炉", - "岩", - "弱", - "零", - "杨", - "奏", - "沿", - "露", - "杆", - "探", - "滑", - "镇", - "饭", - "浓", - "航", - "怀", - "赶", - "库", - "夺", - "伊", - "灵", - "税", - "途", - "灭", - "赛", - "归", - "召", - "鼓", - "播", - "盘", - "裁", - "险", - "康", - "唯", - "录", - "菌", - "纯", - "借", - "糖", - "盖", - "横", - "符", - "私", - "努", - "堂", - "域", - "枪", - "润", - "幅", - "哈", - "竟", - "熟", - "虫", - "泽", - "脑", - "壤", - "碳", - "欧", - "遍", - "侧", - "寨", - "敢", - "彻", - "虑", - "斜", - "薄", - "庭", - "纳", - "弹", - "饲", - "伸", - "折", - "麦", - "湿", - "暗", - "荷", - "瓦", - "塞", - "床", - "筑", - "恶", - "户", - "访", - "塔", - "奇", - "透", - "梁", - "刀", - "旋", - "迹", - "卡", - "氯", - "遇", - "份", - "毒", - "泥", - "退", - "洗", - "摆", - "灰", - "彩", - "卖", - "耗", - "夏", - "择", - "忙", - "铜", - "献", - "硬", - "予", - "繁", - "圈", - "雪", - "函", - "亦", - "抽", - "篇", - "阵", - "阴", - "丁", - "尺", - "追", - "堆", - "雄", - "迎", - "泛", - "爸", - "楼", - "避", - "谋", - "吨", - "野", - "猪", - "旗", - "累", - "偏", - "典", - "馆", - "索", - "秦", - "脂", - "潮", - "爷", - "豆", - "忽", - "托", - "惊", - "塑", - "遗", - "愈", - "朱", - "替", - "纤", - "粗", - "倾", - "尚", - "痛", - "楚", - "谢", - "奋", - "购", - "磨", - "君", - "池", - "旁", - "碎", - "骨", - "监", - "捕", - "弟", - "暴", - "割", - "贯", - "殊", - "释", - "词", - "亡", - "壁", - "顿", - "宝", - "午", - "尘", - "闻", - "揭", - "炮", - "残", - "冬", - "桥", - "妇", - "警", - "综", - "招", - "吴", - "付", - "浮", - "遭", - "徐", - "您", - "摇", - "谷", - "赞", - "箱", - "隔", - "订", - "男", - "吹", - "园", - "纷", - "唐", - "败", - "宋", - "玻", - "巨", - "耕", - "坦", - "荣", - "闭", - "湾", - "键", - "凡", - "驻", - "锅", - "救", - "恩", - "剥", - "凝", - "碱", - "齿", - "截", - "炼", - "麻", - "纺", - "禁", - "废", - "盛", - "版", - "缓", - "净", - "睛", - "昌", - "婚", - "涉", - "筒", - "嘴", - "插", - "岸", - "朗", - "庄", - "街", - "藏", - "姑", - "贸", - "腐", - "奴", - "啦", - "惯", - "乘", - "伙", - "恢", - "匀", - "纱", - "扎", - "辩", - "耳", - "彪", - "臣", - "亿", - "璃", - "抵", - "脉", - "秀", - "萨", - "俄", - "网", - "舞", - "店", - "喷", - "纵", - "寸", - "汗", - "挂", - "洪", - "贺", - "闪", - "柬", - "爆", - "烯", - "津", - "稻", - "墙", - "软", - "勇", - "像", - "滚", - "厘", - "蒙", - "芳", - "肯", - "坡", - "柱", - "荡", - "腿", - "仪", - "旅", - "尾", - "轧", - "冰", - "贡", - "登", - "黎", - "削", - "钻", - "勒", - "逃", - "障", - "氨", - "郭", - "峰", - "币", - "港", - "伏", - "轨", - "亩", - "毕", - "擦", - "莫", - "刺", - "浪", - "秘", - "援", - "株", - "健", - "售", - "股", - "岛", - "甘", - "泡", - "睡", - "童", - "铸", - "汤", - "阀", - "休", - "汇", - "舍", - "牧", - "绕", - "炸", - "哲", - "磷", - "绩", - "朋", - "淡", - "尖", - "启", - "陷", - "柴", - "呈", - "徒", - "颜", - "泪", - "稍", - "忘", - "泵", - "蓝", - "拖", - "洞", - "授", - "镜", - "辛", - "壮", - "锋", - "贫", - "虚", - "弯", - "摩", - "泰", - "幼", - "廷", - "尊", - "窗", - "纲", - "弄", - "隶", - "疑", - "氏", - "宫", - "姐", - "震", - "瑞", - "怪", - "尤", - "琴", - "循", - "描", - "膜", - "违", - "夹", - "腰", - "缘", - "珠", - "穷", - "森", - "枝", - "竹", - "沟", - "催", - "绳", - "忆", - "邦", - "剩", - "幸", - "浆", - "栏", - "拥", - "牙", - "贮", - "礼", - "滤", - "钠", - "纹", - "罢", - "拍", - "咱", - "喊", - "袖", - "埃", - "勤", - "罚", - "焦", - "潜", - "伍", - "墨", - "欲", - "缝", - "姓", - "刊", - "饱", - "仿", - "奖", - "铝", - "鬼", - "丽", - "跨", - "默", - "挖", - "链", - "扫", - "喝", - "袋", - "炭", - "污", - "幕", - "诸", - "弧", - "励", - "梅", - "奶", - "洁", - "灾", - "舟", - "鉴", - "苯", - "讼", - "抱", - "毁", - "懂", - "寒", - "智", - "埔", - "寄", - "届", - "跃", - "渡", - "挑", - "丹", - "艰", - "贝", - "碰", - "拔", - "爹", - "戴", - "码", - "梦", - "芽", - "熔", - "赤", - "渔", - "哭", - "敬", - "颗", - "奔", - "铅", - "仲", - "虎", - "稀", - "妹", - "乏", - "珍", - "申", - "桌", - "遵", - "允", - "隆", - "螺", - "仓", - "魏", - "锐", - "晓", - "氮", - "兼", - "隐", - "碍", - "赫", - "拨", - "忠", - "肃", - "缸", - "牵", - "抢", - "博", - "巧", - "壳", - "兄", - "杜", - "讯", - "诚", - "碧", - "祥", - "柯", - "页", - "巡", - "矩", - "悲", - "灌", - "龄", - "伦", - "票", - "寻", - "桂", - "铺", - "圣", - "恐", - "恰", - "郑", - "趣", - "抬", - "荒", - "腾", - "贴", - "柔", - "滴", - "猛", - "阔", - "辆", - "妻", - "填", - "撤", - "储", - "签", - "闹", - "扰", - "紫", - "砂", - "递", - "戏", - "吊", - "陶", - "伐", - "喂", - "疗", - "瓶", - "婆", - "抚", - "臂", - "摸", - "忍", - "虾", - "蜡", - "邻", - "胸", - "巩", - "挤", - "偶", - "弃", - "槽", - "劲", - "乳", - "邓", - "吉", - "仁", - "烂", - "砖", - "租", - "乌", - "舰", - "伴", - "瓜", - "浅", - "丙", - "暂", - "燥", - "橡", - "柳", - "迷", - "暖", - "牌", - "秧", - "胆", - "详", - "簧", - "踏", - "瓷", - "谱", - "呆", - "宾", - "糊", - "洛", - "辉", - "愤", - "竞", - "隙", - "怒", - "粘", - "乃", - "绪", - "肩", - "籍", - "敏", - "涂", - "熙", - "皆", - "侦", - "悬", - "掘", - "享", - "纠", - "醒", - "狂", - "锁", - "淀", - "恨", - "牲", - "霸", - "爬", - "赏", - "逆", - "玩", - "陵", - "祝", - "秒", - "浙", - "貌" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/dutch.dart b/cw_zano/lib/mnemonics/dutch.dart deleted file mode 100644 index 9dcb800cd..000000000 --- a/cw_zano/lib/mnemonics/dutch.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class DutchMnemonics { - static const words = [ - "aalglad", - "aalscholver", - "aambeeld", - "aangeef", - "aanlandig", - "aanvaard", - "aanwakker", - "aapmens", - "aarten", - "abdicatie", - "abnormaal", - "abrikoos", - "accu", - "acuut", - "adjudant", - "admiraal", - "advies", - "afbidding", - "afdracht", - "affaire", - "affiche", - "afgang", - "afkick", - "afknap", - "aflees", - "afmijner", - "afname", - "afpreekt", - "afrader", - "afspeel", - "aftocht", - "aftrek", - "afzijdig", - "ahornboom", - "aktetas", - "akzo", - "alchemist", - "alcohol", - "aldaar", - "alexander", - "alfabet", - "alfredo", - "alice", - "alikruik", - "allrisk", - "altsax", - "alufolie", - "alziend", - "amai", - "ambacht", - "ambieer", - "amina", - "amnestie", - "amok", - "ampul", - "amuzikaal", - "angela", - "aniek", - "antje", - "antwerpen", - "anya", - "aorta", - "apache", - "apekool", - "appelaar", - "arganolie", - "argeloos", - "armoede", - "arrenslee", - "artritis", - "arubaan", - "asbak", - "ascii", - "asgrauw", - "asjes", - "asml", - "aspunt", - "asurn", - "asveld", - "aterling", - "atomair", - "atrium", - "atsma", - "atypisch", - "auping", - "aura", - "avifauna", - "axiaal", - "azoriaan", - "azteek", - "azuur", - "bachelor", - "badderen", - "badhotel", - "badmantel", - "badsteden", - "balie", - "ballans", - "balvers", - "bamibal", - "banneling", - "barracuda", - "basaal", - "batelaan", - "batje", - "beambte", - "bedlamp", - "bedwelmd", - "befaamd", - "begierd", - "begraaf", - "behield", - "beijaard", - "bejaagd", - "bekaaid", - "beks", - "bektas", - "belaad", - "belboei", - "belderbos", - "beloerd", - "beluchten", - "bemiddeld", - "benadeeld", - "benijd", - "berechten", - "beroemd", - "besef", - "besseling", - "best", - "betichten", - "bevind", - "bevochten", - "bevraagd", - "bewust", - "bidplaats", - "biefstuk", - "biemans", - "biezen", - "bijbaan", - "bijeenkom", - "bijfiguur", - "bijkaart", - "bijlage", - "bijpaard", - "bijtgaar", - "bijweg", - "bimmel", - "binck", - "bint", - "biobak", - "biotisch", - "biseks", - "bistro", - "bitter", - "bitumen", - "bizar", - "blad", - "bleken", - "blender", - "bleu", - "blief", - "blijven", - "blozen", - "bock", - "boef", - "boei", - "boks", - "bolder", - "bolus", - "bolvormig", - "bomaanval", - "bombarde", - "bomma", - "bomtapijt", - "bookmaker", - "boos", - "borg", - "bosbes", - "boshuizen", - "bosloop", - "botanicus", - "bougie", - "bovag", - "boxspring", - "braad", - "brasem", - "brevet", - "brigade", - "brinckman", - "bruid", - "budget", - "buffel", - "buks", - "bulgaar", - "buma", - "butaan", - "butler", - "buuf", - "cactus", - "cafeetje", - "camcorder", - "cannabis", - "canyon", - "capoeira", - "capsule", - "carkit", - "casanova", - "catalaan", - "ceintuur", - "celdeling", - "celplasma", - "cement", - "censeren", - "ceramisch", - "cerberus", - "cerebraal", - "cesium", - "cirkel", - "citeer", - "civiel", - "claxon", - "clenbuterol", - "clicheren", - "clijsen", - "coalitie", - "coassistentschap", - "coaxiaal", - "codetaal", - "cofinanciering", - "cognac", - "coltrui", - "comfort", - "commandant", - "condensaat", - "confectie", - "conifeer", - "convector", - "copier", - "corfu", - "correct", - "coup", - "couvert", - "creatie", - "credit", - "crematie", - "cricket", - "croupier", - "cruciaal", - "cruijff", - "cuisine", - "culemborg", - "culinair", - "curve", - "cyrano", - "dactylus", - "dading", - "dagblind", - "dagje", - "daglicht", - "dagprijs", - "dagranden", - "dakdekker", - "dakpark", - "dakterras", - "dalgrond", - "dambord", - "damkat", - "damlengte", - "damman", - "danenberg", - "debbie", - "decibel", - "defect", - "deformeer", - "degelijk", - "degradant", - "dejonghe", - "dekken", - "deppen", - "derek", - "derf", - "derhalve", - "detineren", - "devalueer", - "diaken", - "dicht", - "dictaat", - "dief", - "digitaal", - "dijbreuk", - "dijkmans", - "dimbaar", - "dinsdag", - "diode", - "dirigeer", - "disbalans", - "dobermann", - "doenbaar", - "doerak", - "dogma", - "dokzano", - "dokwerker", - "doling", - "dolphijn", - "dolven", - "dombo", - "dooraderd", - "dopeling", - "doping", - "draderig", - "drama", - "drenkbak", - "dreumes", - "drol", - "drug", - "duaal", - "dublin", - "duplicaat", - "durven", - "dusdanig", - "dutchbat", - "dutje", - "dutten", - "duur", - "duwwerk", - "dwaal", - "dweil", - "dwing", - "dyslexie", - "ecostroom", - "ecotaks", - "educatie", - "eeckhout", - "eede", - "eemland", - "eencellig", - "eeneiig", - "eenruiter", - "eenwinter", - "eerenberg", - "eerrover", - "eersel", - "eetmaal", - "efteling", - "egaal", - "egtberts", - "eickhoff", - "eidooier", - "eiland", - "eind", - "eisden", - "ekster", - "elburg", - "elevatie", - "elfkoppig", - "elfrink", - "elftal", - "elimineer", - "elleboog", - "elma", - "elodie", - "elsa", - "embleem", - "embolie", - "emoe", - "emonds", - "emplooi", - "enduro", - "enfin", - "engageer", - "entourage", - "entstof", - "epileer", - "episch", - "eppo", - "erasmus", - "erboven", - "erebaan", - "erelijst", - "ereronden", - "ereteken", - "erfhuis", - "erfwet", - "erger", - "erica", - "ermitage", - "erna", - "ernie", - "erts", - "ertussen", - "eruitzien", - "ervaar", - "erven", - "erwt", - "esbeek", - "escort", - "esdoorn", - "essing", - "etage", - "eter", - "ethanol", - "ethicus", - "etholoog", - "eufonisch", - "eurocent", - "evacuatie", - "exact", - "examen", - "executant", - "exen", - "exit", - "exogeen", - "exotherm", - "expeditie", - "expletief", - "expres", - "extase", - "extinctie", - "faal", - "faam", - "fabel", - "facultair", - "fakir", - "fakkel", - "faliekant", - "fallisch", - "famke", - "fanclub", - "fase", - "fatsoen", - "fauna", - "federaal", - "feedback", - "feest", - "feilbaar", - "feitelijk", - "felblauw", - "figurante", - "fiod", - "fitheid", - "fixeer", - "flap", - "fleece", - "fleur", - "flexibel", - "flits", - "flos", - "flow", - "fluweel", - "foezelen", - "fokkelman", - "fokpaard", - "fokvee", - "folder", - "follikel", - "folmer", - "folteraar", - "fooi", - "foolen", - "forfait", - "forint", - "formule", - "fornuis", - "fosfaat", - "foxtrot", - "foyer", - "fragiel", - "frater", - "freak", - "freddie", - "fregat", - "freon", - "frijnen", - "fructose", - "frunniken", - "fuiven", - "funshop", - "furieus", - "fysica", - "gadget", - "galder", - "galei", - "galg", - "galvlieg", - "galzuur", - "ganesh", - "gaswet", - "gaza", - "gazelle", - "geaaid", - "gebiecht", - "gebufferd", - "gedijd", - "geef", - "geflanst", - "gefreesd", - "gegaan", - "gegijzeld", - "gegniffel", - "gegraaid", - "gehikt", - "gehobbeld", - "gehucht", - "geiser", - "geiten", - "gekaakt", - "gekheid", - "gekijf", - "gekmakend", - "gekocht", - "gekskap", - "gekte", - "gelubberd", - "gemiddeld", - "geordend", - "gepoederd", - "gepuft", - "gerda", - "gerijpt", - "geseald", - "geshockt", - "gesierd", - "geslaagd", - "gesnaaid", - "getracht", - "getwijfel", - "geuit", - "gevecht", - "gevlagd", - "gewicht", - "gezaagd", - "gezocht", - "ghanees", - "giebelen", - "giechel", - "giepmans", - "gips", - "giraal", - "gistachtig", - "gitaar", - "glaasje", - "gletsjer", - "gleuf", - "glibberen", - "glijbaan", - "gloren", - "gluipen", - "gluren", - "gluur", - "gnoe", - "goddelijk", - "godgans", - "godschalk", - "godzalig", - "goeierd", - "gogme", - "goklustig", - "gokwereld", - "gonggrijp", - "gonje", - "goor", - "grabbel", - "graf", - "graveer", - "grif", - "grolleman", - "grom", - "groosman", - "grubben", - "gruijs", - "grut", - "guacamole", - "guido", - "guppy", - "haazen", - "hachelijk", - "haex", - "haiku", - "hakhout", - "hakken", - "hanegem", - "hans", - "hanteer", - "harrie", - "hazebroek", - "hedonist", - "heil", - "heineken", - "hekhuis", - "hekman", - "helbig", - "helga", - "helwegen", - "hengelaar", - "herkansen", - "hermafrodiet", - "hertaald", - "hiaat", - "hikspoors", - "hitachi", - "hitparade", - "hobo", - "hoeve", - "holocaust", - "hond", - "honnepon", - "hoogacht", - "hotelbed", - "hufter", - "hugo", - "huilbier", - "hulk", - "humus", - "huwbaar", - "huwelijk", - "hype", - "iconisch", - "idema", - "ideogram", - "idolaat", - "ietje", - "ijker", - "ijkheid", - "ijklijn", - "ijkmaat", - "ijkwezen", - "ijmuiden", - "ijsbox", - "ijsdag", - "ijselijk", - "ijskoud", - "ilse", - "immuun", - "impliceer", - "impuls", - "inbijten", - "inbuigen", - "indijken", - "induceer", - "indy", - "infecteer", - "inhaak", - "inkijk", - "inluiden", - "inmijnen", - "inoefenen", - "inpolder", - "inrijden", - "inslaan", - "invitatie", - "inwaaien", - "ionisch", - "isaac", - "isolatie", - "isotherm", - "isra", - "italiaan", - "ivoor", - "jacobs", - "jakob", - "jammen", - "jampot", - "jarig", - "jehova", - "jenever", - "jezus", - "joana", - "jobdienst", - "josua", - "joule", - "juich", - "jurk", - "juut", - "kaas", - "kabelaar", - "kabinet", - "kagenaar", - "kajuit", - "kalebas", - "kalm", - "kanjer", - "kapucijn", - "karregat", - "kart", - "katvanger", - "katwijk", - "kegelaar", - "keiachtig", - "keizer", - "kenletter", - "kerdijk", - "keus", - "kevlar", - "kezen", - "kickback", - "kieviet", - "kijken", - "kikvors", - "kilheid", - "kilobit", - "kilsdonk", - "kipschnitzel", - "kissebis", - "klad", - "klagelijk", - "klak", - "klapbaar", - "klaver", - "klene", - "klets", - "klijnhout", - "klit", - "klok", - "klonen", - "klotefilm", - "kluif", - "klumper", - "klus", - "knabbel", - "knagen", - "knaven", - "kneedbaar", - "knmi", - "knul", - "knus", - "kokhals", - "komiek", - "komkommer", - "kompaan", - "komrij", - "komvormig", - "koning", - "kopbal", - "kopklep", - "kopnagel", - "koppejan", - "koptekst", - "kopwand", - "koraal", - "kosmisch", - "kostbaar", - "kram", - "kraneveld", - "kras", - "kreling", - "krengen", - "kribbe", - "krik", - "kruid", - "krulbol", - "kuijper", - "kuipbank", - "kuit", - "kuiven", - "kutsmoes", - "kuub", - "kwak", - "kwatong", - "kwetsbaar", - "kwezelaar", - "kwijnen", - "kwik", - "kwinkslag", - "kwitantie", - "lading", - "lakbeits", - "lakken", - "laklaag", - "lakmoes", - "lakwijk", - "lamheid", - "lamp", - "lamsbout", - "lapmiddel", - "larve", - "laser", - "latijn", - "latuw", - "lawaai", - "laxeerpil", - "lebberen", - "ledeboer", - "leefbaar", - "leeman", - "lefdoekje", - "lefhebber", - "legboor", - "legsel", - "leguaan", - "leiplaat", - "lekdicht", - "lekrijden", - "leksteen", - "lenen", - "leraar", - "lesbienne", - "leugenaar", - "leut", - "lexicaal", - "lezing", - "lieten", - "liggeld", - "lijdzaam", - "lijk", - "lijmstang", - "lijnschip", - "likdoorn", - "likken", - "liksteen", - "limburg", - "link", - "linoleum", - "lipbloem", - "lipman", - "lispelen", - "lissabon", - "litanie", - "liturgie", - "lochem", - "loempia", - "loesje", - "logheid", - "lonen", - "lonneke", - "loom", - "loos", - "losbaar", - "loslaten", - "losplaats", - "loting", - "lotnummer", - "lots", - "louie", - "lourdes", - "louter", - "lowbudget", - "luijten", - "luikenaar", - "luilak", - "luipaard", - "luizenbos", - "lulkoek", - "lumen", - "lunzen", - "lurven", - "lutjeboer", - "luttel", - "lutz", - "luuk", - "luwte", - "luyendijk", - "lyceum", - "lynx", - "maakbaar", - "magdalena", - "malheid", - "manchet", - "manfred", - "manhaftig", - "mank", - "mantel", - "marion", - "marxist", - "masmeijer", - "massaal", - "matsen", - "matverf", - "matze", - "maude", - "mayonaise", - "mechanica", - "meifeest", - "melodie", - "meppelink", - "midvoor", - "midweeks", - "midzomer", - "miezel", - "mijnraad", - "minus", - "mirck", - "mirte", - "mispakken", - "misraden", - "miswassen", - "mitella", - "moker", - "molecule", - "mombakkes", - "moonen", - "mopperaar", - "moraal", - "morgana", - "mormel", - "mosselaar", - "motregen", - "mouw", - "mufheid", - "mutueel", - "muzelman", - "naaidoos", - "naald", - "nadeel", - "nadruk", - "nagy", - "nahon", - "naima", - "nairobi", - "napalm", - "napels", - "napijn", - "napoleon", - "narigheid", - "narratief", - "naseizoen", - "nasibal", - "navigatie", - "nawijn", - "negatief", - "nekletsel", - "nekwervel", - "neolatijn", - "neonataal", - "neptunus", - "nerd", - "nest", - "neuzelaar", - "nihiliste", - "nijenhuis", - "nijging", - "nijhoff", - "nijl", - "nijptang", - "nippel", - "nokkenas", - "noordam", - "noren", - "normaal", - "nottelman", - "notulant", - "nout", - "nuance", - "nuchter", - "nudorp", - "nulde", - "nullijn", - "nulmeting", - "nunspeet", - "nylon", - "obelisk", - "object", - "oblie", - "obsceen", - "occlusie", - "oceaan", - "ochtend", - "ockhuizen", - "oerdom", - "oergezond", - "oerlaag", - "oester", - "okhuijsen", - "olifant", - "olijfboer", - "omaans", - "ombudsman", - "omdat", - "omdijken", - "omdoen", - "omgebouwd", - "omkeer", - "omkomen", - "ommegaand", - "ommuren", - "omroep", - "omruil", - "omslaan", - "omsmeden", - "omvaar", - "onaardig", - "onedel", - "onenig", - "onheilig", - "onrecht", - "onroerend", - "ontcijfer", - "onthaal", - "ontvallen", - "ontzadeld", - "onzacht", - "onzin", - "onzuiver", - "oogappel", - "ooibos", - "ooievaar", - "ooit", - "oorarts", - "oorhanger", - "oorijzer", - "oorklep", - "oorschelp", - "oorworm", - "oorzaak", - "opdagen", - "opdien", - "opdweilen", - "opel", - "opgebaard", - "opinie", - "opjutten", - "opkijken", - "opklaar", - "opkuisen", - "opkwam", - "opnaaien", - "opossum", - "opsieren", - "opsmeer", - "optreden", - "opvijzel", - "opvlammen", - "opwind", - "oraal", - "orchidee", - "orkest", - "ossuarium", - "ostendorf", - "oublie", - "oudachtig", - "oudbakken", - "oudnoors", - "oudshoorn", - "oudtante", - "oven", - "over", - "oxidant", - "pablo", - "pacht", - "paktafel", - "pakzadel", - "paljas", - "panharing", - "papfles", - "paprika", - "parochie", - "paus", - "pauze", - "paviljoen", - "peek", - "pegel", - "peigeren", - "pekela", - "pendant", - "penibel", - "pepmiddel", - "peptalk", - "periferie", - "perron", - "pessarium", - "peter", - "petfles", - "petgat", - "peuk", - "pfeifer", - "picknick", - "pief", - "pieneman", - "pijlkruid", - "pijnacker", - "pijpelink", - "pikdonker", - "pikeer", - "pilaar", - "pionier", - "pipet", - "piscine", - "pissebed", - "pitchen", - "pixel", - "plamuren", - "plan", - "plausibel", - "plegen", - "plempen", - "pleonasme", - "plezant", - "podoloog", - "pofmouw", - "pokdalig", - "ponywagen", - "popachtig", - "popidool", - "porren", - "positie", - "potten", - "pralen", - "prezen", - "prijzen", - "privaat", - "proef", - "prooi", - "prozawerk", - "pruik", - "prul", - "publiceer", - "puck", - "puilen", - "pukkelig", - "pulveren", - "pupil", - "puppy", - "purmerend", - "pustjens", - "putemmer", - "puzzelaar", - "queenie", - "quiche", - "raam", - "raar", - "raat", - "raes", - "ralf", - "rally", - "ramona", - "ramselaar", - "ranonkel", - "rapen", - "rapunzel", - "rarekiek", - "rarigheid", - "rattenhol", - "ravage", - "reactie", - "recreant", - "redacteur", - "redster", - "reewild", - "regie", - "reijnders", - "rein", - "replica", - "revanche", - "rigide", - "rijbaan", - "rijdansen", - "rijgen", - "rijkdom", - "rijles", - "rijnwijn", - "rijpma", - "rijstafel", - "rijtaak", - "rijzwepen", - "rioleer", - "ripdeal", - "riphagen", - "riskant", - "rits", - "rivaal", - "robbedoes", - "robot", - "rockact", - "rodijk", - "rogier", - "rohypnol", - "rollaag", - "rolpaal", - "roltafel", - "roof", - "roon", - "roppen", - "rosbief", - "rosharig", - "rosielle", - "rotan", - "rotleven", - "rotten", - "rotvaart", - "royaal", - "royeer", - "rubato", - "ruby", - "ruche", - "rudge", - "ruggetje", - "rugnummer", - "rugpijn", - "rugtitel", - "rugzak", - "ruilbaar", - "ruis", - "ruit", - "rukwind", - "rulijs", - "rumoeren", - "rumsdorp", - "rumtaart", - "runnen", - "russchen", - "ruwkruid", - "saboteer", - "saksisch", - "salade", - "salpeter", - "sambabal", - "samsam", - "satelliet", - "satineer", - "saus", - "scampi", - "scarabee", - "scenario", - "schobben", - "schubben", - "scout", - "secessie", - "secondair", - "seculair", - "sediment", - "seeland", - "settelen", - "setwinst", - "sheriff", - "shiatsu", - "siciliaan", - "sidderaal", - "sigma", - "sijben", - "silvana", - "simkaart", - "sinds", - "situatie", - "sjaak", - "sjardijn", - "sjezen", - "sjor", - "skinhead", - "skylab", - "slamixen", - "sleijpen", - "slijkerig", - "slordig", - "slowaak", - "sluieren", - "smadelijk", - "smiecht", - "smoel", - "smos", - "smukken", - "snackcar", - "snavel", - "sneaker", - "sneu", - "snijdbaar", - "snit", - "snorder", - "soapbox", - "soetekouw", - "soigneren", - "sojaboon", - "solo", - "solvabel", - "somber", - "sommatie", - "soort", - "soppen", - "sopraan", - "soundbar", - "spanen", - "spawater", - "spijgat", - "spinaal", - "spionage", - "spiraal", - "spleet", - "splijt", - "spoed", - "sporen", - "spul", - "spuug", - "spuw", - "stalen", - "standaard", - "star", - "stefan", - "stencil", - "stijf", - "stil", - "stip", - "stopdas", - "stoten", - "stoven", - "straat", - "strobbe", - "strubbel", - "stucadoor", - "stuif", - "stukadoor", - "subhoofd", - "subregent", - "sudoku", - "sukade", - "sulfaat", - "surinaams", - "suus", - "syfilis", - "symboliek", - "sympathie", - "synagoge", - "synchroon", - "synergie", - "systeem", - "taanderij", - "tabak", - "tachtig", - "tackelen", - "taiwanees", - "talman", - "tamheid", - "tangaslip", - "taps", - "tarkan", - "tarwe", - "tasman", - "tatjana", - "taxameter", - "teil", - "teisman", - "telbaar", - "telco", - "telganger", - "telstar", - "tenant", - "tepel", - "terzet", - "testament", - "ticket", - "tiesinga", - "tijdelijk", - "tika", - "tiksel", - "tilleman", - "timbaal", - "tinsteen", - "tiplijn", - "tippelaar", - "tjirpen", - "toezeggen", - "tolbaas", - "tolgeld", - "tolhek", - "tolo", - "tolpoort", - "toltarief", - "tolvrij", - "tomaat", - "tondeuse", - "toog", - "tooi", - "toonbaar", - "toos", - "topclub", - "toppen", - "toptalent", - "topvrouw", - "toque", - "torment", - "tornado", - "tosti", - "totdat", - "toucheer", - "toulouse", - "tournedos", - "tout", - "trabant", - "tragedie", - "trailer", - "traject", - "traktaat", - "trauma", - "tray", - "trechter", - "tred", - "tref", - "treur", - "troebel", - "tros", - "trucage", - "truffel", - "tsaar", - "tucht", - "tuenter", - "tuitelig", - "tukje", - "tuktuk", - "tulp", - "tuma", - "tureluurs", - "twijfel", - "twitteren", - "tyfoon", - "typograaf", - "ugandees", - "uiachtig", - "uier", - "uisnipper", - "ultiem", - "unitair", - "uranium", - "urbaan", - "urendag", - "ursula", - "uurcirkel", - "uurglas", - "uzelf", - "vaat", - "vakantie", - "vakleraar", - "valbijl", - "valpartij", - "valreep", - "valuatie", - "vanmiddag", - "vanonder", - "varaan", - "varken", - "vaten", - "veenbes", - "veeteler", - "velgrem", - "vellekoop", - "velvet", - "veneberg", - "venlo", - "vent", - "venusberg", - "venw", - "veredeld", - "verf", - "verhaaf", - "vermaak", - "vernaaid", - "verraad", - "vers", - "veruit", - "verzaagd", - "vetachtig", - "vetlok", - "vetmesten", - "veto", - "vetrek", - "vetstaart", - "vetten", - "veurink", - "viaduct", - "vibrafoon", - "vicariaat", - "vieux", - "vieveen", - "vijfvoud", - "villa", - "vilt", - "vimmetje", - "vindbaar", - "vips", - "virtueel", - "visdieven", - "visee", - "visie", - "vlaag", - "vleugel", - "vmbo", - "vocht", - "voesenek", - "voicemail", - "voip", - "volg", - "vork", - "vorselaar", - "voyeur", - "vracht", - "vrekkig", - "vreten", - "vrije", - "vrozen", - "vrucht", - "vucht", - "vugt", - "vulkaan", - "vulmiddel", - "vulva", - "vuren", - "waas", - "wacht", - "wadvogel", - "wafel", - "waffel", - "walhalla", - "walnoot", - "walraven", - "wals", - "walvis", - "wandaad", - "wanen", - "wanmolen", - "want", - "warklomp", - "warm", - "wasachtig", - "wasteil", - "watt", - "webhandel", - "weblog", - "webpagina", - "webzine", - "wedereis", - "wedstrijd", - "weeda", - "weert", - "wegmaaien", - "wegscheer", - "wekelijks", - "wekken", - "wekroep", - "wektoon", - "weldaad", - "welwater", - "wendbaar", - "wenkbrauw", - "wens", - "wentelaar", - "wervel", - "wesseling", - "wetboek", - "wetmatig", - "whirlpool", - "wijbrands", - "wijdbeens", - "wijk", - "wijnbes", - "wijting", - "wild", - "wimpelen", - "wingebied", - "winplaats", - "winter", - "winzucht", - "wipstaart", - "wisgerhof", - "withaar", - "witmaker", - "wokkel", - "wolf", - "wonenden", - "woning", - "worden", - "worp", - "wortel", - "wrat", - "wrijf", - "wringen", - "yoghurt", - "ypsilon", - "zaaijer", - "zaak", - "zacharias", - "zakelijk", - "zakkam", - "zakwater", - "zalf", - "zalig", - "zaniken", - "zebracode", - "zeeblauw", - "zeef", - "zeegaand", - "zeeuw", - "zege", - "zegje", - "zeil", - "zesbaans", - "zesenhalf", - "zeskantig", - "zesmaal", - "zetbaas", - "zetpil", - "zeulen", - "ziezo", - "zigzag", - "zijaltaar", - "zijbeuk", - "zijlijn", - "zijmuur", - "zijn", - "zijwaarts", - "zijzelf", - "zilt", - "zimmerman", - "zinledig", - "zinnelijk", - "zionist", - "zitdag", - "zitruimte", - "zitzak", - "zoal", - "zodoende", - "zoekbots", - "zoem", - "zoiets", - "zojuist", - "zondaar", - "zotskap", - "zottebol", - "zucht", - "zuivel", - "zulk", - "zult", - "zuster", - "zuur", - "zweedijk", - "zwendel", - "zwepen", - "zwiep", - "zwijmel", - "zworen" - ]; -} diff --git a/cw_zano/lib/mnemonics/french.dart b/cw_zano/lib/mnemonics/french.dart deleted file mode 100644 index 76d556f6a..000000000 --- a/cw_zano/lib/mnemonics/french.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class FrenchMnemonics { - static const words = [ - "abandon", - "abattre", - "aboi", - "abolir", - "aborder", - "abri", - "absence", - "absolu", - "abuser", - "acacia", - "acajou", - "accent", - "accord", - "accrocher", - "accuser", - "acerbe", - "achat", - "acheter", - "acide", - "acier", - "acquis", - "acte", - "action", - "adage", - "adepte", - "adieu", - "admettre", - "admis", - "adorer", - "adresser", - "aduler", - "affaire", - "affirmer", - "afin", - "agacer", - "agent", - "agir", - "agiter", - "agonie", - "agrafe", - "agrume", - "aider", - "aigle", - "aigre", - "aile", - "ailleurs", - "aimant", - "aimer", - "ainsi", - "aise", - "ajouter", - "alarme", - "album", - "alcool", - "alerte", - "algue", - "alibi", - "aller", - "allumer", - "alors", - "amande", - "amener", - "amie", - "amorcer", - "amour", - "ample", - "amuser", - "ananas", - "ancien", - "anglais", - "angoisse", - "animal", - "anneau", - "annoncer", - "apercevoir", - "apparence", - "appel", - "apporter", - "apprendre", - "appuyer", - "arbre", - "arcade", - "arceau", - "arche", - "ardeur", - "argent", - "argile", - "aride", - "arme", - "armure", - "arracher", - "arriver", - "article", - "asile", - "aspect", - "assaut", - "assez", - "assister", - "assurer", - "astre", - "astuce", - "atlas", - "atroce", - "attacher", - "attente", - "attirer", - "aube", - "aucun", - "audace", - "auparavant", - "auquel", - "aurore", - "aussi", - "autant", - "auteur", - "autoroute", - "autre", - "aval", - "avant", - "avec", - "avenir", - "averse", - "aveu", - "avide", - "avion", - "avis", - "avoir", - "avouer", - "avril", - "azote", - "azur", - "badge", - "bagage", - "bague", - "bain", - "baisser", - "balai", - "balcon", - "balise", - "balle", - "bambou", - "banane", - "banc", - "bandage", - "banjo", - "banlieue", - "bannir", - "banque", - "baobab", - "barbe", - "barque", - "barrer", - "bassine", - "bataille", - "bateau", - "battre", - "baver", - "bavoir", - "bazar", - "beau", - "beige", - "berger", - "besoin", - "beurre", - "biais", - "biceps", - "bidule", - "bien", - "bijou", - "bilan", - "billet", - "blanc", - "blason", - "bleu", - "bloc", - "blond", - "bocal", - "boire", - "boiserie", - "boiter", - "bonbon", - "bondir", - "bonheur", - "bordure", - "borgne", - "borner", - "bosse", - "bouche", - "bouder", - "bouger", - "boule", - "bourse", - "bout", - "boxe", - "brader", - "braise", - "branche", - "braquer", - "bras", - "brave", - "brebis", - "brevet", - "brider", - "briller", - "brin", - "brique", - "briser", - "broche", - "broder", - "bronze", - "brosser", - "brouter", - "bruit", - "brute", - "budget", - "buffet", - "bulle", - "bureau", - "buriner", - "buste", - "buter", - "butiner", - "cabas", - "cabinet", - "cabri", - "cacao", - "cacher", - "cadeau", - "cadre", - "cage", - "caisse", - "caler", - "calme", - "camarade", - "camion", - "campagne", - "canal", - "canif", - "capable", - "capot", - "carat", - "caresser", - "carie", - "carpe", - "cartel", - "casier", - "casque", - "casserole", - "cause", - "cavale", - "cave", - "ceci", - "cela", - "celui", - "cendre", - "cent", - "cependant", - "cercle", - "cerise", - "cerner", - "certes", - "cerveau", - "cesser", - "chacun", - "chair", - "chaleur", - "chamois", - "chanson", - "chaque", - "charge", - "chasse", - "chat", - "chaud", - "chef", - "chemin", - "cheveu", - "chez", - "chicane", - "chien", - "chiffre", - "chiner", - "chiot", - "chlore", - "choc", - "choix", - "chose", - "chou", - "chute", - "cibler", - "cidre", - "ciel", - "cigale", - "cinq", - "cintre", - "cirage", - "cirque", - "ciseau", - "citation", - "citer", - "citron", - "civet", - "clairon", - "clan", - "classe", - "clavier", - "clef", - "climat", - "cloche", - "cloner", - "clore", - "clos", - "clou", - "club", - "cobra", - "cocon", - "coiffer", - "coin", - "colline", - "colon", - "combat", - "comme", - "compte", - "conclure", - "conduire", - "confier", - "connu", - "conseil", - "contre", - "convenir", - "copier", - "cordial", - "cornet", - "corps", - "cosmos", - "coton", - "couche", - "coude", - "couler", - "coupure", - "cour", - "couteau", - "couvrir", - "crabe", - "crainte", - "crampe", - "cran", - "creuser", - "crever", - "crier", - "crime", - "crin", - "crise", - "crochet", - "croix", - "cruel", - "cuisine", - "cuite", - "culot", - "culte", - "cumul", - "cure", - "curieux", - "cuve", - "dame", - "danger", - "dans", - "davantage", - "debout", - "dedans", - "dehors", - "delta", - "demain", - "demeurer", - "demi", - "dense", - "dent", - "depuis", - "dernier", - "descendre", - "dessus", - "destin", - "dette", - "deuil", - "deux", - "devant", - "devenir", - "devin", - "devoir", - "dicton", - "dieu", - "difficile", - "digestion", - "digue", - "diluer", - "dimanche", - "dinde", - "diode", - "dire", - "diriger", - "discours", - "disposer", - "distance", - "divan", - "divers", - "docile", - "docteur", - "dodu", - "dogme", - "doigt", - "dominer", - "donation", - "donjon", - "donner", - "dopage", - "dorer", - "dormir", - "doseur", - "douane", - "double", - "douche", - "douleur", - "doute", - "doux", - "douzaine", - "draguer", - "drame", - "drap", - "dresser", - "droit", - "duel", - "dune", - "duper", - "durant", - "durcir", - "durer", - "eaux", - "effacer", - "effet", - "effort", - "effrayant", - "elle", - "embrasser", - "emmener", - "emparer", - "empire", - "employer", - "emporter", - "enclos", - "encore", - "endive", - "endormir", - "endroit", - "enduit", - "enfant", - "enfermer", - "enfin", - "enfler", - "enfoncer", - "enfuir", - "engager", - "engin", - "enjeu", - "enlever", - "ennemi", - "ennui", - "ensemble", - "ensuite", - "entamer", - "entendre", - "entier", - "entourer", - "entre", - "envelopper", - "envie", - "envoyer", - "erreur", - "escalier", - "espace", - "espoir", - "esprit", - "essai", - "essor", - "essuyer", - "estimer", - "exact", - "examiner", - "excuse", - "exemple", - "exiger", - "exil", - "exister", - "exode", - "expliquer", - "exposer", - "exprimer", - "extase", - "fable", - "facette", - "facile", - "fade", - "faible", - "faim", - "faire", - "fait", - "falloir", - "famille", - "faner", - "farce", - "farine", - "fatigue", - "faucon", - "faune", - "faute", - "faux", - "faveur", - "favori", - "faxer", - "feinter", - "femme", - "fendre", - "fente", - "ferme", - "festin", - "feuille", - "feutre", - "fiable", - "fibre", - "ficher", - "fier", - "figer", - "figure", - "filet", - "fille", - "filmer", - "fils", - "filtre", - "final", - "finesse", - "finir", - "fiole", - "firme", - "fixe", - "flacon", - "flair", - "flamme", - "flan", - "flaque", - "fleur", - "flocon", - "flore", - "flot", - "flou", - "fluide", - "fluor", - "flux", - "focus", - "foin", - "foire", - "foison", - "folie", - "fonction", - "fondre", - "fonte", - "force", - "forer", - "forger", - "forme", - "fort", - "fosse", - "fouet", - "fouine", - "foule", - "four", - "foyer", - "frais", - "franc", - "frapper", - "freiner", - "frimer", - "friser", - "frite", - "froid", - "froncer", - "fruit", - "fugue", - "fuir", - "fuite", - "fumer", - "fureur", - "furieux", - "fuser", - "fusil", - "futile", - "futur", - "gagner", - "gain", - "gala", - "galet", - "galop", - "gamme", - "gant", - "garage", - "garde", - "garer", - "gauche", - "gaufre", - "gaule", - "gaver", - "gazon", - "geler", - "genou", - "genre", - "gens", - "gercer", - "germer", - "geste", - "gibier", - "gicler", - "gilet", - "girafe", - "givre", - "glace", - "glisser", - "globe", - "gloire", - "gluant", - "gober", - "golf", - "gommer", - "gorge", - "gosier", - "goutte", - "grain", - "gramme", - "grand", - "gras", - "grave", - "gredin", - "griffure", - "griller", - "gris", - "gronder", - "gros", - "grotte", - "groupe", - "grue", - "guerrier", - "guetter", - "guider", - "guise", - "habiter", - "hache", - "haie", - "haine", - "halte", - "hamac", - "hanche", - "hangar", - "hanter", - "haras", - "hareng", - "harpe", - "hasard", - "hausse", - "haut", - "havre", - "herbe", - "heure", - "hibou", - "hier", - "histoire", - "hiver", - "hochet", - "homme", - "honneur", - "honte", - "horde", - "horizon", - "hormone", - "houle", - "housse", - "hublot", - "huile", - "huit", - "humain", - "humble", - "humide", - "humour", - "hurler", - "idole", - "igloo", - "ignorer", - "illusion", - "image", - "immense", - "immobile", - "imposer", - "impression", - "incapable", - "inconnu", - "index", - "indiquer", - "infime", - "injure", - "inox", - "inspirer", - "instant", - "intention", - "intime", - "inutile", - "inventer", - "inviter", - "iode", - "iris", - "issue", - "ivre", - "jade", - "jadis", - "jamais", - "jambe", - "janvier", - "jardin", - "jauge", - "jaunisse", - "jeter", - "jeton", - "jeudi", - "jeune", - "joie", - "joindre", - "joli", - "joueur", - "journal", - "judo", - "juge", - "juillet", - "juin", - "jument", - "jungle", - "jupe", - "jupon", - "jurer", - "juron", - "jury", - "jusque", - "juste", - "kayak", - "ketchup", - "kilo", - "kiwi", - "koala", - "label", - "lacet", - "lacune", - "laine", - "laisse", - "lait", - "lame", - "lancer", - "lande", - "laque", - "lard", - "largeur", - "larme", - "larve", - "lasso", - "laver", - "lendemain", - "lentement", - "lequel", - "lettre", - "leur", - "lever", - "levure", - "liane", - "libre", - "lien", - "lier", - "lieutenant", - "ligne", - "ligoter", - "liguer", - "limace", - "limer", - "limite", - "lingot", - "lion", - "lire", - "lisser", - "litre", - "livre", - "lobe", - "local", - "logis", - "loin", - "loisir", - "long", - "loque", - "lors", - "lotus", - "louer", - "loup", - "lourd", - "louve", - "loyer", - "lubie", - "lucide", - "lueur", - "luge", - "luire", - "lundi", - "lune", - "lustre", - "lutin", - "lutte", - "luxe", - "machine", - "madame", - "magie", - "magnifique", - "magot", - "maigre", - "main", - "mairie", - "maison", - "malade", - "malheur", - "malin", - "manche", - "manger", - "manier", - "manoir", - "manquer", - "marche", - "mardi", - "marge", - "mariage", - "marquer", - "mars", - "masque", - "masse", - "matin", - "mauvais", - "meilleur", - "melon", - "membre", - "menacer", - "mener", - "mensonge", - "mentir", - "menu", - "merci", - "merlu", - "mesure", - "mettre", - "meuble", - "meunier", - "meute", - "miche", - "micro", - "midi", - "miel", - "miette", - "mieux", - "milieu", - "mille", - "mimer", - "mince", - "mineur", - "ministre", - "minute", - "mirage", - "miroir", - "miser", - "mite", - "mixte", - "mobile", - "mode", - "module", - "moins", - "mois", - "moment", - "momie", - "monde", - "monsieur", - "monter", - "moquer", - "moral", - "morceau", - "mordre", - "morose", - "morse", - "mortier", - "morue", - "motif", - "motte", - "moudre", - "moule", - "mourir", - "mousse", - "mouton", - "mouvement", - "moyen", - "muer", - "muette", - "mugir", - "muguet", - "mulot", - "multiple", - "munir", - "muret", - "muse", - "musique", - "muter", - "nacre", - "nager", - "nain", - "naissance", - "narine", - "narrer", - "naseau", - "nasse", - "nation", - "nature", - "naval", - "navet", - "naviguer", - "navrer", - "neige", - "nerf", - "nerveux", - "neuf", - "neutre", - "neuve", - "neveu", - "niche", - "nier", - "niveau", - "noble", - "noce", - "nocif", - "noir", - "nomade", - "nombre", - "nommer", - "nord", - "norme", - "notaire", - "notice", - "notre", - "nouer", - "nougat", - "nourrir", - "nous", - "nouveau", - "novice", - "noyade", - "noyer", - "nuage", - "nuance", - "nuire", - "nuit", - "nulle", - "nuque", - "oasis", - "objet", - "obliger", - "obscur", - "observer", - "obtenir", - "obus", - "occasion", - "occuper", - "ocre", - "octet", - "odeur", - "odorat", - "offense", - "officier", - "offrir", - "ogive", - "oiseau", - "olive", - "ombre", - "onctueux", - "onduler", - "ongle", - "onze", - "opter", - "option", - "orageux", - "oral", - "orange", - "orbite", - "ordinaire", - "ordre", - "oreille", - "organe", - "orgie", - "orgueil", - "orient", - "origan", - "orner", - "orteil", - "ortie", - "oser", - "osselet", - "otage", - "otarie", - "ouate", - "oublier", - "ouest", - "ours", - "outil", - "outre", - "ouvert", - "ouvrir", - "ovale", - "ozone", - "pacte", - "page", - "paille", - "pain", - "paire", - "paix", - "palace", - "palissade", - "palmier", - "palpiter", - "panda", - "panneau", - "papa", - "papier", - "paquet", - "parc", - "pardi", - "parfois", - "parler", - "parmi", - "parole", - "partir", - "parvenir", - "passer", - "pastel", - "patin", - "patron", - "paume", - "pause", - "pauvre", - "paver", - "pavot", - "payer", - "pays", - "peau", - "peigne", - "peinture", - "pelage", - "pelote", - "pencher", - "pendre", - "penser", - "pente", - "percer", - "perdu", - "perle", - "permettre", - "personne", - "perte", - "peser", - "pesticide", - "petit", - "peuple", - "peur", - "phase", - "photo", - "phrase", - "piano", - "pied", - "pierre", - "pieu", - "pile", - "pilier", - "pilote", - "pilule", - "piment", - "pincer", - "pinson", - "pinte", - "pion", - "piquer", - "pirate", - "pire", - "piste", - "piton", - "pitre", - "pivot", - "pizza", - "placer", - "plage", - "plaire", - "plan", - "plaque", - "plat", - "plein", - "pleurer", - "pliage", - "plier", - "plonger", - "plot", - "pluie", - "plume", - "plus", - "pneu", - "poche", - "podium", - "poids", - "poil", - "point", - "poire", - "poison", - "poitrine", - "poivre", - "police", - "pollen", - "pomme", - "pompier", - "poncer", - "pondre", - "pont", - "portion", - "poser", - "position", - "possible", - "poste", - "potage", - "potin", - "pouce", - "poudre", - "poulet", - "poumon", - "poupe", - "pour", - "pousser", - "poutre", - "pouvoir", - "prairie", - "premier", - "prendre", - "presque", - "preuve", - "prier", - "primeur", - "prince", - "prison", - "priver", - "prix", - "prochain", - "produire", - "profond", - "proie", - "projet", - "promener", - "prononcer", - "propre", - "prose", - "prouver", - "prune", - "public", - "puce", - "pudeur", - "puiser", - "pull", - "pulpe", - "puma", - "punir", - "purge", - "putois", - "quand", - "quartier", - "quasi", - "quatre", - "quel", - "question", - "queue", - "quiche", - "quille", - "quinze", - "quitter", - "quoi", - "rabais", - "raboter", - "race", - "racheter", - "racine", - "racler", - "raconter", - "radar", - "radio", - "rafale", - "rage", - "ragot", - "raideur", - "raie", - "rail", - "raison", - "ramasser", - "ramener", - "rampe", - "rance", - "rang", - "rapace", - "rapide", - "rapport", - "rarement", - "rasage", - "raser", - "rasoir", - "rassurer", - "rater", - "ratio", - "rature", - "ravage", - "ravir", - "rayer", - "rayon", - "rebond", - "recevoir", - "recherche", - "record", - "reculer", - "redevenir", - "refuser", - "regard", - "regretter", - "rein", - "rejeter", - "rejoindre", - "relation", - "relever", - "religion", - "remarquer", - "remettre", - "remise", - "remonter", - "remplir", - "remuer", - "rencontre", - "rendre", - "renier", - "renoncer", - "rentrer", - "renverser", - "repas", - "repli", - "reposer", - "reproche", - "requin", - "respect", - "ressembler", - "reste", - "retard", - "retenir", - "retirer", - "retour", - "retrouver", - "revenir", - "revoir", - "revue", - "rhume", - "ricaner", - "riche", - "rideau", - "ridicule", - "rien", - "rigide", - "rincer", - "rire", - "risquer", - "rituel", - "rivage", - "rive", - "robe", - "robot", - "robuste", - "rocade", - "roche", - "rodeur", - "rogner", - "roman", - "rompre", - "ronce", - "rondeur", - "ronger", - "roque", - "rose", - "rosir", - "rotation", - "rotule", - "roue", - "rouge", - "rouler", - "route", - "ruban", - "rubis", - "ruche", - "rude", - "ruelle", - "ruer", - "rugby", - "rugir", - "ruine", - "rumeur", - "rural", - "ruse", - "rustre", - "sable", - "sabot", - "sabre", - "sacre", - "sage", - "saint", - "saisir", - "salade", - "salive", - "salle", - "salon", - "salto", - "salut", - "salve", - "samba", - "sandale", - "sanguin", - "sapin", - "sarcasme", - "satisfaire", - "sauce", - "sauf", - "sauge", - "saule", - "sauna", - "sauter", - "sauver", - "savoir", - "science", - "scoop", - "score", - "second", - "secret", - "secte", - "seigneur", - "sein", - "seize", - "selle", - "selon", - "semaine", - "sembler", - "semer", - "semis", - "sensuel", - "sentir", - "sept", - "serpe", - "serrer", - "sertir", - "service", - "seuil", - "seulement", - "short", - "sien", - "sigle", - "signal", - "silence", - "silo", - "simple", - "singe", - "sinon", - "sinus", - "sioux", - "sirop", - "site", - "situation", - "skier", - "snob", - "sobre", - "social", - "socle", - "sodium", - "soigner", - "soir", - "soixante", - "soja", - "solaire", - "soldat", - "soleil", - "solide", - "solo", - "solvant", - "sombre", - "somme", - "somnoler", - "sondage", - "songeur", - "sonner", - "sorte", - "sosie", - "sottise", - "souci", - "soudain", - "souffrir", - "souhaiter", - "soulever", - "soumettre", - "soupe", - "sourd", - "soustraire", - "soutenir", - "souvent", - "soyeux", - "spectacle", - "sport", - "stade", - "stagiaire", - "stand", - "star", - "statue", - "stock", - "stop", - "store", - "style", - "suave", - "subir", - "sucre", - "suer", - "suffire", - "suie", - "suite", - "suivre", - "sujet", - "sulfite", - "supposer", - "surf", - "surprendre", - "surtout", - "surveiller", - "tabac", - "table", - "tabou", - "tache", - "tacler", - "tacot", - "tact", - "taie", - "taille", - "taire", - "talon", - "talus", - "tandis", - "tango", - "tanin", - "tant", - "taper", - "tapis", - "tard", - "tarif", - "tarot", - "tarte", - "tasse", - "taureau", - "taux", - "taverne", - "taxer", - "taxi", - "tellement", - "temple", - "tendre", - "tenir", - "tenter", - "tenu", - "terme", - "ternir", - "terre", - "test", - "texte", - "thym", - "tibia", - "tiers", - "tige", - "tipi", - "tique", - "tirer", - "tissu", - "titre", - "toast", - "toge", - "toile", - "toiser", - "toiture", - "tomber", - "tome", - "tonne", - "tonte", - "toque", - "torse", - "tortue", - "totem", - "toucher", - "toujours", - "tour", - "tousser", - "tout", - "toux", - "trace", - "train", - "trame", - "tranquille", - "travail", - "trembler", - "trente", - "tribu", - "trier", - "trio", - "tripe", - "triste", - "troc", - "trois", - "tromper", - "tronc", - "trop", - "trotter", - "trouer", - "truc", - "truite", - "tuba", - "tuer", - "tuile", - "turbo", - "tutu", - "tuyau", - "type", - "union", - "unique", - "unir", - "unisson", - "untel", - "urne", - "usage", - "user", - "usiner", - "usure", - "utile", - "vache", - "vague", - "vaincre", - "valeur", - "valoir", - "valser", - "valve", - "vampire", - "vaseux", - "vaste", - "veau", - "veille", - "veine", - "velours", - "velu", - "vendre", - "venir", - "vent", - "venue", - "verbe", - "verdict", - "version", - "vertige", - "verve", - "veste", - "veto", - "vexer", - "vice", - "victime", - "vide", - "vieil", - "vieux", - "vigie", - "vigne", - "ville", - "vingt", - "violent", - "virer", - "virus", - "visage", - "viser", - "visite", - "visuel", - "vitamine", - "vitrine", - "vivant", - "vivre", - "vocal", - "vodka", - "vogue", - "voici", - "voile", - "voir", - "voisin", - "voiture", - "volaille", - "volcan", - "voler", - "volt", - "votant", - "votre", - "vouer", - "vouloir", - "vous", - "voyage", - "voyou", - "vrac", - "vrai", - "yacht", - "yeti", - "yeux", - "yoga", - "zeste", - "zinc", - "zone", - "zoom" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/german.dart b/cw_zano/lib/mnemonics/german.dart deleted file mode 100644 index 1491c9b0e..000000000 --- a/cw_zano/lib/mnemonics/german.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class GermanMnemonics { - static const words = [ - "Abakus", - "Abart", - "abbilden", - "Abbruch", - "Abdrift", - "Abendrot", - "Abfahrt", - "abfeuern", - "Abflug", - "abfragen", - "Abglanz", - "abhärten", - "abheben", - "Abhilfe", - "Abitur", - "Abkehr", - "Ablauf", - "ablecken", - "Ablösung", - "Abnehmer", - "abnutzen", - "Abonnent", - "Abrasion", - "Abrede", - "abrüsten", - "Absicht", - "Absprung", - "Abstand", - "absuchen", - "Abteil", - "Abundanz", - "abwarten", - "Abwurf", - "Abzug", - "Achse", - "Achtung", - "Acker", - "Aderlass", - "Adler", - "Admiral", - "Adresse", - "Affe", - "Affront", - "Afrika", - "Aggregat", - "Agilität", - "ähneln", - "Ahnung", - "Ahorn", - "Akazie", - "Akkord", - "Akrobat", - "Aktfoto", - "Aktivist", - "Albatros", - "Alchimie", - "Alemanne", - "Alibi", - "Alkohol", - "Allee", - "Allüre", - "Almosen", - "Almweide", - "Aloe", - "Alpaka", - "Alpental", - "Alphabet", - "Alpinist", - "Alraune", - "Altbier", - "Alter", - "Altflöte", - "Altruist", - "Alublech", - "Aludose", - "Amateur", - "Amazonas", - "Ameise", - "Amnesie", - "Amok", - "Ampel", - "Amphibie", - "Ampulle", - "Amsel", - "Amulett", - "Anakonda", - "Analogie", - "Ananas", - "Anarchie", - "Anatomie", - "Anbau", - "Anbeginn", - "anbieten", - "Anblick", - "ändern", - "andocken", - "Andrang", - "anecken", - "Anflug", - "Anfrage", - "Anführer", - "Angebot", - "Angler", - "Anhalter", - "Anhöhe", - "Animator", - "Anis", - "Anker", - "ankleben", - "Ankunft", - "Anlage", - "anlocken", - "Anmut", - "Annahme", - "Anomalie", - "Anonymus", - "Anorak", - "anpeilen", - "Anrecht", - "Anruf", - "Ansage", - "Anschein", - "Ansicht", - "Ansporn", - "Anteil", - "Antlitz", - "Antrag", - "Antwort", - "Anwohner", - "Aorta", - "Apfel", - "Appetit", - "Applaus", - "Aquarium", - "Arbeit", - "Arche", - "Argument", - "Arktis", - "Armband", - "Aroma", - "Asche", - "Askese", - "Asphalt", - "Asteroid", - "Ästhetik", - "Astronom", - "Atelier", - "Athlet", - "Atlantik", - "Atmung", - "Audienz", - "aufatmen", - "Auffahrt", - "aufholen", - "aufregen", - "Aufsatz", - "Auftritt", - "Aufwand", - "Augapfel", - "Auktion", - "Ausbruch", - "Ausflug", - "Ausgabe", - "Aushilfe", - "Ausland", - "Ausnahme", - "Aussage", - "Autobahn", - "Avocado", - "Axthieb", - "Bach", - "backen", - "Badesee", - "Bahnhof", - "Balance", - "Balkon", - "Ballett", - "Balsam", - "Banane", - "Bandage", - "Bankett", - "Barbar", - "Barde", - "Barett", - "Bargeld", - "Barkasse", - "Barriere", - "Bart", - "Bass", - "Bastler", - "Batterie", - "Bauch", - "Bauer", - "Bauholz", - "Baujahr", - "Baum", - "Baustahl", - "Bauteil", - "Bauweise", - "Bazar", - "beachten", - "Beatmung", - "beben", - "Becher", - "Becken", - "bedanken", - "beeilen", - "beenden", - "Beere", - "befinden", - "Befreier", - "Begabung", - "Begierde", - "begrüßen", - "Beiboot", - "Beichte", - "Beifall", - "Beigabe", - "Beil", - "Beispiel", - "Beitrag", - "beizen", - "bekommen", - "beladen", - "Beleg", - "bellen", - "belohnen", - "Bemalung", - "Bengel", - "Benutzer", - "Benzin", - "beraten", - "Bereich", - "Bergluft", - "Bericht", - "Bescheid", - "Besitz", - "besorgen", - "Bestand", - "Besuch", - "betanken", - "beten", - "betören", - "Bett", - "Beule", - "Beute", - "Bewegung", - "bewirken", - "Bewohner", - "bezahlen", - "Bezug", - "biegen", - "Biene", - "Bierzelt", - "bieten", - "Bikini", - "Bildung", - "Billard", - "binden", - "Biobauer", - "Biologe", - "Bionik", - "Biotop", - "Birke", - "Bison", - "Bitte", - "Biwak", - "Bizeps", - "blasen", - "Blatt", - "Blauwal", - "Blende", - "Blick", - "Blitz", - "Blockade", - "Blödelei", - "Blondine", - "Blues", - "Blume", - "Blut", - "Bodensee", - "Bogen", - "Boje", - "Bollwerk", - "Bonbon", - "Bonus", - "Boot", - "Bordarzt", - "Börse", - "Böschung", - "Boudoir", - "Boxkampf", - "Boykott", - "Brahms", - "Brandung", - "Brauerei", - "Brecher", - "Breitaxt", - "Bremse", - "brennen", - "Brett", - "Brief", - "Brigade", - "Brillanz", - "bringen", - "brodeln", - "Brosche", - "Brötchen", - "Brücke", - "Brunnen", - "Brüste", - "Brutofen", - "Buch", - "Büffel", - "Bugwelle", - "Bühne", - "Buletten", - "Bullauge", - "Bumerang", - "bummeln", - "Buntglas", - "Bürde", - "Burgherr", - "Bursche", - "Busen", - "Buslinie", - "Bussard", - "Butangas", - "Butter", - "Cabrio", - "campen", - "Captain", - "Cartoon", - "Cello", - "Chalet", - "Charisma", - "Chefarzt", - "Chiffon", - "Chipsatz", - "Chirurg", - "Chor", - "Chronik", - "Chuzpe", - "Clubhaus", - "Cockpit", - "Codewort", - "Cognac", - "Coladose", - "Computer", - "Coupon", - "Cousin", - "Cracking", - "Crash", - "Curry", - "Dach", - "Dackel", - "daddeln", - "daliegen", - "Dame", - "Dammbau", - "Dämon", - "Dampflok", - "Dank", - "Darm", - "Datei", - "Datsche", - "Datteln", - "Datum", - "Dauer", - "Daunen", - "Deckel", - "Decoder", - "Defekt", - "Degen", - "Dehnung", - "Deiche", - "Dekade", - "Dekor", - "Delfin", - "Demut", - "denken", - "Deponie", - "Design", - "Desktop", - "Dessert", - "Detail", - "Detektiv", - "Dezibel", - "Diadem", - "Diagnose", - "Dialekt", - "Diamant", - "Dichter", - "Dickicht", - "Diesel", - "Diktat", - "Diplom", - "Direktor", - "Dirne", - "Diskurs", - "Distanz", - "Docht", - "Dohle", - "Dolch", - "Domäne", - "Donner", - "Dorade", - "Dorf", - "Dörrobst", - "Dorsch", - "Dossier", - "Dozent", - "Drachen", - "Draht", - "Drama", - "Drang", - "Drehbuch", - "Dreieck", - "Dressur", - "Drittel", - "Drossel", - "Druck", - "Duell", - "Duft", - "Düne", - "Dünung", - "dürfen", - "Duschbad", - "Düsenjet", - "Dynamik", - "Ebbe", - "Echolot", - "Echse", - "Eckball", - "Edding", - "Edelweiß", - "Eden", - "Edition", - "Efeu", - "Effekte", - "Egoismus", - "Ehre", - "Eiablage", - "Eiche", - "Eidechse", - "Eidotter", - "Eierkopf", - "Eigelb", - "Eiland", - "Eilbote", - "Eimer", - "einatmen", - "Einband", - "Eindruck", - "Einfall", - "Eingang", - "Einkauf", - "einladen", - "Einöde", - "Einrad", - "Eintopf", - "Einwurf", - "Einzug", - "Eisbär", - "Eisen", - "Eishöhle", - "Eismeer", - "Eiweiß", - "Ekstase", - "Elan", - "Elch", - "Elefant", - "Eleganz", - "Element", - "Elfe", - "Elite", - "Elixier", - "Ellbogen", - "Eloquenz", - "Emigrant", - "Emission", - "Emotion", - "Empathie", - "Empfang", - "Endzeit", - "Energie", - "Engpass", - "Enkel", - "Enklave", - "Ente", - "entheben", - "Entität", - "entladen", - "Entwurf", - "Episode", - "Epoche", - "erachten", - "Erbauer", - "erblühen", - "Erdbeere", - "Erde", - "Erdgas", - "Erdkunde", - "Erdnuss", - "Erdöl", - "Erdteil", - "Ereignis", - "Eremit", - "erfahren", - "Erfolg", - "erfreuen", - "erfüllen", - "Ergebnis", - "erhitzen", - "erkalten", - "erkennen", - "erleben", - "Erlösung", - "ernähren", - "erneuern", - "Ernte", - "Eroberer", - "eröffnen", - "Erosion", - "Erotik", - "Erpel", - "erraten", - "Erreger", - "erröten", - "Ersatz", - "Erstflug", - "Ertrag", - "Eruption", - "erwarten", - "erwidern", - "Erzbau", - "Erzeuger", - "erziehen", - "Esel", - "Eskimo", - "Eskorte", - "Espe", - "Espresso", - "essen", - "Etage", - "Etappe", - "Etat", - "Ethik", - "Etikett", - "Etüde", - "Eule", - "Euphorie", - "Europa", - "Everest", - "Examen", - "Exil", - "Exodus", - "Extrakt", - "Fabel", - "Fabrik", - "Fachmann", - "Fackel", - "Faden", - "Fagott", - "Fahne", - "Faible", - "Fairness", - "Fakt", - "Fakultät", - "Falke", - "Fallobst", - "Fälscher", - "Faltboot", - "Familie", - "Fanclub", - "Fanfare", - "Fangarm", - "Fantasie", - "Farbe", - "Farmhaus", - "Farn", - "Fasan", - "Faser", - "Fassung", - "fasten", - "Faulheit", - "Fauna", - "Faust", - "Favorit", - "Faxgerät", - "Fazit", - "fechten", - "Federboa", - "Fehler", - "Feier", - "Feige", - "feilen", - "Feinripp", - "Feldbett", - "Felge", - "Fellpony", - "Felswand", - "Ferien", - "Ferkel", - "Fernweh", - "Ferse", - "Fest", - "Fettnapf", - "Feuer", - "Fiasko", - "Fichte", - "Fiktion", - "Film", - "Filter", - "Filz", - "Finanzen", - "Findling", - "Finger", - "Fink", - "Finnwal", - "Fisch", - "Fitness", - "Fixpunkt", - "Fixstern", - "Fjord", - "Flachbau", - "Flagge", - "Flamenco", - "Flanke", - "Flasche", - "Flaute", - "Fleck", - "Flegel", - "flehen", - "Fleisch", - "fliegen", - "Flinte", - "Flirt", - "Flocke", - "Floh", - "Floskel", - "Floß", - "Flöte", - "Flugzeug", - "Flunder", - "Flusstal", - "Flutung", - "Fockmast", - "Fohlen", - "Föhnlage", - "Fokus", - "folgen", - "Foliant", - "Folklore", - "Fontäne", - "Förde", - "Forelle", - "Format", - "Forscher", - "Fortgang", - "Forum", - "Fotograf", - "Frachter", - "Fragment", - "Fraktion", - "fräsen", - "Frauenpo", - "Freak", - "Fregatte", - "Freiheit", - "Freude", - "Frieden", - "Frohsinn", - "Frosch", - "Frucht", - "Frühjahr", - "Fuchs", - "Fügung", - "fühlen", - "Füller", - "Fundbüro", - "Funkboje", - "Funzel", - "Furnier", - "Fürsorge", - "Fusel", - "Fußbad", - "Futteral", - "Gabelung", - "gackern", - "Gage", - "gähnen", - "Galaxie", - "Galeere", - "Galopp", - "Gameboy", - "Gamsbart", - "Gandhi", - "Gang", - "Garage", - "Gardine", - "Garküche", - "Garten", - "Gasthaus", - "Gattung", - "gaukeln", - "Gazelle", - "Gebäck", - "Gebirge", - "Gebräu", - "Geburt", - "Gedanke", - "Gedeck", - "Gedicht", - "Gefahr", - "Gefieder", - "Geflügel", - "Gefühl", - "Gegend", - "Gehirn", - "Gehöft", - "Gehweg", - "Geige", - "Geist", - "Gelage", - "Geld", - "Gelenk", - "Gelübde", - "Gemälde", - "Gemeinde", - "Gemüse", - "genesen", - "Genuss", - "Gepäck", - "Geranie", - "Gericht", - "Germane", - "Geruch", - "Gesang", - "Geschenk", - "Gesetz", - "Gesindel", - "Gesöff", - "Gespan", - "Gestade", - "Gesuch", - "Getier", - "Getränk", - "Getümmel", - "Gewand", - "Geweih", - "Gewitter", - "Gewölbe", - "Geysir", - "Giftzahn", - "Gipfel", - "Giraffe", - "Gitarre", - "glänzen", - "Glasauge", - "Glatze", - "Gleis", - "Globus", - "Glück", - "glühen", - "Glutofen", - "Goldzahn", - "Gondel", - "gönnen", - "Gottheit", - "graben", - "Grafik", - "Grashalm", - "Graugans", - "greifen", - "Grenze", - "grillen", - "Groschen", - "Grotte", - "Grube", - "Grünalge", - "Gruppe", - "gruseln", - "Gulasch", - "Gummibär", - "Gurgel", - "Gürtel", - "Güterzug", - "Haarband", - "Habicht", - "hacken", - "hadern", - "Hafen", - "Hagel", - "Hähnchen", - "Haifisch", - "Haken", - "Halbaffe", - "Halsader", - "halten", - "Halunke", - "Handbuch", - "Hanf", - "Harfe", - "Harnisch", - "härten", - "Harz", - "Hasenohr", - "Haube", - "hauchen", - "Haupt", - "Haut", - "Havarie", - "Hebamme", - "hecheln", - "Heck", - "Hedonist", - "Heiler", - "Heimat", - "Heizung", - "Hektik", - "Held", - "helfen", - "Helium", - "Hemd", - "hemmen", - "Hengst", - "Herd", - "Hering", - "Herkunft", - "Hermelin", - "Herrchen", - "Herzdame", - "Heulboje", - "Hexe", - "Hilfe", - "Himbeere", - "Himmel", - "Hingabe", - "hinhören", - "Hinweis", - "Hirsch", - "Hirte", - "Hitzkopf", - "Hobel", - "Hochform", - "Hocker", - "hoffen", - "Hofhund", - "Hofnarr", - "Höhenzug", - "Hohlraum", - "Hölle", - "Holzboot", - "Honig", - "Honorar", - "horchen", - "Hörprobe", - "Höschen", - "Hotel", - "Hubraum", - "Hufeisen", - "Hügel", - "huldigen", - "Hülle", - "Humbug", - "Hummer", - "Humor", - "Hund", - "Hunger", - "Hupe", - "Hürde", - "Hurrikan", - "Hydrant", - "Hypnose", - "Ibis", - "Idee", - "Idiot", - "Igel", - "Illusion", - "Imitat", - "impfen", - "Import", - "Inferno", - "Ingwer", - "Inhalte", - "Inland", - "Insekt", - "Ironie", - "Irrfahrt", - "Irrtum", - "Isolator", - "Istwert", - "Jacke", - "Jade", - "Jagdhund", - "Jäger", - "Jaguar", - "Jahr", - "Jähzorn", - "Jazzfest", - "Jetpilot", - "jobben", - "Jochbein", - "jodeln", - "Jodsalz", - "Jolle", - "Journal", - "Jubel", - "Junge", - "Junimond", - "Jupiter", - "Jutesack", - "Juwel", - "Kabarett", - "Kabine", - "Kabuff", - "Käfer", - "Kaffee", - "Kahlkopf", - "Kaimauer", - "Kajüte", - "Kaktus", - "Kaliber", - "Kaltluft", - "Kamel", - "kämmen", - "Kampagne", - "Kanal", - "Känguru", - "Kanister", - "Kanone", - "Kante", - "Kanu", - "kapern", - "Kapitän", - "Kapuze", - "Karneval", - "Karotte", - "Käsebrot", - "Kasper", - "Kastanie", - "Katalog", - "Kathode", - "Katze", - "kaufen", - "Kaugummi", - "Kauz", - "Kehle", - "Keilerei", - "Keksdose", - "Kellner", - "Keramik", - "Kerze", - "Kessel", - "Kette", - "keuchen", - "kichern", - "Kielboot", - "Kindheit", - "Kinnbart", - "Kinosaal", - "Kiosk", - "Kissen", - "Klammer", - "Klang", - "Klapprad", - "Klartext", - "kleben", - "Klee", - "Kleinod", - "Klima", - "Klingel", - "Klippe", - "Klischee", - "Kloster", - "Klugheit", - "Klüngel", - "kneten", - "Knie", - "Knöchel", - "knüpfen", - "Kobold", - "Kochbuch", - "Kohlrabi", - "Koje", - "Kokosöl", - "Kolibri", - "Kolumne", - "Kombüse", - "Komiker", - "kommen", - "Konto", - "Konzept", - "Kopfkino", - "Kordhose", - "Korken", - "Korsett", - "Kosename", - "Krabbe", - "Krach", - "Kraft", - "Krähe", - "Kralle", - "Krapfen", - "Krater", - "kraulen", - "Kreuz", - "Krokodil", - "Kröte", - "Kugel", - "Kuhhirt", - "Kühnheit", - "Künstler", - "Kurort", - "Kurve", - "Kurzfilm", - "kuscheln", - "küssen", - "Kutter", - "Labor", - "lachen", - "Lackaffe", - "Ladeluke", - "Lagune", - "Laib", - "Lakritze", - "Lammfell", - "Land", - "Langmut", - "Lappalie", - "Last", - "Laterne", - "Latzhose", - "Laubsäge", - "laufen", - "Laune", - "Lausbub", - "Lavasee", - "Leben", - "Leder", - "Leerlauf", - "Lehm", - "Lehrer", - "leihen", - "Lektüre", - "Lenker", - "Lerche", - "Leseecke", - "Leuchter", - "Lexikon", - "Libelle", - "Libido", - "Licht", - "Liebe", - "liefern", - "Liftboy", - "Limonade", - "Lineal", - "Linoleum", - "List", - "Liveband", - "Lobrede", - "locken", - "Löffel", - "Logbuch", - "Logik", - "Lohn", - "Loipe", - "Lokal", - "Lorbeer", - "Lösung", - "löten", - "Lottofee", - "Löwe", - "Luchs", - "Luder", - "Luftpost", - "Luke", - "Lümmel", - "Lunge", - "lutschen", - "Luxus", - "Macht", - "Magazin", - "Magier", - "Magnet", - "mähen", - "Mahlzeit", - "Mahnmal", - "Maibaum", - "Maisbrei", - "Makel", - "malen", - "Mammut", - "Maniküre", - "Mantel", - "Marathon", - "Marder", - "Marine", - "Marke", - "Marmor", - "Märzluft", - "Maske", - "Maßanzug", - "Maßkrug", - "Mastkorb", - "Material", - "Matratze", - "Mauerbau", - "Maulkorb", - "Mäuschen", - "Mäzen", - "Medium", - "Meinung", - "melden", - "Melodie", - "Mensch", - "Merkmal", - "Messe", - "Metall", - "Meteor", - "Methode", - "Metzger", - "Mieze", - "Milchkuh", - "Mimose", - "Minirock", - "Minute", - "mischen", - "Missetat", - "mitgehen", - "Mittag", - "Mixtape", - "Möbel", - "Modul", - "mögen", - "Möhre", - "Molch", - "Moment", - "Monat", - "Mondflug", - "Monitor", - "Monokini", - "Monster", - "Monument", - "Moorhuhn", - "Moos", - "Möpse", - "Moral", - "Mörtel", - "Motiv", - "Motorrad", - "Möwe", - "Mühe", - "Mulatte", - "Müller", - "Mumie", - "Mund", - "Münze", - "Muschel", - "Muster", - "Mythos", - "Nabel", - "Nachtzug", - "Nackedei", - "Nagel", - "Nähe", - "Nähnadel", - "Namen", - "Narbe", - "Narwal", - "Nasenbär", - "Natur", - "Nebel", - "necken", - "Neffe", - "Neigung", - "Nektar", - "Nenner", - "Neptun", - "Nerz", - "Nessel", - "Nestbau", - "Netz", - "Neubau", - "Neuerung", - "Neugier", - "nicken", - "Niere", - "Nilpferd", - "nisten", - "Nocke", - "Nomade", - "Nordmeer", - "Notdurft", - "Notstand", - "Notwehr", - "Nudismus", - "Nuss", - "Nutzhanf", - "Oase", - "Obdach", - "Oberarzt", - "Objekt", - "Oboe", - "Obsthain", - "Ochse", - "Odyssee", - "Ofenholz", - "öffnen", - "Ohnmacht", - "Ohrfeige", - "Ohrwurm", - "Ökologie", - "Oktave", - "Ölberg", - "Olive", - "Ölkrise", - "Omelett", - "Onkel", - "Oper", - "Optiker", - "Orange", - "Orchidee", - "ordnen", - "Orgasmus", - "Orkan", - "Ortskern", - "Ortung", - "Ostasien", - "Ozean", - "Paarlauf", - "Packeis", - "paddeln", - "Paket", - "Palast", - "Pandabär", - "Panik", - "Panorama", - "Panther", - "Papagei", - "Papier", - "Paprika", - "Paradies", - "Parka", - "Parodie", - "Partner", - "Passant", - "Patent", - "Patzer", - "Pause", - "Pavian", - "Pedal", - "Pegel", - "peilen", - "Perle", - "Person", - "Pfad", - "Pfau", - "Pferd", - "Pfleger", - "Physik", - "Pier", - "Pilotwal", - "Pinzette", - "Piste", - "Plakat", - "Plankton", - "Platin", - "Plombe", - "plündern", - "Pobacke", - "Pokal", - "polieren", - "Popmusik", - "Porträt", - "Posaune", - "Postamt", - "Pottwal", - "Pracht", - "Pranke", - "Preis", - "Primat", - "Prinzip", - "Protest", - "Proviant", - "Prüfung", - "Pubertät", - "Pudding", - "Pullover", - "Pulsader", - "Punkt", - "Pute", - "Putsch", - "Puzzle", - "Python", - "quaken", - "Qualle", - "Quark", - "Quellsee", - "Querkopf", - "Quitte", - "Quote", - "Rabauke", - "Rache", - "Radclub", - "Radhose", - "Radio", - "Radtour", - "Rahmen", - "Rampe", - "Randlage", - "Ranzen", - "Rapsöl", - "Raserei", - "rasten", - "Rasur", - "Rätsel", - "Raubtier", - "Raumzeit", - "Rausch", - "Reaktor", - "Realität", - "Rebell", - "Rede", - "Reetdach", - "Regatta", - "Regen", - "Rehkitz", - "Reifen", - "Reim", - "Reise", - "Reizung", - "Rekord", - "Relevanz", - "Rennboot", - "Respekt", - "Restmüll", - "retten", - "Reue", - "Revolte", - "Rhetorik", - "Rhythmus", - "Richtung", - "Riegel", - "Rindvieh", - "Rippchen", - "Ritter", - "Robbe", - "Roboter", - "Rockband", - "Rohdaten", - "Roller", - "Roman", - "röntgen", - "Rose", - "Rosskur", - "Rost", - "Rotahorn", - "Rotglut", - "Rotznase", - "Rubrik", - "Rückweg", - "Rufmord", - "Ruhe", - "Ruine", - "Rumpf", - "Runde", - "Rüstung", - "rütteln", - "Saaltür", - "Saatguts", - "Säbel", - "Sachbuch", - "Sack", - "Saft", - "sagen", - "Sahneeis", - "Salat", - "Salbe", - "Salz", - "Sammlung", - "Samt", - "Sandbank", - "Sanftmut", - "Sardine", - "Satire", - "Sattel", - "Satzbau", - "Sauerei", - "Saum", - "Säure", - "Schall", - "Scheitel", - "Schiff", - "Schlager", - "Schmied", - "Schnee", - "Scholle", - "Schrank", - "Schulbus", - "Schwan", - "Seeadler", - "Seefahrt", - "Seehund", - "Seeufer", - "segeln", - "Sehnerv", - "Seide", - "Seilzug", - "Senf", - "Sessel", - "Seufzer", - "Sexgott", - "Sichtung", - "Signal", - "Silber", - "singen", - "Sinn", - "Sirup", - "Sitzbank", - "Skandal", - "Skikurs", - "Skipper", - "Skizze", - "Smaragd", - "Socke", - "Sohn", - "Sommer", - "Songtext", - "Sorte", - "Spagat", - "Spannung", - "Spargel", - "Specht", - "Speiseöl", - "Spiegel", - "Sport", - "spülen", - "Stadtbus", - "Stall", - "Stärke", - "Stativ", - "staunen", - "Stern", - "Stiftung", - "Stollen", - "Strömung", - "Sturm", - "Substanz", - "Südalpen", - "Sumpf", - "surfen", - "Tabak", - "Tafel", - "Tagebau", - "takeln", - "Taktung", - "Talsohle", - "Tand", - "Tanzbär", - "Tapir", - "Tarantel", - "Tarnname", - "Tasse", - "Tatnacht", - "Tatsache", - "Tatze", - "Taube", - "tauchen", - "Taufpate", - "Taumel", - "Teelicht", - "Teich", - "teilen", - "Tempo", - "Tenor", - "Terrasse", - "Testflug", - "Theater", - "Thermik", - "ticken", - "Tiefflug", - "Tierart", - "Tigerhai", - "Tinte", - "Tischler", - "toben", - "Toleranz", - "Tölpel", - "Tonband", - "Topf", - "Topmodel", - "Torbogen", - "Torlinie", - "Torte", - "Tourist", - "Tragesel", - "trampeln", - "Trapez", - "Traum", - "treffen", - "Trennung", - "Treue", - "Trick", - "trimmen", - "Trödel", - "Trost", - "Trumpf", - "tüfteln", - "Turban", - "Turm", - "Übermut", - "Ufer", - "Uhrwerk", - "umarmen", - "Umbau", - "Umfeld", - "Umgang", - "Umsturz", - "Unart", - "Unfug", - "Unimog", - "Unruhe", - "Unwucht", - "Uranerz", - "Urlaub", - "Urmensch", - "Utopie", - "Vakuum", - "Valuta", - "Vandale", - "Vase", - "Vektor", - "Ventil", - "Verb", - "Verdeck", - "Verfall", - "Vergaser", - "verhexen", - "Verlag", - "Vers", - "Vesper", - "Vieh", - "Viereck", - "Vinyl", - "Virus", - "Vitrine", - "Vollblut", - "Vorbote", - "Vorrat", - "Vorsicht", - "Vulkan", - "Wachstum", - "Wade", - "Wagemut", - "Wahlen", - "Wahrheit", - "Wald", - "Walhai", - "Wallach", - "Walnuss", - "Walzer", - "wandeln", - "Wanze", - "wärmen", - "Warnruf", - "Wäsche", - "Wasser", - "Weberei", - "wechseln", - "Wegegeld", - "wehren", - "Weiher", - "Weinglas", - "Weißbier", - "Weitwurf", - "Welle", - "Weltall", - "Werkbank", - "Werwolf", - "Wetter", - "wiehern", - "Wildgans", - "Wind", - "Wohl", - "Wohnort", - "Wolf", - "Wollust", - "Wortlaut", - "Wrack", - "Wunder", - "Wurfaxt", - "Wurst", - "Yacht", - "Yeti", - "Zacke", - "Zahl", - "zähmen", - "Zahnfee", - "Zäpfchen", - "Zaster", - "Zaumzeug", - "Zebra", - "zeigen", - "Zeitlupe", - "Zellkern", - "Zeltdach", - "Zensor", - "Zerfall", - "Zeug", - "Ziege", - "Zielfoto", - "Zimteis", - "Zobel", - "Zollhund", - "Zombie", - "Zöpfe", - "Zucht", - "Zufahrt", - "Zugfahrt", - "Zugvogel", - "Zündung", - "Zweck", - "Zyklop" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/italian.dart b/cw_zano/lib/mnemonics/italian.dart deleted file mode 100644 index 275f85bf4..000000000 --- a/cw_zano/lib/mnemonics/italian.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class ItalianMnemonics { - static const words = [ - "abbinare", - "abbonato", - "abisso", - "abitare", - "abominio", - "accadere", - "accesso", - "acciaio", - "accordo", - "accumulo", - "acido", - "acqua", - "acrobata", - "acustico", - "adattare", - "addetto", - "addio", - "addome", - "adeguato", - "aderire", - "adorare", - "adottare", - "adozione", - "adulto", - "aereo", - "aerobica", - "affare", - "affetto", - "affidare", - "affogato", - "affronto", - "africano", - "afrodite", - "agenzia", - "aggancio", - "aggeggio", - "aggiunta", - "agio", - "agire", - "agitare", - "aglio", - "agnello", - "agosto", - "aiutare", - "albero", - "albo", - "alce", - "alchimia", - "alcool", - "alfabeto", - "algebra", - "alimento", - "allarme", - "alleanza", - "allievo", - "alloggio", - "alluce", - "alpi", - "alterare", - "altro", - "aluminio", - "amante", - "amarezza", - "ambiente", - "ambrosia", - "america", - "amico", - "ammalare", - "ammirare", - "amnesia", - "amnistia", - "amore", - "ampliare", - "amputare", - "analisi", - "anamnesi", - "ananas", - "anarchia", - "anatra", - "anca", - "ancorato", - "andare", - "androide", - "aneddoto", - "anello", - "angelo", - "angolino", - "anguilla", - "anidride", - "anima", - "annegare", - "anno", - "annuncio", - "anomalia", - "antenna", - "anticipo", - "aperto", - "apostolo", - "appalto", - "appello", - "appiglio", - "applauso", - "appoggio", - "appurare", - "aprile", - "aquila", - "arabo", - "arachidi", - "aragosta", - "arancia", - "arbitrio", - "archivio", - "arco", - "argento", - "argilla", - "aria", - "ariete", - "arma", - "armonia", - "aroma", - "arrivare", - "arrosto", - "arsenale", - "arte", - "artiglio", - "asfalto", - "asfissia", - "asino", - "asparagi", - "aspirina", - "assalire", - "assegno", - "assolto", - "assurdo", - "asta", - "astratto", - "atlante", - "atletica", - "atomo", - "atropina", - "attacco", - "attesa", - "attico", - "atto", - "attrarre", - "auguri", - "aula", - "aumento", - "aurora", - "auspicio", - "autista", - "auto", - "autunno", - "avanzare", - "avarizia", - "avere", - "aviatore", - "avido", - "avorio", - "avvenire", - "avviso", - "avvocato", - "azienda", - "azione", - "azzardo", - "azzurro", - "babbuino", - "bacio", - "badante", - "baffi", - "bagaglio", - "bagliore", - "bagno", - "balcone", - "balena", - "ballare", - "balordo", - "balsamo", - "bambola", - "bancomat", - "banda", - "barato", - "barba", - "barista", - "barriera", - "basette", - "basilico", - "bassista", - "bastare", - "battello", - "bavaglio", - "beccare", - "beduino", - "bellezza", - "bene", - "benzina", - "berretto", - "bestia", - "bevitore", - "bianco", - "bibbia", - "biberon", - "bibita", - "bici", - "bidone", - "bilancia", - "biliardo", - "binario", - "binocolo", - "biologia", - "biondina", - "biopsia", - "biossido", - "birbante", - "birra", - "biscotto", - "bisogno", - "bistecca", - "bivio", - "blindare", - "bloccare", - "bocca", - "bollire", - "bombola", - "bonifico", - "borghese", - "borsa", - "bottino", - "botulino", - "braccio", - "bradipo", - "branco", - "bravo", - "bresaola", - "bretelle", - "brevetto", - "briciola", - "brigante", - "brillare", - "brindare", - "brivido", - "broccoli", - "brontolo", - "bruciare", - "brufolo", - "bucare", - "buddista", - "budino", - "bufera", - "buffo", - "bugiardo", - "buio", - "buono", - "burrone", - "bussola", - "bustina", - "buttare", - "cabernet", - "cabina", - "cacao", - "cacciare", - "cactus", - "cadavere", - "caffe", - "calamari", - "calcio", - "caldaia", - "calmare", - "calunnia", - "calvario", - "calzone", - "cambiare", - "camera", - "camion", - "cammello", - "campana", - "canarino", - "cancello", - "candore", - "cane", - "canguro", - "cannone", - "canoa", - "cantare", - "canzone", - "caos", - "capanna", - "capello", - "capire", - "capo", - "capperi", - "capra", - "capsula", - "caraffa", - "carbone", - "carciofo", - "cardigan", - "carenza", - "caricare", - "carota", - "carrello", - "carta", - "casa", - "cascare", - "caserma", - "cashmere", - "casino", - "cassetta", - "castello", - "catalogo", - "catena", - "catorcio", - "cattivo", - "causa", - "cauzione", - "cavallo", - "caverna", - "caviglia", - "cavo", - "cazzotto", - "celibato", - "cemento", - "cenare", - "centrale", - "ceramica", - "cercare", - "ceretta", - "cerniera", - "certezza", - "cervello", - "cessione", - "cestino", - "cetriolo", - "chiave", - "chiedere", - "chilo", - "chimera", - "chiodo", - "chirurgo", - "chitarra", - "chiudere", - "ciabatta", - "ciao", - "cibo", - "ciccia", - "cicerone", - "ciclone", - "cicogna", - "cielo", - "cifra", - "cigno", - "ciliegia", - "cimitero", - "cinema", - "cinque", - "cintura", - "ciondolo", - "ciotola", - "cipolla", - "cippato", - "circuito", - "cisterna", - "citofono", - "ciuccio", - "civetta", - "civico", - "clausola", - "cliente", - "clima", - "clinica", - "cobra", - "coccole", - "cocktail", - "cocomero", - "codice", - "coesione", - "cogliere", - "cognome", - "colla", - "colomba", - "colpire", - "coltello", - "comando", - "comitato", - "commedia", - "comodino", - "compagna", - "comune", - "concerto", - "condotto", - "conforto", - "congiura", - "coniglio", - "consegna", - "conto", - "convegno", - "coperta", - "copia", - "coprire", - "corazza", - "corda", - "corleone", - "cornice", - "corona", - "corpo", - "corrente", - "corsa", - "cortesia", - "corvo", - "coso", - "costume", - "cotone", - "cottura", - "cozza", - "crampo", - "cratere", - "cravatta", - "creare", - "credere", - "crema", - "crescere", - "crimine", - "criterio", - "croce", - "crollare", - "cronaca", - "crostata", - "croupier", - "cubetto", - "cucciolo", - "cucina", - "cultura", - "cuoco", - "cuore", - "cupido", - "cupola", - "cura", - "curva", - "cuscino", - "custode", - "danzare", - "data", - "decennio", - "decidere", - "decollo", - "dedicare", - "dedurre", - "definire", - "delegare", - "delfino", - "delitto", - "demone", - "dentista", - "denuncia", - "deposito", - "derivare", - "deserto", - "designer", - "destino", - "detonare", - "dettagli", - "diagnosi", - "dialogo", - "diamante", - "diario", - "diavolo", - "dicembre", - "difesa", - "digerire", - "digitare", - "diluvio", - "dinamica", - "dipinto", - "diploma", - "diramare", - "dire", - "dirigere", - "dirupo", - "discesa", - "disdetta", - "disegno", - "disporre", - "dissenso", - "distacco", - "dito", - "ditta", - "diva", - "divenire", - "dividere", - "divorare", - "docente", - "dolcetto", - "dolore", - "domatore", - "domenica", - "dominare", - "donatore", - "donna", - "dorato", - "dormire", - "dorso", - "dosaggio", - "dottore", - "dovere", - "download", - "dragone", - "dramma", - "dubbio", - "dubitare", - "duetto", - "durata", - "ebbrezza", - "eccesso", - "eccitare", - "eclissi", - "economia", - "edera", - "edificio", - "editore", - "edizione", - "educare", - "effetto", - "egitto", - "egiziano", - "elastico", - "elefante", - "eleggere", - "elemento", - "elenco", - "elezione", - "elmetto", - "elogio", - "embrione", - "emergere", - "emettere", - "eminenza", - "emisfero", - "emozione", - "empatia", - "energia", - "enfasi", - "enigma", - "entrare", - "enzima", - "epidemia", - "epilogo", - "episodio", - "epoca", - "equivoco", - "erba", - "erede", - "eroe", - "erotico", - "errore", - "eruzione", - "esaltare", - "esame", - "esaudire", - "eseguire", - "esempio", - "esigere", - "esistere", - "esito", - "esperto", - "espresso", - "essere", - "estasi", - "esterno", - "estrarre", - "eterno", - "etica", - "euforico", - "europa", - "evacuare", - "evasione", - "evento", - "evidenza", - "evitare", - "evolvere", - "fabbrica", - "facciata", - "fagiano", - "fagotto", - "falco", - "fame", - "famiglia", - "fanale", - "fango", - "fantasia", - "farfalla", - "farmacia", - "faro", - "fase", - "fastidio", - "faticare", - "fatto", - "favola", - "febbre", - "femmina", - "femore", - "fenomeno", - "fermata", - "feromoni", - "ferrari", - "fessura", - "festa", - "fiaba", - "fiamma", - "fianco", - "fiat", - "fibbia", - "fidare", - "fieno", - "figa", - "figlio", - "figura", - "filetto", - "filmato", - "filosofo", - "filtrare", - "finanza", - "finestra", - "fingere", - "finire", - "finta", - "finzione", - "fiocco", - "fioraio", - "firewall", - "firmare", - "fisico", - "fissare", - "fittizio", - "fiume", - "flacone", - "flagello", - "flirtare", - "flusso", - "focaccia", - "foglio", - "fognario", - "follia", - "fonderia", - "fontana", - "forbici", - "forcella", - "foresta", - "forgiare", - "formare", - "fornace", - "foro", - "fortuna", - "forzare", - "fosforo", - "fotoni", - "fracasso", - "fragola", - "frantumi", - "fratello", - "frazione", - "freccia", - "freddo", - "frenare", - "fresco", - "friggere", - "frittata", - "frivolo", - "frizione", - "fronte", - "frullato", - "frumento", - "frusta", - "frutto", - "fucile", - "fuggire", - "fulmine", - "fumare", - "funzione", - "fuoco", - "furbizia", - "furgone", - "furia", - "furore", - "fusibile", - "fuso", - "futuro", - "gabbiano", - "galassia", - "gallina", - "gamba", - "gancio", - "garanzia", - "garofano", - "gasolio", - "gatto", - "gazebo", - "gazzetta", - "gelato", - "gemelli", - "generare", - "genitori", - "gennaio", - "geologia", - "germania", - "gestire", - "gettare", - "ghepardo", - "ghiaccio", - "giaccone", - "giaguaro", - "giallo", - "giappone", - "giardino", - "gigante", - "gioco", - "gioiello", - "giorno", - "giovane", - "giraffa", - "giudizio", - "giurare", - "giusto", - "globo", - "gloria", - "glucosio", - "gnocca", - "gocciola", - "godere", - "gomito", - "gomma", - "gonfiare", - "gorilla", - "governo", - "gradire", - "graffiti", - "granchio", - "grappolo", - "grasso", - "grattare", - "gridare", - "grissino", - "grondaia", - "grugnito", - "gruppo", - "guadagno", - "guaio", - "guancia", - "guardare", - "gufo", - "guidare", - "guscio", - "gusto", - "icona", - "idea", - "identico", - "idolo", - "idoneo", - "idrante", - "idrogeno", - "igiene", - "ignoto", - "imbarco", - "immagine", - "immobile", - "imparare", - "impedire", - "impianto", - "importo", - "impresa", - "impulso", - "incanto", - "incendio", - "incidere", - "incontro", - "incrocia", - "incubo", - "indagare", - "indice", - "indotto", - "infanzia", - "inferno", - "infinito", - "infranto", - "ingerire", - "inglese", - "ingoiare", - "ingresso", - "iniziare", - "innesco", - "insalata", - "inserire", - "insicuro", - "insonnia", - "insulto", - "interno", - "introiti", - "invasori", - "inverno", - "invito", - "invocare", - "ipnosi", - "ipocrita", - "ipotesi", - "ironia", - "irrigare", - "iscritto", - "isola", - "ispirare", - "isterico", - "istinto", - "istruire", - "italiano", - "jazz", - "labbra", - "labrador", - "ladro", - "lago", - "lamento", - "lampone", - "lancetta", - "lanterna", - "lapide", - "larva", - "lasagne", - "lasciare", - "lastra", - "latte", - "laurea", - "lavagna", - "lavorare", - "leccare", - "legare", - "leggere", - "lenzuolo", - "leone", - "lepre", - "letargo", - "lettera", - "levare", - "levitare", - "lezione", - "liberare", - "libidine", - "libro", - "licenza", - "lievito", - "limite", - "lince", - "lingua", - "liquore", - "lire", - "listino", - "litigare", - "litro", - "locale", - "lottare", - "lucciola", - "lucidare", - "luglio", - "luna", - "macchina", - "madama", - "madre", - "maestro", - "maggio", - "magico", - "maglione", - "magnolia", - "mago", - "maialino", - "maionese", - "malattia", - "male", - "malloppo", - "mancare", - "mandorla", - "mangiare", - "manico", - "manopola", - "mansarda", - "mantello", - "manubrio", - "manzo", - "mappa", - "mare", - "margine", - "marinaio", - "marmotta", - "marocco", - "martello", - "marzo", - "maschera", - "matrice", - "maturare", - "mazzetta", - "meandri", - "medaglia", - "medico", - "medusa", - "megafono", - "melone", - "membrana", - "menta", - "mercato", - "meritare", - "merluzzo", - "mese", - "mestiere", - "metafora", - "meteo", - "metodo", - "mettere", - "miele", - "miglio", - "miliardo", - "mimetica", - "minatore", - "minuto", - "miracolo", - "mirtillo", - "missile", - "mistero", - "misura", - "mito", - "mobile", - "moda", - "moderare", - "moglie", - "molecola", - "molle", - "momento", - "moneta", - "mongolia", - "monologo", - "montagna", - "morale", - "morbillo", - "mordere", - "mosaico", - "mosca", - "mostro", - "motivare", - "moto", - "mulino", - "mulo", - "muovere", - "muraglia", - "muscolo", - "museo", - "musica", - "mutande", - "nascere", - "nastro", - "natale", - "natura", - "nave", - "navigare", - "negare", - "negozio", - "nemico", - "nero", - "nervo", - "nessuno", - "nettare", - "neutroni", - "neve", - "nevicare", - "nicotina", - "nido", - "nipote", - "nocciola", - "noleggio", - "nome", - "nonno", - "norvegia", - "notare", - "notizia", - "nove", - "nucleo", - "nuda", - "nuotare", - "nutrire", - "obbligo", - "occhio", - "occupare", - "oceano", - "odissea", - "odore", - "offerta", - "officina", - "offrire", - "oggetto", - "oggi", - "olfatto", - "olio", - "oliva", - "ombelico", - "ombrello", - "omuncolo", - "ondata", - "onore", - "opera", - "opinione", - "opuscolo", - "opzione", - "orario", - "orbita", - "orchidea", - "ordine", - "orecchio", - "orgasmo", - "orgoglio", - "origine", - "orologio", - "oroscopo", - "orso", - "oscurare", - "ospedale", - "ospite", - "ossigeno", - "ostacolo", - "ostriche", - "ottenere", - "ottimo", - "ottobre", - "ovest", - "pacco", - "pace", - "pacifico", - "padella", - "pagare", - "pagina", - "pagnotta", - "palazzo", - "palestra", - "palpebre", - "pancetta", - "panfilo", - "panino", - "pannello", - "panorama", - "papa", - "paperino", - "paradiso", - "parcella", - "parente", - "parlare", - "parodia", - "parrucca", - "partire", - "passare", - "pasta", - "patata", - "patente", - "patogeno", - "patriota", - "pausa", - "pazienza", - "peccare", - "pecora", - "pedalare", - "pelare", - "pena", - "pendenza", - "penisola", - "pennello", - "pensare", - "pentirsi", - "percorso", - "perdono", - "perfetto", - "perizoma", - "perla", - "permesso", - "persona", - "pesare", - "pesce", - "peso", - "petardo", - "petrolio", - "pezzo", - "piacere", - "pianeta", - "piastra", - "piatto", - "piazza", - "piccolo", - "piede", - "piegare", - "pietra", - "pigiama", - "pigliare", - "pigrizia", - "pilastro", - "pilota", - "pinguino", - "pioggia", - "piombo", - "pionieri", - "piovra", - "pipa", - "pirata", - "pirolisi", - "piscina", - "pisolino", - "pista", - "pitone", - "piumino", - "pizza", - "plastica", - "platino", - "poesia", - "poiana", - "polaroid", - "polenta", - "polimero", - "pollo", - "polmone", - "polpetta", - "poltrona", - "pomodoro", - "pompa", - "popolo", - "porco", - "porta", - "porzione", - "possesso", - "postino", - "potassio", - "potere", - "poverino", - "pranzo", - "prato", - "prefisso", - "prelievo", - "premio", - "prendere", - "prestare", - "pretesa", - "prezzo", - "primario", - "privacy", - "problema", - "processo", - "prodotto", - "profeta", - "progetto", - "promessa", - "pronto", - "proposta", - "proroga", - "prossimo", - "proteina", - "prova", - "prudenza", - "pubblico", - "pudore", - "pugilato", - "pulire", - "pulsante", - "puntare", - "pupazzo", - "puzzle", - "quaderno", - "qualcuno", - "quarzo", - "quercia", - "quintale", - "rabbia", - "racconto", - "radice", - "raffica", - "ragazza", - "ragione", - "rammento", - "ramo", - "rana", - "randagio", - "rapace", - "rapinare", - "rapporto", - "rasatura", - "ravioli", - "reagire", - "realista", - "reattore", - "reazione", - "recitare", - "recluso", - "record", - "recupero", - "redigere", - "regalare", - "regina", - "regola", - "relatore", - "reliquia", - "remare", - "rendere", - "reparto", - "resina", - "resto", - "rete", - "retorica", - "rettile", - "revocare", - "riaprire", - "ribadire", - "ribelle", - "ricambio", - "ricetta", - "richiamo", - "ricordo", - "ridurre", - "riempire", - "riferire", - "riflesso", - "righello", - "rilancio", - "rilevare", - "rilievo", - "rimanere", - "rimborso", - "rinforzo", - "rinuncia", - "riparo", - "ripetere", - "riposare", - "ripulire", - "risalita", - "riscatto", - "riserva", - "riso", - "rispetto", - "ritaglio", - "ritmo", - "ritorno", - "ritratto", - "rituale", - "riunione", - "riuscire", - "riva", - "robotica", - "rondine", - "rosa", - "rospo", - "rosso", - "rotonda", - "rotta", - "roulotte", - "rubare", - "rubrica", - "ruffiano", - "rumore", - "ruota", - "ruscello", - "sabbia", - "sacco", - "saggio", - "sale", - "salire", - "salmone", - "salto", - "salutare", - "salvia", - "sangue", - "sanzioni", - "sapere", - "sapienza", - "sarcasmo", - "sardine", - "sartoria", - "sbalzo", - "sbarcare", - "sberla", - "sborsare", - "scadenza", - "scafo", - "scala", - "scambio", - "scappare", - "scarpa", - "scatola", - "scelta", - "scena", - "sceriffo", - "scheggia", - "schiuma", - "sciarpa", - "scienza", - "scimmia", - "sciopero", - "scivolo", - "sclerare", - "scolpire", - "sconto", - "scopa", - "scordare", - "scossa", - "scrivere", - "scrupolo", - "scuderia", - "scultore", - "scuola", - "scusare", - "sdraiare", - "secolo", - "sedativo", - "sedere", - "sedia", - "segare", - "segreto", - "seguire", - "semaforo", - "seme", - "senape", - "seno", - "sentiero", - "separare", - "sepolcro", - "sequenza", - "serata", - "serpente", - "servizio", - "sesso", - "seta", - "settore", - "sfamare", - "sfera", - "sfidare", - "sfiorare", - "sfogare", - "sgabello", - "sicuro", - "siepe", - "sigaro", - "silenzio", - "silicone", - "simbiosi", - "simpatia", - "simulare", - "sinapsi", - "sindrome", - "sinergia", - "sinonimo", - "sintonia", - "sirena", - "siringa", - "sistema", - "sito", - "smalto", - "smentire", - "smontare", - "soccorso", - "socio", - "soffitto", - "software", - "soggetto", - "sogliola", - "sognare", - "soldi", - "sole", - "sollievo", - "solo", - "sommario", - "sondare", - "sonno", - "sorpresa", - "sorriso", - "sospiro", - "sostegno", - "sovrano", - "spaccare", - "spada", - "spagnolo", - "spalla", - "sparire", - "spavento", - "spazio", - "specchio", - "spedire", - "spegnere", - "spendere", - "speranza", - "spessore", - "spezzare", - "spiaggia", - "spiccare", - "spiegare", - "spiffero", - "spingere", - "sponda", - "sporcare", - "spostare", - "spremuta", - "spugna", - "spumante", - "spuntare", - "squadra", - "squillo", - "staccare", - "stadio", - "stagione", - "stallone", - "stampa", - "stancare", - "starnuto", - "statura", - "stella", - "stendere", - "sterzo", - "stilista", - "stimolo", - "stinco", - "stiva", - "stoffa", - "storia", - "strada", - "stregone", - "striscia", - "studiare", - "stufa", - "stupendo", - "subire", - "successo", - "sudare", - "suono", - "superare", - "supporto", - "surfista", - "sussurro", - "svelto", - "svenire", - "sviluppo", - "svolta", - "svuotare", - "tabacco", - "tabella", - "tabu", - "tacchino", - "tacere", - "taglio", - "talento", - "tangente", - "tappeto", - "tartufo", - "tassello", - "tastiera", - "tavolo", - "tazza", - "teatro", - "tedesco", - "telaio", - "telefono", - "tema", - "temere", - "tempo", - "tendenza", - "tenebre", - "tensione", - "tentare", - "teologia", - "teorema", - "termica", - "terrazzo", - "teschio", - "tesi", - "tesoro", - "tessera", - "testa", - "thriller", - "tifoso", - "tigre", - "timbrare", - "timido", - "tinta", - "tirare", - "tisana", - "titano", - "titolo", - "toccare", - "togliere", - "topolino", - "torcia", - "torrente", - "tovaglia", - "traffico", - "tragitto", - "training", - "tramonto", - "transito", - "trapezio", - "trasloco", - "trattore", - "trazione", - "treccia", - "tregua", - "treno", - "triciclo", - "tridente", - "trilogia", - "tromba", - "troncare", - "trota", - "trovare", - "trucco", - "tubo", - "tulipano", - "tumulto", - "tunisia", - "tuono", - "turista", - "tuta", - "tutelare", - "tutore", - "ubriaco", - "uccello", - "udienza", - "udito", - "uffa", - "umanoide", - "umore", - "unghia", - "unguento", - "unicorno", - "unione", - "universo", - "uomo", - "uragano", - "uranio", - "urlare", - "uscire", - "utente", - "utilizzo", - "vacanza", - "vacca", - "vaglio", - "vagonata", - "valle", - "valore", - "valutare", - "valvola", - "vampiro", - "vaniglia", - "vanto", - "vapore", - "variante", - "vasca", - "vaselina", - "vassoio", - "vedere", - "vegetale", - "veglia", - "veicolo", - "vela", - "veleno", - "velivolo", - "velluto", - "vendere", - "venerare", - "venire", - "vento", - "veranda", - "verbo", - "verdura", - "vergine", - "verifica", - "vernice", - "vero", - "verruca", - "versare", - "vertebra", - "vescica", - "vespaio", - "vestito", - "vesuvio", - "veterano", - "vetro", - "vetta", - "viadotto", - "viaggio", - "vibrare", - "vicenda", - "vichingo", - "vietare", - "vigilare", - "vigneto", - "villa", - "vincere", - "violino", - "vipera", - "virgola", - "virtuoso", - "visita", - "vita", - "vitello", - "vittima", - "vivavoce", - "vivere", - "viziato", - "voglia", - "volare", - "volpe", - "volto", - "volume", - "vongole", - "voragine", - "vortice", - "votare", - "vulcano", - "vuotare", - "zabaione", - "zaffiro", - "zainetto", - "zampa", - "zanzara", - "zattera", - "zavorra", - "zenzero", - "zero", - "zingaro", - "zittire", - "zoccolo", - "zolfo", - "zombie", - "zucchero" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/japanese.dart b/cw_zano/lib/mnemonics/japanese.dart deleted file mode 100644 index 5d17fdb14..000000000 --- a/cw_zano/lib/mnemonics/japanese.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class JapaneseMnemonics { - static const words = [ - "あいこくしん", - "あいさつ", - "あいだ", - "あおぞら", - "あかちゃん", - "あきる", - "あけがた", - "あける", - "あこがれる", - "あさい", - "あさひ", - "あしあと", - "あじわう", - "あずかる", - "あずき", - "あそぶ", - "あたえる", - "あたためる", - "あたりまえ", - "あたる", - "あつい", - "あつかう", - "あっしゅく", - "あつまり", - "あつめる", - "あてな", - "あてはまる", - "あひる", - "あぶら", - "あぶる", - "あふれる", - "あまい", - "あまど", - "あまやかす", - "あまり", - "あみもの", - "あめりか", - "あやまる", - "あゆむ", - "あらいぐま", - "あらし", - "あらすじ", - "あらためる", - "あらゆる", - "あらわす", - "ありがとう", - "あわせる", - "あわてる", - "あんい", - "あんがい", - "あんこ", - "あんぜん", - "あんてい", - "あんない", - "あんまり", - "いいだす", - "いおん", - "いがい", - "いがく", - "いきおい", - "いきなり", - "いきもの", - "いきる", - "いくじ", - "いくぶん", - "いけばな", - "いけん", - "いこう", - "いこく", - "いこつ", - "いさましい", - "いさん", - "いしき", - "いじゅう", - "いじょう", - "いじわる", - "いずみ", - "いずれ", - "いせい", - "いせえび", - "いせかい", - "いせき", - "いぜん", - "いそうろう", - "いそがしい", - "いだい", - "いだく", - "いたずら", - "いたみ", - "いたりあ", - "いちおう", - "いちじ", - "いちど", - "いちば", - "いちぶ", - "いちりゅう", - "いつか", - "いっしゅん", - "いっせい", - "いっそう", - "いったん", - "いっち", - "いってい", - "いっぽう", - "いてざ", - "いてん", - "いどう", - "いとこ", - "いない", - "いなか", - "いねむり", - "いのち", - "いのる", - "いはつ", - "いばる", - "いはん", - "いびき", - "いひん", - "いふく", - "いへん", - "いほう", - "いみん", - "いもうと", - "いもたれ", - "いもり", - "いやがる", - "いやす", - "いよかん", - "いよく", - "いらい", - "いらすと", - "いりぐち", - "いりょう", - "いれい", - "いれもの", - "いれる", - "いろえんぴつ", - "いわい", - "いわう", - "いわかん", - "いわば", - "いわゆる", - "いんげんまめ", - "いんさつ", - "いんしょう", - "いんよう", - "うえき", - "うえる", - "うおざ", - "うがい", - "うかぶ", - "うかべる", - "うきわ", - "うくらいな", - "うくれれ", - "うけたまわる", - "うけつけ", - "うけとる", - "うけもつ", - "うける", - "うごかす", - "うごく", - "うこん", - "うさぎ", - "うしなう", - "うしろがみ", - "うすい", - "うすぎ", - "うすぐらい", - "うすめる", - "うせつ", - "うちあわせ", - "うちがわ", - "うちき", - "うちゅう", - "うっかり", - "うつくしい", - "うったえる", - "うつる", - "うどん", - "うなぎ", - "うなじ", - "うなずく", - "うなる", - "うねる", - "うのう", - "うぶげ", - "うぶごえ", - "うまれる", - "うめる", - "うもう", - "うやまう", - "うよく", - "うらがえす", - "うらぐち", - "うらない", - "うりあげ", - "うりきれ", - "うるさい", - "うれしい", - "うれゆき", - "うれる", - "うろこ", - "うわき", - "うわさ", - "うんこう", - "うんちん", - "うんてん", - "うんどう", - "えいえん", - "えいが", - "えいきょう", - "えいご", - "えいせい", - "えいぶん", - "えいよう", - "えいわ", - "えおり", - "えがお", - "えがく", - "えきたい", - "えくせる", - "えしゃく", - "えすて", - "えつらん", - "えのぐ", - "えほうまき", - "えほん", - "えまき", - "えもじ", - "えもの", - "えらい", - "えらぶ", - "えりあ", - "えんえん", - "えんかい", - "えんぎ", - "えんげき", - "えんしゅう", - "えんぜつ", - "えんそく", - "えんちょう", - "えんとつ", - "おいかける", - "おいこす", - "おいしい", - "おいつく", - "おうえん", - "おうさま", - "おうじ", - "おうせつ", - "おうたい", - "おうふく", - "おうべい", - "おうよう", - "おえる", - "おおい", - "おおう", - "おおどおり", - "おおや", - "おおよそ", - "おかえり", - "おかず", - "おがむ", - "おかわり", - "おぎなう", - "おきる", - "おくさま", - "おくじょう", - "おくりがな", - "おくる", - "おくれる", - "おこす", - "おこなう", - "おこる", - "おさえる", - "おさない", - "おさめる", - "おしいれ", - "おしえる", - "おじぎ", - "おじさん", - "おしゃれ", - "おそらく", - "おそわる", - "おたがい", - "おたく", - "おだやか", - "おちつく", - "おっと", - "おつり", - "おでかけ", - "おとしもの", - "おとなしい", - "おどり", - "おどろかす", - "おばさん", - "おまいり", - "おめでとう", - "おもいで", - "おもう", - "おもたい", - "おもちゃ", - "おやつ", - "おやゆび", - "およぼす", - "おらんだ", - "おろす", - "おんがく", - "おんけい", - "おんしゃ", - "おんせん", - "おんだん", - "おんちゅう", - "おんどけい", - "かあつ", - "かいが", - "がいき", - "がいけん", - "がいこう", - "かいさつ", - "かいしゃ", - "かいすいよく", - "かいぜん", - "かいぞうど", - "かいつう", - "かいてん", - "かいとう", - "かいふく", - "がいへき", - "かいほう", - "かいよう", - "がいらい", - "かいわ", - "かえる", - "かおり", - "かかえる", - "かがく", - "かがし", - "かがみ", - "かくご", - "かくとく", - "かざる", - "がぞう", - "かたい", - "かたち", - "がちょう", - "がっきゅう", - "がっこう", - "がっさん", - "がっしょう", - "かなざわし", - "かのう", - "がはく", - "かぶか", - "かほう", - "かほご", - "かまう", - "かまぼこ", - "かめれおん", - "かゆい", - "かようび", - "からい", - "かるい", - "かろう", - "かわく", - "かわら", - "がんか", - "かんけい", - "かんこう", - "かんしゃ", - "かんそう", - "かんたん", - "かんち", - "がんばる", - "きあい", - "きあつ", - "きいろ", - "ぎいん", - "きうい", - "きうん", - "きえる", - "きおう", - "きおく", - "きおち", - "きおん", - "きかい", - "きかく", - "きかんしゃ", - "ききて", - "きくばり", - "きくらげ", - "きけんせい", - "きこう", - "きこえる", - "きこく", - "きさい", - "きさく", - "きさま", - "きさらぎ", - "ぎじかがく", - "ぎしき", - "ぎじたいけん", - "ぎじにってい", - "ぎじゅつしゃ", - "きすう", - "きせい", - "きせき", - "きせつ", - "きそう", - "きぞく", - "きぞん", - "きたえる", - "きちょう", - "きつえん", - "ぎっちり", - "きつつき", - "きつね", - "きてい", - "きどう", - "きどく", - "きない", - "きなが", - "きなこ", - "きぬごし", - "きねん", - "きのう", - "きのした", - "きはく", - "きびしい", - "きひん", - "きふく", - "きぶん", - "きぼう", - "きほん", - "きまる", - "きみつ", - "きむずかしい", - "きめる", - "きもだめし", - "きもち", - "きもの", - "きゃく", - "きやく", - "ぎゅうにく", - "きよう", - "きょうりゅう", - "きらい", - "きらく", - "きりん", - "きれい", - "きれつ", - "きろく", - "ぎろん", - "きわめる", - "ぎんいろ", - "きんかくじ", - "きんじょ", - "きんようび", - "ぐあい", - "くいず", - "くうかん", - "くうき", - "くうぐん", - "くうこう", - "ぐうせい", - "くうそう", - "ぐうたら", - "くうふく", - "くうぼ", - "くかん", - "くきょう", - "くげん", - "ぐこう", - "くさい", - "くさき", - "くさばな", - "くさる", - "くしゃみ", - "くしょう", - "くすのき", - "くすりゆび", - "くせげ", - "くせん", - "ぐたいてき", - "くださる", - "くたびれる", - "くちこみ", - "くちさき", - "くつした", - "ぐっすり", - "くつろぐ", - "くとうてん", - "くどく", - "くなん", - "くねくね", - "くのう", - "くふう", - "くみあわせ", - "くみたてる", - "くめる", - "くやくしょ", - "くらす", - "くらべる", - "くるま", - "くれる", - "くろう", - "くわしい", - "ぐんかん", - "ぐんしょく", - "ぐんたい", - "ぐんて", - "けあな", - "けいかく", - "けいけん", - "けいこ", - "けいさつ", - "げいじゅつ", - "けいたい", - "げいのうじん", - "けいれき", - "けいろ", - "けおとす", - "けおりもの", - "げきか", - "げきげん", - "げきだん", - "げきちん", - "げきとつ", - "げきは", - "げきやく", - "げこう", - "げこくじょう", - "げざい", - "けさき", - "げざん", - "けしき", - "けしごむ", - "けしょう", - "げすと", - "けたば", - "けちゃっぷ", - "けちらす", - "けつあつ", - "けつい", - "けつえき", - "けっこん", - "けつじょ", - "けっせき", - "けってい", - "けつまつ", - "げつようび", - "げつれい", - "けつろん", - "げどく", - "けとばす", - "けとる", - "けなげ", - "けなす", - "けなみ", - "けぬき", - "げねつ", - "けねん", - "けはい", - "げひん", - "けぶかい", - "げぼく", - "けまり", - "けみかる", - "けむし", - "けむり", - "けもの", - "けらい", - "けろけろ", - "けわしい", - "けんい", - "けんえつ", - "けんお", - "けんか", - "げんき", - "けんげん", - "けんこう", - "けんさく", - "けんしゅう", - "けんすう", - "げんそう", - "けんちく", - "けんてい", - "けんとう", - "けんない", - "けんにん", - "げんぶつ", - "けんま", - "けんみん", - "けんめい", - "けんらん", - "けんり", - "こあくま", - "こいぬ", - "こいびと", - "ごうい", - "こうえん", - "こうおん", - "こうかん", - "ごうきゅう", - "ごうけい", - "こうこう", - "こうさい", - "こうじ", - "こうすい", - "ごうせい", - "こうそく", - "こうたい", - "こうちゃ", - "こうつう", - "こうてい", - "こうどう", - "こうない", - "こうはい", - "ごうほう", - "ごうまん", - "こうもく", - "こうりつ", - "こえる", - "こおり", - "ごかい", - "ごがつ", - "ごかん", - "こくご", - "こくさい", - "こくとう", - "こくない", - "こくはく", - "こぐま", - "こけい", - "こける", - "ここのか", - "こころ", - "こさめ", - "こしつ", - "こすう", - "こせい", - "こせき", - "こぜん", - "こそだて", - "こたい", - "こたえる", - "こたつ", - "こちょう", - "こっか", - "こつこつ", - "こつばん", - "こつぶ", - "こてい", - "こてん", - "ことがら", - "ことし", - "ことば", - "ことり", - "こなごな", - "こねこね", - "このまま", - "このみ", - "このよ", - "ごはん", - "こひつじ", - "こふう", - "こふん", - "こぼれる", - "ごまあぶら", - "こまかい", - "ごますり", - "こまつな", - "こまる", - "こむぎこ", - "こもじ", - "こもち", - "こもの", - "こもん", - "こやく", - "こやま", - "こゆう", - "こゆび", - "こよい", - "こよう", - "こりる", - "これくしょん", - "ころっけ", - "こわもて", - "こわれる", - "こんいん", - "こんかい", - "こんき", - "こんしゅう", - "こんすい", - "こんだて", - "こんとん", - "こんなん", - "こんびに", - "こんぽん", - "こんまけ", - "こんや", - "こんれい", - "こんわく", - "ざいえき", - "さいかい", - "さいきん", - "ざいげん", - "ざいこ", - "さいしょ", - "さいせい", - "ざいたく", - "ざいちゅう", - "さいてき", - "ざいりょう", - "さうな", - "さかいし", - "さがす", - "さかな", - "さかみち", - "さがる", - "さぎょう", - "さくし", - "さくひん", - "さくら", - "さこく", - "さこつ", - "さずかる", - "ざせき", - "さたん", - "さつえい", - "ざつおん", - "ざっか", - "ざつがく", - "さっきょく", - "ざっし", - "さつじん", - "ざっそう", - "さつたば", - "さつまいも", - "さてい", - "さといも", - "さとう", - "さとおや", - "さとし", - "さとる", - "さのう", - "さばく", - "さびしい", - "さべつ", - "さほう", - "さほど", - "さます", - "さみしい", - "さみだれ", - "さむけ", - "さめる", - "さやえんどう", - "さゆう", - "さよう", - "さよく", - "さらだ", - "ざるそば", - "さわやか", - "さわる", - "さんいん", - "さんか", - "さんきゃく", - "さんこう", - "さんさい", - "ざんしょ", - "さんすう", - "さんせい", - "さんそ", - "さんち", - "さんま", - "さんみ", - "さんらん", - "しあい", - "しあげ", - "しあさって", - "しあわせ", - "しいく", - "しいん", - "しうち", - "しえい", - "しおけ", - "しかい", - "しかく", - "じかん", - "しごと", - "しすう", - "じだい", - "したうけ", - "したぎ", - "したて", - "したみ", - "しちょう", - "しちりん", - "しっかり", - "しつじ", - "しつもん", - "してい", - "してき", - "してつ", - "じてん", - "じどう", - "しなぎれ", - "しなもの", - "しなん", - "しねま", - "しねん", - "しのぐ", - "しのぶ", - "しはい", - "しばかり", - "しはつ", - "しはらい", - "しはん", - "しひょう", - "しふく", - "じぶん", - "しへい", - "しほう", - "しほん", - "しまう", - "しまる", - "しみん", - "しむける", - "じむしょ", - "しめい", - "しめる", - "しもん", - "しゃいん", - "しゃうん", - "しゃおん", - "じゃがいも", - "しやくしょ", - "しゃくほう", - "しゃけん", - "しゃこ", - "しゃざい", - "しゃしん", - "しゃせん", - "しゃそう", - "しゃたい", - "しゃちょう", - "しゃっきん", - "じゃま", - "しゃりん", - "しゃれい", - "じゆう", - "じゅうしょ", - "しゅくはく", - "じゅしん", - "しゅっせき", - "しゅみ", - "しゅらば", - "じゅんばん", - "しょうかい", - "しょくたく", - "しょっけん", - "しょどう", - "しょもつ", - "しらせる", - "しらべる", - "しんか", - "しんこう", - "じんじゃ", - "しんせいじ", - "しんちく", - "しんりん", - "すあげ", - "すあし", - "すあな", - "ずあん", - "すいえい", - "すいか", - "すいとう", - "ずいぶん", - "すいようび", - "すうがく", - "すうじつ", - "すうせん", - "すおどり", - "すきま", - "すくう", - "すくない", - "すける", - "すごい", - "すこし", - "ずさん", - "すずしい", - "すすむ", - "すすめる", - "すっかり", - "ずっしり", - "ずっと", - "すてき", - "すてる", - "すねる", - "すのこ", - "すはだ", - "すばらしい", - "ずひょう", - "ずぶぬれ", - "すぶり", - "すふれ", - "すべて", - "すべる", - "ずほう", - "すぼん", - "すまい", - "すめし", - "すもう", - "すやき", - "すらすら", - "するめ", - "すれちがう", - "すろっと", - "すわる", - "すんぜん", - "すんぽう", - "せあぶら", - "せいかつ", - "せいげん", - "せいじ", - "せいよう", - "せおう", - "せかいかん", - "せきにん", - "せきむ", - "せきゆ", - "せきらんうん", - "せけん", - "せこう", - "せすじ", - "せたい", - "せたけ", - "せっかく", - "せっきゃく", - "ぜっく", - "せっけん", - "せっこつ", - "せっさたくま", - "せつぞく", - "せつだん", - "せつでん", - "せっぱん", - "せつび", - "せつぶん", - "せつめい", - "せつりつ", - "せなか", - "せのび", - "せはば", - "せびろ", - "せぼね", - "せまい", - "せまる", - "せめる", - "せもたれ", - "せりふ", - "ぜんあく", - "せんい", - "せんえい", - "せんか", - "せんきょ", - "せんく", - "せんげん", - "ぜんご", - "せんさい", - "せんしゅ", - "せんすい", - "せんせい", - "せんぞ", - "せんたく", - "せんちょう", - "せんてい", - "せんとう", - "せんぬき", - "せんねん", - "せんぱい", - "ぜんぶ", - "ぜんぽう", - "せんむ", - "せんめんじょ", - "せんもん", - "せんやく", - "せんゆう", - "せんよう", - "ぜんら", - "ぜんりゃく", - "せんれい", - "せんろ", - "そあく", - "そいとげる", - "そいね", - "そうがんきょう", - "そうき", - "そうご", - "そうしん", - "そうだん", - "そうなん", - "そうび", - "そうめん", - "そうり", - "そえもの", - "そえん", - "そがい", - "そげき", - "そこう", - "そこそこ", - "そざい", - "そしな", - "そせい", - "そせん", - "そそぐ", - "そだてる", - "そつう", - "そつえん", - "そっかん", - "そつぎょう", - "そっけつ", - "そっこう", - "そっせん", - "そっと", - "そとがわ", - "そとづら", - "そなえる", - "そなた", - "そふぼ", - "そぼく", - "そぼろ", - "そまつ", - "そまる", - "そむく", - "そむりえ", - "そめる", - "そもそも", - "そよかぜ", - "そらまめ", - "そろう", - "そんかい", - "そんけい", - "そんざい", - "そんしつ", - "そんぞく", - "そんちょう", - "ぞんび", - "ぞんぶん", - "そんみん", - "たあい", - "たいいん", - "たいうん", - "たいえき", - "たいおう", - "だいがく", - "たいき", - "たいぐう", - "たいけん", - "たいこ", - "たいざい", - "だいじょうぶ", - "だいすき", - "たいせつ", - "たいそう", - "だいたい", - "たいちょう", - "たいてい", - "だいどころ", - "たいない", - "たいねつ", - "たいのう", - "たいはん", - "だいひょう", - "たいふう", - "たいへん", - "たいほ", - "たいまつばな", - "たいみんぐ", - "たいむ", - "たいめん", - "たいやき", - "たいよう", - "たいら", - "たいりょく", - "たいる", - "たいわん", - "たうえ", - "たえる", - "たおす", - "たおる", - "たおれる", - "たかい", - "たかね", - "たきび", - "たくさん", - "たこく", - "たこやき", - "たさい", - "たしざん", - "だじゃれ", - "たすける", - "たずさわる", - "たそがれ", - "たたかう", - "たたく", - "ただしい", - "たたみ", - "たちばな", - "だっかい", - "だっきゃく", - "だっこ", - "だっしゅつ", - "だったい", - "たてる", - "たとえる", - "たなばた", - "たにん", - "たぬき", - "たのしみ", - "たはつ", - "たぶん", - "たべる", - "たぼう", - "たまご", - "たまる", - "だむる", - "ためいき", - "ためす", - "ためる", - "たもつ", - "たやすい", - "たよる", - "たらす", - "たりきほんがん", - "たりょう", - "たりる", - "たると", - "たれる", - "たれんと", - "たろっと", - "たわむれる", - "だんあつ", - "たんい", - "たんおん", - "たんか", - "たんき", - "たんけん", - "たんご", - "たんさん", - "たんじょうび", - "だんせい", - "たんそく", - "たんたい", - "だんち", - "たんてい", - "たんとう", - "だんな", - "たんにん", - "だんねつ", - "たんのう", - "たんぴん", - "だんぼう", - "たんまつ", - "たんめい", - "だんれつ", - "だんろ", - "だんわ", - "ちあい", - "ちあん", - "ちいき", - "ちいさい", - "ちえん", - "ちかい", - "ちから", - "ちきゅう", - "ちきん", - "ちけいず", - "ちけん", - "ちこく", - "ちさい", - "ちしき", - "ちしりょう", - "ちせい", - "ちそう", - "ちたい", - "ちたん", - "ちちおや", - "ちつじょ", - "ちてき", - "ちてん", - "ちぬき", - "ちぬり", - "ちのう", - "ちひょう", - "ちへいせん", - "ちほう", - "ちまた", - "ちみつ", - "ちみどろ", - "ちめいど", - "ちゃんこなべ", - "ちゅうい", - "ちゆりょく", - "ちょうし", - "ちょさくけん", - "ちらし", - "ちらみ", - "ちりがみ", - "ちりょう", - "ちるど", - "ちわわ", - "ちんたい", - "ちんもく", - "ついか", - "ついたち", - "つうか", - "つうじょう", - "つうはん", - "つうわ", - "つかう", - "つかれる", - "つくね", - "つくる", - "つけね", - "つける", - "つごう", - "つたえる", - "つづく", - "つつじ", - "つつむ", - "つとめる", - "つながる", - "つなみ", - "つねづね", - "つのる", - "つぶす", - "つまらない", - "つまる", - "つみき", - "つめたい", - "つもり", - "つもる", - "つよい", - "つるぼ", - "つるみく", - "つわもの", - "つわり", - "てあし", - "てあて", - "てあみ", - "ていおん", - "ていか", - "ていき", - "ていけい", - "ていこく", - "ていさつ", - "ていし", - "ていせい", - "ていたい", - "ていど", - "ていねい", - "ていひょう", - "ていへん", - "ていぼう", - "てうち", - "ておくれ", - "てきとう", - "てくび", - "でこぼこ", - "てさぎょう", - "てさげ", - "てすり", - "てそう", - "てちがい", - "てちょう", - "てつがく", - "てつづき", - "でっぱ", - "てつぼう", - "てつや", - "でぬかえ", - "てぬき", - "てぬぐい", - "てのひら", - "てはい", - "てぶくろ", - "てふだ", - "てほどき", - "てほん", - "てまえ", - "てまきずし", - "てみじか", - "てみやげ", - "てらす", - "てれび", - "てわけ", - "てわたし", - "でんあつ", - "てんいん", - "てんかい", - "てんき", - "てんぐ", - "てんけん", - "てんごく", - "てんさい", - "てんし", - "てんすう", - "でんち", - "てんてき", - "てんとう", - "てんない", - "てんぷら", - "てんぼうだい", - "てんめつ", - "てんらんかい", - "でんりょく", - "でんわ", - "どあい", - "といれ", - "どうかん", - "とうきゅう", - "どうぐ", - "とうし", - "とうむぎ", - "とおい", - "とおか", - "とおく", - "とおす", - "とおる", - "とかい", - "とかす", - "ときおり", - "ときどき", - "とくい", - "とくしゅう", - "とくてん", - "とくに", - "とくべつ", - "とけい", - "とける", - "とこや", - "とさか", - "としょかん", - "とそう", - "とたん", - "とちゅう", - "とっきゅう", - "とっくん", - "とつぜん", - "とつにゅう", - "とどける", - "ととのえる", - "とない", - "となえる", - "となり", - "とのさま", - "とばす", - "どぶがわ", - "とほう", - "とまる", - "とめる", - "ともだち", - "ともる", - "どようび", - "とらえる", - "とんかつ", - "どんぶり", - "ないかく", - "ないこう", - "ないしょ", - "ないす", - "ないせん", - "ないそう", - "なおす", - "ながい", - "なくす", - "なげる", - "なこうど", - "なさけ", - "なたでここ", - "なっとう", - "なつやすみ", - "ななおし", - "なにごと", - "なにもの", - "なにわ", - "なのか", - "なふだ", - "なまいき", - "なまえ", - "なまみ", - "なみだ", - "なめらか", - "なめる", - "なやむ", - "ならう", - "ならび", - "ならぶ", - "なれる", - "なわとび", - "なわばり", - "にあう", - "にいがた", - "にうけ", - "におい", - "にかい", - "にがて", - "にきび", - "にくしみ", - "にくまん", - "にげる", - "にさんかたんそ", - "にしき", - "にせもの", - "にちじょう", - "にちようび", - "にっか", - "にっき", - "にっけい", - "にっこう", - "にっさん", - "にっしょく", - "にっすう", - "にっせき", - "にってい", - "になう", - "にほん", - "にまめ", - "にもつ", - "にやり", - "にゅういん", - "にりんしゃ", - "にわとり", - "にんい", - "にんか", - "にんき", - "にんげん", - "にんしき", - "にんずう", - "にんそう", - "にんたい", - "にんち", - "にんてい", - "にんにく", - "にんぷ", - "にんまり", - "にんむ", - "にんめい", - "にんよう", - "ぬいくぎ", - "ぬかす", - "ぬぐいとる", - "ぬぐう", - "ぬくもり", - "ぬすむ", - "ぬまえび", - "ぬめり", - "ぬらす", - "ぬんちゃく", - "ねあげ", - "ねいき", - "ねいる", - "ねいろ", - "ねぐせ", - "ねくたい", - "ねくら", - "ねこぜ", - "ねこむ", - "ねさげ", - "ねすごす", - "ねそべる", - "ねだん", - "ねつい", - "ねっしん", - "ねつぞう", - "ねったいぎょ", - "ねぶそく", - "ねふだ", - "ねぼう", - "ねほりはほり", - "ねまき", - "ねまわし", - "ねみみ", - "ねむい", - "ねむたい", - "ねもと", - "ねらう", - "ねわざ", - "ねんいり", - "ねんおし", - "ねんかん", - "ねんきん", - "ねんぐ", - "ねんざ", - "ねんし", - "ねんちゃく", - "ねんど", - "ねんぴ", - "ねんぶつ", - "ねんまつ", - "ねんりょう", - "ねんれい", - "のいず", - "のおづま", - "のがす", - "のきなみ", - "のこぎり", - "のこす", - "のこる", - "のせる", - "のぞく", - "のぞむ", - "のたまう", - "のちほど", - "のっく", - "のばす", - "のはら", - "のべる", - "のぼる", - "のみもの", - "のやま", - "のらいぬ", - "のらねこ", - "のりもの", - "のりゆき", - "のれん", - "のんき", - "ばあい", - "はあく", - "ばあさん", - "ばいか", - "ばいく", - "はいけん", - "はいご", - "はいしん", - "はいすい", - "はいせん", - "はいそう", - "はいち", - "ばいばい", - "はいれつ", - "はえる", - "はおる", - "はかい", - "ばかり", - "はかる", - "はくしゅ", - "はけん", - "はこぶ", - "はさみ", - "はさん", - "はしご", - "ばしょ", - "はしる", - "はせる", - "ぱそこん", - "はそん", - "はたん", - "はちみつ", - "はつおん", - "はっかく", - "はづき", - "はっきり", - "はっくつ", - "はっけん", - "はっこう", - "はっさん", - "はっしん", - "はったつ", - "はっちゅう", - "はってん", - "はっぴょう", - "はっぽう", - "はなす", - "はなび", - "はにかむ", - "はぶらし", - "はみがき", - "はむかう", - "はめつ", - "はやい", - "はやし", - "はらう", - "はろうぃん", - "はわい", - "はんい", - "はんえい", - "はんおん", - "はんかく", - "はんきょう", - "ばんぐみ", - "はんこ", - "はんしゃ", - "はんすう", - "はんだん", - "ぱんち", - "ぱんつ", - "はんてい", - "はんとし", - "はんのう", - "はんぱ", - "はんぶん", - "はんぺん", - "はんぼうき", - "はんめい", - "はんらん", - "はんろん", - "ひいき", - "ひうん", - "ひえる", - "ひかく", - "ひかり", - "ひかる", - "ひかん", - "ひくい", - "ひけつ", - "ひこうき", - "ひこく", - "ひさい", - "ひさしぶり", - "ひさん", - "びじゅつかん", - "ひしょ" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/portuguese.dart b/cw_zano/lib/mnemonics/portuguese.dart deleted file mode 100644 index 4428ac8f4..000000000 --- a/cw_zano/lib/mnemonics/portuguese.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class PortugueseMnemonics { - static const words = [ - "abaular", - "abdominal", - "abeto", - "abissinio", - "abjeto", - "ablucao", - "abnegar", - "abotoar", - "abrutalhar", - "absurdo", - "abutre", - "acautelar", - "accessorios", - "acetona", - "achocolatado", - "acirrar", - "acne", - "acovardar", - "acrostico", - "actinomicete", - "acustico", - "adaptavel", - "adeus", - "adivinho", - "adjunto", - "admoestar", - "adnominal", - "adotivo", - "adquirir", - "adriatico", - "adsorcao", - "adutora", - "advogar", - "aerossol", - "afazeres", - "afetuoso", - "afixo", - "afluir", - "afortunar", - "afrouxar", - "aftosa", - "afunilar", - "agentes", - "agito", - "aglutinar", - "aiatola", - "aimore", - "aino", - "aipo", - "airoso", - "ajeitar", - "ajoelhar", - "ajudante", - "ajuste", - "alazao", - "albumina", - "alcunha", - "alegria", - "alexandre", - "alforriar", - "alguns", - "alhures", - "alivio", - "almoxarife", - "alotropico", - "alpiste", - "alquimista", - "alsaciano", - "altura", - "aluviao", - "alvura", - "amazonico", - "ambulatorio", - "ametodico", - "amizades", - "amniotico", - "amovivel", - "amurada", - "anatomico", - "ancorar", - "anexo", - "anfora", - "aniversario", - "anjo", - "anotar", - "ansioso", - "anturio", - "anuviar", - "anverso", - "anzol", - "aonde", - "apaziguar", - "apito", - "aplicavel", - "apoteotico", - "aprimorar", - "aprumo", - "apto", - "apuros", - "aquoso", - "arauto", - "arbusto", - "arduo", - "aresta", - "arfar", - "arguto", - "aritmetico", - "arlequim", - "armisticio", - "aromatizar", - "arpoar", - "arquivo", - "arrumar", - "arsenio", - "arturiano", - "aruaque", - "arvores", - "asbesto", - "ascorbico", - "aspirina", - "asqueroso", - "assustar", - "astuto", - "atazanar", - "ativo", - "atletismo", - "atmosferico", - "atormentar", - "atroz", - "aturdir", - "audivel", - "auferir", - "augusto", - "aula", - "aumento", - "aurora", - "autuar", - "avatar", - "avexar", - "avizinhar", - "avolumar", - "avulso", - "axiomatico", - "azerbaijano", - "azimute", - "azoto", - "azulejo", - "bacteriologista", - "badulaque", - "baforada", - "baixote", - "bajular", - "balzaquiana", - "bambuzal", - "banzo", - "baoba", - "baqueta", - "barulho", - "bastonete", - "batuta", - "bauxita", - "bavaro", - "bazuca", - "bcrepuscular", - "beato", - "beduino", - "begonia", - "behaviorista", - "beisebol", - "belzebu", - "bemol", - "benzido", - "beocio", - "bequer", - "berro", - "besuntar", - "betume", - "bexiga", - "bezerro", - "biatlon", - "biboca", - "bicuspide", - "bidirecional", - "bienio", - "bifurcar", - "bigorna", - "bijuteria", - "bimotor", - "binormal", - "bioxido", - "bipolarizacao", - "biquini", - "birutice", - "bisturi", - "bituca", - "biunivoco", - "bivalve", - "bizarro", - "blasfemo", - "blenorreia", - "blindar", - "bloqueio", - "blusao", - "boazuda", - "bofete", - "bojudo", - "bolso", - "bombordo", - "bonzo", - "botina", - "boquiaberto", - "bostoniano", - "botulismo", - "bourbon", - "bovino", - "boximane", - "bravura", - "brevidade", - "britar", - "broxar", - "bruno", - "bruxuleio", - "bubonico", - "bucolico", - "buda", - "budista", - "bueiro", - "buffer", - "bugre", - "bujao", - "bumerangue", - "burundines", - "busto", - "butique", - "buzios", - "caatinga", - "cabuqui", - "cacunda", - "cafuzo", - "cajueiro", - "camurca", - "canudo", - "caquizeiro", - "carvoeiro", - "casulo", - "catuaba", - "cauterizar", - "cebolinha", - "cedula", - "ceifeiro", - "celulose", - "cerzir", - "cesto", - "cetro", - "ceus", - "cevar", - "czanoa", - "cheroqui", - "chita", - "chovido", - "chuvoso", - "ciatico", - "cibernetico", - "cicuta", - "cidreira", - "cientistas", - "cifrar", - "cigarro", - "cilio", - "cimo", - "cinzento", - "cioso", - "cipriota", - "cirurgico", - "cisto", - "citrico", - "ciumento", - "civismo", - "clavicula", - "clero", - "clitoris", - "cluster", - "coaxial", - "cobrir", - "cocota", - "codorniz", - "coexistir", - "cogumelo", - "coito", - "colusao", - "compaixao", - "comutativo", - "contentamento", - "convulsivo", - "coordenativa", - "coquetel", - "correto", - "corvo", - "costureiro", - "cotovia", - "covil", - "cozinheiro", - "cretino", - "cristo", - "crivo", - "crotalo", - "cruzes", - "cubo", - "cucuia", - "cueiro", - "cuidar", - "cujo", - "cultural", - "cunilingua", - "cupula", - "curvo", - "custoso", - "cutucar", - "czarismo", - "dablio", - "dacota", - "dados", - "daguerreotipo", - "daiquiri", - "daltonismo", - "damista", - "dantesco", - "daquilo", - "darwinista", - "dasein", - "dativo", - "deao", - "debutantes", - "decurso", - "deduzir", - "defunto", - "degustar", - "dejeto", - "deltoide", - "demover", - "denunciar", - "deputado", - "deque", - "dervixe", - "desvirtuar", - "deturpar", - "deuteronomio", - "devoto", - "dextrose", - "dezoito", - "diatribe", - "dicotomico", - "didatico", - "dietista", - "difuso", - "digressao", - "diluvio", - "diminuto", - "dinheiro", - "dinossauro", - "dioxido", - "diplomatico", - "dique", - "dirimivel", - "disturbio", - "diurno", - "divulgar", - "dizivel", - "doar", - "dobro", - "docura", - "dodoi", - "doer", - "dogue", - "doloso", - "domo", - "donzela", - "doping", - "dorsal", - "dossie", - "dote", - "doutro", - "doze", - "dravidico", - "dreno", - "driver", - "dropes", - "druso", - "dubnio", - "ducto", - "dueto", - "dulija", - "dundum", - "duodeno", - "duquesa", - "durou", - "duvidoso", - "duzia", - "ebano", - "ebrio", - "eburneo", - "echarpe", - "eclusa", - "ecossistema", - "ectoplasma", - "ecumenismo", - "eczema", - "eden", - "editorial", - "edredom", - "edulcorar", - "efetuar", - "efigie", - "efluvio", - "egiptologo", - "egresso", - "egua", - "einsteiniano", - "eira", - "eivar", - "eixos", - "ejetar", - "elastomero", - "eldorado", - "elixir", - "elmo", - "eloquente", - "elucidativo", - "emaranhar", - "embutir", - "emerito", - "emfa", - "emitir", - "emotivo", - "empuxo", - "emulsao", - "enamorar", - "encurvar", - "enduro", - "enevoar", - "enfurnar", - "enguico", - "enho", - "enigmista", - "enlutar", - "enormidade", - "enpreendimento", - "enquanto", - "enriquecer", - "enrugar", - "entusiastico", - "enunciar", - "envolvimento", - "enxuto", - "enzimatico", - "eolico", - "epiteto", - "epoxi", - "epura", - "equivoco", - "erario", - "erbio", - "ereto", - "erguido", - "erisipela", - "ermo", - "erotizar", - "erros", - "erupcao", - "ervilha", - "esburacar", - "escutar", - "esfuziante", - "esguio", - "esloveno", - "esmurrar", - "esoterismo", - "esperanca", - "espirito", - "espurio", - "essencialmente", - "esturricar", - "esvoacar", - "etario", - "eterno", - "etiquetar", - "etnologo", - "etos", - "etrusco", - "euclidiano", - "euforico", - "eugenico", - "eunuco", - "europio", - "eustaquio", - "eutanasia", - "evasivo", - "eventualidade", - "evitavel", - "evoluir", - "exaustor", - "excursionista", - "exercito", - "exfoliado", - "exito", - "exotico", - "expurgo", - "exsudar", - "extrusora", - "exumar", - "fabuloso", - "facultativo", - "fado", - "fagulha", - "faixas", - "fajuto", - "faltoso", - "famoso", - "fanzine", - "fapesp", - "faquir", - "fartura", - "fastio", - "faturista", - "fausto", - "favorito", - "faxineira", - "fazer", - "fealdade", - "febril", - "fecundo", - "fedorento", - "feerico", - "feixe", - "felicidade", - "felpudo", - "feltro", - "femur", - "fenotipo", - "fervura", - "festivo", - "feto", - "feudo", - "fevereiro", - "fezinha", - "fiasco", - "fibra", - "ficticio", - "fiduciario", - "fiesp", - "fifa", - "figurino", - "fijiano", - "filtro", - "finura", - "fiorde", - "fiquei", - "firula", - "fissurar", - "fitoteca", - "fivela", - "fixo", - "flavio", - "flexor", - "flibusteiro", - "flotilha", - "fluxograma", - "fobos", - "foco", - "fofura", - "foguista", - "foie", - "foliculo", - "fominha", - "fonte", - "forum", - "fosso", - "fotossintese", - "foxtrote", - "fraudulento", - "frevo", - "frivolo", - "frouxo", - "frutose", - "fuba", - "fucsia", - "fugitivo", - "fuinha", - "fujao", - "fulustreco", - "fumo", - "funileiro", - "furunculo", - "fustigar", - "futurologo", - "fuxico", - "fuzue", - "gabriel", - "gado", - "gaelico", - "gafieira", - "gaguejo", - "gaivota", - "gajo", - "galvanoplastico", - "gamo", - "ganso", - "garrucha", - "gastronomo", - "gatuno", - "gaussiano", - "gaviao", - "gaxeta", - "gazeteiro", - "gear", - "geiser", - "geminiano", - "generoso", - "genuino", - "geossinclinal", - "gerundio", - "gestual", - "getulista", - "gibi", - "gigolo", - "gilete", - "ginseng", - "giroscopio", - "glaucio", - "glacial", - "gleba", - "glifo", - "glote", - "glutonia", - "gnostico", - "goela", - "gogo", - "goitaca", - "golpista", - "gomo", - "gonzo", - "gorro", - "gostou", - "goticula", - "gourmet", - "governo", - "gozo", - "graxo", - "grevista", - "grito", - "grotesco", - "gruta", - "guaxinim", - "gude", - "gueto", - "guizo", - "guloso", - "gume", - "guru", - "gustativo", - "grelhado", - "gutural", - "habitue", - "haitiano", - "halterofilista", - "hamburguer", - "hanseniase", - "happening", - "harpista", - "hastear", - "haveres", - "hebreu", - "hectometro", - "hedonista", - "hegira", - "helena", - "helminto", - "hemorroidas", - "henrique", - "heptassilabo", - "hertziano", - "hesitar", - "heterossexual", - "heuristico", - "hexagono", - "hiato", - "hibrido", - "hidrostatico", - "hieroglifo", - "hifenizar", - "higienizar", - "hilario", - "himen", - "hino", - "hippie", - "hirsuto", - "historiografia", - "hitlerista", - "hodometro", - "hoje", - "holograma", - "homus", - "honroso", - "hoquei", - "horto", - "hostilizar", - "hotentote", - "huguenote", - "humilde", - "huno", - "hurra", - "hutu", - "iaia", - "ialorixa", - "iambico", - "iansa", - "iaque", - "iara", - "iatista", - "iberico", - "ibis", - "icar", - "iceberg", - "icosagono", - "idade", - "ideologo", - "idiotice", - "idoso", - "iemenita", - "iene", - "igarape", - "iglu", - "ignorar", - "igreja", - "iguaria", - "iidiche", - "ilativo", - "iletrado", - "ilharga", - "ilimitado", - "ilogismo", - "ilustrissimo", - "imaturo", - "imbuzeiro", - "imerso", - "imitavel", - "imovel", - "imputar", - "imutavel", - "inaveriguavel", - "incutir", - "induzir", - "inextricavel", - "infusao", - "ingua", - "inhame", - "iniquo", - "injusto", - "inning", - "inoxidavel", - "inquisitorial", - "insustentavel", - "intumescimento", - "inutilizavel", - "invulneravel", - "inzoneiro", - "iodo", - "iogurte", - "ioio", - "ionosfera", - "ioruba", - "iota", - "ipsilon", - "irascivel", - "iris", - "irlandes", - "irmaos", - "iroques", - "irrupcao", - "isca", - "isento", - "islandes", - "isotopo", - "isqueiro", - "israelita", - "isso", - "isto", - "iterbio", - "itinerario", - "itrio", - "iuane", - "iugoslavo", - "jabuticabeira", - "jacutinga", - "jade", - "jagunco", - "jainista", - "jaleco", - "jambo", - "jantarada", - "japones", - "jaqueta", - "jarro", - "jasmim", - "jato", - "jaula", - "javel", - "jazz", - "jegue", - "jeitoso", - "jejum", - "jenipapo", - "jeova", - "jequitiba", - "jersei", - "jesus", - "jetom", - "jiboia", - "jihad", - "jilo", - "jingle", - "jipe", - "jocoso", - "joelho", - "joguete", - "joio", - "jojoba", - "jorro", - "jota", - "joule", - "joviano", - "jubiloso", - "judoca", - "jugular", - "juizo", - "jujuba", - "juliano", - "jumento", - "junto", - "jururu", - "justo", - "juta", - "juventude", - "labutar", - "laguna", - "laico", - "lajota", - "lanterninha", - "lapso", - "laquear", - "lastro", - "lauto", - "lavrar", - "laxativo", - "lazer", - "leasing", - "lebre", - "lecionar", - "ledo", - "leguminoso", - "leitura", - "lele", - "lemure", - "lento", - "leonardo", - "leopardo", - "lepton", - "leque", - "leste", - "letreiro", - "leucocito", - "levitico", - "lexicologo", - "lhama", - "lhufas", - "liame", - "licoroso", - "lidocaina", - "liliputiano", - "limusine", - "linotipo", - "lipoproteina", - "liquidos", - "lirismo", - "lisura", - "liturgico", - "livros", - "lixo", - "lobulo", - "locutor", - "lodo", - "logro", - "lojista", - "lombriga", - "lontra", - "loop", - "loquaz", - "lorota", - "losango", - "lotus", - "louvor", - "luar", - "lubrificavel", - "lucros", - "lugubre", - "luis", - "luminoso", - "luneta", - "lustroso", - "luto", - "luvas", - "luxuriante", - "luzeiro", - "maduro", - "maestro", - "mafioso", - "magro", - "maiuscula", - "majoritario", - "malvisto", - "mamute", - "manutencao", - "mapoteca", - "maquinista", - "marzipa", - "masturbar", - "matuto", - "mausoleu", - "mavioso", - "maxixe", - "mazurca", - "meandro", - "mecha", - "medusa", - "mefistofelico", - "megera", - "meirinho", - "melro", - "memorizar", - "menu", - "mequetrefe", - "mertiolate", - "mestria", - "metroviario", - "mexilhao", - "mezanino", - "miau", - "microssegundo", - "midia", - "migratorio", - "mimosa", - "minuto", - "miosotis", - "mirtilo", - "misturar", - "mitzvah", - "miudos", - "mixuruca", - "mnemonico", - "moagem", - "mobilizar", - "modulo", - "moer", - "mofo", - "mogno", - "moita", - "molusco", - "monumento", - "moqueca", - "morubixaba", - "mostruario", - "motriz", - "mouse", - "movivel", - "mozarela", - "muarra", - "muculmano", - "mudo", - "mugir", - "muitos", - "mumunha", - "munir", - "muon", - "muquira", - "murros", - "musselina", - "nacoes", - "nado", - "naftalina", - "nago", - "naipe", - "naja", - "nalgum", - "namoro", - "nanquim", - "napolitano", - "naquilo", - "nascimento", - "nautilo", - "navios", - "nazista", - "nebuloso", - "nectarina", - "nefrologo", - "negus", - "nelore", - "nenufar", - "nepotismo", - "nervura", - "neste", - "netuno", - "neutron", - "nevoeiro", - "newtoniano", - "nexo", - "nhenhenhem", - "nhoque", - "nigeriano", - "niilista", - "ninho", - "niobio", - "niponico", - "niquelar", - "nirvana", - "nisto", - "nitroglicerina", - "nivoso", - "nobreza", - "nocivo", - "noel", - "nogueira", - "noivo", - "nojo", - "nominativo", - "nonuplo", - "noruegues", - "nostalgico", - "noturno", - "nouveau", - "nuanca", - "nublar", - "nucleotideo", - "nudista", - "nulo", - "numismatico", - "nunquinha", - "nupcias", - "nutritivo", - "nuvens", - "oasis", - "obcecar", - "obeso", - "obituario", - "objetos", - "oblongo", - "obnoxio", - "obrigatorio", - "obstruir", - "obtuso", - "obus", - "obvio", - "ocaso", - "occipital", - "oceanografo", - "ocioso", - "oclusivo", - "ocorrer", - "ocre", - "octogono", - "odalisca", - "odisseia", - "odorifico", - "oersted", - "oeste", - "ofertar", - "ofidio", - "oftalmologo", - "ogiva", - "ogum", - "oigale", - "oitavo", - "oitocentos", - "ojeriza", - "olaria", - "oleoso", - "olfato", - "olhos", - "oliveira", - "olmo", - "olor", - "olvidavel", - "ombudsman", - "omeleteira", - "omitir", - "omoplata", - "onanismo", - "ondular", - "oneroso", - "onomatopeico", - "ontologico", - "onus", - "onze", - "opalescente", - "opcional", - "operistico", - "opio", - "oposto", - "oprobrio", - "optometrista", - "opusculo", - "oratorio", - "orbital", - "orcar", - "orfao", - "orixa", - "orla", - "ornitologo", - "orquidea", - "ortorrombico", - "orvalho", - "osculo", - "osmotico", - "ossudo", - "ostrogodo", - "otario", - "otite", - "ouro", - "ousar", - "outubro", - "ouvir", - "ovario", - "overnight", - "oviparo", - "ovni", - "ovoviviparo", - "ovulo", - "oxala", - "oxente", - "oxiuro", - "oxossi", - "ozonizar", - "paciente", - "pactuar", - "padronizar", - "paete", - "pagodeiro", - "paixao", - "pajem", - "paludismo", - "pampas", - "panturrilha", - "papudo", - "paquistanes", - "pastoso", - "patua", - "paulo", - "pauzinhos", - "pavoroso", - "paxa", - "pazes", - "peao", - "pecuniario", - "pedunculo", - "pegaso", - "peixinho", - "pejorativo", - "pelvis", - "penuria", - "pequno", - "petunia", - "pezada", - "piauiense", - "pictorico", - "pierro", - "pigmeu", - "pijama", - "pilulas", - "pimpolho", - "pintura", - "piorar", - "pipocar", - "piqueteiro", - "pirulito", - "pistoleiro", - "pituitaria", - "pivotar", - "pixote", - "pizzaria", - "plistoceno", - "plotar", - "pluviometrico", - "pneumonico", - "poco", - "podridao", - "poetisa", - "pogrom", - "pois", - "polvorosa", - "pomposo", - "ponderado", - "pontudo", - "populoso", - "poquer", - "porvir", - "posudo", - "potro", - "pouso", - "povoar", - "prazo", - "prezar", - "privilegios", - "proximo", - "prussiano", - "pseudopode", - "psoriase", - "pterossauros", - "ptialina", - "ptolemaico", - "pudor", - "pueril", - "pufe", - "pugilista", - "puir", - "pujante", - "pulverizar", - "pumba", - "punk", - "purulento", - "pustula", - "putsch", - "puxe", - "quatrocentos", - "quetzal", - "quixotesco", - "quotizavel", - "rabujice", - "racista", - "radonio", - "rafia", - "ragu", - "rajado", - "ralo", - "rampeiro", - "ranzinza", - "raptor", - "raquitismo", - "raro", - "rasurar", - "ratoeira", - "ravioli", - "razoavel", - "reavivar", - "rebuscar", - "recusavel", - "reduzivel", - "reexposicao", - "refutavel", - "regurgitar", - "reivindicavel", - "rejuvenescimento", - "relva", - "remuneravel", - "renunciar", - "reorientar", - "repuxo", - "requisito", - "resumo", - "returno", - "reutilizar", - "revolvido", - "rezonear", - "riacho", - "ribossomo", - "ricota", - "ridiculo", - "rifle", - "rigoroso", - "rijo", - "rimel", - "rins", - "rios", - "riqueza", - "respeito", - "rissole", - "ritualistico", - "rivalizar", - "rixa", - "robusto", - "rococo", - "rodoviario", - "roer", - "rogo", - "rojao", - "rolo", - "rompimento", - "ronronar", - "roqueiro", - "rorqual", - "rosto", - "rotundo", - "rouxinol", - "roxo", - "royal", - "ruas", - "rucula", - "rudimentos", - "ruela", - "rufo", - "rugoso", - "ruivo", - "rule", - "rumoroso", - "runico", - "ruptura", - "rural", - "rustico", - "rutilar", - "saariano", - "sabujo", - "sacudir", - "sadomasoquista", - "safra", - "sagui", - "sais", - "samurai", - "santuario", - "sapo", - "saquear", - "sartriano", - "saturno", - "saude", - "sauva", - "saveiro", - "saxofonista", - "sazonal", - "scherzo", - "script", - "seara", - "seborreia", - "secura", - "seduzir", - "sefardim", - "seguro", - "seja", - "selvas", - "sempre", - "senzala", - "sepultura", - "sequoia", - "sestercio", - "setuplo", - "seus", - "seviciar", - "sezonismo", - "shalom", - "siames", - "sibilante", - "sicrano", - "sidra", - "sifilitico", - "signos", - "silvo", - "simultaneo", - "sinusite", - "sionista", - "sirio", - "sisudo", - "situar", - "sivan", - "slide", - "slogan", - "soar", - "sobrio", - "socratico", - "sodomizar", - "soerguer", - "software", - "sogro", - "soja", - "solver", - "somente", - "sonso", - "sopro", - "soquete", - "sorveteiro", - "sossego", - "soturno", - "sousafone", - "sovinice", - "sozinho", - "suavizar", - "subverter", - "sucursal", - "sudoriparo", - "sufragio", - "sugestoes", - "suite", - "sujo", - "sultao", - "sumula", - "suntuoso", - "suor", - "supurar", - "suruba", - "susto", - "suturar", - "suvenir", - "tabuleta", - "taco", - "tadjique", - "tafeta", - "tagarelice", - "taitiano", - "talvez", - "tampouco", - "tanzaniano", - "taoista", - "tapume", - "taquion", - "tarugo", - "tascar", - "tatuar", - "tautologico", - "tavola", - "taxionomista", - "tchecoslovaco", - "teatrologo", - "tectonismo", - "tedioso", - "teflon", - "tegumento", - "teixo", - "telurio", - "temporas", - "tenue", - "teosofico", - "tepido", - "tequila", - "terrorista", - "testosterona", - "tetrico", - "teutonico", - "teve", - "texugo", - "tiara", - "tibia", - "tiete", - "tifoide", - "tigresa", - "tijolo", - "tilintar", - "timpano", - "tintureiro", - "tiquete", - "tiroteio", - "tisico", - "titulos", - "tive", - "toar", - "toboga", - "tofu", - "togoles", - "toicinho", - "tolueno", - "tomografo", - "tontura", - "toponimo", - "toquio", - "torvelinho", - "tostar", - "toto", - "touro", - "toxina", - "trazer", - "trezentos", - "trivialidade", - "trovoar", - "truta", - "tuaregue", - "tubular", - "tucano", - "tudo", - "tufo", - "tuiste", - "tulipa", - "tumultuoso", - "tunisino", - "tupiniquim", - "turvo", - "tutu", - "ucraniano", - "udenista", - "ufanista", - "ufologo", - "ugaritico", - "uiste", - "uivo", - "ulceroso", - "ulema", - "ultravioleta", - "umbilical", - "umero", - "umido", - "umlaut", - "unanimidade", - "unesco", - "ungulado", - "unheiro", - "univoco", - "untuoso", - "urano", - "urbano", - "urdir", - "uretra", - "urgente", - "urinol", - "urna", - "urologo", - "urro", - "ursulina", - "urtiga", - "urupe", - "usavel", - "usbeque", - "usei", - "usineiro", - "usurpar", - "utero", - "utilizar", - "utopico", - "uvular", - "uxoricidio", - "vacuo", - "vadio", - "vaguear", - "vaivem", - "valvula", - "vampiro", - "vantajoso", - "vaporoso", - "vaquinha", - "varziano", - "vasto", - "vaticinio", - "vaudeville", - "vazio", - "veado", - "vedico", - "veemente", - "vegetativo", - "veio", - "veja", - "veludo", - "venusiano", - "verdade", - "verve", - "vestuario", - "vetusto", - "vexatorio", - "vezes", - "viavel", - "vibratorio", - "victor", - "vicunha", - "vidros", - "vietnamita", - "vigoroso", - "vilipendiar", - "vime", - "vintem", - "violoncelo", - "viquingue", - "virus", - "visualizar", - "vituperio", - "viuvo", - "vivo", - "vizir", - "voar", - "vociferar", - "vodu", - "vogar", - "voile", - "volver", - "vomito", - "vontade", - "vortice", - "vosso", - "voto", - "vovozinha", - "voyeuse", - "vozes", - "vulva", - "vupt", - "western", - "xadrez", - "xale", - "xampu", - "xango", - "xarope", - "xaual", - "xavante", - "xaxim", - "xenonio", - "xepa", - "xerox", - "xicara", - "xifopago", - "xiita", - "xilogravura", - "xinxim", - "xistoso", - "xixi", - "xodo", - "xogum", - "xucro", - "zabumba", - "zagueiro", - "zambiano", - "zanzar", - "zarpar", - "zebu", - "zefiro", - "zeloso", - "zenite", - "zumbi" - ]; -} diff --git a/cw_zano/lib/mnemonics/russian.dart b/cw_zano/lib/mnemonics/russian.dart deleted file mode 100644 index f10af0ff6..000000000 --- a/cw_zano/lib/mnemonics/russian.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class RussianMnemonics { - static const words = [ - "абажур", - "абзац", - "абонент", - "абрикос", - "абсурд", - "авангард", - "август", - "авиация", - "авоська", - "автор", - "агат", - "агент", - "агитатор", - "агнец", - "агония", - "агрегат", - "адвокат", - "адмирал", - "адрес", - "ажиотаж", - "азарт", - "азбука", - "азот", - "аист", - "айсберг", - "академия", - "аквариум", - "аккорд", - "акробат", - "аксиома", - "актер", - "акула", - "акция", - "алгоритм", - "алебарда", - "аллея", - "алмаз", - "алтарь", - "алфавит", - "алхимик", - "алый", - "альбом", - "алюминий", - "амбар", - "аметист", - "амнезия", - "ампула", - "амфора", - "анализ", - "ангел", - "анекдот", - "анимация", - "анкета", - "аномалия", - "ансамбль", - "антенна", - "апатия", - "апельсин", - "апофеоз", - "аппарат", - "апрель", - "аптека", - "арабский", - "арбуз", - "аргумент", - "арест", - "ария", - "арка", - "армия", - "аромат", - "арсенал", - "артист", - "архив", - "аршин", - "асбест", - "аскетизм", - "аспект", - "ассорти", - "астроном", - "асфальт", - "атака", - "ателье", - "атлас", - "атом", - "атрибут", - "аудитор", - "аукцион", - "аура", - "афера", - "афиша", - "ахинея", - "ацетон", - "аэропорт", - "бабушка", - "багаж", - "бадья", - "база", - "баклажан", - "балкон", - "бампер", - "банк", - "барон", - "бассейн", - "батарея", - "бахрома", - "башня", - "баян", - "бегство", - "бедро", - "бездна", - "бекон", - "белый", - "бензин", - "берег", - "беседа", - "бетонный", - "биатлон", - "библия", - "бивень", - "бигуди", - "бидон", - "бизнес", - "бикини", - "билет", - "бинокль", - "биология", - "биржа", - "бисер", - "битва", - "бицепс", - "благо", - "бледный", - "близкий", - "блок", - "блуждать", - "блюдо", - "бляха", - "бобер", - "богатый", - "бодрый", - "боевой", - "бокал", - "большой", - "борьба", - "босой", - "ботинок", - "боцман", - "бочка", - "боярин", - "брать", - "бревно", - "бригада", - "бросать", - "брызги", - "брюки", - "бублик", - "бугор", - "будущее", - "буква", - "бульвар", - "бумага", - "бунт", - "бурный", - "бусы", - "бутылка", - "буфет", - "бухта", - "бушлат", - "бывалый", - "быль", - "быстрый", - "быть", - "бюджет", - "бюро", - "бюст", - "вагон", - "важный", - "ваза", - "вакцина", - "валюта", - "вампир", - "ванная", - "вариант", - "вассал", - "вата", - "вафля", - "вахта", - "вдова", - "вдыхать", - "ведущий", - "веер", - "вежливый", - "везти", - "веко", - "великий", - "вена", - "верить", - "веселый", - "ветер", - "вечер", - "вешать", - "вещь", - "веяние", - "взаимный", - "взбучка", - "взвод", - "взгляд", - "вздыхать", - "взлетать", - "взмах", - "взнос", - "взор", - "взрыв", - "взывать", - "взятка", - "вибрация", - "визит", - "вилка", - "вино", - "вирус", - "висеть", - "витрина", - "вихрь", - "вишневый", - "включать", - "вкус", - "власть", - "влечь", - "влияние", - "влюблять", - "внешний", - "внимание", - "внук", - "внятный", - "вода", - "воевать", - "вождь", - "воздух", - "войти", - "вокзал", - "волос", - "вопрос", - "ворота", - "восток", - "впадать", - "впускать", - "врач", - "время", - "вручать", - "всадник", - "всеобщий", - "вспышка", - "встреча", - "вторник", - "вулкан", - "вурдалак", - "входить", - "въезд", - "выбор", - "вывод", - "выгодный", - "выделять", - "выезжать", - "выживать", - "вызывать", - "выигрыш", - "вылезать", - "выносить", - "выпивать", - "высокий", - "выходить", - "вычет", - "вышка", - "выяснять", - "вязать", - "вялый", - "гавань", - "гадать", - "газета", - "гаишник", - "галстук", - "гамма", - "гарантия", - "гастроли", - "гвардия", - "гвоздь", - "гектар", - "гель", - "генерал", - "геолог", - "герой", - "гешефт", - "гибель", - "гигант", - "гильза", - "гимн", - "гипотеза", - "гитара", - "глаз", - "глина", - "глоток", - "глубокий", - "глыба", - "глядеть", - "гнать", - "гнев", - "гнить", - "гном", - "гнуть", - "говорить", - "годовой", - "голова", - "гонка", - "город", - "гость", - "готовый", - "граница", - "грех", - "гриб", - "громкий", - "группа", - "грызть", - "грязный", - "губа", - "гудеть", - "гулять", - "гуманный", - "густой", - "гуща", - "давать", - "далекий", - "дама", - "данные", - "дарить", - "дать", - "дача", - "дверь", - "движение", - "двор", - "дебют", - "девушка", - "дедушка", - "дежурный", - "дезертир", - "действие", - "декабрь", - "дело", - "демократ", - "день", - "депутат", - "держать", - "десяток", - "детский", - "дефицит", - "дешевый", - "деятель", - "джаз", - "джинсы", - "джунгли", - "диалог", - "диван", - "диета", - "дизайн", - "дикий", - "динамика", - "диплом", - "директор", - "диск", - "дитя", - "дичь", - "длинный", - "дневник", - "добрый", - "доверие", - "договор", - "дождь", - "доза", - "документ", - "должен", - "домашний", - "допрос", - "дорога", - "доход", - "доцент", - "дочь", - "дощатый", - "драка", - "древний", - "дрожать", - "друг", - "дрянь", - "дубовый", - "дуга", - "дудка", - "дукат", - "дуло", - "думать", - "дупло", - "дурак", - "дуть", - "духи", - "душа", - "дуэт", - "дымить", - "дыня", - "дыра", - "дыханье", - "дышать", - "дьявол", - "дюжина", - "дюйм", - "дюна", - "дядя", - "дятел", - "егерь", - "единый", - "едкий", - "ежевика", - "ежик", - "езда", - "елка", - "емкость", - "ерунда", - "ехать", - "жадный", - "жажда", - "жалеть", - "жанр", - "жара", - "жать", - "жгучий", - "ждать", - "жевать", - "желание", - "жемчуг", - "женщина", - "жертва", - "жесткий", - "жечь", - "живой", - "жидкость", - "жизнь", - "жилье", - "жирный", - "житель", - "журнал", - "жюри", - "забывать", - "завод", - "загадка", - "задача", - "зажечь", - "зайти", - "закон", - "замечать", - "занимать", - "западный", - "зарплата", - "засыпать", - "затрата", - "захват", - "зацепка", - "зачет", - "защита", - "заявка", - "звать", - "звезда", - "звонить", - "звук", - "здание", - "здешний", - "здоровье", - "зебра", - "зевать", - "зеленый", - "земля", - "зенит", - "зеркало", - "зефир", - "зигзаг", - "зима", - "зиять", - "злак", - "злой", - "змея", - "знать", - "зной", - "зодчий", - "золотой", - "зомби", - "зона", - "зоопарк", - "зоркий", - "зрачок", - "зрение", - "зритель", - "зубной", - "зыбкий", - "зять", - "игла", - "иголка", - "играть", - "идея", - "идиот", - "идол", - "идти", - "иерархия", - "избрать", - "известие", - "изгонять", - "издание", - "излагать", - "изменять", - "износ", - "изоляция", - "изрядный", - "изучать", - "изымать", - "изящный", - "икона", - "икра", - "иллюзия", - "имбирь", - "иметь", - "имидж", - "иммунный", - "империя", - "инвестор", - "индивид", - "инерция", - "инженер", - "иномарка", - "институт", - "интерес", - "инфекция", - "инцидент", - "ипподром", - "ирис", - "ирония", - "искать", - "история", - "исходить", - "исчезать", - "итог", - "июль", - "июнь", - "кабинет", - "кавалер", - "кадр", - "казарма", - "кайф", - "кактус", - "калитка", - "камень", - "канал", - "капитан", - "картина", - "касса", - "катер", - "кафе", - "качество", - "каша", - "каюта", - "квартира", - "квинтет", - "квота", - "кедр", - "кекс", - "кенгуру", - "кепка", - "керосин", - "кетчуп", - "кефир", - "кибитка", - "кивнуть", - "кидать", - "километр", - "кино", - "киоск", - "кипеть", - "кирпич", - "кисть", - "китаец", - "класс", - "клетка", - "клиент", - "клоун", - "клуб", - "клык", - "ключ", - "клятва", - "книга", - "кнопка", - "кнут", - "князь", - "кобура", - "ковер", - "коготь", - "кодекс", - "кожа", - "козел", - "койка", - "коктейль", - "колено", - "компания", - "конец", - "копейка", - "короткий", - "костюм", - "котел", - "кофе", - "кошка", - "красный", - "кресло", - "кричать", - "кровь", - "крупный", - "крыша", - "крючок", - "кубок", - "кувшин", - "кудрявый", - "кузов", - "кукла", - "культура", - "кумир", - "купить", - "курс", - "кусок", - "кухня", - "куча", - "кушать", - "кювет", - "лабиринт", - "лавка", - "лагерь", - "ладонь", - "лазерный", - "лайнер", - "лакей", - "лампа", - "ландшафт", - "лапа", - "ларек", - "ласковый", - "лауреат", - "лачуга", - "лаять", - "лгать", - "лебедь", - "левый", - "легкий", - "ледяной", - "лежать", - "лекция", - "лента", - "лепесток", - "лесной", - "лето", - "лечь", - "леший", - "лживый", - "либерал", - "ливень", - "лига", - "лидер", - "ликовать", - "лиловый", - "лимон", - "линия", - "липа", - "лирика", - "лист", - "литр", - "лифт", - "лихой", - "лицо", - "личный", - "лишний", - "лобовой", - "ловить", - "логика", - "лодка", - "ложка", - "лозунг", - "локоть", - "ломать", - "лоно", - "лопата", - "лорд", - "лось", - "лоток", - "лохматый", - "лошадь", - "лужа", - "лукавый", - "луна", - "лупить", - "лучший", - "лыжный", - "лысый", - "львиный", - "льгота", - "льдина", - "любить", - "людской", - "люстра", - "лютый", - "лягушка", - "магазин", - "мадам", - "мазать", - "майор", - "максимум", - "мальчик", - "манера", - "март", - "масса", - "мать", - "мафия", - "махать", - "мачта", - "машина", - "маэстро", - "маяк", - "мгла", - "мебель", - "медведь", - "мелкий", - "мемуары", - "менять", - "мера", - "место", - "метод", - "механизм", - "мечтать", - "мешать", - "миграция", - "мизинец", - "микрофон", - "миллион", - "минута", - "мировой", - "миссия", - "митинг", - "мишень", - "младший", - "мнение", - "мнимый", - "могила", - "модель", - "мозг", - "мойка", - "мокрый", - "молодой", - "момент", - "монах", - "море", - "мост", - "мотор", - "мохнатый", - "мочь", - "мошенник", - "мощный", - "мрачный", - "мстить", - "мудрый", - "мужчина", - "музыка", - "мука", - "мумия", - "мундир", - "муравей", - "мусор", - "мутный", - "муфта", - "муха", - "мучить", - "мушкетер", - "мыло", - "мысль", - "мыть", - "мычать", - "мышь", - "мэтр", - "мюзикл", - "мягкий", - "мякиш", - "мясо", - "мятый", - "мячик", - "набор", - "навык", - "нагрузка", - "надежда", - "наемный", - "нажать", - "называть", - "наивный", - "накрыть", - "налог", - "намерен", - "наносить", - "написать", - "народ", - "натура", - "наука", - "нация", - "начать", - "небо", - "невеста", - "негодяй", - "неделя", - "нежный", - "незнание", - "нелепый", - "немалый", - "неправда", - "нервный", - "нести", - "нефть", - "нехватка", - "нечистый", - "неясный", - "нива", - "нижний", - "низкий", - "никель", - "нирвана", - "нить", - "ничья", - "ниша", - "нищий", - "новый", - "нога", - "ножницы", - "ноздря", - "ноль", - "номер", - "норма", - "нота", - "ночь", - "ноша", - "ноябрь", - "нрав", - "нужный", - "нутро", - "нынешний", - "нырнуть", - "ныть", - "нюанс", - "нюхать", - "няня", - "оазис", - "обаяние", - "обвинять", - "обгонять", - "обещать", - "обжигать", - "обзор", - "обида", - "область", - "обмен", - "обнимать", - "оборона", - "образ", - "обучение", - "обходить", - "обширный", - "общий", - "объект", - "обычный", - "обязать", - "овальный", - "овес", - "овощи", - "овраг", - "овца", - "овчарка", - "огненный", - "огонь", - "огромный", - "огурец", - "одежда", - "одинокий", - "одобрить", - "ожидать", - "ожог", - "озарение", - "озеро", - "означать", - "оказать", - "океан", - "оклад", - "окно", - "округ", - "октябрь", - "окурок", - "олень", - "опасный", - "операция", - "описать", - "оплата", - "опора", - "оппонент", - "опрос", - "оптимизм", - "опускать", - "опыт", - "орать", - "орбита", - "орган", - "орден", - "орел", - "оригинал", - "оркестр", - "орнамент", - "оружие", - "осадок", - "освещать", - "осень", - "осина", - "осколок", - "осмотр", - "основной", - "особый", - "осуждать", - "отбор", - "отвечать", - "отдать", - "отец", - "отзыв", - "открытие", - "отмечать", - "относить", - "отпуск", - "отрасль", - "отставка", - "оттенок", - "отходить", - "отчет", - "отъезд", - "офицер", - "охапка", - "охота", - "охрана", - "оценка", - "очаг", - "очередь", - "очищать", - "очки", - "ошейник", - "ошибка", - "ощущение", - "павильон", - "падать", - "паек", - "пакет", - "палец", - "память", - "панель", - "папка", - "партия", - "паспорт", - "патрон", - "пауза", - "пафос", - "пахнуть", - "пациент", - "пачка", - "пашня", - "певец", - "педагог", - "пейзаж", - "пельмень", - "пенсия", - "пепел", - "период", - "песня", - "петля", - "пехота", - "печать", - "пешеход", - "пещера", - "пианист", - "пиво", - "пиджак", - "пиковый", - "пилот", - "пионер", - "пирог", - "писать", - "пить", - "пицца", - "пишущий", - "пища", - "план", - "плечо", - "плита", - "плохой", - "плыть", - "плюс", - "пляж", - "победа", - "повод", - "погода", - "подумать", - "поехать", - "пожимать", - "позиция", - "поиск", - "покой", - "получать", - "помнить", - "пони", - "поощрять", - "попадать", - "порядок", - "пост", - "поток", - "похожий", - "поцелуй", - "почва", - "пощечина", - "поэт", - "пояснить", - "право", - "предмет", - "проблема", - "пруд", - "прыгать", - "прямой", - "психолог", - "птица", - "публика", - "пугать", - "пудра", - "пузырь", - "пуля", - "пункт", - "пурга", - "пустой", - "путь", - "пухлый", - "пучок", - "пушистый", - "пчела", - "пшеница", - "пыль", - "пытка", - "пыхтеть", - "пышный", - "пьеса", - "пьяный", - "пятно", - "работа", - "равный", - "радость", - "развитие", - "район", - "ракета", - "рамка", - "ранний", - "рапорт", - "рассказ", - "раунд", - "рация", - "рвать", - "реальный", - "ребенок", - "реветь", - "регион", - "редакция", - "реестр", - "режим", - "резкий", - "рейтинг", - "река", - "религия", - "ремонт", - "рента", - "реплика", - "ресурс", - "реформа", - "рецепт", - "речь", - "решение", - "ржавый", - "рисунок", - "ритм", - "рифма", - "робкий", - "ровный", - "рогатый", - "родитель", - "рождение", - "розовый", - "роковой", - "роль", - "роман", - "ронять", - "рост", - "рота", - "роща", - "рояль", - "рубль", - "ругать", - "руда", - "ружье", - "руины", - "рука", - "руль", - "румяный", - "русский", - "ручка", - "рыба", - "рывок", - "рыдать", - "рыжий", - "рынок", - "рысь", - "рыть", - "рыхлый", - "рыцарь", - "рычаг", - "рюкзак", - "рюмка", - "рябой", - "рядовой", - "сабля", - "садовый", - "сажать", - "салон", - "самолет", - "сани", - "сапог", - "сарай", - "сатира", - "сауна", - "сахар", - "сбегать", - "сбивать", - "сбор", - "сбыт", - "свадьба", - "свет", - "свидание", - "свобода", - "связь", - "сгорать", - "сдвигать", - "сеанс", - "северный", - "сегмент", - "седой", - "сезон", - "сейф", - "секунда", - "сельский", - "семья", - "сентябрь", - "сердце", - "сеть", - "сечение", - "сеять", - "сигнал", - "сидеть", - "сизый", - "сила", - "символ", - "синий", - "сирота", - "система", - "ситуация", - "сиять", - "сказать", - "скважина", - "скелет", - "скидка", - "склад", - "скорый", - "скрывать", - "скучный", - "слава", - "слеза", - "слияние", - "слово", - "случай", - "слышать", - "слюна", - "смех", - "смирение", - "смотреть", - "смутный", - "смысл", - "смятение", - "снаряд", - "снег", - "снижение", - "сносить", - "снять", - "событие", - "совет", - "согласие", - "сожалеть", - "сойти", - "сокол", - "солнце", - "сомнение", - "сонный", - "сообщать", - "соперник", - "сорт", - "состав", - "сотня", - "соус", - "социолог", - "сочинять", - "союз", - "спать", - "спешить", - "спина", - "сплошной", - "способ", - "спутник", - "средство", - "срок", - "срывать", - "стать", - "ствол", - "стена", - "стихи", - "сторона", - "страна", - "студент", - "стыд", - "субъект", - "сувенир", - "сугроб", - "судьба", - "суета", - "суждение", - "сукно", - "сулить", - "сумма", - "сунуть", - "супруг", - "суровый", - "сустав", - "суть", - "сухой", - "суша", - "существо", - "сфера", - "схема", - "сцена", - "счастье", - "счет", - "считать", - "сшивать", - "съезд", - "сынок", - "сыпать", - "сырье", - "сытый", - "сыщик", - "сюжет", - "сюрприз", - "таблица", - "таежный", - "таинство", - "тайна", - "такси", - "талант", - "таможня", - "танец", - "тарелка", - "таскать", - "тахта", - "тачка", - "таять", - "тварь", - "твердый", - "творить", - "театр", - "тезис", - "текст", - "тело", - "тема", - "тень", - "теория", - "теплый", - "терять", - "тесный", - "тетя", - "техника", - "течение", - "тигр", - "типичный", - "тираж", - "титул", - "тихий", - "тишина", - "ткань", - "товарищ", - "толпа", - "тонкий", - "топливо", - "торговля", - "тоска", - "точка", - "тощий", - "традиция", - "тревога", - "трибуна", - "трогать", - "труд", - "трюк", - "тряпка", - "туалет", - "тугой", - "туловище", - "туман", - "тундра", - "тупой", - "турнир", - "тусклый", - "туфля", - "туча", - "туша", - "тыкать", - "тысяча", - "тьма", - "тюльпан", - "тюрьма", - "тяга", - "тяжелый", - "тянуть", - "убеждать", - "убирать", - "убогий", - "убыток", - "уважение", - "уверять", - "увлекать", - "угнать", - "угол", - "угроза", - "удар", - "удивлять", - "удобный", - "уезд", - "ужас", - "ужин", - "узел", - "узкий", - "узнавать", - "узор", - "уйма", - "уклон", - "укол", - "уксус", - "улетать", - "улица", - "улучшать", - "улыбка", - "уметь", - "умиление", - "умный", - "умолять", - "умысел", - "унижать", - "уносить", - "уныние", - "упасть", - "уплата", - "упор", - "упрекать", - "упускать", - "уран", - "урна", - "уровень", - "усадьба", - "усердие", - "усилие", - "ускорять", - "условие", - "усмешка", - "уснуть", - "успеть", - "усыпать", - "утешать", - "утка", - "уточнять", - "утро", - "утюг", - "уходить", - "уцелеть", - "участие", - "ученый", - "учитель", - "ушко", - "ущерб", - "уютный", - "уяснять", - "фабрика", - "фаворит", - "фаза", - "файл", - "факт", - "фамилия", - "фантазия", - "фара", - "фасад", - "февраль", - "фельдшер", - "феномен", - "ферма", - "фигура", - "физика", - "фильм", - "финал", - "фирма", - "фишка", - "флаг", - "флейта", - "флот", - "фокус", - "фольклор", - "фонд", - "форма", - "фото", - "фраза", - "фреска", - "фронт", - "фрукт", - "функция", - "фуражка", - "футбол", - "фыркать", - "халат", - "хамство", - "хаос", - "характер", - "хата", - "хватать", - "хвост", - "хижина", - "хилый", - "химия", - "хирург", - "хитрый", - "хищник", - "хлам", - "хлеб", - "хлопать", - "хмурый", - "ходить", - "хозяин", - "хоккей", - "холодный", - "хороший", - "хотеть", - "хохотать", - "храм", - "хрен", - "хриплый", - "хроника", - "хрупкий", - "художник", - "хулиган", - "хутор", - "царь", - "цвет", - "цель", - "цемент", - "центр", - "цепь", - "церковь", - "цикл", - "цилиндр", - "циничный", - "цирк", - "цистерна", - "цитата", - "цифра", - "цыпленок", - "чадо", - "чайник", - "часть", - "чашка", - "человек", - "чемодан", - "чепуха", - "черный", - "честь", - "четкий", - "чехол", - "чиновник", - "число", - "читать", - "членство", - "чреватый", - "чтение", - "чувство", - "чугунный", - "чудо", - "чужой", - "чукча", - "чулок", - "чума", - "чуткий", - "чучело", - "чушь", - "шаблон", - "шагать", - "шайка", - "шакал", - "шалаш", - "шампунь", - "шанс", - "шапка", - "шарик", - "шасси", - "шатер", - "шахта", - "шашлык", - "швейный", - "швырять", - "шевелить", - "шедевр", - "шейка", - "шелковый", - "шептать", - "шерсть", - "шестерка", - "шикарный", - "шинель", - "шипеть", - "широкий", - "шить", - "шишка", - "шкаф", - "школа", - "шкура", - "шланг", - "шлем", - "шлюпка", - "шляпа", - "шнур", - "шоколад", - "шорох", - "шоссе", - "шофер", - "шпага", - "шпион", - "шприц", - "шрам", - "шрифт", - "штаб", - "штора", - "штраф", - "штука", - "штык", - "шуба", - "шуметь", - "шуршать", - "шутка", - "щадить", - "щедрый", - "щека", - "щель", - "щенок", - "щепка", - "щетка", - "щука", - "эволюция", - "эгоизм", - "экзамен", - "экипаж", - "экономия", - "экран", - "эксперт", - "элемент", - "элита", - "эмблема", - "эмигрант", - "эмоция", - "энергия", - "эпизод", - "эпоха", - "эскиз", - "эссе", - "эстрада", - "этап", - "этика", - "этюд", - "эфир", - "эффект", - "эшелон", - "юбилей", - "юбка", - "южный", - "юмор", - "юноша", - "юрист", - "яблоко", - "явление", - "ягода", - "ядерный", - "ядовитый", - "ядро", - "язва", - "язык", - "яйцо", - "якорь", - "январь", - "японец", - "яркий", - "ярмарка", - "ярость", - "ярус", - "ясный", - "яхта", - "ячейка", - "ящик" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/mnemonics/spanish.dart b/cw_zano/lib/mnemonics/spanish.dart deleted file mode 100644 index 531eafd35..000000000 --- a/cw_zano/lib/mnemonics/spanish.dart +++ /dev/null @@ -1,1630 +0,0 @@ -class SpanishMnemonics { - static const words = [ - "ábaco", - "abdomen", - "abeja", - "abierto", - "abogado", - "abono", - "aborto", - "abrazo", - "abrir", - "abuelo", - "abuso", - "acabar", - "academia", - "acceso", - "acción", - "aceite", - "acelga", - "acento", - "aceptar", - "ácido", - "aclarar", - "acné", - "acoger", - "acoso", - "activo", - "acto", - "actriz", - "actuar", - "acudir", - "acuerdo", - "acusar", - "adicto", - "admitir", - "adoptar", - "adorno", - "aduana", - "adulto", - "aéreo", - "afectar", - "afición", - "afinar", - "afirmar", - "ágil", - "agitar", - "agonía", - "agosto", - "agotar", - "agregar", - "agrio", - "agua", - "agudo", - "águila", - "aguja", - "ahogo", - "ahorro", - "aire", - "aislar", - "ajedrez", - "ajeno", - "ajuste", - "alacrán", - "alambre", - "alarma", - "alba", - "álbum", - "alcalde", - "aldea", - "alegre", - "alejar", - "alerta", - "aleta", - "alfiler", - "alga", - "algodón", - "aliado", - "aliento", - "alivio", - "alma", - "almeja", - "almíbar", - "altar", - "alteza", - "altivo", - "alto", - "altura", - "alumno", - "alzar", - "amable", - "amante", - "amapola", - "amargo", - "amasar", - "ámbar", - "ámbito", - "ameno", - "amigo", - "amistad", - "amor", - "amparo", - "amplio", - "ancho", - "anciano", - "ancla", - "andar", - "andén", - "anemia", - "ángulo", - "anillo", - "ánimo", - "anís", - "anotar", - "antena", - "antiguo", - "antojo", - "anual", - "anular", - "anuncio", - "añadir", - "añejo", - "año", - "apagar", - "aparato", - "apetito", - "apio", - "aplicar", - "apodo", - "aporte", - "apoyo", - "aprender", - "aprobar", - "apuesta", - "apuro", - "arado", - "araña", - "arar", - "árbitro", - "árbol", - "arbusto", - "archivo", - "arco", - "arder", - "ardilla", - "arduo", - "área", - "árido", - "aries", - "armonía", - "arnés", - "aroma", - "arpa", - "arpón", - "arreglo", - "arroz", - "arruga", - "arte", - "artista", - "asa", - "asado", - "asalto", - "ascenso", - "asegurar", - "aseo", - "asesor", - "asiento", - "asilo", - "asistir", - "asno", - "asombro", - "áspero", - "astilla", - "astro", - "astuto", - "asumir", - "asunto", - "atajo", - "ataque", - "atar", - "atento", - "ateo", - "ático", - "atleta", - "átomo", - "atraer", - "atroz", - "atún", - "audaz", - "audio", - "auge", - "aula", - "aumento", - "ausente", - "autor", - "aval", - "avance", - "avaro", - "ave", - "avellana", - "avena", - "avestruz", - "avión", - "aviso", - "ayer", - "ayuda", - "ayuno", - "azafrán", - "azar", - "azote", - "azúcar", - "azufre", - "azul", - "baba", - "babor", - "bache", - "bahía", - "baile", - "bajar", - "balanza", - "balcón", - "balde", - "bambú", - "banco", - "banda", - "baño", - "barba", - "barco", - "barniz", - "barro", - "báscula", - "bastón", - "basura", - "batalla", - "batería", - "batir", - "batuta", - "baúl", - "bazar", - "bebé", - "bebida", - "bello", - "besar", - "beso", - "bestia", - "bicho", - "bien", - "bingo", - "blanco", - "bloque", - "blusa", - "boa", - "bobina", - "bobo", - "boca", - "bocina", - "boda", - "bodega", - "boina", - "bola", - "bolero", - "bolsa", - "bomba", - "bondad", - "bonito", - "bono", - "bonsái", - "borde", - "borrar", - "bosque", - "bote", - "botín", - "bóveda", - "bozal", - "bravo", - "brazo", - "brecha", - "breve", - "brillo", - "brinco", - "brisa", - "broca", - "broma", - "bronce", - "brote", - "bruja", - "brusco", - "bruto", - "buceo", - "bucle", - "bueno", - "buey", - "bufanda", - "bufón", - "búho", - "buitre", - "bulto", - "burbuja", - "burla", - "burro", - "buscar", - "butaca", - "buzón", - "caballo", - "cabeza", - "cabina", - "cabra", - "cacao", - "cadáver", - "cadena", - "caer", - "café", - "caída", - "caimán", - "caja", - "cajón", - "cal", - "calamar", - "calcio", - "caldo", - "calidad", - "calle", - "calma", - "calor", - "calvo", - "cama", - "cambio", - "camello", - "camino", - "campo", - "cáncer", - "candil", - "canela", - "canguro", - "canica", - "canto", - "caña", - "cañón", - "caoba", - "caos", - "capaz", - "capitán", - "capote", - "captar", - "capucha", - "cara", - "carbón", - "cárcel", - "careta", - "carga", - "cariño", - "carne", - "carpeta", - "carro", - "carta", - "casa", - "casco", - "casero", - "caspa", - "castor", - "catorce", - "catre", - "caudal", - "causa", - "cazo", - "cebolla", - "ceder", - "cedro", - "celda", - "célebre", - "celoso", - "célula", - "cemento", - "ceniza", - "centro", - "cerca", - "cerdo", - "cereza", - "cero", - "cerrar", - "certeza", - "césped", - "cetro", - "chacal", - "chaleco", - "champú", - "chancla", - "chapa", - "charla", - "chico", - "chiste", - "chivo", - "choque", - "choza", - "chuleta", - "chupar", - "ciclón", - "ciego", - "cielo", - "cien", - "cierto", - "cifra", - "cigarro", - "cima", - "cinco", - "cine", - "cinta", - "ciprés", - "circo", - "ciruela", - "cisne", - "cita", - "ciudad", - "clamor", - "clan", - "claro", - "clase", - "clave", - "cliente", - "clima", - "clínica", - "cobre", - "cocción", - "cochino", - "cocina", - "coco", - "código", - "codo", - "cofre", - "coger", - "cohete", - "cojín", - "cojo", - "cola", - "colcha", - "colegio", - "colgar", - "colina", - "collar", - "colmo", - "columna", - "combate", - "comer", - "comida", - "cómodo", - "compra", - "conde", - "conejo", - "conga", - "conocer", - "consejo", - "contar", - "copa", - "copia", - "corazón", - "corbata", - "corcho", - "cordón", - "corona", - "correr", - "coser", - "cosmos", - "costa", - "cráneo", - "cráter", - "crear", - "crecer", - "creído", - "crema", - "cría", - "crimen", - "cripta", - "crisis", - "cromo", - "crónica", - "croqueta", - "crudo", - "cruz", - "cuadro", - "cuarto", - "cuatro", - "cubo", - "cubrir", - "cuchara", - "cuello", - "cuento", - "cuerda", - "cuesta", - "cueva", - "cuidar", - "culebra", - "culpa", - "culto", - "cumbre", - "cumplir", - "cuna", - "cuneta", - "cuota", - "cupón", - "cúpula", - "curar", - "curioso", - "curso", - "curva", - "cutis", - "dama", - "danza", - "dar", - "dardo", - "dátil", - "deber", - "débil", - "década", - "decir", - "dedo", - "defensa", - "definir", - "dejar", - "delfín", - "delgado", - "delito", - "demora", - "denso", - "dental", - "deporte", - "derecho", - "derrota", - "desayuno", - "deseo", - "desfile", - "desnudo", - "destino", - "desvío", - "detalle", - "detener", - "deuda", - "día", - "diablo", - "diadema", - "diamante", - "diana", - "diario", - "dibujo", - "dictar", - "diente", - "dieta", - "diez", - "difícil", - "digno", - "dilema", - "diluir", - "dinero", - "directo", - "dirigir", - "disco", - "diseño", - "disfraz", - "diva", - "divino", - "doble", - "doce", - "dolor", - "domingo", - "don", - "donar", - "dorado", - "dormir", - "dorso", - "dos", - "dosis", - "dragón", - "droga", - "ducha", - "duda", - "duelo", - "dueño", - "dulce", - "dúo", - "duque", - "durar", - "dureza", - "duro", - "ébano", - "ebrio", - "echar", - "eco", - "ecuador", - "edad", - "edición", - "edificio", - "editor", - "educar", - "efecto", - "eficaz", - "eje", - "ejemplo", - "elefante", - "elegir", - "elemento", - "elevar", - "elipse", - "élite", - "elixir", - "elogio", - "eludir", - "embudo", - "emitir", - "emoción", - "empate", - "empeño", - "empleo", - "empresa", - "enano", - "encargo", - "enchufe", - "encía", - "enemigo", - "enero", - "enfado", - "enfermo", - "engaño", - "enigma", - "enlace", - "enorme", - "enredo", - "ensayo", - "enseñar", - "entero", - "entrar", - "envase", - "envío", - "época", - "equipo", - "erizo", - "escala", - "escena", - "escolar", - "escribir", - "escudo", - "esencia", - "esfera", - "esfuerzo", - "espada", - "espejo", - "espía", - "esposa", - "espuma", - "esquí", - "estar", - "este", - "estilo", - "estufa", - "etapa", - "eterno", - "ética", - "etnia", - "evadir", - "evaluar", - "evento", - "evitar", - "exacto", - "examen", - "exceso", - "excusa", - "exento", - "exigir", - "exilio", - "existir", - "éxito", - "experto", - "explicar", - "exponer", - "extremo", - "fábrica", - "fábula", - "fachada", - "fácil", - "factor", - "faena", - "faja", - "falda", - "fallo", - "falso", - "faltar", - "fama", - "familia", - "famoso", - "faraón", - "farmacia", - "farol", - "farsa", - "fase", - "fatiga", - "fauna", - "favor", - "fax", - "febrero", - "fecha", - "feliz", - "feo", - "feria", - "feroz", - "fértil", - "fervor", - "festín", - "fiable", - "fianza", - "fiar", - "fibra", - "ficción", - "ficha", - "fideo", - "fiebre", - "fiel", - "fiera", - "fiesta", - "figura", - "fijar", - "fijo", - "fila", - "filete", - "filial", - "filtro", - "fin", - "finca", - "fingir", - "finito", - "firma", - "flaco", - "flauta", - "flecha", - "flor", - "flota", - "fluir", - "flujo", - "flúor", - "fobia", - "foca", - "fogata", - "fogón", - "folio", - "folleto", - "fondo", - "forma", - "forro", - "fortuna", - "forzar", - "fosa", - "foto", - "fracaso", - "frágil", - "franja", - "frase", - "fraude", - "freír", - "freno", - "fresa", - "frío", - "frito", - "fruta", - "fuego", - "fuente", - "fuerza", - "fuga", - "fumar", - "función", - "funda", - "furgón", - "furia", - "fusil", - "fútbol", - "futuro", - "gacela", - "gafas", - "gaita", - "gajo", - "gala", - "galería", - "gallo", - "gamba", - "ganar", - "gancho", - "ganga", - "ganso", - "garaje", - "garza", - "gasolina", - "gastar", - "gato", - "gavilán", - "gemelo", - "gemir", - "gen", - "género", - "genio", - "gente", - "geranio", - "gerente", - "germen", - "gesto", - "gigante", - "gimnasio", - "girar", - "giro", - "glaciar", - "globo", - "gloria", - "gol", - "golfo", - "goloso", - "golpe", - "goma", - "gordo", - "gorila", - "gorra", - "gota", - "goteo", - "gozar", - "grada", - "gráfico", - "grano", - "grasa", - "gratis", - "grave", - "grieta", - "grillo", - "gripe", - "gris", - "grito", - "grosor", - "grúa", - "grueso", - "grumo", - "grupo", - "guante", - "guapo", - "guardia", - "guerra", - "guía", - "guiño", - "guion", - "guiso", - "guitarra", - "gusano", - "gustar", - "haber", - "hábil", - "hablar", - "hacer", - "hacha", - "hada", - "hallar", - "hamaca", - "harina", - "haz", - "hazaña", - "hebilla", - "hebra", - "hecho", - "helado", - "helio", - "hembra", - "herir", - "hermano", - "héroe", - "hervir", - "hielo", - "hierro", - "hígado", - "higiene", - "hijo", - "himno", - "historia", - "hocico", - "hogar", - "hoguera", - "hoja", - "hombre", - "hongo", - "honor", - "honra", - "hora", - "hormiga", - "horno", - "hostil", - "hoyo", - "hueco", - "huelga", - "huerta", - "hueso", - "huevo", - "huida", - "huir", - "humano", - "húmedo", - "humilde", - "humo", - "hundir", - "huracán", - "hurto", - "icono", - "ideal", - "idioma", - "ídolo", - "iglesia", - "iglú", - "igual", - "ilegal", - "ilusión", - "imagen", - "imán", - "imitar", - "impar", - "imperio", - "imponer", - "impulso", - "incapaz", - "índice", - "inerte", - "infiel", - "informe", - "ingenio", - "inicio", - "inmenso", - "inmune", - "innato", - "insecto", - "instante", - "interés", - "íntimo", - "intuir", - "inútil", - "invierno", - "ira", - "iris", - "ironía", - "isla", - "islote", - "jabalí", - "jabón", - "jamón", - "jarabe", - "jardín", - "jarra", - "jaula", - "jazmín", - "jefe", - "jeringa", - "jinete", - "jornada", - "joroba", - "joven", - "joya", - "juerga", - "jueves", - "juez", - "jugador", - "jugo", - "juguete", - "juicio", - "junco", - "jungla", - "junio", - "juntar", - "júpiter", - "jurar", - "justo", - "juvenil", - "juzgar", - "kilo", - "koala", - "labio", - "lacio", - "lacra", - "lado", - "ladrón", - "lagarto", - "lágrima", - "laguna", - "laico", - "lamer", - "lámina", - "lámpara", - "lana", - "lancha", - "langosta", - "lanza", - "lápiz", - "largo", - "larva", - "lástima", - "lata", - "látex", - "latir", - "laurel", - "lavar", - "lazo", - "leal", - "lección", - "leche", - "lector", - "leer", - "legión", - "legumbre", - "lejano", - "lengua", - "lento", - "leña", - "león", - "leopardo", - "lesión", - "letal", - "letra", - "leve", - "leyenda", - "libertad", - "libro", - "licor", - "líder", - "lidiar", - "lienzo", - "liga", - "ligero", - "lima", - "límite", - "limón", - "limpio", - "lince", - "lindo", - "línea", - "lingote", - "lino", - "linterna", - "líquido", - "liso", - "lista", - "litera", - "litio", - "litro", - "llaga", - "llama", - "llanto", - "llave", - "llegar", - "llenar", - "llevar", - "llorar", - "llover", - "lluvia", - "lobo", - "loción", - "loco", - "locura", - "lógica", - "logro", - "lombriz", - "lomo", - "lonja", - "lote", - "lucha", - "lucir", - "lugar", - "lujo", - "luna", - "lunes", - "lupa", - "lustro", - "luto", - "luz", - "maceta", - "macho", - "madera", - "madre", - "maduro", - "maestro", - "mafia", - "magia", - "mago", - "maíz", - "maldad", - "maleta", - "malla", - "malo", - "mamá", - "mambo", - "mamut", - "manco", - "mando", - "manejar", - "manga", - "maniquí", - "manjar", - "mano", - "manso", - "manta", - "mañana", - "mapa", - "máquina", - "mar", - "marco", - "marea", - "marfil", - "margen", - "marido", - "mármol", - "marrón", - "martes", - "marzo", - "masa", - "máscara", - "masivo", - "matar", - "materia", - "matiz", - "matriz", - "máximo", - "mayor", - "mazorca", - "mecha", - "medalla", - "medio", - "médula", - "mejilla", - "mejor", - "melena", - "melón", - "memoria", - "menor", - "mensaje", - "mente", - "menú", - "mercado", - "merengue", - "mérito", - "mes", - "mesón", - "meta", - "meter", - "método", - "metro", - "mezcla", - "miedo", - "miel", - "miembro", - "miga", - "mil", - "milagro", - "militar", - "millón", - "mimo", - "mina", - "minero", - "mínimo", - "minuto", - "miope", - "mirar", - "misa", - "miseria", - "misil", - "mismo", - "mitad", - "mito", - "mochila", - "moción", - "moda", - "modelo", - "moho", - "mojar", - "molde", - "moler", - "molino", - "momento", - "momia", - "monarca", - "moneda", - "monja", - "monto", - "moño", - "morada", - "morder", - "moreno", - "morir", - "morro", - "morsa", - "mortal", - "mosca", - "mostrar", - "motivo", - "mover", - "móvil", - "mozo", - "mucho", - "mudar", - "mueble", - "muela", - "muerte", - "muestra", - "mugre", - "mujer", - "mula", - "muleta", - "multa", - "mundo", - "muñeca", - "mural", - "muro", - "músculo", - "museo", - "musgo", - "música", - "muslo", - "nácar", - "nación", - "nadar", - "naipe", - "naranja", - "nariz", - "narrar", - "nasal", - "natal", - "nativo", - "natural", - "náusea", - "naval", - "nave", - "navidad", - "necio", - "néctar", - "negar", - "negocio", - "negro", - "neón", - "nervio", - "neto", - "neutro", - "nevar", - "nevera", - "nicho", - "nido", - "niebla", - "nieto", - "niñez", - "niño", - "nítido", - "nivel", - "nobleza", - "noche", - "nómina", - "noria", - "norma", - "norte", - "nota", - "noticia", - "novato", - "novela", - "novio", - "nube", - "nuca", - "núcleo", - "nudillo", - "nudo", - "nuera", - "nueve", - "nuez", - "nulo", - "número", - "nutria", - "oasis", - "obeso", - "obispo", - "objeto", - "obra", - "obrero", - "observar", - "obtener", - "obvio", - "oca", - "ocaso", - "océano", - "ochenta", - "ocho", - "ocio", - "ocre", - "octavo", - "octubre", - "oculto", - "ocupar", - "ocurrir", - "odiar", - "odio", - "odisea", - "oeste", - "ofensa", - "oferta", - "oficio", - "ofrecer", - "ogro", - "oído", - "oír", - "ojo", - "ola", - "oleada", - "olfato", - "olivo", - "olla", - "olmo", - "olor", - "olvido", - "ombligo", - "onda", - "onza", - "opaco", - "opción", - "ópera", - "opinar", - "oponer", - "optar", - "óptica", - "opuesto", - "oración", - "orador", - "oral", - "órbita", - "orca", - "orden", - "oreja", - "órgano", - "orgía", - "orgullo", - "oriente", - "origen", - "orilla", - "oro", - "orquesta", - "oruga", - "osadía", - "oscuro", - "osezno", - "oso", - "ostra", - "otoño", - "otro", - "oveja", - "óvulo", - "óxido", - "oxígeno", - "oyente", - "ozono", - "pacto", - "padre", - "paella", - "página", - "pago", - "país", - "pájaro", - "palabra", - "palco", - "paleta", - "pálido", - "palma", - "paloma", - "palpar", - "pan", - "panal", - "pánico", - "pantera", - "pañuelo", - "papá", - "papel", - "papilla", - "paquete", - "parar", - "parcela", - "pared", - "parir", - "paro", - "párpado", - "parque", - "párrafo", - "parte", - "pasar", - "paseo", - "pasión", - "paso", - "pasta", - "pata", - "patio", - "patria", - "pausa", - "pauta", - "pavo", - "payaso", - "peatón", - "pecado", - "pecera", - "pecho", - "pedal", - "pedir", - "pegar", - "peine", - "pelar", - "peldaño", - "pelea", - "peligro", - "pellejo", - "pelo", - "peluca", - "pena", - "pensar", - "peñón", - "peón", - "peor", - "pepino", - "pequeño", - "pera", - "percha", - "perder", - "pereza", - "perfil", - "perico", - "perla", - "permiso", - "perro", - "persona", - "pesa", - "pesca", - "pésimo", - "pestaña", - "pétalo", - "petróleo", - "pez", - "pezuña", - "picar", - "pichón", - "pie", - "piedra", - "pierna", - "pieza", - "pijama", - "pilar", - "piloto", - "pimienta", - "pino", - "pintor", - "pinza", - "piña", - "piojo", - "pipa", - "pirata", - "pisar", - "piscina", - "piso", - "pista", - "pitón", - "pizca", - "placa", - "plan", - "plata", - "playa", - "plaza", - "pleito", - "pleno", - "plomo", - "pluma", - "plural", - "pobre", - "poco", - "poder", - "podio", - "poema", - "poesía", - "poeta", - "polen", - "policía", - "pollo", - "polvo", - "pomada", - "pomelo", - "pomo", - "pompa", - "poner", - "porción", - "portal", - "posada", - "poseer", - "posible", - "poste", - "potencia", - "potro", - "pozo", - "prado", - "precoz", - "pregunta", - "premio", - "prensa", - "preso", - "previo", - "primo", - "príncipe", - "prisión", - "privar", - "proa", - "probar", - "proceso", - "producto", - "proeza", - "profesor", - "programa", - "prole", - "promesa", - "pronto", - "propio", - "próximo", - "prueba", - "público", - "puchero", - "pudor", - "pueblo", - "puerta", - "puesto", - "pulga", - "pulir", - "pulmón", - "pulpo", - "pulso", - "puma", - "punto", - "puñal", - "puño", - "pupa", - "pupila", - "puré", - "quedar", - "queja", - "quemar", - "querer", - "queso", - "quieto", - "química", - "quince", - "quitar", - "rábano", - "rabia", - "rabo", - "ración", - "radical", - "raíz", - "rama", - "rampa", - "rancho", - "rango", - "rapaz", - "rápido", - "rapto", - "rasgo", - "raspa", - "rato", - "rayo", - "raza", - "razón", - "reacción", - "realidad", - "rebaño", - "rebote", - "recaer", - "receta", - "rechazo", - "recoger", - "recreo", - "recto", - "recurso", - "red", - "redondo", - "reducir", - "reflejo", - "reforma", - "refrán", - "refugio", - "regalo", - "regir", - "regla", - "regreso", - "rehén", - "reino", - "reír", - "reja", - "relato", - "relevo", - "relieve", - "relleno", - "reloj", - "remar", - "remedio", - "remo", - "rencor", - "rendir", - "renta", - "reparto", - "repetir", - "reposo", - "reptil", - "res", - "rescate", - "resina", - "respeto", - "resto", - "resumen", - "retiro", - "retorno", - "retrato", - "reunir", - "revés", - "revista", - "rey", - "rezar", - "rico", - "riego", - "rienda", - "riesgo", - "rifa", - "rígido", - "rigor", - "rincón", - "riñón", - "río", - "riqueza", - "risa", - "ritmo", - "rito" - ]; -} \ No newline at end of file diff --git a/cw_zano/lib/new_zano_addresses_base.dart b/cw_zano/lib/new_zano_addresses_base.dart deleted file mode 100644 index 4c06d5ac7..000000000 --- a/cw_zano/lib/new_zano_addresses_base.dart +++ /dev/null @@ -1,19 +0,0 @@ -import 'package:cw_core/wallet_addresses.dart'; - -class NewZanoWalletAddresses extends WalletAddresses { - @override - String address; - - NewZanoWalletAddresses(super.walletInfo): address = ""; - - @override - Future init() async { - print("NewZanoWalletAddresses init"); - } - - @override - Future updateAddressesInBox() async { - print("NewZanoWalletAddresses updateAddressesInBox"); - } - -} \ No newline at end of file diff --git a/cw_zano/lib/new_zano_wallet.dart b/cw_zano/lib/new_zano_wallet.dart deleted file mode 100644 index 4dbf92ce0..000000000 --- a/cw_zano/lib/new_zano_wallet.dart +++ /dev/null @@ -1,239 +0,0 @@ -import 'dart:async'; - -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/node.dart'; -import 'package:cw_core/pending_transaction.dart'; -import 'package:cw_core/sync_status.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_addresses.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_zano/api/model/balance.dart'; -import 'package:cw_zano/api/model/create_wallet_result.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/zano_balance.dart'; -import 'package:cw_zano/zano_transaction_history.dart'; -import 'package:cw_zano/zano_transaction_info.dart'; -import 'package:mobx/src/api/observable_collections.dart'; -import 'package:cw_zano/api/wallet.dart' as zano_wallet; -import 'dart:convert'; -import 'dart:ffi'; - -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:ffi/ffi.dart'; - -import 'api/model/zano_wallet_keys.dart'; -import 'new_zano_addresses_base.dart'; - -typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); -typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); - -class NewZanoWallet extends WalletBase { - @override - SyncStatus syncStatus; - - Timer? _autoSaveTimer; - - static const int _autoSaveInterval = 30; - - NewZanoWallet(super.walletInfo) - : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), - walletAddresses = NewZanoWalletAddresses(walletInfo), - syncStatus = NotConnectedSyncStatus() { - transactionHistory = ZanoTransactionHistory(); - } - - Future init() async { - print("NewZanoWallet init"); - if (walletInfo.isRecovery) { - print("is recovery"); - } - _autoSaveTimer = - Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); - } - - String getTransactionAddress(int accountIndex, int addressIndex) { - print("NewZanoWallet getTransactionAddress"); - return ""; - } - - @override - ObservableMap balance; - - @override - int calculateEstimatedFee(TransactionPriority priority, int? amount) { - // TODO: implement calculateEstimatedFee - throw UnimplementedError(); - } - - @override - Future changePassword(String password) { - // TODO: implement changePassword - throw UnimplementedError(); - } - - @override - void close() { - // TODO: implement close - } - - @override - Future connectToNode({required Node node}) async { - print("NewZanoWallet connecttoNode"); - try { - syncStatus = ConnectingSyncStatus(); - _setupNode(address: "195.201.107.230:33336", login: "", password: ""); - syncStatus = ConnectedSyncStatus(); - } catch (e) { - syncStatus = FailedSyncStatus(); - print("connectToNode error $e"); - } - } - - @override - Future createTransaction(Object credentials) { - // TODO: implement createTransaction - throw UnimplementedError(); - } - - @override - Future> fetchTransactions() { - // TODO: implement fetchTransactions - throw UnimplementedError(); - } - - @override - ZanoWalletKeys get keys => ZanoWalletKeys( - privateSpendKey: "", privateViewKey: "", publicSpendKey: "", publicViewKey: ""); - - @override - Future renameWalletFiles(String newWalletName) { - // TODO: implement renameWalletFiles - throw UnimplementedError(); - } - - @override - Future rescan({required int height}) { - // TODO: implement rescan - throw UnimplementedError(); - } - - @override - Future save() async { - await walletAddresses.updateAddressesInBox(); - if (hWallet != null) await zano_wallet.store(hWallet!); - } - - @override - // TODO: implement seed - String? seed = "Тут пока пусто"; - - @override - Future startSync() { - // TODO: implement startSync - throw UnimplementedError(); - } - - @override - Future? updateBalance() { - // TODO: implement updateBalance - throw UnimplementedError(); - } - - @override - NewZanoWalletAddresses walletAddresses; - - CreateWalletResult? createWalletResult; - List? balances; - int? hWallet; - final assetIds = {}; - - final _setupNodeNative = - zanoApi.lookup>('setup_node').asFunction(); - final _createWalletNative = - zanoApi.lookup>('create_wallet').asFunction(); - - final _loadWalletNative = - zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); - - bool _setupNode( - {required String address, - required String login, - required String password, - bool useSSL = false, - bool isLightWallet = false}) { - final addressPointer = address.toNativeUtf8(); - final loginPointer = login.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - print( - "setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); - final result = _intToBool(_setupNodeNative(addressPointer, loginPointer, passwordPointer, - _boolToInt(useSSL), _boolToInt(isLightWallet), errorMessagePointer)); - print("setup_node result $result"); - calloc.free(addressPointer); - calloc.free(loginPointer); - calloc.free(passwordPointer); - return result; - } - - String _createWalletSync( - {required String path, required String password, required String language, int nettype = 0}) { - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final languagePointer = language.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - print("create_wallet path $path password $password language $language"); - final result = _convertUTF8ToString( - pointer: _createWalletNative( - pathPointer, passwordPointer, languagePointer, nettype, errorMessagePointer)); - print("create_wallet $result"); - calloc.free(pathPointer); - calloc.free(passwordPointer); - calloc.free(languagePointer); - - return result; - } - - void createWallet({required String path, required String password}) { - final createResult = _createWalletSync(path: path, password: password, language: ""); - final address = _parseResult(createResult)!; - walletAddresses.address = address; - } - - String loadWallet(String path, String password) { - print('load_wallet path $path password $password'); - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final result = _convertUTF8ToString( - pointer: _loadWalletNative(pathPointer, passwordPointer, 0), - ); - print('load_wallet result $result'); - return result; - } - - int _boolToInt(bool value) => value ? 1 : 0; - bool _intToBool(int value) => value != 0; - String _convertUTF8ToString({required Pointer pointer}) { - final str = pointer.toDartString(); - calloc.free(pointer); - return str; - } - - // TODO: kind of stupid thing, in one method parsing json and then setting properties of a class - String? _parseResult(String result) { - final map = json.decode(result) as Map; - if (map['result'] != null) { - createWalletResult = - CreateWalletResult.fromJson(map['result'] as Map); - balances = createWalletResult!.wi.balances; - hWallet = createWalletResult!.walletId; - assetIds.clear(); - for (final balance in createWalletResult!.wi.balances) { - assetIds[balance.assetInfo.assetId] = balance.assetInfo.ticker; - } - return createWalletResult!.wi.address; - } - return null; - } -} diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index 709281bb1..4f680463d 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -1,54 +1,87 @@ -import 'package:cw_zano/api/structs/pending_transaction.dart'; -import 'package:cw_zano/api/transaction_history.dart' - as zano_transaction_history; +import 'dart:convert'; + +import 'package:cw_zano/api/model/destination.dart'; +import 'package:cw_zano/api/model/transfer_params.dart'; +import 'package:cw_zano/api/model/transfer_result.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/pending_transaction.dart'; - -class DoubleSpendException implements Exception { - DoubleSpendException(); - - @override - String toString() => - 'This transaction cannot be committed. This can be due to many reasons including the wallet not being synced, there is not enough XMR in your available balance, or previous transactions are not yet fully processed.'; -} +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/zano_wallet.dart'; class PendingZanoTransaction with PendingTransaction { PendingZanoTransaction( - this.pendingTransactionDescription, this.cryptoCurrency); + {required this.fee, + required this.intAmount, + //required this.stringAmount, + required this.hWallet, + required this.address, + required this.assetId, + required this.comment}); - final PendingTransactionDescription pendingTransactionDescription; - final CryptoCurrency cryptoCurrency; + final int hWallet; + final int intAmount; + //final String stringAmount; + final int fee; + final String address; + final String assetId; + final String comment; + + final CryptoCurrency cryptoCurrency = CryptoCurrency.zano; @override - String get id => pendingTransactionDescription.hash; + String get id => transferResult != null ? transferResult!.txHash : ''; @override String get hex => ''; @override String get amountFormatted { - return AmountConverter.amountIntToString( - cryptoCurrency, pendingTransactionDescription.amount); + return AmountConverter.amountIntToString(cryptoCurrency, intAmount); } @override - String get feeFormatted => AmountConverter.amountIntToString( - cryptoCurrency, pendingTransactionDescription.fee); + String get feeFormatted => AmountConverter.amountIntToString(cryptoCurrency, fee); + + TransferResult? transferResult; @override Future commit() async { - try { - zano_transaction_history.commitTransactionFromPointerAddress( - address: pendingTransactionDescription.pointerAddress); - } catch (e) { - final message = e.toString(); - - if (message.contains('Reason: double spend')) { - throw DoubleSpendException(); - } - - rethrow; + final result = await calls.transfer( + hWallet, + TransferParams( + destinations: [ + Destination( + amount: intAmount.toString(), //stringAmount, + address: address, + assetId: assetId, + ) + ], + fee: fee, + mixin: zanoMixin, + paymentId: '', + comment: comment, + pushPayer: false, + hideReceiver: false, + )); + print('transfer result $result'); + final map = jsonDecode(result); + if (map["result"] != null && map["result"]["result"] != null ) { + transferResult = TransferResult.fromJson( + map["result"]["result"] as Map, + ); } + // try { + // zano_transaction_history.commitTransactionFromPointerAddress( + // address: pendingTransactionDescription.pointerAddress); + // } catch (e) { + // final message = e.toString(); + + // if (message.contains('Reason: double spend')) { + // throw DoubleSpendException(); + // } + + // rethrow; + // } } } diff --git a/cw_zano/lib/update_zano_rate.dart b/cw_zano/lib/update_zano_rate.dart deleted file mode 100644 index 564ce5f32..000000000 --- a/cw_zano/lib/update_zano_rate.dart +++ /dev/null @@ -1,15 +0,0 @@ -//import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_amount_format.dart'; -import 'package:cw_zano/api/balance_list.dart'; - -//Future updateZanoRate(FiatConversionStore fiatConversionStore) async { -// final rate = getRate(); -// final base = rate.firstWhere((row) => row.getAssetType() == 'XUSD', orElse: () => null); -// rate.forEach((row) { -// final cur = CryptoCurrency.fromString(row.getAssetType()); -// final baseRate = moneroAmountToDouble(amount: base.getRate()); -// final rowRate = moneroAmountToDouble(amount: row.getRate()); -// fiatConversionStore.prices[cur] = baseRate * rowRate; -// }); -//} \ No newline at end of file diff --git a/cw_zano/lib/zano_account_list.dart b/cw_zano/lib/zano_account_list.dart deleted file mode 100644 index 52c312df5..000000000 --- a/cw_zano/lib/zano_account_list.dart +++ /dev/null @@ -1,89 +0,0 @@ -import 'package:mobx/mobx.dart'; -import 'package:cw_core/account.dart'; -import 'package:cw_core/account_list.dart'; -import 'package:cw_zano/api/account_list.dart' as account_list; - -//part 'zano_account_list.g.dart'; -/* -class ZanoAccountList = ZanoAccountListBase with _$ZanoAccountList; - -abstract class ZanoAccountListBase extends AccountList with Store { - ZanoAccountListBase.simple() - : accounts = ObservableList(), - _isRefreshing = false, - _isUpdating = false {} - - ZanoAccountListBase() - : accounts = ObservableList(), - _isRefreshing = false, - _isUpdating = false { - refresh(); - } - - @override - @observable - ObservableList accounts; - bool _isRefreshing; - bool _isUpdating; - - @override - void update() async { - if (_isUpdating) { - return; - } - - try { - _isUpdating = true; - refresh(); - final accounts = getAll(); - - if (accounts.isNotEmpty) { - this.accounts.clear(); - this.accounts.addAll(accounts); - } - - _isUpdating = false; - } catch (e) { - _isUpdating = false; - rethrow; - } - } - - @override - List getAll() => account_list - .getAllAccount() - .map((accountRow) => - Account(id: accountRow.getId(), label: accountRow.getLabel())) - .toList(); - - @override - Future addAccount({required String label}) async { - await account_list.addAccount(label: label); - update(); - } - - @override - Future setLabelAccount( - {required int accountIndex, required String label}) async { - await account_list.setLabelForAccount( - accountIndex: accountIndex, label: label); - update(); - } - - @override - void refresh() { - /**if (_isRefreshing) { - return; - } - - try { - _isRefreshing = true; - account_list.refreshAccounts(); - _isRefreshing = false; - } catch (e) { - _isRefreshing = false; - print(e); - rethrow; - } - }*/ -}*/ diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/zano_balance.dart index a4978abb6..9bbfb1ce1 100644 --- a/cw_zano/lib/zano_balance.dart +++ b/cw_zano/lib/zano_balance.dart @@ -1,23 +1,18 @@ import 'package:cw_core/balance.dart'; -import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/monero_amount_format.dart'; -import 'package:cw_core/monero_balance.dart'; -import 'package:cw_zano/api/balance_list.dart'; -import 'package:cw_zano/api/structs/zano_balance_row.dart'; class ZanoBalance extends Balance { final int total; final int unlocked; - ZanoBalance({required this.total, required this.unlocked}): super(unlocked, 0); - + ZanoBalance({required this.total, required this.unlocked}): super(unlocked, total-unlocked); @override - String get formattedAdditionalBalance => moneroAmountToString(amount: additional); + String get formattedAdditionalBalance => moneroAmountToString(amount: total-unlocked); @override String get formattedAvailableBalance => moneroAmountToString(amount: unlocked); @override - String get formattedFrozenBalance => total == unlocked ? '' : moneroAmountToString(amount: total - unlocked); + String get formattedFrozenBalance => ''; } diff --git a/cw_zano/lib/zano_subaddress_list.dart b/cw_zano/lib/zano_subaddress_list.dart deleted file mode 100644 index 871670659..000000000 --- a/cw_zano/lib/zano_subaddress_list.dart +++ /dev/null @@ -1,88 +0,0 @@ -import 'package:cw_zano/api/structs/subaddress_row.dart'; -import 'package:flutter/services.dart'; -import 'package:mobx/mobx.dart'; -import 'package:cw_zano/api/subaddress_list.dart' as subaddress_list; -import 'package:cw_core/subaddress.dart'; - -//part 'zano_subaddress_list.g.dart'; - -/*class ZanoSubaddressList = ZanoSubaddressListBase with _$ZanoSubaddressList; - -abstract class ZanoSubaddressListBase with Store { - ZanoSubaddressListBase() - : _isRefreshing = false, - _isUpdating = false, - subaddresses = ObservableList(); - - @observable - ObservableList subaddresses; - - bool _isRefreshing; - bool _isUpdating; - - void update({required int accountIndex}) { - if (_isUpdating) { - return; - } - - try { - _isUpdating = true; - refresh(accountIndex: accountIndex); - subaddresses.clear(); - subaddresses.addAll(getAll()); - _isUpdating = false; - } catch (e) { - _isUpdating = false; - rethrow; - } - } - - List getAll() { - var subaddresses = subaddress_list.getAllSubaddresses(); - - if (subaddresses.length > 2) { - final primary = subaddresses.first; - final rest = subaddresses.sublist(1).reversed; - subaddresses = [primary] + rest.toList(); - } - - return subaddresses - .map((subaddressRow) => Subaddress( - id: subaddressRow.getId(), - address: subaddressRow.getAddress(), - label: subaddressRow.getLabel())) - .toList(); - } - - Future addSubaddress( - {required int accountIndex, required String label}) async { - await subaddress_list.addSubaddress( - accountIndex: accountIndex, label: label); - update(accountIndex: accountIndex); - } - - Future setLabelSubaddress( - {required int accountIndex, - required int addressIndex, - required String label}) async { - await subaddress_list.setLabelForSubaddress( - accountIndex: accountIndex, addressIndex: addressIndex, label: label); - update(accountIndex: accountIndex); - } - - void refresh({required int accountIndex}) { - if (_isRefreshing) { - return; - } - - try { - _isRefreshing = true; - subaddress_list.refreshSubaddresses(accountIndex: accountIndex); - _isRefreshing = false; - } on PlatformException catch (e) { - _isRefreshing = false; - print(e); - rethrow; - } - } -}*/ diff --git a/cw_zano/lib/zano_transaction_creation_exception.dart b/cw_zano/lib/zano_transaction_creation_exception.dart deleted file mode 100644 index 918d44d2f..000000000 --- a/cw_zano/lib/zano_transaction_creation_exception.dart +++ /dev/null @@ -1,8 +0,0 @@ -class ZanoTransactionCreationException implements Exception { - ZanoTransactionCreationException(this.message); - - final String message; - - @override - String toString() => message; -} diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/zano_transaction_info.dart index 48f4b6e93..02ff3fff2 100644 --- a/cw_zano/lib/zano_transaction_info.dart +++ b/cw_zano/lib/zano_transaction_info.dart @@ -1,11 +1,8 @@ -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/monero_amount_format.dart'; -import 'package:cw_zano/api/model/history.dart'; -import 'package:cw_zano/api/structs/transaction_info_row.dart'; -import 'package:cw_core/parseBoolFromString.dart'; -import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/format_amount.dart'; -import 'package:cw_zano/api/transaction_history.dart'; +import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_zano/api/model/history.dart'; class ZanoTransactionInfo extends TransactionInfo { ZanoTransactionInfo( diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index d744a48bc..9d7e8d5ae 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -14,12 +14,8 @@ import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_zano/api/calls.dart' as calls; -import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/history.dart'; -import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; -import 'package:cw_zano/api/structs/pending_transaction.dart'; -//import 'package:cw_zano/wallet.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; import 'package:cw_zano/api/zano_api.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; @@ -175,8 +171,8 @@ abstract class ZanoWalletBase final address = output.isParsedAddress && (output.extractedAddress?.isNotEmpty ?? false) ? output.extractedAddress! : output.address; - final amount = output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); - final int? formattedAmount = output.sendAll ? null : output.formattedCryptoAmount; + final stringAmount = output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); + //final int? formattedAmount = output.sendAll ? null : output.formattedCryptoAmount; final fee = calculateEstimatedFee(creds.priority); // final result = await calls.transfer( // hWallet, @@ -195,10 +191,12 @@ abstract class ZanoWalletBase // pushPayer: false, // hideReceiver: false, // )); - int iAmount = (double.parse(amount!) * pow(10, 12)).toInt(); - final description = PendingTransactionDescription( - amount: iAmount, fee: fee, hash: 'fade', pointerAddress: 0); - final transaction = PendingZanoTransaction(description, CryptoCurrency.zano); + final intAmount = (double.parse(stringAmount!) * pow(10, 12)).toInt(); + // final description = PendingTransactionDescription( + // amount: iAmount, fee: fee, hash: '', pointerAddress: 0); + final transaction = PendingZanoTransaction(fee: fee, intAmount: intAmount, + hWallet: hWallet, address: address, assetId: assetId, + comment: output.note ?? ''); return transaction; /*final _credentials = credentials as ZanoTransactionCreationCredentials; diff --git a/cw_zano/lib/zano_wallet_addresses.dart b/cw_zano/lib/zano_wallet_addresses.dart index ae3eb63c0..888a59051 100644 --- a/cw_zano/lib/zano_wallet_addresses.dart +++ b/cw_zano/lib/zano_wallet_addresses.dart @@ -1,9 +1,5 @@ import 'package:cw_core/wallet_addresses.dart'; import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/account.dart'; -import 'package:cw_zano/zano_account_list.dart'; -import 'package:cw_zano/zano_subaddress_list.dart'; -import 'package:cw_core/subaddress.dart'; import 'package:mobx/mobx.dart'; part 'zano_wallet_addresses.g.dart'; diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 0a6de12c8..9cca7c4f4 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -1,24 +1,21 @@ import 'dart:convert'; import 'dart:io'; + import 'package:collection/collection.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/node.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/monero_wallet_utils.dart'; -import 'package:cw_zano/api/model/create_wallet_result.dart'; -import 'package:cw_zano/new_zano_wallet.dart'; -import 'package:cw_zano/zano_balance.dart'; -import 'package:hive/hive.dart'; -import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; -import 'package:cw_zano/api/wallet.dart' as zano_wallet; -import 'package:cw_zano/api/calls.dart' as calls; -import 'package:cw_zano/api/exceptions/wallet_opening_exception.dart'; -import 'package:cw_zano/zano_wallet.dart'; -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/model/create_wallet_result.dart'; +import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; +import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/zano_wallet.dart'; +import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; class ZanoNewWalletCredentials extends WalletCredentials { @@ -34,11 +31,6 @@ class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { final String mnemonic; } -class ZanoWalletLoadingException implements Exception { - @override - String toString() => 'Failure to load the wallet.'; -} - class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { ZanoRestoreWalletFromKeysCredentials( {required String name, @@ -91,9 +83,8 @@ class ZanoWalletService extends WalletService; if (map['result'] != null) { final createWalletResult = diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index 545d40282..2c0c78cdf 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -30,7 +30,7 @@ class SeedValidator extends Validator { case WalletType.haven: return haven!.getMoneroWordList(language); case WalletType.zano: - return zano!.getMoneroWordList(language); + return zano!.getWordList(language); case WalletType.ethereum: return ethereum!.getEthereumWordList(language); case WalletType.dummy: diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index ceb63ccc5..7a28ecef7 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -123,7 +123,7 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.ethereum: return 'https://etherscan.io/tx/${txId}'; case WalletType.zano: - return 'https://example.com/${txId}'; + return 'https://testnet-explorer.zano.org/transaction/${txId}'; case WalletType.dummy: return 'https://example.com/${txId}'; default: diff --git a/lib/zano.dart b/lib/zano.dart index 912c0d1d8..b20bbc973 100644 --- a/lib/zano.dart +++ b/lib/zano.dart @@ -106,7 +106,7 @@ Future create(String name) async { credentials.password = password; await keyService.saveWalletPassword(password: password, walletName: credentials.name); debugPrint('path $path password $password'); - final result = zano_wallet_manager.createWalletSync(path: path, password: password, language: ''); + final result = calls.createWallet(path: path, password: password, language: ''); debugPrint('create result $result'); return _parseResult(result); } diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index f5589c155..28690bad0 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -115,31 +115,9 @@ class CWZano extends Zano { } @override - List getMoneroWordList(String language) { - switch (language.toLowerCase()) { - case 'english': - return EnglishMnemonics.words; - case 'chinese (simplified)': - return ChineseSimplifiedMnemonics.words; - case 'dutch': - return DutchMnemonics.words; - case 'german': - return GermanMnemonics.words; - case 'japanese': - return JapaneseMnemonics.words; - case 'portuguese': - return PortugueseMnemonics.words; - case 'russian': - return RussianMnemonics.words; - case 'spanish': - return SpanishMnemonics.words; - case 'french': - return FrenchMnemonics.words; - case 'italian': - return ItalianMnemonics.words; - default: - return EnglishMnemonics.words; - } + List getWordList(String language) { + assert(language.toLowerCase() == LanguageList.english.toLowerCase()); + return EnglishMnemonics.words; } @override @@ -267,7 +245,7 @@ class CWZano extends Zano { return asset; } - @override - List getAssetRate() => - getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); + // @override + // List getAssetRate() => + // getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); } diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index bf712e25d..7f8a439ee 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -1,4 +1,4 @@ -import 'package:cw_zano/new_zano_wallet.dart'; +import 'package:cake_wallet/utils/language_list.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -22,15 +22,6 @@ import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_core/account.dart' as monero_account; import 'package:cw_zano/api/wallet.dart' as monero_wallet_api; import 'package:cw_zano/mnemonics/english.dart'; -import 'package:cw_zano/mnemonics/chinese_simplified.dart'; -import 'package:cw_zano/mnemonics/dutch.dart'; -import 'package:cw_zano/mnemonics/german.dart'; -import 'package:cw_zano/mnemonics/japanese.dart'; -import 'package:cw_zano/mnemonics/russian.dart'; -import 'package:cw_zano/mnemonics/spanish.dart'; -import 'package:cw_zano/mnemonics/portuguese.dart'; -import 'package:cw_zano/mnemonics/french.dart'; -import 'package:cw_zano/mnemonics/italian.dart'; import 'package:cw_zano/zano_transaction_creation_credentials.dart'; import 'package:cw_zano/api/balance_list.dart'; @@ -111,7 +102,7 @@ abstract class Zano { TransactionPriority getDefaultTransactionPriority(); TransactionPriority deserializeMoneroTransactionPriority({required int raw}); List getTransactionPriorities(); - List getMoneroWordList(String language); + List getWordList(String language); WalletCredentials createZanoRestoreWalletFromKeysCredentials({ required String name, @@ -134,7 +125,7 @@ abstract class Zano { int getTransactionInfoAccountId(TransactionInfo tx); WalletService createZanoWalletService(Box walletInfoSource); CryptoCurrency assetOfTransaction(TransactionInfo tx); - List getAssetRate(); + // List getAssetRate(); } // abstract class MoneroSubaddressList { From df984ca515447f72f1f6b70b2d27113e0d3546d1 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 16 Dec 2023 12:19:11 +0000 Subject: [PATCH 14/58] some cleanup --- cw_zano/lib/api/calls.dart | 123 ++++++- cw_zano/lib/api/consts.dart | 4 + cw_zano/lib/api/cw_zano.dart | 13 - .../exceptions/already_exists_exception.dart | 6 + cw_zano/lib/api/exceptions/api_exception.dart | 9 + .../restore_from_seed_exception.dart | 5 + .../api/exceptions/transfer_exception.dart | 5 + .../api/exceptions/wrong_seed_exception.dart | 6 + cw_zano/lib/api/signatures.dart | 151 --------- .../structs/{ut8_box.dart => utf8_box.dart} | 0 cw_zano/lib/api/types.dart | 149 --------- cw_zano/lib/api/wallet.dart | 315 +----------------- cw_zano/lib/api/wallet_manager.dart | 255 -------------- cw_zano/lib/pending_zano_transaction.dart | 36 +- cw_zano/lib/zano_transaction_info.dart | 31 -- cw_zano/lib/zano_wallet.dart | 72 +--- cw_zano/lib/zano_wallet_service.dart | 39 +-- lib/zano/cw_zano.dart | 12 +- lib/zano/zano.dart | 5 +- 19 files changed, 202 insertions(+), 1034 deletions(-) create mode 100644 cw_zano/lib/api/consts.dart delete mode 100644 cw_zano/lib/api/cw_zano.dart create mode 100644 cw_zano/lib/api/exceptions/already_exists_exception.dart create mode 100644 cw_zano/lib/api/exceptions/api_exception.dart create mode 100644 cw_zano/lib/api/exceptions/restore_from_seed_exception.dart create mode 100644 cw_zano/lib/api/exceptions/transfer_exception.dart create mode 100644 cw_zano/lib/api/exceptions/wrong_seed_exception.dart delete mode 100644 cw_zano/lib/api/signatures.dart rename cw_zano/lib/api/structs/{ut8_box.dart => utf8_box.dart} (100%) delete mode 100644 cw_zano/lib/api/types.dart delete mode 100644 cw_zano/lib/api/wallet_manager.dart diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart index ddc731677..402ada3bd 100644 --- a/cw_zano/lib/api/calls.dart +++ b/cw_zano/lib/api/calls.dart @@ -4,11 +4,20 @@ import 'dart:convert'; import 'package:cw_zano/api/convert_utf8_to_string.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; import 'package:cw_zano/api/model/transfer_params.dart'; +import 'package:cw_zano/api/structs/utf8_box.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; import 'package:flutter/foundation.dart'; -// create_wallet +// bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) +final _setupNodeNative = + zanoApi.lookup>('setup_node').asFunction<_SetupNode>(); +typedef _setup_node = Int8 Function( + Pointer, Pointer?, Pointer?, Int8, Int8, Pointer); +typedef _SetupNode = int Function( + Pointer, Pointer?, Pointer?, int, int, Pointer); + +// char * create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) final _createWalletNative = zanoApi.lookup>('create_wallet').asFunction<_CreateWallet>(); typedef _create_wallet = Pointer Function( @@ -16,66 +25,67 @@ typedef _create_wallet = Pointer Function( typedef _CreateWallet = Pointer Function( Pointer, Pointer, Pointer, int, Pointer); -// async_call +// char* async_call(char* method_name, uint64_t instance_id, char* params) final _asyncCallNative = zanoApi.lookup>('async_call').asFunction<_AsyncCall>(); typedef _async_call = Pointer Function(Pointer, Int64, Pointer); typedef _AsyncCall = Pointer Function( Pointer methodName, int hWallet, Pointer params); -// get_wallet_status +// char* get_wallet_status(uint64_t hwallet) final _getWalletStatusNative = zanoApi .lookup>('get_wallet_status') .asFunction<_GetWalletStatus>(); typedef _get_wallet_status = Pointer Function(Int64); typedef _GetWalletStatus = Pointer Function(int hWallet); -// get_wallet_info +// char *get_wallet_info(uint64_t hwallet) final _getWalletInfoNative = zanoApi .lookup>('get_wallet_info') .asFunction<_GetWalletInfo>(); typedef _get_wallet_info = Pointer Function(Int64); typedef _GetWalletInfo = Pointer Function(int hWallet); -// get_connectivity_status +// char* get_connectivity_status() final _getConnectivityStatusNative = zanoApi .lookup>('get_connectivity_status') .asFunction<_GetConnectivityStatus>(); typedef _get_connectivity_status = Pointer Function(); typedef _GetConnectivityStatus = Pointer Function(); -// get_version +// char* get_version() final _getVersionNative = zanoApi.lookup>('get_version').asFunction<_GetVersion>(); typedef _get_version = Pointer Function(); typedef _GetVersion = Pointer Function(); -// load_wallet +// char * load_wallet(char *path, char *password, int32_t nettype) final _loadWalletNative = zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); -// try_pull_result +// char* try_pull_result(uint64_t job_id) final _tryPullResultNative = zanoApi .lookup>('try_pull_result') .asFunction<_TryPullResult>(); typedef _try_pull_result = Pointer Function(Int64); typedef _TryPullResult = Pointer Function(int hWallet); -// close_wallet +// void close_wallet(uint64_t hwallet) final _closeWalletNative = zanoApi.lookup>('close_wallet').asFunction<_closeWalletStatus>(); typedef _close_wallet = Void Function(Int64); typedef _closeWalletStatus = void Function(int hWallet); -// get_current_tx_fee +// uint64_t get_current_tx_fee(uint64_t priority) final _getCurrentTxFeeNative = zanoApi .lookup>('get_current_tx_fee') .asFunction<_getCurrentTxFee>(); typedef _get_current_tx_fee = Int64 Function(Int64); typedef _getCurrentTxFee = int Function(int priority); +// char * restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) final _restoreWalletFromSeedNative = zanoApi .lookup>('restore_wallet_from_seed') .asFunction<_RestoreWalletFromSeed>(); @@ -84,7 +94,86 @@ typedef _restore_wallet_from_seed = Pointer Function( typedef _RestoreWalletFromSeed = Pointer Function( Pointer, Pointer, Pointer, int, int, Pointer); -String doAsyncCall({required String methodName, required int hWallet, required String params}) { +// char* set_password(uint64_t hwallet, char *password, Utf8Box &error) +final _setPasswordNative = + zanoApi.lookup>('set_password').asFunction<_SetPassword>(); +typedef _set_password = Pointer Function(Int64 hWallet, Pointer password, Pointer error); +typedef _SetPassword = Pointer Function(int hWallet, Pointer password, Pointer error); + +String setPassword({required int hWallet, required String password}) { + final passwordPointer = password.toNativeUtf8(); + final errorMessagePointer = calloc(); + final result = + convertUTF8ToString(pointer: _setPasswordNative(hWallet, passwordPointer, errorMessagePointer)); + calloc.free(passwordPointer); + + /*if (!changed) { + final message = errorMessagePointer.ref.getValue(); + calloc.free(errorMessagePointer); + throw Exception(message); + }*/ + + calloc.free(errorMessagePointer); + return result; +} + +// is_wallet_exist(char *path) +final _isWalletExistNative = zanoApi + .lookup>('is_wallet_exist') + .asFunction<_IsWalletExist>(); +typedef _is_wallet_exist = Int8 Function(Pointer); +typedef _IsWalletExist = int Function(Pointer); + +bool isWalletExist({required String path}) { + final pathPointer = path.toNativeUtf8(); + final isExist = _isWalletExistNative(pathPointer) != 0; + calloc.free(pathPointer); + return isExist; +} + +bool setupNode({ + required String address, + String? login, + String? password, + bool useSSL = false, + bool isLightWallet = false, + /*String? socksProxyAddress*/ +}) { + final addressPointer = address.toNativeUtf8(); + Pointer? loginPointer; + Pointer? socksProxyAddressPointer; + Pointer? passwordPointer; + + if (login != null) { + loginPointer = login.toNativeUtf8(); + } + + if (password != null) { + passwordPointer = password.toNativeUtf8(); + } + + final errorMessagePointer = ''.toNativeUtf8(); + debugPrint( + "setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); + final isSetupNode = _setupNodeNative(addressPointer, loginPointer, passwordPointer, + _boolToInt(useSSL), _boolToInt(isLightWallet), errorMessagePointer) != + 0; + debugPrint("setup_node result $isSetupNode"); + + calloc.free(addressPointer); + + if (loginPointer != null) { + calloc.free(loginPointer); + } + + if (passwordPointer != null) { + calloc.free(passwordPointer); + } + + return isSetupNode; +} + +String asyncCall({required String methodName, required int hWallet, required String params}) { final methodNamePointer = methodName.toNativeUtf8(); final paramsPointer = params.toNativeUtf8(); @@ -118,7 +207,7 @@ String createWallet( Future invokeMethod(int hWallet, String methodName, String params) async { debugPrint('invoke method $methodName params $params'); - final invokeResult = doAsyncCall( + final invokeResult = asyncCall( methodName: 'invoke', hWallet: hWallet, params: json.encode({ @@ -140,7 +229,7 @@ Future store(int hWallet) async { } Future transfer(int hWallet, TransferParams params) async { - final invokeResult = await doAsyncCall( + final invokeResult = await asyncCall( methodName: 'invoke', hWallet: hWallet, params: '{"method": "transfer","params": ${jsonEncode(params)}}', @@ -166,7 +255,10 @@ Future getRecentTxsAndInfo( 'get_recent_txs_and_info', json.encode( GetRecentTxsAndInfoParams( - offset: offset, count: count, updateProvisionInfo: updateProvisionInfo), + offset: offset, + count: count, + updateProvisionInfo: updateProvisionInfo, + ), ), ); } @@ -218,6 +310,7 @@ String restoreWalletFromSeed(String path, String password, String seed) { final result = convertUTF8ToString( pointer: _restoreWalletFromSeedNative( pathPointer, passwordPointer, seedPointer, 0, 0, errorMessagePointer)); + debugPrint('restore wallet from seed result $result'); return result; } @@ -238,3 +331,5 @@ String tryPullResult(int jobId) { debugPrint('try_pull_result result $result'); return result; } + +int _boolToInt(bool value) => value ? 1 : 0; diff --git a/cw_zano/lib/api/consts.dart b/cw_zano/lib/api/consts.dart new file mode 100644 index 000000000..06c3b314b --- /dev/null +++ b/cw_zano/lib/api/consts.dart @@ -0,0 +1,4 @@ +class Consts { + static const errorWrongSeed = 'WRONG_SEED'; + static const errorAlreadyExists = 'ALREADY_EXISTS'; +} \ No newline at end of file diff --git a/cw_zano/lib/api/cw_zano.dart b/cw_zano/lib/api/cw_zano.dart deleted file mode 100644 index 6ea49ef28..000000000 --- a/cw_zano/lib/api/cw_zano.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/services.dart'; - -class CwZano { - static const MethodChannel _channel = const MethodChannel('cw_zano'); - - static Future get platformVersion async { - final String version = - await _channel.invokeMethod('getPlatformVersion') ?? ''; - return version; - } -} diff --git a/cw_zano/lib/api/exceptions/already_exists_exception.dart b/cw_zano/lib/api/exceptions/already_exists_exception.dart new file mode 100644 index 000000000..a6d00fef9 --- /dev/null +++ b/cw_zano/lib/api/exceptions/already_exists_exception.dart @@ -0,0 +1,6 @@ +import 'package:cw_zano/api/consts.dart'; +import 'package:cw_zano/api/exceptions/api_exception.dart'; + +class AlreadyExistsException extends ApiException { + AlreadyExistsException(String message): super(Consts.errorAlreadyExists, message); +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/api_exception.dart b/cw_zano/lib/api/exceptions/api_exception.dart new file mode 100644 index 000000000..e9923942b --- /dev/null +++ b/cw_zano/lib/api/exceptions/api_exception.dart @@ -0,0 +1,9 @@ +class ApiException implements Exception { + final String code; + final String message; + + ApiException(this.code, this.message); + + @override + String toString() => '${this.runtimeType}(code: $code, message: $message)'; +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/restore_from_seed_exception.dart b/cw_zano/lib/api/exceptions/restore_from_seed_exception.dart new file mode 100644 index 000000000..3319cdaf1 --- /dev/null +++ b/cw_zano/lib/api/exceptions/restore_from_seed_exception.dart @@ -0,0 +1,5 @@ +import 'package:cw_zano/api/exceptions/api_exception.dart'; + +class RestoreFromSeedException extends ApiException { + RestoreFromSeedException(String code, String message): super(code, message); +} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/transfer_exception.dart b/cw_zano/lib/api/exceptions/transfer_exception.dart new file mode 100644 index 000000000..d263ff646 --- /dev/null +++ b/cw_zano/lib/api/exceptions/transfer_exception.dart @@ -0,0 +1,5 @@ +import 'package:cw_zano/api/exceptions/api_exception.dart'; + +class TransferException extends ApiException { + TransferException(String code, String message): super(code, message); +} diff --git a/cw_zano/lib/api/exceptions/wrong_seed_exception.dart b/cw_zano/lib/api/exceptions/wrong_seed_exception.dart new file mode 100644 index 000000000..624fc24b9 --- /dev/null +++ b/cw_zano/lib/api/exceptions/wrong_seed_exception.dart @@ -0,0 +1,6 @@ +import 'package:cw_zano/api/consts.dart'; +import 'package:cw_zano/api/exceptions/api_exception.dart'; + +class WrongSeedException extends ApiException { + WrongSeedException(String message): super(Consts.errorWrongSeed, message); +} \ No newline at end of file diff --git a/cw_zano/lib/api/signatures.dart b/cw_zano/lib/api/signatures.dart deleted file mode 100644 index 64d096ca1..000000000 --- a/cw_zano/lib/api/signatures.dart +++ /dev/null @@ -1,151 +0,0 @@ -import 'dart:ffi'; -import 'package:cw_zano/api/structs/ut8_box.dart'; -import 'package:ffi/ffi.dart'; - -// typedef create_wallet = Pointer Function( -// Pointer, Pointer, Pointer, Int32, Pointer); - -typedef restore_wallet_from_seed = Int8 Function( - Pointer, Pointer, Pointer, Int32, Int64, Pointer); - -typedef restore_wallet_from_keys = Int8 Function( - Pointer, - Pointer, - Pointer, - Pointer, - Pointer, - Pointer, - Int32, - Int64, - Pointer); - -typedef is_wallet_exist = Int8 Function(Pointer); - -//typedef load_wallet = Int8 Function(Pointer, Pointer, Int8); - -typedef error_string = Pointer Function(); - -typedef get_filename = Pointer Function(); - -typedef get_seed = Pointer Function(); - -typedef get_address = Pointer Function(Int32, Int32); - -typedef get_full_balance = Pointer Function(Int32); - -typedef get_unlocked_balance = Pointer Function(Int32); - -typedef get_full_balanace = Int64 Function(Int32); - -typedef get_unlocked_balanace = Int64 Function(Int32); - -typedef get_current_height = Int64 Function(); - -typedef get_node_height = Int64 Function(); - -typedef is_connected = Int8 Function(); - -typedef setup_node = Int8 Function(Pointer, Pointer?, - Pointer?, Int8, Int8, Pointer); - -typedef start_refresh = Void Function(); - -typedef connect_to_node = Int8 Function(); - -typedef set_refresh_from_block_height = Void Function(Int64); - -typedef set_recovering_from_seed = Void Function(Int8); - -typedef store_c = Void Function(Pointer); - -typedef set_password = Int8 Function( - Pointer password, Pointer error); - -typedef set_listener = Void Function(); - -typedef get_syncing_height = Int64 Function(); - -typedef is_needed_to_refresh = Int8 Function(); - -// typedef is_new_transaction_exist = Int8 Function(); - -// typedef subaddrress_size = Int32 Function(); - -// typedef subaddrress_refresh = Void Function(Int32); - -// typedef subaddress_get_all = Pointer Function(); - -// typedef subaddress_add_new = Void Function( -// Int32 accountIndex, Pointer label); - -// typedef subaddress_set_label = Void Function( -// Int32 accountIndex, Int32 addressIndex, Pointer label); - -// typedef account_size = Int32 Function(); - -// typedef account_refresh = Void Function(); - -// typedef account_get_all = Pointer Function(); - -// typedef account_add_new = Void Function(Pointer label); - -// typedef account_set_label = Void Function( -// Int32 accountIndex, Pointer label); - -//typedef transactions_refresh = Void Function(); - -//typedef get_tx_key = Pointer? Function(Pointer txId); - -//typedef transactions_count = Int64 Function(); - -//typedef transactions_get_all = Pointer Function(); - -// typedef transaction_create = Int8 Function( -// Pointer address, -// Pointer assetType, -// Pointer paymentId, -// Pointer amount, -// Int8 priorityRaw, -// Pointer error, -// Pointer pendingTransaction); - -// typedef transaction_create_mult_dest = Int8 Function( -// Pointer> addresses, -// Pointer assetType, -// Pointer paymentId, -// Pointer> amounts, -// Int32 size, -// Int8 priorityRaw, -// Pointer error, -// Pointer pendingTransaction); - -// typedef transaction_commit = Int8 Function( -// Pointer, Pointer); - -typedef secret_view_key = Pointer Function(); - -typedef public_view_key = Pointer Function(); - -typedef secret_spend_key = Pointer Function(); - -typedef public_spend_key = Pointer Function(); - -typedef close_current_wallet = Void Function(); - -typedef on_startup = Void Function(); - -typedef rescan_blockchain = Void Function(); - -typedef asset_types = Pointer> Function(); - -typedef asset_types_size = Int32 Function(); - -typedef get_rate = Pointer Function(); - -typedef size_of_rate = Int32 Function(); - -typedef update_rate = Void Function(); - -typedef set_trusted_daemon = Void Function(Int8 trusted); - -typedef trusted_daemon = Int8 Function(); diff --git a/cw_zano/lib/api/structs/ut8_box.dart b/cw_zano/lib/api/structs/utf8_box.dart similarity index 100% rename from cw_zano/lib/api/structs/ut8_box.dart rename to cw_zano/lib/api/structs/utf8_box.dart diff --git a/cw_zano/lib/api/types.dart b/cw_zano/lib/api/types.dart deleted file mode 100644 index 09e83213e..000000000 --- a/cw_zano/lib/api/types.dart +++ /dev/null @@ -1,149 +0,0 @@ -import 'dart:ffi'; -import 'package:cw_zano/api/structs/ut8_box.dart'; -import 'package:ffi/ffi.dart'; - -typedef CreateWallet = Pointer Function( - Pointer, Pointer, Pointer, int, Pointer); - -typedef RestoreWalletFromSeed = int Function( - Pointer, Pointer, Pointer, int, int, Pointer); - -typedef RestoreWalletFromKeys = int Function( - Pointer, - Pointer, - Pointer, - Pointer, - Pointer, - Pointer, - int, - int, - Pointer); - -typedef IsWalletExist = int Function(Pointer); - -//typedef LoadWallet = int Function(Pointer, Pointer, int); - -typedef ErrorString = Pointer Function(); - -typedef GetFilename = Pointer Function(); - -typedef GetSeed = Pointer Function(); - -typedef GetAddress = Pointer Function(int, int); - -typedef GetZanoFullBalance = Pointer Function(int); - -typedef GetZanoUnlockedBalance = Pointer Function(int); - -typedef GetFullBalance = int Function(int); - -typedef GetUnlockedBalance = int Function(int); - -typedef GetCurrentHeight = int Function(); - -typedef GetNodeHeight = int Function(); - -typedef IsConnected = int Function(); - -typedef SetupNode = int Function(Pointer, Pointer?, Pointer?, - int, int, Pointer); - -typedef StartRefresh = void Function(); - -typedef ConnectToNode = int Function(); - -typedef SetRefreshFromBlockHeight = void Function(int); - -typedef SetRecoveringFromSeed = void Function(int); - -typedef Store = void Function(Pointer); - -typedef SetPassword = int Function( - Pointer password, Pointer error); - -typedef SetListener = void Function(); - -typedef GetSyncingHeight = int Function(); - -typedef IsNeededToRefresh = int Function(); - -typedef IsNewTransactionExist = int Function(); - -typedef SubaddressSize = int Function(); - -typedef SubaddressRefresh = void Function(int); - -typedef SubaddressGetAll = Pointer Function(); - -typedef SubaddressAddNew = void Function(int accountIndex, Pointer label); - -typedef SubaddressSetLabel = void Function( - int accountIndex, int addressIndex, Pointer label); - -typedef AccountSize = int Function(); - -typedef AccountRefresh = void Function(); - -typedef AccountGetAll = Pointer Function(); - -typedef AccountAddNew = void Function(Pointer label); - -typedef AccountSetLabel = void Function(int accountIndex, Pointer label); - -typedef TransactionsRefresh = void Function(); - -typedef GetTxKey = Pointer? Function(Pointer txId); - -typedef TransactionsCount = int Function(); - -typedef TransactionsGetAll = Pointer Function(); - -// typedef TransactionCreate = int Function( -// Pointer address, -// Pointer assetType, -// Pointer paymentId, -// Pointer amount, -// int priorityRaw, -// Pointer error, -// Pointer pendingTransaction); - -// typedef TransactionCreateMultDest = int Function( -// Pointer> addresses, -// Pointer assetType, -// Pointer paymentId, -// Pointer> amounts, -// int size, -// int priorityRaw, -// Pointer error, -// Pointer pendingTransaction); - -// typedef TransactionCommit = int Function( -// Pointer, Pointer); - -typedef SecretViewKey = Pointer Function(); - -typedef PublicViewKey = Pointer Function(); - -typedef SecretSpendKey = Pointer Function(); - -typedef PublicSpendKey = Pointer Function(); - -typedef CloseCurrentWallet = void Function(); - -typedef OnStartup = void Function(); - -typedef RescanBlockchainAsync = void Function(); - -typedef AssetTypes = Pointer> Function(); - -typedef AssetTypesSize = int Function(); - -typedef GetRate = Pointer Function(); - -typedef SizeOfRate = int Function(); - -typedef UpdateRate = void Function(); - -typedef SetTrustedDaemon = void Function(int); - -typedef TrustedDaemon = int Function(); diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart index 3d996bf81..712f45459 100644 --- a/cw_zano/lib/api/wallet.dart +++ b/cw_zano/lib/api/wallet.dart @@ -1,142 +1,16 @@ import 'dart:async'; import 'dart:convert'; -import 'dart:ffi'; + import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/model/get_wallet_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; import 'package:cw_zano/zano_balance.dart'; import 'package:cw_zano/zano_wallet.dart'; -import 'package:ffi/ffi.dart'; -import 'package:cw_zano/api/structs/ut8_box.dart'; -import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/calls.dart' as calls; import 'package:flutter/foundation.dart'; -import 'package:flutter/services.dart'; import 'package:mobx/mobx.dart' as mobx; -int _boolToInt(bool value) => value ? 1 : 0; - -final getFileNameNative = - zanoApi.lookup>('get_filename').asFunction(); - -/*final getSeedNative = - zanoApi.lookup>('seed').asFunction();*/ - -final getAddressNative = - zanoApi.lookup>('get_address').asFunction(); - -final getFullBalanceNative = zanoApi - .lookup>('get_full_balance') - .asFunction(); - -final getUnlockedBalanceNative = zanoApi - .lookup>('get_unlocked_balance') - .asFunction(); - -/**final getCurrentHeightNative = zanoApi - .lookup>('get_current_height') - .asFunction();*/ - -// final getNodeHeightNative = zanoApi -// .lookup>('get_node_height') -// .asFunction(); - -final isConnectedNative = - zanoApi.lookup>('is_connected').asFunction(); - -final setupNodeNative = - zanoApi.lookup>('setup_node').asFunction(); - -// final startRefreshNative = zanoApi -// .lookup>('start_refresh') -// .asFunction(); - -final connecToNodeNative = - zanoApi.lookup>('connect_to_node').asFunction(); - -final setRefreshFromBlockHeightNative = zanoApi - .lookup>('set_refresh_from_block_height') - .asFunction(); - -// final setRecoveringFromSeedNative = zanoApi -// .lookup>('set_recovering_from_seed') -// .asFunction(); - - -final storeNative = zanoApi.lookup>('store').asFunction(); - -final setPasswordNative = - zanoApi.lookup>('set_password').asFunction(); - -/**final setListenerNative = zanoApi - .lookup>('set_listener') - .asFunction();*/ - -final getSyncingHeightNative = zanoApi - .lookup>('get_syncing_height') - .asFunction(); - -final isNeededToRefreshNative = zanoApi - .lookup>('is_needed_to_refresh') - .asFunction(); - -// final isNewTransactionExistNative = zanoApi -// .lookup>('is_new_transaction_exist') -// .asFunction(); - -final getSecretViewKeyNative = - zanoApi.lookup>('secret_view_key').asFunction(); - -final getPublicViewKeyNative = - zanoApi.lookup>('public_view_key').asFunction(); - -final getSecretSpendKeyNative = zanoApi - .lookup>('secret_spend_key') - .asFunction(); - -final getPublicSpendKeyNative = zanoApi - .lookup>('public_spend_key') - .asFunction(); - -final closeCurrentWalletNative = zanoApi - .lookup>('close_current_wallet') - .asFunction(); - -final onStartupNative = - zanoApi.lookup>('on_startup').asFunction(); - -final rescanBlockchainAsyncNative = zanoApi - .lookup>('rescan_blockchain') - .asFunction(); - -// final setTrustedDaemonNative = zanoApi -// .lookup>('set_trusted_daemon') -// .asFunction(); - -final trustedDaemonNative = - zanoApi.lookup>('trusted_daemon').asFunction(); - -int getSyncingHeight() => getSyncingHeightNative(); - -bool isNeededToRefresh() => isNeededToRefreshNative() != 0; - -//bool isNewTransactionExist() => isNewTransactionExistNative() != 0; - -String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); - -/**String getSeed() => convertUTF8ToString(pointer: getSeedNative());*/ - -String getAddress({int accountIndex = 0, int addressIndex = 0}) => - convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); - -int getFullBalance({int accountIndex = 0}) => getFullBalanceNative(accountIndex); - -int getUnlockedBalance({int accountIndex = 0}) => getUnlockedBalanceNative(accountIndex); - int getCurrentHeight(int hWallet) { final json = calls.getWalletStatus(hWallet); final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); @@ -149,126 +23,6 @@ int getNodeHeightSync(int hWallet) { return walletStatus.currentDaemonHeight; } -// int getWalletInfo(int hWallet) { -// final json = calls.getWalletInfo(hWallet); -// final walletInfo = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); -// zanoSeed = walletInfo.wiExtended.seed; -// zanoKeys = ZanoWalletKeys( -// privateSpendKey: walletInfo.wiExtended.spendPrivateKey, -// privateViewKey: walletInfo.wiExtended.viewPrivateKey, -// publicSpendKey: walletInfo.wiExtended.spendPublicKey, -// publicViewKey: walletInfo.wiExtended.viewPublicKey, -// ); -// return 0; -// } - -// int getTxFee(int priority) { -// return calls.getCurrentTxFee(priority); -// } - -bool isConnectedSync() => isConnectedNative() != 0; - -bool setupNodeSync({ - required String address, - String? login, - String? password, - bool useSSL = false, - bool isLightWallet = false, - /*String? socksProxyAddress*/ -}) { - final addressPointer = address.toNativeUtf8(); - Pointer? loginPointer; - Pointer? socksProxyAddressPointer; - Pointer? passwordPointer; - - if (login != null) { - loginPointer = login.toNativeUtf8(); - } - - if (password != null) { - passwordPointer = password.toNativeUtf8(); - } - - /*if (socksProxyAddress != null) { - socksProxyAddressPointer = socksProxyAddress.toNativeUtf8(); - }*/ - - final errorMessagePointer = ''.toNativeUtf8(); - debugPrint( - "setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); - // TODO: here can be ZERO! upd: no - final isSetupNode = setupNodeNative( - addressPointer, - loginPointer, - passwordPointer, - _boolToInt(useSSL), - _boolToInt(isLightWallet), - /*socksProxyAddressPointer,*/ - errorMessagePointer) != - 0; - debugPrint("setup_node result $isSetupNode"); - - calloc.free(addressPointer); - - if (loginPointer != null) { - calloc.free(loginPointer); - } - - if (passwordPointer != null) { - calloc.free(passwordPointer); - } - - // TODO: fix it - /**if (!isSetupNode) { - throw SetupWalletException( - message: convertUTF8ToString(pointer: errorMessagePointer)); - }*/ - - return isSetupNode; -} - -//void startRefreshSync() => startRefreshNative(); - -Future connectToNode() async => connecToNodeNative() != 0; - -void setRefreshFromBlockHeight({required int height}) => setRefreshFromBlockHeightNative(height); - -// void setRecoveringFromSeed({required bool isRecovery}) => -// setRecoveringFromSeedNative(_boolToInt(isRecovery)); - -void storeSync(int hWallet) { - calls.store(hWallet); - // TODO: fixit - /*final pathPointer = ''.toNativeUtf8(); - storeNative(pathPointer); - calloc.free(pathPointer);*/ -} - -void setPasswordSync(String password) { - final passwordPointer = password.toNativeUtf8(); - final errorMessagePointer = calloc(); - final changed = setPasswordNative(passwordPointer, errorMessagePointer) != 0; - calloc.free(passwordPointer); - - if (!changed) { - final message = errorMessagePointer.ref.getValue(); - calloc.free(errorMessagePointer); - throw Exception(message); - } - - calloc.free(errorMessagePointer); -} - -void closeCurrentWallet() => closeCurrentWalletNative(); - -String getSecretViewKey() => convertUTF8ToString(pointer: getSecretViewKeyNative()); - -String getPublicViewKey() => convertUTF8ToString(pointer: getPublicViewKeyNative()); - -String getSecretSpendKey() => convertUTF8ToString(pointer: getSecretSpendKeyNative()); - -String getPublicSpendKey() => convertUTF8ToString(pointer: getPublicSpendKeyNative()); - class SyncListener { SyncListener(this.onNewBlock, this.onNewTransaction) : _cachedBlockchainHeight = 0, @@ -300,15 +54,8 @@ class SyncListener { onNewTransaction?.call(); }*/ - ///var syncHeight = getSyncingHeight(); var syncHeight = getCurrentHeight(hWallet); - if (syncHeight <= 0) { - syncHeight = getCurrentHeight(hWallet); - } - - //getWalletInfo(hWallet); - final json = calls.getWalletInfo(hWallet); final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); wallet.seed = result.wiExtended.seed; @@ -324,8 +71,6 @@ class SyncListener { wallet.balance = mobx.ObservableMap.of( {CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); - ///getTxFee(hWallet); - if (_initialSyncHeight <= 0) { _initialSyncHeight = syncHeight; } @@ -360,59 +105,3 @@ SyncListener setListeners( /**setListenerNative();*/ return listener; } - -void onStartup() => onStartupNative(); - -void _storeSync(int hWallet) => storeSync(hWallet); - -bool _setupNodeSync(Map args) { - final address = args['address'] as String; - final login = (args['login'] ?? '') as String; - final password = (args['password'] ?? '') as String; - final useSSL = args['useSSL'] as bool; - final isLightWallet = args['isLightWallet'] as bool; - /*final socksProxyAddress = (args['socksProxyAddress'] ?? '') as String;*/ - - return setupNodeSync( - address: address, - login: login, - password: password, - useSSL: useSSL, - isLightWallet: isLightWallet, /*socksProxyAddress: socksProxyAddress*/ - ); -} - -bool _isConnected(Object _) => isConnectedSync(); - -//int _getNodeHeight(Object _) => getNodeHeightSync(); - -//void startRefresh() => startRefreshSync(); - -Future setupNode( - {required String address, - String? login, - String? password, - bool useSSL = false, - /*String? socksProxyAddress,*/ - bool isLightWallet = false}) => - compute, bool>(_setupNodeSync, { - 'address': address, - 'login': login, - 'password': password, - 'useSSL': useSSL, - 'isLightWallet': isLightWallet, - //'socksProxyAddress': socksProxyAddress - }); - -Future store(int hWallet) => compute(_storeSync, 0); - -Future isConnected() => compute(_isConnected, 0); - -//Future getNodeHeight() => compute(_getNodeHeight, 0); - -void rescanBlockchainAsync() => rescanBlockchainAsyncNative(); - -// Future setTrustedDaemon(bool trusted) async => -// setTrustedDaemonNative(_boolToInt(trusted)); - -Future trustedDaemon() async => trustedDaemonNative() != 0; diff --git a/cw_zano/lib/api/wallet_manager.dart b/cw_zano/lib/api/wallet_manager.dart deleted file mode 100644 index 997e02102..000000000 --- a/cw_zano/lib/api/wallet_manager.dart +++ /dev/null @@ -1,255 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; -import 'package:flutter/foundation.dart'; -import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/signatures.dart'; -import 'package:cw_zano/api/types.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:cw_zano/api/exceptions/wallet_restore_from_keys_exception.dart'; - -// final createWalletNative = zanoApi -// .lookup>('create_wallet') -// .asFunction(); - -final restoreWalletFromSeedNative = zanoApi - .lookup>( - 'restore_wallet_from_seed') - .asFunction(); - -final restoreWalletFromKeysNative = zanoApi - .lookup>( - 'restore_wallet_from_keys') - .asFunction(); - -final isWalletExistNative = zanoApi - .lookup>('is_wallet_exist') - .asFunction(); - -// final loadWalletNative = zanoApi -// .lookup>('load_wallet') -// .asFunction(); - -final errorStringNative = zanoApi - .lookup>('error_string') - .asFunction(); - -/*String createWalletSync( - {required String path, - required String password, - required String language, - int nettype = 0}) { - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final languagePointer = language.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - debugPrint("create_wallet path $path password $password language $language"); - final result = convertUTF8ToString(pointer: createWalletNative(pathPointer, passwordPointer, - languagePointer, nettype, errorMessagePointer)); - //debugPrint("create_wallet $result"); - - calloc.free(pathPointer); - calloc.free(passwordPointer); - calloc.free(languagePointer); - - return result; - /*if (hWallet == 0) { - throw WalletCreationException( - message: convertUTF8ToString(pointer: errorMessagePointer)); - } - - return hWallet; - // setupNodeSync(address: "node.moneroworld.com:18089");*/ -}*/ - -bool isWalletExistSync({required String path}) { - final pathPointer = path.toNativeUtf8(); - final isExist = isWalletExistNative(pathPointer) != 0; - - calloc.free(pathPointer); - - return isExist; -} - -// void restoreWalletFromSeedSync( -// {required String path, -// required String password, -// required String seed, -// int nettype = 0, -// int restoreHeight = 0}) { -// final pathPointer = path.toNativeUtf8(); -// final passwordPointer = password.toNativeUtf8(); -// final seedPointer = seed.toNativeUtf8(); -// final errorMessagePointer = ''.toNativeUtf8(); -// final isWalletRestored = restoreWalletFromSeedNative( -// pathPointer, -// passwordPointer, -// seedPointer, -// nettype, -// restoreHeight, -// errorMessagePointer) != -// 0; - -// calloc.free(pathPointer); -// calloc.free(passwordPointer); -// calloc.free(seedPointer); - -// if (!isWalletRestored) { -// throw WalletRestoreFromSeedException( -// message: convertUTF8ToString(pointer: errorMessagePointer)); -// } -// } - -void restoreWalletFromKeysSync( - {required String path, - required String password, - required String language, - required String address, - required String viewKey, - required String spendKey, - int nettype = 0, - int restoreHeight = 0}) { - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final languagePointer = language.toNativeUtf8(); - final addressPointer = address.toNativeUtf8(); - final viewKeyPointer = viewKey.toNativeUtf8(); - final spendKeyPointer = spendKey.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - final isWalletRestored = restoreWalletFromKeysNative( - pathPointer, - passwordPointer, - languagePointer, - addressPointer, - viewKeyPointer, - spendKeyPointer, - nettype, - restoreHeight, - errorMessagePointer) != - 0; - - calloc.free(pathPointer); - calloc.free(passwordPointer); - calloc.free(languagePointer); - calloc.free(addressPointer); - calloc.free(viewKeyPointer); - calloc.free(spendKeyPointer); - - if (!isWalletRestored) { - throw WalletRestoreFromKeysException( - message: convertUTF8ToString(pointer: errorMessagePointer)); - } -} - -// void loadWallet( -// {required String path, required String password, int nettype = 0}) { -// final pathPointer = path.toNativeUtf8(); -// final passwordPointer = password.toNativeUtf8(); -// final loaded = loadWalletNative(pathPointer, passwordPointer, nettype) != 0; -// calloc.free(pathPointer); -// calloc.free(passwordPointer); - -// if (!loaded) { -// throw WalletOpeningException( -// message: convertUTF8ToString(pointer: errorStringNative())); -// } -// } - -// String _createWallet(Map args) { -// final path = args['path'] as String; -// final password = args['password'] as String; -// final language = args['language'] as String; - -// return createWalletSync(path: path, password: password, language: language); -// } - -// void _restoreFromSeed(Map args) { -// final path = args['path'] as String; -// final password = args['password'] as String; -// final seed = args['seed'] as String; -// final restoreHeight = args['restoreHeight'] as int; - -// restoreWalletFromSeedSync( -// path: path, password: password, seed: seed, restoreHeight: restoreHeight); -// } - -void _restoreFromKeys(Map args) { - final path = args['path'] as String; - final password = args['password'] as String; - final language = args['language'] as String; - final restoreHeight = args['restoreHeight'] as int; - final address = args['address'] as String; - final viewKey = args['viewKey'] as String; - final spendKey = args['spendKey'] as String; - - restoreWalletFromKeysSync( - path: path, - password: password, - language: language, - restoreHeight: restoreHeight, - address: address, - viewKey: viewKey, - spendKey: spendKey); -} - -// Future _openWallet(Map args) async => loadWallet( -// path: args['path'] as String, password: args['password'] as String); - -bool _isWalletExist(String path) => isWalletExistSync(path: path); - -// void openWallet( -// {required String path, -// required String password, -// int nettype = 0}) async => -// loadWallet(path: path, password: password, nettype: nettype); - -// Future openWalletAsync(Map args) async => -// compute(_openWallet, args); - -// Future createWallet( -// {required String path, -// required String password, -// required String language, -// int nettype = 0}) async => -// compute, String>(_createWallet, { -// 'path': path, -// 'password': password, -// 'language': language, -// 'nettype': nettype -// }); - -// Future restoreFromSeed( -// {required String path, -// required String password, -// required String seed, -// int nettype = 0, -// int restoreHeight = 0}) async => -// compute, void>(_restoreFromSeed, { -// 'path': path, -// 'password': password, -// 'seed': seed, -// 'nettype': nettype, -// 'restoreHeight': restoreHeight -// }); - -Future restoreFromKeys( - {required String path, - required String password, - required String language, - required String address, - required String viewKey, - required String spendKey, - int nettype = 0, - int restoreHeight = 0}) async => - compute, void>(_restoreFromKeys, { - 'path': path, - 'password': password, - 'language': language, - 'address': address, - 'viewKey': viewKey, - 'spendKey': spendKey, - 'nettype': nettype, - 'restoreHeight': restoreHeight - }); - -Future isWalletExist({required String path}) => - compute(_isWalletExist, path); diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index 4f680463d..b3a293784 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:cw_zano/api/exceptions/transfer_exception.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/model/transfer_result.dart'; @@ -11,7 +12,8 @@ import 'package:cw_zano/zano_wallet.dart'; class PendingZanoTransaction with PendingTransaction { PendingZanoTransaction( - {required this.fee, + {required this.zanoWallet, + required this.fee, required this.intAmount, //required this.stringAmount, required this.hWallet, @@ -19,6 +21,7 @@ class PendingZanoTransaction with PendingTransaction { required this.assetId, required this.comment}); + final ZanoWalletBase zanoWallet; final int hWallet; final int intAmount; //final String stringAmount; @@ -52,7 +55,7 @@ class PendingZanoTransaction with PendingTransaction { TransferParams( destinations: [ Destination( - amount: intAmount.toString(), //stringAmount, + amount: intAmount.toString(), address: address, assetId: assetId, ) @@ -66,22 +69,23 @@ class PendingZanoTransaction with PendingTransaction { )); print('transfer result $result'); final map = jsonDecode(result); - if (map["result"] != null && map["result"]["result"] != null ) { + if (map['result'] != null && map['result']['result'] != null ) { transferResult = TransferResult.fromJson( - map["result"]["result"] as Map, + map['result']['result'] as Map, ); + await zanoWallet.fetchTransactions(); + } else if (map['result'] != null && map['result']['error'] != null) { + final String code; + if (map['result']['error']['code'] is int) { + code = (map['result']['error']['code'] as int).toString(); + } else if (map['result']['error']['code'] is String) { + code = map['result']['error']['code'] as String; + } else { + code = ''; + } + final message = map['result']['error']['message'] as String; + print('transfer error $code $message'); + throw TransferException(code, message); } - // try { - // zano_transaction_history.commitTransactionFromPointerAddress( - // address: pendingTransactionDescription.pointerAddress); - // } catch (e) { - // final message = e.toString(); - - // if (message.contains('Reason: double spend')) { - // throw DoubleSpendException(); - // } - - // rethrow; - // } } } diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/zano_transaction_info.dart index 02ff3fff2..c332bf4d6 100644 --- a/cw_zano/lib/zano_transaction_info.dart +++ b/cw_zano/lib/zano_transaction_info.dart @@ -32,37 +32,6 @@ class ZanoTransactionInfo extends TransactionInfo { assetType = 'ZANO', // TODO: FIXIT: recipientAddress = history.remoteAddresses.isNotEmpty ? history.remoteAddresses.first : ''; - /*ZanoTransactionInfo.fromMap(Map map) - : id = (map['hash'] ?? '') as String, - height = (map['height'] ?? 0) as int, - direction = - parseTransactionDirectionFromNumber(map['direction'] as String) ?? - TransactionDirection.incoming, - date = DateTime.fromMillisecondsSinceEpoch( - int.parse(map['timestamp'] as String? ?? '0') * 1000), - isPending = parseBoolFromString(map['isPending'] as String), - amount = map['amount'] as int, - accountIndex = int.parse(map['accountIndex'] as String), - addressIndex = map['addressIndex'] as int, - confirmations = map['confirmations'] as int, - key = getTxKey((map['hash'] ?? '') as String), - fee = map['fee'] as int? ?? 0;*/ - - /*ZanoTransactionInfo.fromRow(TransactionInfoRow row) - : id = row.getHash(), - height = row.blockHeight, - direction = parseTransactionDirectionFromInt(row.direction) ?? - TransactionDirection.incoming, - date = DateTime.fromMillisecondsSinceEpoch(row.getDatetime() * 1000), - isPending = row.isPending != 0, - amount = row.getAmount(), - accountIndex = row.subaddrAccount, - addressIndex = row.subaddrIndex, - confirmations = row.confirmations, - key = null, //getTxKey(row.getHash()), - fee = row.fee, - assetType = row.getAssetType();*/ - final String id; final int height; final TransactionDirection direction; diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 9d7e8d5ae..bc7fa92f7 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -25,6 +25,7 @@ import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/zano_transaction_info.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; import 'package:ffi/ffi.dart'; +import 'package:flutter/material.dart'; import 'package:mobx/mobx.dart'; part 'zano_wallet.g.dart'; @@ -103,10 +104,10 @@ abstract class ZanoWalletBase await updateTransactions(); if (walletInfo.isRecovery) { - ///zano_wallet.setRecoveringFromSeed(isRecovery: walletInfo.isRecovery); + debugPrint('setRecoveringFromSeed isRecovery ${walletInfo.isRecovery}'); if (zano_wallet.getCurrentHeight(hWallet) <= 1) { - zano_wallet.setRefreshFromBlockHeight(height: walletInfo.restoreHeight); + debugPrint('setRefreshFromBlockHeight height ${walletInfo.restoreHeight}'); } } @@ -128,7 +129,7 @@ abstract class ZanoWalletBase Future connectToNode({required Node node}) async { try { syncStatus = ConnectingSyncStatus(); - await zano_wallet.setupNode( + await calls.setupNode( address: "195.201.107.230:33336", // node.uriRaw, login: "", // node.login, password: "", // node.password, @@ -153,8 +154,7 @@ abstract class ZanoWalletBase try { syncStatus = AttemptingSyncStatus(); - //zano_wallet.startRefresh(); - print("start refresh"); + debugPrint("startRefresh"); _setListeners(); _listener?.start(this, hWallet); } catch (e) { @@ -172,31 +172,11 @@ abstract class ZanoWalletBase ? output.extractedAddress! : output.address; final stringAmount = output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); - //final int? formattedAmount = output.sendAll ? null : output.formattedCryptoAmount; final fee = calculateEstimatedFee(creds.priority); - // final result = await calls.transfer( - // hWallet, - // TransferParams( - // destinations: [ - // Destination( - // amount: amount!, - // address: address, - // assetId: assetId, - // ) - // ], - // fee: fee, - // mixin: zanoMixin, - // paymentId: '', // TODO: fixit - // comment: output.note ?? '', - // pushPayer: false, - // hideReceiver: false, - // )); final intAmount = (double.parse(stringAmount!) * pow(10, 12)).toInt(); - // final description = PendingTransactionDescription( - // amount: iAmount, fee: fee, hash: '', pointerAddress: 0); final transaction = PendingZanoTransaction(fee: fee, intAmount: intAmount, hWallet: hWallet, address: address, assetId: assetId, - comment: output.note ?? ''); + comment: output.note ?? '', zanoWallet: this); return transaction; /*final _credentials = credentials as ZanoTransactionCreationCredentials; @@ -277,7 +257,7 @@ abstract class ZanoWalletBase Future save() async { await walletAddresses.updateAddressesInBox(); await backupWalletFiles(name); - await zano_wallet.store(hWallet); + await calls.store(hWallet); } @override @@ -306,13 +286,9 @@ abstract class ZanoWalletBase @override Future changePassword(String password) async { - zano_wallet.setPasswordSync(password); + calls.setPassword(hWallet: hWallet, password: password); } - //Future getNodeHeight() async => zano_wallet.getNodeHeight(); - - Future isConnected() async => zano_wallet.isConnected(); - Future setAsRecovered() async { walletInfo.isRecovery = false; await walletInfo.save(); @@ -322,8 +298,8 @@ abstract class ZanoWalletBase Future rescan({required int height}) async { walletInfo.restoreHeight = height; walletInfo.isRecovery = true; - zano_wallet.setRefreshFromBlockHeight(height: height); - zano_wallet.rescanBlockchainAsync(); + debugPrint('setRefreshFromBlockHeight height $height'); + debugPrint('rescanBlockchainAsync'); await startSync(); _askForUpdateBalance(); /**walletAddresses.accountList.update();*/ @@ -332,9 +308,6 @@ abstract class ZanoWalletBase await walletInfo.save(); } - String getTransactionAddress(int accountIndex, int addressIndex) => - zano_wallet.getAddress(accountIndex: accountIndex, addressIndex: addressIndex); - Future _refreshTransactions() async { final result = await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); final map = jsonDecode(result); @@ -403,36 +376,17 @@ abstract class ZanoWalletBase if (currentHeight <= 1) { final height = _getHeightByDate(walletInfo.date); - ///zano_wallet.setRecoveringFromSeed(isRecovery: true); - zano_wallet.setRefreshFromBlockHeight(height: height); + debugPrint('setRecoveringFromSeed isRecovery true'); + debugPrint('setRefreshFromBlockHeight height $height'); } } - // int _getHeightDistance(DateTime date) { - // final distance = - // DateTime.now().millisecondsSinceEpoch - date.millisecondsSinceEpoch; - // final daysTmp = (distance / 86400).round(); - // final days = daysTmp < 1 ? 1 : daysTmp; - - // return days * 1000; - // } - int _getHeightByDate(DateTime date) { - // TODO: !!! 12/10 commented return 0; - // final nodeHeight = zano_wallet.getNodeHeightSync(); - // final heightDistance = _getHeightDistance(date); - - // if (nodeHeight <= 0) { - // return 0; - // } - - // return nodeHeight - heightDistance; } void _askForUpdateBalance() { - print("ask for update balance"); - //balance.addAll(getZanoBalance()); + debugPrint('askForUpdateBalance'); } Future _askForUpdateTransactionHistory() async => await updateTransactions(); diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 9cca7c4f4..74b981724 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -11,8 +11,11 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/consts.dart'; +import 'package:cw_zano/api/exceptions/already_exists_exception.dart'; +import 'package:cw_zano/api/exceptions/restore_from_seed_exception.dart'; +import 'package:cw_zano/api/exceptions/wrong_seed_exception.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; -import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; import 'package:cw_zano/zano_balance.dart'; import 'package:cw_zano/zano_wallet.dart'; import 'package:hive/hive.dart'; @@ -106,7 +109,7 @@ class ZanoWalletService extends WalletService isWalletExit(String name) async { try { final path = await pathForWallet(name: name, type: getType()); - return zano_wallet_manager.isWalletExist(path: path); + return calls.isWalletExist(path: path); } catch (e) { // TODO: Implement Exception for wallet list service. print('ZanoWalletsManager Error: $e'); @@ -188,25 +191,7 @@ class ZanoWalletService extends WalletService restoreFromKeys(ZanoRestoreWalletFromKeysCredentials credentials) async { - try { - final path = await pathForWallet(name: credentials.name, type: getType()); - await zano_wallet_manager.restoreFromKeys( - path: path, - password: credentials.password!, - language: credentials.language, - restoreHeight: credentials.height!, - address: credentials.address, - viewKey: credentials.viewKey, - spendKey: credentials.spendKey); - final wallet = ZanoWallet(credentials.walletInfo!); - await wallet.init(); - - return wallet; - } catch (e) { - // TODO: Implement Exception for wallet list service. - print('ZanoWalletsManager Error: $e'); - rethrow; - } + throw UnimplementedError("Restore from keys not implemented"); } @override @@ -216,12 +201,20 @@ class ZanoWalletService extends WalletService; + final map = json.decode(result) as Map; if (map['result'] != null) { final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); + } else if (map['error'] != null) { + final code = map['error']['code'] as String; + final message = map['error']['message'] as String; + if (code == Consts.errorWrongSeed) { + throw WrongSeedException(message); + } else if (code == Consts.errorAlreadyExists) { + throw AlreadyExistsException(message); + } + throw RestoreFromSeedException(code, message); } await calls.store(hWallet); await wallet.init(); diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 28690bad0..9ef9c3983 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -218,7 +218,7 @@ class CWZano extends Zano { @override void onStartup() { - monero_wallet_api.onStartup(); + debugPrint("onStartup"); } @override @@ -232,11 +232,11 @@ class CWZano extends Zano { return ZanoWalletService(walletInfoSource); } - @override - String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { - final zanoWallet = wallet as ZanoWallet; - return zanoWallet.getTransactionAddress(accountIndex, addressIndex); - } + // @override + // String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { + // final zanoWallet = wallet as ZanoWallet; + // return zanoWallet.getTransactionAddress(accountIndex, addressIndex); + // } @override CryptoCurrency assetOfTransaction(TransactionInfo tx) { diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index 7f8a439ee..b4d22b1ac 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -19,11 +19,8 @@ import 'package:cw_zano/zano_wallet_service.dart'; import 'package:cw_zano/zano_wallet.dart'; import 'package:cw_zano/zano_transaction_info.dart'; import 'package:cw_zano/zano_transaction_history.dart'; -import 'package:cw_core/account.dart' as monero_account; -import 'package:cw_zano/api/wallet.dart' as monero_wallet_api; import 'package:cw_zano/mnemonics/english.dart'; import 'package:cw_zano/zano_transaction_creation_credentials.dart'; -import 'package:cw_zano/api/balance_list.dart'; part 'cw_zano.dart'; @@ -95,7 +92,7 @@ abstract class Zano { ZanoWalletDetails getZanoWalletDetails(Object wallet); - String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); + // String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); int getHeightByDate({required DateTime date}); Future getCurrentHeight(); From e4c775bffe886f36b7f1a87cbfdb3cb9218584b4 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 16 Dec 2023 15:00:22 +0000 Subject: [PATCH 15/58] send + receive qr code --- cw_zano/lib/api/calls.dart | 17 +++++++ .../exceptions/create_wallet_exception.dart | 7 +++ .../api/model/get_address_info_result.dart | 16 +++++++ .../api/model/get_wallet_status_result.dart | 9 ---- cw_zano/lib/zano_utils.dart | 17 +++++++ cw_zano/lib/zano_wallet.dart | 3 +- cw_zano/lib/zano_wallet_addresses.dart | 7 ++- cw_zano/lib/zano_wallet_service.dart | 47 ++++++------------- lib/core/address_validator.dart | 7 ++- lib/core/validator.dart | 2 +- .../exchange/exchange_view_model.dart | 7 ++- lib/zano.dart | 3 +- lib/zano/cw_zano.dart | 5 +- 13 files changed, 90 insertions(+), 57 deletions(-) create mode 100644 cw_zano/lib/api/exceptions/create_wallet_exception.dart create mode 100644 cw_zano/lib/api/model/get_address_info_result.dart create mode 100644 cw_zano/lib/zano_utils.dart diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart index 402ada3bd..5a7593c77 100644 --- a/cw_zano/lib/api/calls.dart +++ b/cw_zano/lib/api/calls.dart @@ -131,6 +131,23 @@ bool isWalletExist({required String path}) { return isExist; } +// char* get_address_info(char* address) +final _getAddressInfoNative = zanoApi + .lookup>('get_address_info') + .asFunction<_GetAddressInfo>(); +typedef _get_address_info = Pointer Function(Pointer password); +typedef _GetAddressInfo = Pointer Function(Pointer address); + +String getAddressInfo(String address) { + debugPrint('get address info $address'); + final addressPointer = address.toNativeUtf8(); + final result = + convertUTF8ToString(pointer: _getAddressInfoNative(addressPointer)); + debugPrint('get address info result $result'); + calloc.free(addressPointer); + return result; +} + bool setupNode({ required String address, String? login, diff --git a/cw_zano/lib/api/exceptions/create_wallet_exception.dart b/cw_zano/lib/api/exceptions/create_wallet_exception.dart new file mode 100644 index 000000000..199f743a0 --- /dev/null +++ b/cw_zano/lib/api/exceptions/create_wallet_exception.dart @@ -0,0 +1,7 @@ +class CreateWalletException implements Exception { + final String message; + + CreateWalletException(this.message): super(); + @override + String toString() => '${this.runtimeType}(message: $message)'; +} \ No newline at end of file diff --git a/cw_zano/lib/api/model/get_address_info_result.dart b/cw_zano/lib/api/model/get_address_info_result.dart new file mode 100644 index 000000000..4d3db12f6 --- /dev/null +++ b/cw_zano/lib/api/model/get_address_info_result.dart @@ -0,0 +1,16 @@ +class GetAddressInfoResult { + final bool valid; + final bool auditable; + final bool paymentId; + final bool wrap; + + GetAddressInfoResult( + {required this.valid, required this.auditable, required this.paymentId, required this.wrap}); + + factory GetAddressInfoResult.fromJson(Map json) => GetAddressInfoResult( + valid: json['valid'] as bool, + auditable: json['auditable'] as bool, + paymentId: json['payment_id'] as bool, + wrap: json['wrap'] as bool, + ); +} diff --git a/cw_zano/lib/api/model/get_wallet_status_result.dart b/cw_zano/lib/api/model/get_wallet_status_result.dart index f58d16a01..85a80279f 100644 --- a/cw_zano/lib/api/model/get_wallet_status_result.dart +++ b/cw_zano/lib/api/model/get_wallet_status_result.dart @@ -23,13 +23,4 @@ class GetWalletStatusResult { progress: json['progress'] as int, walletState: json['wallet_state'] as int, ); - /* - "current_daemon_height": 238049, - "current_wallet_height": 238038, - "is_daemon_connected": true, - "is_in_long_refresh": true, - "progress": 0, - "wallet_state": 1 - - */ } diff --git a/cw_zano/lib/zano_utils.dart b/cw_zano/lib/zano_utils.dart new file mode 100644 index 000000000..54235e3fa --- /dev/null +++ b/cw_zano/lib/zano_utils.dart @@ -0,0 +1,17 @@ +import 'dart:convert'; + +import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/model/get_address_info_result.dart'; + +class ZanoUtils { + static bool validateAddress(String address) { + try { + final result = GetAddressInfoResult.fromJson( + jsonDecode(calls.getAddressInfo(address)) as Map, + ); + return result.valid; + } catch (err) { + return false; + } + } +} diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index bc7fa92f7..b071cb67b 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -97,8 +97,9 @@ abstract class ZanoWalletBase _hWallet = value; } - Future init() async { + Future init(String address) async { await walletAddresses.init(); + await walletAddresses.updateAddress(address); ///balance.addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); _setListeners(); await updateTransactions(); diff --git a/cw_zano/lib/zano_wallet_addresses.dart b/cw_zano/lib/zano_wallet_addresses.dart index 888a59051..d2c7d14cd 100644 --- a/cw_zano/lib/zano_wallet_addresses.dart +++ b/cw_zano/lib/zano_wallet_addresses.dart @@ -32,7 +32,12 @@ abstract class ZanoWalletAddressesBase extends WalletAddresses with Store { /*accountList.update(); account = accountList.accounts.first;*/ /**updateSubaddressList(accountIndex: account?.id ?? 0);*/ - address = walletInfo.address; + //address = walletInfo.address; + //await updateAddressesInBox(); + } + + Future updateAddress(String address) async { + this.address = address; await updateAddressesInBox(); } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 74b981724..d057c72ff 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -13,6 +13,7 @@ import 'package:cw_core/wallet_type.dart'; import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/consts.dart'; import 'package:cw_zano/api/exceptions/already_exists_exception.dart'; +import 'package:cw_zano/api/exceptions/create_wallet_exception.dart'; import 'package:cw_zano/api/exceptions/restore_from_seed_exception.dart'; import 'package:cw_zano/api/exceptions/wrong_seed_exception.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; @@ -65,38 +66,19 @@ class ZanoWalletService extends WalletService WalletType.zano; - // @override - // Future create(WalletCredentials credentials) async { - // try { - // final wallet = ZanoWallet(credentials.walletInfo!); - // wallet.connectToNode(node: Node()); // TODO: Node() ??? - // //wallet.setupNode(address: "195.201.107.230:33336", login: "", password: ""); - // final path = await pathForWallet(name: credentials.name, type: getType()); - // wallet.createWallet(path: path, password: credentials.password!); - // return wallet; - // } catch (e) { - // print("ZanoWalletService.create error $e"); - // rethrow; - // } - // } - @override Future create(WalletCredentials credentials) async { try { final wallet = ZanoWallet(credentials.walletInfo!); await wallet.connectToNode(node: Node()); final path = await pathForWallet(name: credentials.name, type: getType()); - final result = calls.createWallet( - language: "", path: path, password: credentials.password!); + final result = calls.createWallet(language: "", path: path, password: credentials.password!); final map = json.decode(result) as Map; - if (map['result'] != null) { - final createWalletResult = - CreateWalletResult.fromJson(map['result'] as Map); - _parseCreateWalletResult(createWalletResult, wallet); - } - // TODO: remove it TODO why? + if (map['result'] == null) throw CreateWalletException(''); + final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); + _parseCreateWalletResult(createWalletResult, wallet); await calls.store(hWallet); - await wallet.init(); + await wallet.init(createWalletResult.wi.address); return wallet; } catch (e) { // TODO: Implement Exception for wallet list service. @@ -133,13 +115,11 @@ class ZanoWalletService extends WalletService; - if (map['result'] != null) { - final createWalletResult = - CreateWalletResult.fromJson(map['result'] as Map); - _parseCreateWalletResult(createWalletResult, wallet); - } + if (map['result'] == null) throw CreateWalletException(''); + final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); + _parseCreateWalletResult(createWalletResult, wallet); await calls.store(hWallet); - await wallet.init(); + await wallet.init(createWalletResult.wi.address); return wallet; } catch (e) { rethrow; @@ -206,6 +186,9 @@ class ZanoWalletService extends WalletService); _parseCreateWalletResult(createWalletResult, wallet); + await calls.store(hWallet); + await wallet.init(createWalletResult.wi.address); + return wallet; } else if (map['error'] != null) { final code = map['error']['code'] as String; final message = map['error']['message'] as String; @@ -216,9 +199,7 @@ class ZanoWalletService extends WalletService { final valueMatched = match(value); final valueValidated = useAdditionalValidation != null - ? useAdditionalValidation!(value) || valueMatched + ? useAdditionalValidation!(value) && valueMatched : valueMatched; return valueValidated; diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index f046d0006..754fff23c 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -695,10 +695,9 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with receiveCurrency = CryptoCurrency.xmr; break; case WalletType.zano: - // TODO: !!! - // depositCurrency = CryptoCurrency.zano; - // receiveCurrency = ??? - throw UnimplementedError(); + depositCurrency = CryptoCurrency.zano; + receiveCurrency = CryptoCurrency.btc; + break; case WalletType.dummy: // TODO: !!! // depositCurrency = CryptoCurrency.dummy; diff --git a/lib/zano.dart b/lib/zano.dart index b20bbc973..b12864da4 100644 --- a/lib/zano.dart +++ b/lib/zano.dart @@ -11,7 +11,6 @@ import 'package:cw_zano/api/calls.dart' as calls; import 'package:cw_zano/api/model/balance.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; -import 'package:cw_zano/api/wallet_manager.dart' as zano_wallet_manager; import 'package:cw_zano/zano_wallet_service.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -85,7 +84,7 @@ const walletName = 'walletName'; Future init() async { version = calls.getVersion(); - final setupNode = await zano_wallet.setupNode( + final setupNode = await calls.setupNode( address: '195.201.107.230:33336', login: '', password: '', diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 9ef9c3983..7c283759e 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -69,10 +69,7 @@ class CWZanoWalletDetails extends ZanoWalletDetails { ZanoBalance get balance { final zanoWallet = _wallet as ZanoWallet; final balance = zanoWallet.balance; - throw Exception('Unimplemented'); - //return ZanoBalance( - // fullBalance: balance.fullBalance, - // unlockedBalance: balance.unlockedBalance); + return ZanoBalance(fullBalance: balance[CryptoCurrency.zano]!.total, unlockedBalance: balance[CryptoCurrency.zano]!.unlocked); } } From 141867930a6086ad6489c21eeec71478a79862d0 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 8 Jan 2024 16:44:35 +0000 Subject: [PATCH 16/58] last upd --- cw_zano/lib/api/calls.dart | 1 - lib/zano.dart | 273 ------------------- lib/zano_connected_widget.dart | 469 --------------------------------- 3 files changed, 743 deletions(-) delete mode 100644 lib/zano.dart delete mode 100644 lib/zano_connected_widget.dart diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart index 5a7593c77..8dc6939a6 100644 --- a/cw_zano/lib/api/calls.dart +++ b/cw_zano/lib/api/calls.dart @@ -158,7 +158,6 @@ bool setupNode({ }) { final addressPointer = address.toNativeUtf8(); Pointer? loginPointer; - Pointer? socksProxyAddressPointer; Pointer? passwordPointer; if (login != null) { diff --git a/lib/zano.dart b/lib/zano.dart deleted file mode 100644 index b12864da4..000000000 --- a/lib/zano.dart +++ /dev/null @@ -1,273 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; - -import 'package:cake_wallet/core/generate_wallet_password.dart'; -import 'package:cake_wallet/core/key_service.dart'; -import 'package:cake_wallet/utils/exception_handler.dart'; -import 'package:cake_wallet/zano_connected_widget.dart'; -import 'package:cw_core/pathForWallet.dart'; -import 'package:cw_core/wallet_type.dart'; -import 'package:cw_zano/api/calls.dart' as calls; -import 'package:cw_zano/api/model/balance.dart'; -import 'package:cw_zano/api/model/create_wallet_result.dart'; -import 'package:cw_zano/api/wallet.dart' as zano_wallet; -import 'package:cw_zano/zano_wallet_service.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_secure_storage/flutter_secure_storage.dart'; -import 'package:get_it/get_it.dart'; -import 'package:shared_preferences/shared_preferences.dart'; - -Future main() async { - await runZonedGuarded(() async { - WidgetsFlutterBinding.ensureInitialized(); - - FlutterError.onError = ExceptionHandler.onError; - - /// A callback that is invoked when an unhandled error occurs in the root - /// isolate. - PlatformDispatcher.instance.onError = (error, stack) { - ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stack)); - - return true; - }; - await setup(); - runApp(App()); - }, (error, stackTrace) async { - ExceptionHandler.onError(FlutterErrorDetails(exception: error, stack: stackTrace)); - }); -} - -final getIt = GetIt.instance; - -Future setup() async { - getIt.registerFactory(() => KeyService(getIt.get())); -} - -class App extends StatefulWidget { - const App({super.key}); - - @override - State createState() => _AppState(); -} - -// class HomeWidget extends StatefulWidget { -// const HomeWidget({super.key}); - -// @override -// State createState() => _HomeWidgetState(); -// } - -class _AppState extends State { - @override - Widget build(BuildContext context) { - return MaterialApp( - home: DisconnectedWidget(), //HomeWidget(), - routes: { - ConnectedWidget.route: (context) { - final address = ModalRoute.of(context)!.settings.arguments! as String; - return ConnectedWidget(address: address); - }, - DisconnectedWidget.route: (context) => DisconnectedWidget(), - }, - ); - } -} - -int hWallet = 0; -CreateWalletResult? lwr; -List balances = []; -String seed = '', version = ''; -final assetIds = {}; -const walletWrongId = 'WALLET_WRONG_ID'; -const walletName = 'walletName'; - -Future init() async { - version = calls.getVersion(); - final setupNode = await calls.setupNode( - address: '195.201.107.230:33336', - login: '', - password: '', - useSSL: false, - isLightWallet: false); - if (!setupNode) { - debugPrint('error setting up node!'); - } -} - -Future create(String name) async { - debugPrint('create $name'); - await init(); - final path = await pathForWallet(name: name, type: WalletType.zano); - final credentials = ZanoNewWalletCredentials(name: name); - final keyService = KeyService(FlutterSecureStorage()); - final password = generateWalletPassword(); - credentials.password = password; - await keyService.saveWalletPassword(password: password, walletName: credentials.name); - debugPrint('path $path password $password'); - final result = calls.createWallet(path: path, password: password, language: ''); - debugPrint('create result $result'); - return _parseResult(result); -} - -Future connect(String name) async { - debugPrint('connect'); - await init(); - final path = await pathForWallet(name: name, type: WalletType.zano); - final credentials = ZanoNewWalletCredentials(name: name); - final keyService = KeyService(FlutterSecureStorage()); - final password = await keyService.getWalletPassword(walletName: credentials.name); - debugPrint('path $path password $password'); - final result = await calls.loadWallet(path, password, 0); - return _parseResult(result); -} - -Future restore(String name, String seed) async { - debugPrint("restore"); - await init(); - final path = await pathForWallet(name: name, type: WalletType.zano); - final credentials = ZanoNewWalletCredentials(name: name); - final keyService = KeyService(FlutterSecureStorage()); - final password = generateWalletPassword(); - credentials.password = password; - await keyService.saveWalletPassword(password: password, walletName: credentials.name); - debugPrint('path $path password $password'); - var result = calls.restoreWalletFromSeed(path, password, seed); - debugPrint('restore result $result'); - //result = await calls.loadWallet(path, password, 0); - return _parseResult(result); -} - -String? _parseResult(String result) { - final map = json.decode(result) as Map; - if (map['result'] != null) { - lwr = CreateWalletResult.fromJson(map['result'] as Map); - balances = lwr!.wi.balances; - hWallet = lwr!.walletId; - assetIds.clear(); - for (final balance in lwr!.wi.balances) { - assetIds[balance.assetInfo.assetId] = balance.assetInfo.ticker; - } - return lwr!.wi.address; - } - return null; -} - -void close() { - calls.closeWallet(hWallet); -} - -class DisconnectedWidget extends StatefulWidget { - const DisconnectedWidget({super.key}); - static const route = 'disconnected'; - - @override - State createState() => _DisconnectedWidgetState(); -} - -class _DisconnectedWidgetState extends State { - late final TextEditingController _name = TextEditingController(text: "wallet"); - late final TextEditingController _seed = TextEditingController( - text: - "palm annoy brush task almost through here sent doll guilty smart horse mere canvas flirt advice fruit known shower happiness steel autumn beautiful approach anymore canvas"); - bool _loading = false; - - @override - void initState() { - super.initState(); - () async { - final preferences = await SharedPreferences.getInstance(); - final value = preferences.getString(walletName); - if (value != null && value.isNotEmpty) _name.text = value; - }(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar(title: Text('Disconnected')), - body: SafeArea( - child: Padding( - padding: const EdgeInsets.all(32.0), - child: Stack( - children: [ - Opacity( - opacity: _loading ? 0.5 : 1, - child: Column( - children: [ - TextField( - controller: _name, decoration: InputDecoration(labelText: 'Wallet name')), - TextButton( - child: Text('Connect and Open Wallet'), - onPressed: () async { - //setState(() => _loading = true); - final preferences = await SharedPreferences.getInstance(); - await preferences.setString(walletName, _name.text); - final result = await connect(_name.text); - //setState(() => _loading = false); - if (result != null) { - debugPrint("navigated to connected"); - Navigator.of(context).pushReplacementNamed( - ConnectedWidget.route, - arguments: result, - ); - } else { - debugPrint('connect no result'); - } - }), - SizedBox( - height: 16, - ), - TextButton( - child: Text('Create and Open Wallet'), - onPressed: () async { - //setState(() => _loading = true); - final preferences = await SharedPreferences.getInstance(); - await preferences.setString(walletName, _name.text); - final result = await create(_name.text); - //setState(() => _loading = false); - if (result != null) { - debugPrint("navigating to connected"); - Navigator.of(context).pushReplacementNamed( - ConnectedWidget.route, - arguments: result, - ); - } else { - debugPrint('create no result'); - } - }), - SizedBox( - height: 16, - ), - TextField( - controller: _seed, decoration: InputDecoration(labelText: 'Wallet seed')), - TextButton( - child: Text('Restore from seed'), - onPressed: () async { - final preferences = await SharedPreferences.getInstance(); - await preferences.setString(walletName, _name.text); - final result = await restore(_name.text, _seed.text); - if (result != null) { - Navigator.of(context).pushReplacementNamed( - ConnectedWidget.route, - arguments: result, - ); - } else { - debugPrint('restore no result'); - } - }), - SizedBox( - height: 16, - ), - TextButton(child: Text('Close Wallet'), onPressed: close), - ], - ), - ), - if (_loading) Center(child: CircularProgressIndicator()), - ], - ), - ), - ), - ); - } -} diff --git a/lib/zano_connected_widget.dart b/lib/zano_connected_widget.dart deleted file mode 100644 index 6258f5d5b..000000000 --- a/lib/zano_connected_widget.dart +++ /dev/null @@ -1,469 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; -import 'dart:math'; - -import 'package:cake_wallet/zano.dart'; -import 'package:cw_zano/api/model/destination.dart'; -import 'package:cw_zano/api/model/get_wallet_info_result.dart'; -import 'package:cw_zano/api/model/get_wallet_status_result.dart'; -import 'package:cw_zano/api/model/history.dart'; -import 'package:cw_zano/api/model/transfer_params.dart'; -import 'package:flutter/material.dart'; -import 'package:cw_zano/api/calls.dart' as calls; -import 'package:flutter/services.dart'; - -class ConnectedWidget extends StatefulWidget { - final String address; - const ConnectedWidget({super.key, required this.address}); - static const route = 'connected'; - - @override - State createState() => _ConnectedWidgetState(); -} - -class _ConnectedWidgetState extends State { - Timer? _longRefreshTimer; - GetWalletStatusResult? _gwsr; - int? _txFee; - final int _mixin = 10; - late final TextEditingController _destinationAddress = - TextEditingController(text: widget.address); - static const defaultAmount = 1.0; - late final TextEditingController _amount = TextEditingController(text: defaultAmount.toString()); - late String _amountFormatted = _mulBy10_12(defaultAmount); - late final TextEditingController _paymentId = TextEditingController(); - late final TextEditingController _comment = TextEditingController(text: "test"); - bool _pushPayer = false; - bool _hideReceiver = true; - String _transferResult = ''; - List? _transactions; - - @override - void initState() { - super.initState(); - - WidgetsBinding.instance.addPostFrameCallback((_) { - // _getWalletStatus returning true if it's in long refresh - // in a long refresh we keep requesting _getWalletStatus until we get false - if (_getWalletStatus()) { - _longRefreshTimer = Timer.periodic(Duration(milliseconds: 1000), (timer) { - if (!_getWalletStatus()) { - _longRefreshTimer!.cancel(); - debugPrint('cancelling get wallet status timer'); - _getWalletInfo(); - } - }); - } - //_getWalletInfo(); - }); - } - - @override - void dispose() { - //_timer.cancel(); - // _myAddress.dispose(); - // _seed.dispose(); - _destinationAddress.dispose(); - _amount.dispose(); - _paymentId.dispose(); - _comment.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return DefaultTabController( - length: 4, - child: Scaffold( - appBar: AppBar( - title: Text('Version $version'), - actions: [ - IconButton( - icon: Icon(Icons.close), - onPressed: () { - close(); - Navigator.of(context).pushReplacementNamed(DisconnectedWidget.route); - }, - ) - ], - bottom: TabBar( - tabs: [ - Tab(text: 'Main'), - Tab(text: 'Transfer'), - Builder(builder: (context) { - if (lwr != null && lwr!.recentHistory.history != null) { - return Tab(text: 'History (${lwr!.recentHistory.history!.length})'); - } - return Tab(text: 'History'); - }), - Tab(text: 'Transactions') - ], - )), - body: SafeArea( - child: Padding( - padding: const EdgeInsets.all(16.0), - child: TabBarView( - children: [ - _mainTab(context), - _transferTab(context), - _historyTab(), - _transactionsTab(), - ], - ), - ), - ), - ), - ); - } - - Widget _transactionsTab() { - return Column(children: [ - TextButton(onPressed: _getTransactions, child: Text('Update list of Transactions')), - Expanded(child: _transactionsListView(_transactions)), - ]); - } - - Widget _historyTab() { - if (lwr == null) return Text("Empty"); - return _transactionsListView(lwr!.recentHistory.history); - } - - ListView _transactionsListView(List? list) { - return ListView.builder( - itemCount: list != null ? list.length : 0, - itemBuilder: (context, index) { - final item = list![index]; - late String addr; - if (item.remoteAddresses.isNotEmpty) { - addr = _shorten(item.remoteAddresses.first); - } else { - addr = "???"; - } - return Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Text("${index + 1}. ${_dateTime(item.timestamp)} Remote addr: $addr"), - if (item.remoteAddresses.isNotEmpty) - IconButton( - onPressed: () => - Clipboard.setData(ClipboardData(text: item.remoteAddresses.first)), - icon: Icon(Icons.copy), - ), - if (item.remoteAliases.isNotEmpty) Text(" (${item.remoteAliases.first})"), - ], - ), - Text(" txHash: ${item.txHash} comment: ${item.comment}"), - Text( - " paymentId: ${item.paymentId} height: ${item.height} fee: ${_divBy10_12(item.fee)}"), - if (item.employedEntries.receive.isNotEmpty) - Text(" Receive", style: TextStyle(fontWeight: FontWeight.bold)), - for (int i = 0; i < item.employedEntries.receive.length; i++) - Text( - ' ${item.employedEntries.receive[i].index}. ${_assetName(item.employedEntries.receive[i].assetId)} ${_divBy10_12(item.employedEntries.receive[i].amount)}'), - if (item.employedEntries.send.isNotEmpty) - Text(" Spent", style: TextStyle(fontWeight: FontWeight.bold)), - for (int i = 0; i < item.employedEntries.send.length; i++) - Text( - ' ${item.employedEntries.send[i].index}. ${_assetName(item.employedEntries.send[i].assetId)} ${_divBy10_12(item.employedEntries.send[i].amount)}'), - if (item.subtransfers.isNotEmpty) - Text(" Subtransfers", style: TextStyle(fontWeight: FontWeight.bold)), - for (int i = 0; i < item.subtransfers.length; i++) - Text( - ' ${item.subtransfers[i].isIncome ? 'In' : 'Out'}. ${_assetName(item.subtransfers[i].assetId)} ${_divBy10_12(item.subtransfers[i].amount)}'), - Divider(), - ], - ); - }, - ); - } - - Widget _transferTab(BuildContext context) { - return SingleChildScrollView( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Text('Remote Address ', style: TextStyle(fontWeight: FontWeight.bold)), - Expanded( - child: TextField( - controller: _destinationAddress, - ), - ), - IconButton( - onPressed: () => Clipboard.setData(ClipboardData(text: _destinationAddress.text)), - icon: Icon(Icons.copy)), - IconButton( - onPressed: () async { - final clipboard = await Clipboard.getData("text/plain"); - if (clipboard == null || clipboard.text == null) return; - setState(() { - _destinationAddress.text = clipboard.text!; - }); - }, - icon: Icon(Icons.paste)), - ], - ), - Row( - children: [ - // ${lwr!.wi.address} - Text('Amount ', style: TextStyle(fontWeight: FontWeight.bold)), - Expanded( - child: TextField( - controller: _amount, - onChanged: (value) => setState(() { - _amountFormatted = _mulBy10_12(double.parse(value)); - }), - ), - ), - Text("= ${_amountFormatted}"), - IconButton( - onPressed: () => Clipboard.setData(ClipboardData(text: _amount.text)), - icon: Icon(Icons.copy)), - ], - ), - if (_txFee != null) - Text('Fee: ${_divBy10_12(_txFee!)} (${_txFee!})') - else - Text("Pls get Tx Fee before transfer!"), - Text('Mixin: $_mixin'), - Row(children: [ - Text('Payment Id ', style: TextStyle(fontWeight: FontWeight.bold)), - Expanded(child: TextField(controller: _paymentId)), - ]), - Row(children: [ - Text('Comment ', style: TextStyle(fontWeight: FontWeight.bold)), - Expanded(child: TextField(controller: _comment)), - ]), - Row( - children: [ - Text('Push Payer ', style: TextStyle(fontWeight: FontWeight.bold)), - Checkbox( - value: _pushPayer, - onChanged: (value) => setState(() => _pushPayer = value ?? false)), - ], - ), - Row( - children: [ - Text('Hide Receiver ', style: TextStyle(fontWeight: FontWeight.bold)), - Checkbox( - value: _hideReceiver, - onChanged: (value) => setState(() => _hideReceiver = value ?? false)), - ], - ), - TextButton(onPressed: _transfer, child: Text('Transfer')), - const SizedBox(height: 16), - Text('Transfer result $_transferResult'), - ], - ), - ); - } - - Widget _mainTab(BuildContext context) { - return SingleChildScrollView( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - children: [ - Text('Wallet Info', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(width: 16), - TextButton(onPressed: _getWalletInfo, child: Text('Update WI & TxFee')), - ], - ), - Row( - children: [ - Text('My Address ', style: TextStyle(fontWeight: FontWeight.bold)), - Expanded( - child: Text( - widget.address, - maxLines: 1, - overflow: TextOverflow.ellipsis, - )), - IconButton( - onPressed: () => Clipboard.setData(ClipboardData(text: widget.address)), - icon: Icon(Icons.copy)), - ], - ), - for (final balance in balances) - Text( - 'Balance (${balance.assetInfo.ticker}) total: ${_divBy10_12(balance.total)}, unlocked: ${_divBy10_12(balance.unlocked)}'), - Row( - children: [ - Text('Seed ', style: TextStyle(fontWeight: FontWeight.bold)), - Expanded(child: Text(seed, maxLines: 1, overflow: TextOverflow.ellipsis)), - IconButton( - onPressed: () => Clipboard.setData(ClipboardData(text: seed)), - icon: Icon(Icons.copy)), - ], - ), - const SizedBox(height: 16), - Row( - children: [ - Text('Wallet Status', style: TextStyle(fontWeight: FontWeight.bold)), - const SizedBox(width: 16), - TextButton(onPressed: _getWalletStatus, child: Text('Update')), - ], - ), - if (_gwsr != null) ...[ - Row( - children: [ - Expanded(child: Text('Daemon Height ${_gwsr!.currentDaemonHeight}')), - Expanded(child: Text('Wallet Height ${_gwsr!.currentWalletHeight}')), - ], - ), - Row( - children: [ - Expanded(child: Text('Daemon Connected ${_gwsr!.isDaemonConnected}')), - Expanded(child: Text('In Long Refresh ${_gwsr!.isInLongRefresh}')), - ], - ), - Row( - children: [ - Expanded(child: Text('Progress ${_gwsr!.progress}')), - Expanded(child: Text('WalletState ${_gwsr!.walletState}')), - ], - ), - ], - const SizedBox(height: 16), - if (_txFee != null) Text('Tx Fee: ${_divBy10_12(_txFee!)} (${_txFee!})'), - TextButton( - onPressed: () { - close(); - Navigator.of(context).pushReplacementNamed(DisconnectedWidget.route); - }, - child: Text('Disconnect')), - ], - ), - ); - } - - Future _transfer() async { - final result = await calls.transfer( - hWallet, - TransferParams( - destinations: [ - Destination( - amount: _mulBy10_12(double.parse(_amount.text)), - address: _destinationAddress.text, - assetId: assetIds.keys.first, - ) - ], - fee: _txFee!, - mixin: _mixin, - paymentId: _paymentId.text, - comment: _comment.text, - pushPayer: _pushPayer, - hideReceiver: _hideReceiver, - )); - debugPrint('transfer result $result'); - final map = jsonDecode(result); - if (map['result'] == null) { - setState(() => _transferResult = 'empty result'); - } else { - if (map['result']['error'] != null) { - setState(() => _transferResult = - "error code ${map['result']['error']['code']} message ${map['result']['error']['message']} "); - } else if (map['result']['result'] != null) { - setState(() => _transferResult = - "transfer tx hash ${map['result']['result']['tx_hash']} size ${map['result']['result']['tx_size']} "); - } - } - } - - bool _getWalletStatus() { - final json = calls.getWalletStatus(hWallet); - if (json == walletWrongId) { - debugPrint('error $walletWrongId'); - setState(() => _gwsr = null); - return false; - } - try { - setState(() { - _gwsr = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - }); - return _gwsr!.isInLongRefresh; - } catch (e) { - debugPrint('exception $e'); - setState(() => _gwsr = null); - return false; - } - } - - void _getWalletInfo() { - final result = GetWalletInfoResult.fromJson( - jsonDecode(calls.getWalletInfo(hWallet)) as Map); - final fee = calls.getCurrentTxFee(0); - setState(() { - balances = result.wi.balances; - seed = result.wiExtended.seed; - _txFee = fee; - }); - // setState(() { - // _gwsr = GetWalletStatusResult.fromJson( - // jsonDecode(calls.getWalletStatus(hWallet)) as Map); - // }); - } - - Future _getTransactions() async { - final result = await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); - final map = jsonDecode(result); - if (map == null || map["result"] == null || map["result"]["result"] == null) { - setState(() => _transactions = null); - return; - } - setState(() => _transactions = map["result"]["result"]["transfers"] == null - ? null - : (map["result"]["result"]["transfers"] as List) - .map((e) => History.fromJson(e as Map)) - .toList()); - } - - String _divBy10_12(int value) { - return (value / pow(10, 12)).toString(); - } - - String _mulBy10_12(double value) { - var str = (value * pow(10, 12)).toString(); - if (str.contains('.')) str = str.split('.')[0]; - return str; - } - - String _shorten(String someId) { - if (someId.length < 9) return someId; - return '${someId.substring(0, 4).toUpperCase()}...${someId.substring(someId.length - 2)}'; - } - - String _assetName(String assetId) { - if (assetIds[assetId] != null) { - return assetIds[assetId]!; - } else { - return _shorten(assetId); - } - } - - String _dateTime(int timestamp) { - DateTime date = DateTime.fromMillisecondsSinceEpoch(timestamp * 1000); - return '${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')} ${date.hour.toString().padLeft(2, '0')}:${date.minute.toString().padLeft(2, '0')}'; - } - - Widget _row( - String first, String second, String third, String forth, String fifth, String sixth) => - Row( - children: [ - Expanded(child: Text(first)), - Expanded(flex: 2, child: Text(second)), - Expanded(flex: 2, child: Text(third)), - Expanded(flex: 3, child: Text(forth)), - Expanded(flex: 3, child: Text(fifth)), - Expanded(child: Text(sixth)), - ], - ); -} From 20cf07111a7be8372ddd26e8344ffd89238f46fd Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 5 Mar 2024 05:16:30 +0000 Subject: [PATCH 17/58] updated build_zano.sh --- scripts/android/build_zano.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index ee4ab1400..49fdb7484 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -4,7 +4,7 @@ set -o xtrace . ./config.sh #HAVEN_VERSION=tags/v3.0.7 ZANO_SRC_DIR=${WORKDIR}/zano -ZANO_CHECKOUT_ID=cake +ZANO_CHECKOUT_ID=master #git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} cd $ZANO_SRC_DIR From 00a5bd941f0ca33da2e8827b9e590ccde2aaff8a Mon Sep 17 00:00:00 2001 From: leo1234 Date: Wed, 6 Mar 2024 14:48:38 +0800 Subject: [PATCH 18/58] updated zano ApiCalls, removed dummy --- cw_zano/lib/api/api_calls.dart | 289 ++++++++++++++++++++++++ cw_zano/lib/api/model/store_result.dart | 9 + 2 files changed, 298 insertions(+) create mode 100644 cw_zano/lib/api/api_calls.dart create mode 100644 cw_zano/lib/api/model/store_result.dart diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart new file mode 100644 index 000000000..e8cdc9804 --- /dev/null +++ b/cw_zano/lib/api/api_calls.dart @@ -0,0 +1,289 @@ +import 'dart:ffi'; + +import 'package:cw_zano/api/convert_utf8_to_string.dart'; +import 'package:cw_zano/api/structs/utf8_box.dart'; +import 'package:cw_zano/api/zano_api.dart'; +import 'package:ffi/ffi.dart'; + +// char * create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) +typedef _create_wallet = Pointer Function(Pointer, Pointer, Pointer, Int32, Pointer); +typedef _CreateWallet = Pointer Function(Pointer, Pointer, Pointer, int, Pointer); + +// char * restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) +typedef _restore_wallet_from_seed = Pointer Function(Pointer, Pointer, Pointer, Int32, Int64, Pointer); +typedef _RestoreWalletFromSeed = Pointer Function(Pointer, Pointer, Pointer, int, int, Pointer); + +// char * load_wallet(char *path, char *password, int32_t nettype) +typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); +typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); + +// is_wallet_exist(char *path) +typedef _is_wallet_exist = Int8 Function(Pointer); +typedef _IsWalletExist = int Function(Pointer); + +// void close_wallet(uint64_t hwallet) +typedef _close_wallet = Void Function(Int64); +typedef _closeWalletStatus = void Function(int hWallet); + +// uint64_t get_current_tx_fee(uint64_t priority) +typedef _get_current_tx_fee = Int64 Function(Int64); +typedef _getCurrentTxFee = int Function(int priority); + +// char* get_address_info(char* address) +typedef _GetAddressInfo = Pointer Function(Pointer address); + +// char* async_call(char* method_name, uint64_t instance_id, char* params) +typedef _async_call = Pointer Function(Pointer, Int64, Pointer); +typedef _AsyncCall = Pointer Function(Pointer, int, Pointer); + +// // char* try_pull_result(uint64_t job_id) +// // char *get_wallet_info(uint64_t hwallet) +// // char* get_wallet_status(uint64_t hwallet) +typedef _stringFunctionWithInt64 = Pointer Function(Int64); +typedef _StringFunctionWithIntHWallet = Pointer Function(int); + +// bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) +typedef _setup_node = Int8 Function(Pointer, Pointer?, Pointer?, Int8, Int8, Pointer); +typedef _SetupNode = int Function(Pointer, Pointer?, Pointer?, int, int, Pointer); + +// char* set_password(uint64_t hwallet, char *password, Utf8Box &error) +typedef _set_password = Pointer Function(Int64 hWallet, Pointer password, Pointer error); +typedef _SetPassword = Pointer Function(int hWallet, Pointer password, Pointer error); + +// char* get_connectivity_status() +// char* get_version() +typedef _stringFunction = Pointer Function(); + +class ApiCalls { + static String _performApiCall( + Pointer Function() apiCall, { + List>? pointersToFree, + }) { + try { + return convertUTF8ToString(pointer: apiCall()); + } finally { + if (pointersToFree != null) { + for (var pointer in pointersToFree) { + calloc.free(pointer); + } + } + } + } + + static final _createWalletNative = zanoApi.lookup>('create_wallet').asFunction<_CreateWallet>(); + + static String createWallet({ + required String path, + required String password, + String language = '', + int nettype = 0, + }) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final languagePointer = language.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final result = _performApiCall( + () => _createWalletNative( + pathPointer, + passwordPointer, + languagePointer, + nettype, + errorMessagePointer, + ), + pointersToFree: [pathPointer, passwordPointer, languagePointer, errorMessagePointer]); + + return result; + } + + static final _restoreWalletFromSeedNative = zanoApi.lookup>('restore_wallet_from_seed').asFunction<_RestoreWalletFromSeed>(); + + static String restoreWalletFromSeed({ + required String path, + required String password, + required String seed, + }) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final seedPointer = seed.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final result = _performApiCall( + () => _restoreWalletFromSeedNative( + pathPointer, + passwordPointer, + seedPointer, + 0, + 0, + errorMessagePointer, + ), + pointersToFree: [ + pathPointer, + passwordPointer, + seedPointer, + errorMessagePointer, + ], + ); + return result; + } + + static final _loadWalletNative = zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); + + static String loadWallet({ + required String path, + required String password, + int nettype = 0, + }) { + final pathPointer = path.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final result = _performApiCall( + () => _loadWalletNative( + pathPointer, + passwordPointer, + nettype, + ), + pointersToFree: [ + pathPointer, + passwordPointer, + ], + ); + return result; + } + + static final _isWalletExistNative = zanoApi.lookup>('is_wallet_exist').asFunction<_IsWalletExist>(); + + static bool isWalletExist({required String path}) { + final pathPointer = path.toNativeUtf8(); + final isExist = _isWalletExistNative(pathPointer) != 0; + calloc.free(pathPointer); + return isExist; + } + + static final _closeWalletNative = zanoApi.lookup>('close_wallet').asFunction<_closeWalletStatus>(); + + static void closeWallet({required int hWallet}) => _closeWalletNative(hWallet); + + static final _getWalletInfoNative = zanoApi.lookup>('get_wallet_info').asFunction<_StringFunctionWithIntHWallet>(); + + static String getWalletInfo(int hWallet) => _performApiCall(() => _getWalletInfoNative(hWallet)); + + static final _getWalletStatusNative = zanoApi.lookup>('get_wallet_status').asFunction<_StringFunctionWithIntHWallet>(); + + static String getWalletStatus({required int hWallet}) => _performApiCall(() => _getWalletStatusNative(hWallet)); + + static final _getCurrentTxFeeNative = zanoApi.lookup>('get_current_tx_fee').asFunction<_getCurrentTxFee>(); + + static int getCurrentTxFee({required int priority}) => _getCurrentTxFeeNative(priority); + + static final _getConnectivityStatusNative = zanoApi.lookup>('get_connectivity_status').asFunction<_stringFunction>(); + + static String getConnectivityStatus() => _performApiCall(() => _getConnectivityStatusNative()); + + static final _getAddressInfoNative = zanoApi.lookup>('get_address_info').asFunction<_GetAddressInfo>(); + + static String getAddressInfo({required String address}) { + final addressPointer = address.toNativeUtf8(); + final result = _performApiCall( + () => _getAddressInfoNative(addressPointer), + pointersToFree: [addressPointer], + ); + return result; + } + + static final _asyncCallNative = zanoApi.lookup>('async_call').asFunction<_AsyncCall>(); + static final _syncCallNative = zanoApi.lookup>('sync_call').asFunction<_AsyncCall>(); + + static String syncCall({required String methodName, required int hWallet, required String params}) { + final methodNamePointer = methodName.toNativeUtf8(); + final paramsPointer = params.toNativeUtf8(); + final result = _performApiCall( + () => _syncCallNative( + methodNamePointer, + hWallet, + paramsPointer, + ), + pointersToFree: [ + methodNamePointer, + paramsPointer, + ], + ); + return result; + } + + static String asyncCall({required String methodName, required int hWallet, required String params}) { + final methodNamePointer = methodName.toNativeUtf8(); + final paramsPointer = params.toNativeUtf8(); + final result = _performApiCall( + () => _asyncCallNative( + methodNamePointer, + hWallet, + paramsPointer, + ), + pointersToFree: [ + methodNamePointer, + paramsPointer, + ], + ); + return result; + } + + static final _tryPullResultNative = zanoApi.lookup>('try_pull_result').asFunction<_StringFunctionWithIntHWallet>(); + + static String tryPullResult(int jobId) { + final result = _performApiCall(() => _tryPullResultNative(jobId)); + return result; + } + + static final _setupNodeNative = zanoApi.lookup>('setup_node').asFunction<_SetupNode>(); + + static bool setupNode({ + required String address, + required String login, + required String password, + bool useSSL = false, + bool isLightWallet = false, + }) { + final addressPointer = address.toNativeUtf8(); + final loginPointer = login.toNativeUtf8(); + final passwordPointer = password.toNativeUtf8(); + final errorMessagePointer = ''.toNativeUtf8(); + final isSetupNode = _setupNodeNative( + addressPointer, + loginPointer, + passwordPointer, + _boolToInt(useSSL), + _boolToInt(isLightWallet), + errorMessagePointer, + ) != + 0; + + calloc.free(addressPointer); + calloc.free(loginPointer); + calloc.free(passwordPointer); + return isSetupNode; + } + + static final _setPasswordNative = zanoApi.lookup>('set_password').asFunction<_SetPassword>(); + + static String setPassword({required int hWallet, required String password}) { + final passwordPointer = password.toNativeUtf8(); + final errorMessagePointer = calloc(); + final result = _performApiCall( + () => _setPasswordNative( + hWallet, + passwordPointer, + errorMessagePointer, + ), + pointersToFree: [passwordPointer], + ); + calloc.free(errorMessagePointer); + return result; + } + + static final _getVersionNative = zanoApi.lookup>('get_version').asFunction<_stringFunction>(); + + static String getVersion() { + final result = _performApiCall(() => _getVersionNative()); + return result; + } + + static int _boolToInt(bool value) => value ? 1 : 0; +} diff --git a/cw_zano/lib/api/model/store_result.dart b/cw_zano/lib/api/model/store_result.dart new file mode 100644 index 000000000..5bc022a76 --- /dev/null +++ b/cw_zano/lib/api/model/store_result.dart @@ -0,0 +1,9 @@ +class StoreResult { + final int walletFileSize; + + StoreResult({required this.walletFileSize}); + + factory StoreResult.fromJson(Map json) => StoreResult( + walletFileSize: json['wallet_file_size'] as int, + ); +} \ No newline at end of file From 3c2953a71864eb5a43da6a96db28379ad17c522c Mon Sep 17 00:00:00 2001 From: leo1234 Date: Wed, 6 Mar 2024 14:48:59 +0800 Subject: [PATCH 19/58] updated zano ApiCalls, removed dummy --- cw_core/lib/crypto_currency.dart | 1 - cw_core/lib/currency_for_wallet_type.dart | 2 - cw_core/lib/node.dart | 4 - cw_core/lib/wallet_type.dart | 14 - cw_dummy/.gitignore | 30 -- cw_dummy/.metadata | 10 - cw_dummy/CHANGELOG.md | 3 - cw_dummy/LICENSE | 1 - cw_dummy/README.md | 39 -- cw_dummy/analysis_options.yaml | 4 - cw_dummy/lib/cw_dummy.dart | 7 - cw_dummy/lib/dummy_balance.dart | 14 - ...ummy_transaction_creation_credentials.dart | 10 - cw_dummy/lib/dummy_transaction_history.dart | 28 -- cw_dummy/lib/dummy_transaction_info.dart | 27 -- cw_dummy/lib/dummy_transaction_priority.dart | 20 - cw_dummy/lib/dummy_wallet.dart | 72 ---- cw_dummy/lib/dummy_wallet_addresses.dart | 23 -- .../dummy_wallet_creation_credentials.dart | 18 - cw_dummy/lib/dummy_wallet_service.dart | 43 --- .../.plugin_symlinks/path_provider_linux | 1 - .../flutter/generated_plugin_registrant.cc | 11 - .../flutter/generated_plugin_registrant.h | 15 - .../linux/flutter/generated_plugins.cmake | 23 -- .../Flutter/GeneratedPluginRegistrant.swift | 12 - .../ephemeral/Flutter-Generated.xcconfig | 11 - .../ephemeral/flutter_export_environment.sh | 12 - cw_dummy/pubspec.yaml | 70 ---- cw_dummy/test/cw_dummy_test.dart | 12 - .../flutter/generated_plugin_registrant.cc | 11 - .../flutter/generated_plugin_registrant.h | 15 - .../windows/flutter/generated_plugins.cmake | 23 -- cw_shared_external/pubspec.lock | 112 +++--- cw_zano/lib/api/calls.dart | 351 ------------------ .../model/get_recent_txs_and_info_params.dart | 8 +- cw_zano/lib/api/wallet.dart | 96 ++--- cw_zano/lib/pending_zano_transaction.dart | 40 +- cw_zano/lib/zano_utils.dart | 5 +- cw_zano/lib/zano_wallet.dart | 140 ++++--- cw_zano/lib/zano_wallet_service.dart | 15 +- lib/core/seed_validator.dart | 3 - lib/di.dart | 3 - lib/dummy/cw_dummy.dart | 83 ----- lib/dummy/dummy.dart | 42 --- lib/entities/default_settings_migration.dart | 17 - lib/entities/preferences_key.dart | 2 - lib/entities/priority_for_wallet_type.dart | 3 - .../desktop_wallet_selection_dropdown.dart | 3 - .../dashboard/widgets/menu_widget.dart | 6 +- .../screens/wallet_list/wallet_list_page.dart | 1 - lib/store/settings_store.dart | 36 -- .../dashboard/transaction_list_item.dart | 8 - .../exchange/exchange_view_model.dart | 11 - .../node_list/node_list_view_model.dart | 3 - lib/view_model/send/output.dart | 9 - lib/view_model/send/send_view_model.dart | 7 - .../transaction_details_view_model.dart | 19 - ...let_address_edit_or_create_view_model.dart | 6 - .../wallet_address_list_view_model.dart | 27 -- lib/view_model/wallet_keys_view_model.dart | 9 - lib/view_model/wallet_new_vm.dart | 3 - lib/view_model/wallet_restore_view_model.dart | 8 - 62 files changed, 244 insertions(+), 1418 deletions(-) delete mode 100644 cw_dummy/.gitignore delete mode 100644 cw_dummy/.metadata delete mode 100644 cw_dummy/CHANGELOG.md delete mode 100644 cw_dummy/LICENSE delete mode 100644 cw_dummy/README.md delete mode 100644 cw_dummy/analysis_options.yaml delete mode 100644 cw_dummy/lib/cw_dummy.dart delete mode 100644 cw_dummy/lib/dummy_balance.dart delete mode 100644 cw_dummy/lib/dummy_transaction_creation_credentials.dart delete mode 100644 cw_dummy/lib/dummy_transaction_history.dart delete mode 100644 cw_dummy/lib/dummy_transaction_info.dart delete mode 100644 cw_dummy/lib/dummy_transaction_priority.dart delete mode 100644 cw_dummy/lib/dummy_wallet.dart delete mode 100644 cw_dummy/lib/dummy_wallet_addresses.dart delete mode 100644 cw_dummy/lib/dummy_wallet_creation_credentials.dart delete mode 100644 cw_dummy/lib/dummy_wallet_service.dart delete mode 120000 cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux delete mode 100644 cw_dummy/linux/flutter/generated_plugin_registrant.cc delete mode 100644 cw_dummy/linux/flutter/generated_plugin_registrant.h delete mode 100644 cw_dummy/linux/flutter/generated_plugins.cmake delete mode 100644 cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift delete mode 100644 cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig delete mode 100755 cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh delete mode 100644 cw_dummy/pubspec.yaml delete mode 100644 cw_dummy/test/cw_dummy_test.dart delete mode 100644 cw_dummy/windows/flutter/generated_plugin_registrant.cc delete mode 100644 cw_dummy/windows/flutter/generated_plugin_registrant.h delete mode 100644 cw_dummy/windows/flutter/generated_plugins.cmake delete mode 100644 cw_zano/lib/api/calls.dart delete mode 100644 lib/dummy/cw_dummy.dart delete mode 100644 lib/dummy/dummy.dart diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index ae274c219..25ce1a564 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -200,7 +200,6 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const dydx = CryptoCurrency(title: 'DYDX', tag: 'ETH', fullName: 'dYdX', raw: 84, name: 'dydx', iconPath: 'assets/images/dydx_icon.png'); static const steth = CryptoCurrency(title: 'STETH', tag: 'ETH', fullName: 'Lido Staked Ethereum', raw: 85, name: 'steth', iconPath: 'assets/images/steth_icon.png'); static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 86, name: 'zano', iconPath: 'assets/images/zano_icon.png'); - static const dummy = CryptoCurrency(title: 'DUMMY', tag: 'DUMMY', fullName: 'Dummy', raw: 87, name: 'dummy', iconPath: 'assets/images/zano_icon.png'); static final Map _rawCurrencyMap = diff --git a/cw_core/lib/currency_for_wallet_type.dart b/cw_core/lib/currency_for_wallet_type.dart index 2e5e9b5c9..b2f6d356f 100644 --- a/cw_core/lib/currency_for_wallet_type.dart +++ b/cw_core/lib/currency_for_wallet_type.dart @@ -15,8 +15,6 @@ CryptoCurrency currencyForWalletType(WalletType type) { return CryptoCurrency.eth; case WalletType.zano: return CryptoCurrency.zano; - case WalletType.dummy: - return CryptoCurrency.dummy; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index 06a86c74d..66655899d 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -80,8 +80,6 @@ class Node extends HiveObject with Keyable { return Uri.http(uriRaw, ''); case WalletType.ethereum: return Uri.https(uriRaw, ''); - case WalletType.dummy: - return Uri.https(uriRaw, ''); default: throw Exception('Unexpected type ${type.toString()} for Node uri'); } @@ -135,8 +133,6 @@ class Node extends HiveObject with Keyable { return requestZanoNode(); case WalletType.ethereum: return requestElectrumServer(); - case WalletType.dummy: - throw UnimplementedError(); default: return false; } diff --git a/cw_core/lib/wallet_type.dart b/cw_core/lib/wallet_type.dart index 0b26bde73..022b181b9 100644 --- a/cw_core/lib/wallet_type.dart +++ b/cw_core/lib/wallet_type.dart @@ -11,7 +11,6 @@ const walletTypes = [ WalletType.haven, WalletType.ethereum, WalletType.zano, - WalletType.dummy, ]; @HiveType(typeId: WALLET_TYPE_TYPE_ID) @@ -36,9 +35,6 @@ enum WalletType { @HiveField(6) zano, - - @HiveField(7) - dummy, } int serializeToInt(WalletType type) { @@ -55,8 +51,6 @@ int serializeToInt(WalletType type) { return 4; case WalletType.zano: return 5; - case WalletType.dummy: - return 6; default: return -1; } @@ -76,8 +70,6 @@ WalletType deserializeFromInt(int raw) { return WalletType.ethereum; case 5: return WalletType.zano; - case 6: - return WalletType.dummy; default: throw Exception( 'Unexpected token: $raw for WalletType deserializeFromInt'); @@ -98,8 +90,6 @@ String walletTypeToString(WalletType type) { return 'Ethereum'; case WalletType.zano: return 'Zano'; - case WalletType.dummy: - return 'Dummy'; default: return ''; } @@ -119,8 +109,6 @@ String walletTypeToDisplayName(WalletType type) { return 'Ethereum (ETH)'; case WalletType.zano: return 'Zano (ZANO)'; - case WalletType.dummy: - return 'Dummy (DUMMY)'; default: return ''; } @@ -140,8 +128,6 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.zano; case WalletType.ethereum: return CryptoCurrency.eth; - case WalletType.dummy: - return CryptoCurrency.dummy; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); diff --git a/cw_dummy/.gitignore b/cw_dummy/.gitignore deleted file mode 100644 index 96486fd93..000000000 --- a/cw_dummy/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ -migrate_working_dir/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. -/pubspec.lock -**/doc/api/ -.dart_tool/ -.packages -build/ diff --git a/cw_dummy/.metadata b/cw_dummy/.metadata deleted file mode 100644 index fa347fc6a..000000000 --- a/cw_dummy/.metadata +++ /dev/null @@ -1,10 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 - channel: stable - -project_type: package diff --git a/cw_dummy/CHANGELOG.md b/cw_dummy/CHANGELOG.md deleted file mode 100644 index 41cc7d819..000000000 --- a/cw_dummy/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 0.0.1 - -* TODO: Describe initial release. diff --git a/cw_dummy/LICENSE b/cw_dummy/LICENSE deleted file mode 100644 index ba75c69f7..000000000 --- a/cw_dummy/LICENSE +++ /dev/null @@ -1 +0,0 @@ -TODO: Add your license here. diff --git a/cw_dummy/README.md b/cw_dummy/README.md deleted file mode 100644 index 02fe8ecab..000000000 --- a/cw_dummy/README.md +++ /dev/null @@ -1,39 +0,0 @@ - - -TODO: Put a short description of the package here that helps potential users -know whether this package might be useful for them. - -## Features - -TODO: List what your package can do. Maybe include images, gifs, or videos. - -## Getting started - -TODO: List prerequisites and provide or point to information on how to -start using the package. - -## Usage - -TODO: Include short and useful examples for package users. Add longer examples -to `/example` folder. - -```dart -const like = 'sample'; -``` - -## Additional information - -TODO: Tell users more about the package: where to find more information, how to -contribute to the package, how to file issues, what response they can expect -from the package authors, and more. diff --git a/cw_dummy/analysis_options.yaml b/cw_dummy/analysis_options.yaml deleted file mode 100644 index a5744c1cf..000000000 --- a/cw_dummy/analysis_options.yaml +++ /dev/null @@ -1,4 +0,0 @@ -include: package:flutter_lints/flutter.yaml - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/cw_dummy/lib/cw_dummy.dart b/cw_dummy/lib/cw_dummy.dart deleted file mode 100644 index 126c12a36..000000000 --- a/cw_dummy/lib/cw_dummy.dart +++ /dev/null @@ -1,7 +0,0 @@ -library cw_dummy; - -/// A Calculator. -class Calculator { - /// Returns [value] plus 1. - int addOne(int value) => value + 1; -} diff --git a/cw_dummy/lib/dummy_balance.dart b/cw_dummy/lib/dummy_balance.dart deleted file mode 100644 index b6352850b..000000000 --- a/cw_dummy/lib/dummy_balance.dart +++ /dev/null @@ -1,14 +0,0 @@ -import 'package:cw_core/balance.dart'; - -class DummyBalance extends Balance { - DummyBalance(super.available, super.additional); - - @override - // TODO: implement formattedAdditionalBalance - String get formattedAdditionalBalance => throw UnimplementedError(); - - @override - // TODO: implement formattedAvailableBalance - String get formattedAvailableBalance => throw UnimplementedError(); - -} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_transaction_creation_credentials.dart b/cw_dummy/lib/dummy_transaction_creation_credentials.dart deleted file mode 100644 index 75de84938..000000000 --- a/cw_dummy/lib/dummy_transaction_creation_credentials.dart +++ /dev/null @@ -1,10 +0,0 @@ -import 'package:cw_core/output_info.dart'; - -import 'dummy_transaction_priority.dart'; - -class DummyTransactionCreationCredentials { - final List outputs; - final DummyTransactionPriority? priority; - - DummyTransactionCreationCredentials({required this.outputs, this.priority}); -} diff --git a/cw_dummy/lib/dummy_transaction_history.dart b/cw_dummy/lib/dummy_transaction_history.dart deleted file mode 100644 index ac8655091..000000000 --- a/cw_dummy/lib/dummy_transaction_history.dart +++ /dev/null @@ -1,28 +0,0 @@ -import 'package:mobx/mobx.dart'; -import 'package:cw_core/transaction_history.dart'; - -import 'dummy_transaction_info.dart'; - -part 'dummy_transaction_history.g.dart'; - -class DummyTransactionHistory = DummyTransactionHistoryBase - with _$DummyTransactionHistory; - -abstract class DummyTransactionHistoryBase - extends TransactionHistoryBase with Store { - DummyTransactionHistoryBase() { - transactions = ObservableMap(); - } - - @override - Future save() async { - throw UnimplementedError; - } - - @override - void addOne(DummyTransactionInfo transaction) => transactions[transaction.id] = transaction; - - @override - void addMany(Map transactions) => - this.transactions.addAll(transactions); -} diff --git a/cw_dummy/lib/dummy_transaction_info.dart b/cw_dummy/lib/dummy_transaction_info.dart deleted file mode 100644 index 71461d26e..000000000 --- a/cw_dummy/lib/dummy_transaction_info.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'package:cw_core/transaction_info.dart'; - -class DummyTransactionInfo extends TransactionInfo { - @override - String amountFormatted() { - // TODO: implement amountFormatted - throw UnimplementedError(); - } - - @override - void changeFiatAmount(String amount) { - // TODO: implement changeFiatAmount - } - - @override - String? feeFormatted() { - // TODO: implement feeFormatted - throw UnimplementedError(); - } - - @override - String fiatAmount() { - // TODO: implement fiatAmount - throw UnimplementedError(); - } - -} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_transaction_priority.dart b/cw_dummy/lib/dummy_transaction_priority.dart deleted file mode 100644 index 46f1d5a70..000000000 --- a/cw_dummy/lib/dummy_transaction_priority.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:cw_core/transaction_priority.dart'; - -class DummyTransactionPriority extends TransactionPriority { - const DummyTransactionPriority({required super.title, required super.raw}); - - static const List all = [slow, medium, fast]; - - static const slow = DummyTransactionPriority(title: 'Slow', raw: 0); - static const medium = DummyTransactionPriority(title: 'Medium', raw: 1); - static const fast = DummyTransactionPriority(title: 'Fast', raw: 2); - - static DummyTransactionPriority deserialize({required int raw}) { - switch (raw) { - case 0: return slow; - case 1: return medium; - case 2: return fast; - default: throw Exception('Unexpected token: $raw for DummyTransactionPriority deserialize'); - } - } -} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_wallet.dart b/cw_dummy/lib/dummy_wallet.dart deleted file mode 100644 index c937fa61f..000000000 --- a/cw_dummy/lib/dummy_wallet.dart +++ /dev/null @@ -1,72 +0,0 @@ -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/node.dart'; -import 'package:cw_core/pending_transaction.dart'; -import 'package:cw_core/sync_status.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:mobx/mobx.dart'; -import 'package:cw_core/wallet_base.dart'; - -import 'dummy_balance.dart'; -import 'dummy_transaction_history.dart'; -import 'dummy_transaction_info.dart'; -import 'dummy_wallet_addresses.dart'; - -part 'dummy_wallet.g.dart'; - -class DummyWallet = DummyWalletBase with _$DummyWallet; - -abstract class DummyWalletBase extends WalletBase with Store { - DummyWalletBase({required WalletInfo walletInfo}) : super(walletInfo) {} - - @override - int calculateEstimatedFee(TransactionPriority priority, int? amount) => throw UnimplementedError(); - - @override - Future changePassword(String password) async => throw UnimplementedError(); - - @override - Future close() async => throw UnimplementedError(); - - @override - Future connectToNode({required Node node}) async => throw UnimplementedError(); - - @override - Future createTransaction(Object credentials) async => throw UnimplementedError(); - - @override - Future> fetchTransactions() async => throw UnimplementedError(); - - @override - Future renameWalletFiles(String newWalletName) async => throw UnimplementedError(); - - @override - Future rescan({required int height}) async => throw UnimplementedError(); - - @override - Future save() async => throw UnimplementedError(); - - @override - Future startSync() async => throw UnimplementedError(); - - @override - Future? updateBalance() => null; - - @override - @observable - late ObservableMap balance; - - @override - Object get keys => throw UnimplementedError("keys"); - - @override - String get seed => "seed"; - - @override - @observable - late SyncStatus syncStatus; - - @override - late DummyWalletAddresses walletAddresses; -} diff --git a/cw_dummy/lib/dummy_wallet_addresses.dart b/cw_dummy/lib/dummy_wallet_addresses.dart deleted file mode 100644 index 9e6fbfb4c..000000000 --- a/cw_dummy/lib/dummy_wallet_addresses.dart +++ /dev/null @@ -1,23 +0,0 @@ -import 'package:mobx/mobx.dart'; -import 'package:cw_core/wallet_addresses.dart'; - -part 'dummy_wallet_addresses.g.dart'; - -class DummyWalletAddresses = DummyWalletAddressesBase with _$DummyWalletAddresses; - -abstract class DummyWalletAddressesBase extends WalletAddresses with Store { - DummyWalletAddressesBase(super.walletInfo); - - @override - @observable - late String address; - - @override - Future init() async => throw UnimplementedError(); - - @override - Future updateAddressesInBox() async => throw UnimplementedError(); - - // TODO: from electrum wallet addresses implementation - Future generateNewAddress() async => throw UnimplementedError(); -} \ No newline at end of file diff --git a/cw_dummy/lib/dummy_wallet_creation_credentials.dart b/cw_dummy/lib/dummy_wallet_creation_credentials.dart deleted file mode 100644 index 7fc48d037..000000000 --- a/cw_dummy/lib/dummy_wallet_creation_credentials.dart +++ /dev/null @@ -1,18 +0,0 @@ -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; - -class DummyNewWalletCredentials extends WalletCredentials { - DummyNewWalletCredentials({required String name, WalletInfo? walletInfo}) - : super(name: name, walletInfo: walletInfo); -} - -class DummyRestoreWalletFromSeedCredentials extends WalletCredentials { - DummyRestoreWalletFromSeedCredentials({required String name, WalletInfo? walletInfo}) - : super(name: name, walletInfo: walletInfo); -} - -class DummyRestoreWalletFromKeyCredentials extends WalletCredentials { - DummyRestoreWalletFromKeyCredentials({required String name, WalletInfo? walletInfo}) - : super(name: name, walletInfo: walletInfo); -} - diff --git a/cw_dummy/lib/dummy_wallet_service.dart b/cw_dummy/lib/dummy_wallet_service.dart deleted file mode 100644 index 85a71dbf5..000000000 --- a/cw_dummy/lib/dummy_wallet_service.dart +++ /dev/null @@ -1,43 +0,0 @@ -import 'package:cw_core/balance.dart'; -import 'package:cw_core/pathForWallet.dart'; -import 'package:cw_core/transaction_history.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/wallet_service.dart'; -import 'package:cw_core/wallet_type.dart'; - -import 'package:hive/hive.dart'; -import 'dummy_wallet_creation_credentials.dart'; - - -class DummyWalletService extends WalletService { - DummyWalletService(this.walletInfoSource); - - final Box walletInfoSource; - - @override - Future, TransactionInfo>> create(WalletCredentials credentials) => throw UnimplementedError(); - - @override - WalletType getType() => WalletType.dummy; - - @override - Future isWalletExit(String name) => throw UnimplementedError(); - - @override - Future, TransactionInfo>> openWallet(String name, String password) => throw UnimplementedError(); - - @override - Future remove(String wallet) => throw UnimplementedError(); - - @override - Future rename(String currentName, String password, String newName) => throw UnimplementedError(); - - @override - Future, TransactionInfo>> restoreFromKeys(DummyRestoreWalletFromKeyCredentials credentials) => throw UnimplementedError(); - - @override - Future, TransactionInfo>> restoreFromSeed(DummyRestoreWalletFromSeedCredentials credentials) => throw UnimplementedError(); -} \ No newline at end of file diff --git a/cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux b/cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux deleted file mode 120000 index 5f46c0555..000000000 --- a/cw_dummy/linux/flutter/ephemeral/.plugin_symlinks/path_provider_linux +++ /dev/null @@ -1 +0,0 @@ -/home/leo/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/ \ No newline at end of file diff --git a/cw_dummy/linux/flutter/generated_plugin_registrant.cc b/cw_dummy/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index e71a16d23..000000000 --- a/cw_dummy/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void fl_register_plugins(FlPluginRegistry* registry) { -} diff --git a/cw_dummy/linux/flutter/generated_plugin_registrant.h b/cw_dummy/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47bc..000000000 --- a/cw_dummy/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/cw_dummy/linux/flutter/generated_plugins.cmake b/cw_dummy/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 2e1de87a7..000000000 --- a/cw_dummy/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift b/cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index e777c67df..000000000 --- a/cw_dummy/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,12 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - -import path_provider_foundation - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) -} diff --git a/cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig deleted file mode 100644 index 78a963b83..000000000 --- a/cw_dummy/macos/Flutter/ephemeral/Flutter-Generated.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -// This is a generated file; do not edit or check into version control. -FLUTTER_ROOT=/home/leo/flutter -FLUTTER_APPLICATION_PATH=/opt/android/cake_wallet/cw_dummy -COCOAPODS_PARALLEL_CODE_SIGN=true -FLUTTER_BUILD_DIR=build -FLUTTER_BUILD_NAME=0.0.1 -FLUTTER_BUILD_NUMBER=0.0.1 -DART_OBFUSCATION=false -TRACK_WIDGET_CREATION=true -TREE_SHAKE_ICONS=false -PACKAGE_CONFIG=.dart_tool/package_config.json diff --git a/cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh b/cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh deleted file mode 100755 index fba94197d..000000000 --- a/cw_dummy/macos/Flutter/ephemeral/flutter_export_environment.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -# This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=/home/leo/flutter" -export "FLUTTER_APPLICATION_PATH=/opt/android/cake_wallet/cw_dummy" -export "COCOAPODS_PARALLEL_CODE_SIGN=true" -export "FLUTTER_BUILD_DIR=build" -export "FLUTTER_BUILD_NAME=0.0.1" -export "FLUTTER_BUILD_NUMBER=0.0.1" -export "DART_OBFUSCATION=false" -export "TRACK_WIDGET_CREATION=true" -export "TREE_SHAKE_ICONS=false" -export "PACKAGE_CONFIG=.dart_tool/package_config.json" diff --git a/cw_dummy/pubspec.yaml b/cw_dummy/pubspec.yaml deleted file mode 100644 index ae3d9135e..000000000 --- a/cw_dummy/pubspec.yaml +++ /dev/null @@ -1,70 +0,0 @@ -name: cw_dummy -description: A new Flutter package project. -version: 0.0.1 -homepage: -publish_to: none - -environment: - sdk: ">=2.17.5 <3.0.0" - flutter: ">=1.20.0" - -dependencies: - flutter: - sdk: flutter - ffi: ^2.0.1 - http: ^1.1.0 - path_provider: ^2.0.11 - mobx: ^2.0.7+4 - flutter_mobx: ^2.0.6+1 - intl: ^0.18.0 - cw_core: - path: ../cw_core - - cw_zano: - path: ../cw_zano - -dev_dependencies: - flutter_test: - sdk: flutter - flutter_lints: ^2.0.0 - build_runner: ^2.1.11 - mobx_codegen: ^2.0.7 - build_resolvers: ^2.0.9 - hive_generator: ^1.1.3 - -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec - -# The following section is specific to Flutter packages. -flutter: - - # To add assets to your package, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - # - # For details regarding assets in packages, see - # https://flutter.dev/assets-and-images/#from-packages - # - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/assets-and-images/#resolution-aware - - # To add custom fonts to your package, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts in packages, see - # https://flutter.dev/custom-fonts/#from-packages diff --git a/cw_dummy/test/cw_dummy_test.dart b/cw_dummy/test/cw_dummy_test.dart deleted file mode 100644 index 3d74bbf1c..000000000 --- a/cw_dummy/test/cw_dummy_test.dart +++ /dev/null @@ -1,12 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; - -import 'package:cw_dummy/cw_dummy.dart'; - -void main() { - test('adds one to input values', () { - final calculator = Calculator(); - expect(calculator.addOne(2), 3); - expect(calculator.addOne(-7), -6); - expect(calculator.addOne(0), 1); - }); -} diff --git a/cw_dummy/windows/flutter/generated_plugin_registrant.cc b/cw_dummy/windows/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 8b6d4680a..000000000 --- a/cw_dummy/windows/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,11 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - - -void RegisterPlugins(flutter::PluginRegistry* registry) { -} diff --git a/cw_dummy/windows/flutter/generated_plugin_registrant.h b/cw_dummy/windows/flutter/generated_plugin_registrant.h deleted file mode 100644 index dc139d85a..000000000 --- a/cw_dummy/windows/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void RegisterPlugins(flutter::PluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/cw_dummy/windows/flutter/generated_plugins.cmake b/cw_dummy/windows/flutter/generated_plugins.cmake deleted file mode 100644 index b93c4c30c..000000000 --- a/cw_dummy/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/cw_shared_external/pubspec.lock b/cw_shared_external/pubspec.lock index ef01c9f9a..440f635ed 100644 --- a/cw_shared_external/pubspec.lock +++ b/cw_shared_external/pubspec.lock @@ -5,51 +5,50 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.1.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" - source: hosted - version: "1.2.0" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + url: "https://pub.dev" source: hosted - version: "1.15.0" + version: "1.17.1" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -60,27 +59,46 @@ packages: description: flutter source: sdk version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + url: "https://pub.dev" source: hosted - version: "0.12.10" + version: "0.12.15" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.9.1" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.8.3" sky_engine: dependency: transitive description: flutter @@ -90,58 +108,58 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + url: "https://pub.dev" source: hosted - version: "0.2.19" - typed_data: - dependency: transitive - description: - name: typed_data - url: "https://pub.dartlang.org" - source: hosted - version: "1.3.0" + version: "0.5.1" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.4" sdks: - dart: ">=2.12.0-0.0 <3.0.0" + dart: ">=3.0.0-0 <4.0.0" flutter: ">=1.20.0" diff --git a/cw_zano/lib/api/calls.dart b/cw_zano/lib/api/calls.dart deleted file mode 100644 index 8dc6939a6..000000000 --- a/cw_zano/lib/api/calls.dart +++ /dev/null @@ -1,351 +0,0 @@ -import 'dart:ffi'; -import 'dart:convert'; - -import 'package:cw_zano/api/convert_utf8_to_string.dart'; -import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; -import 'package:cw_zano/api/model/transfer_params.dart'; -import 'package:cw_zano/api/structs/utf8_box.dart'; -import 'package:cw_zano/api/zano_api.dart'; -import 'package:ffi/ffi.dart'; -import 'package:flutter/foundation.dart'; - -// bool setup_node(char *address, char *login, char *password, bool use_ssl, bool is_light_wallet, char *error) -final _setupNodeNative = - zanoApi.lookup>('setup_node').asFunction<_SetupNode>(); -typedef _setup_node = Int8 Function( - Pointer, Pointer?, Pointer?, Int8, Int8, Pointer); -typedef _SetupNode = int Function( - Pointer, Pointer?, Pointer?, int, int, Pointer); - -// char * create_wallet(char *path, char *password, char *language, int32_t networkType, char *error) -final _createWalletNative = - zanoApi.lookup>('create_wallet').asFunction<_CreateWallet>(); -typedef _create_wallet = Pointer Function( - Pointer, Pointer, Pointer, Int32, Pointer); -typedef _CreateWallet = Pointer Function( - Pointer, Pointer, Pointer, int, Pointer); - -// char* async_call(char* method_name, uint64_t instance_id, char* params) -final _asyncCallNative = - zanoApi.lookup>('async_call').asFunction<_AsyncCall>(); -typedef _async_call = Pointer Function(Pointer, Int64, Pointer); -typedef _AsyncCall = Pointer Function( - Pointer methodName, int hWallet, Pointer params); - -// char* get_wallet_status(uint64_t hwallet) -final _getWalletStatusNative = zanoApi - .lookup>('get_wallet_status') - .asFunction<_GetWalletStatus>(); -typedef _get_wallet_status = Pointer Function(Int64); -typedef _GetWalletStatus = Pointer Function(int hWallet); - -// char *get_wallet_info(uint64_t hwallet) -final _getWalletInfoNative = zanoApi - .lookup>('get_wallet_info') - .asFunction<_GetWalletInfo>(); -typedef _get_wallet_info = Pointer Function(Int64); -typedef _GetWalletInfo = Pointer Function(int hWallet); - -// char* get_connectivity_status() -final _getConnectivityStatusNative = zanoApi - .lookup>('get_connectivity_status') - .asFunction<_GetConnectivityStatus>(); -typedef _get_connectivity_status = Pointer Function(); -typedef _GetConnectivityStatus = Pointer Function(); - -// char* get_version() -final _getVersionNative = - zanoApi.lookup>('get_version').asFunction<_GetVersion>(); -typedef _get_version = Pointer Function(); -typedef _GetVersion = Pointer Function(); - -// char * load_wallet(char *path, char *password, int32_t nettype) -final _loadWalletNative = - zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); -typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); -typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); - -// char* try_pull_result(uint64_t job_id) -final _tryPullResultNative = zanoApi - .lookup>('try_pull_result') - .asFunction<_TryPullResult>(); -typedef _try_pull_result = Pointer Function(Int64); -typedef _TryPullResult = Pointer Function(int hWallet); - -// void close_wallet(uint64_t hwallet) -final _closeWalletNative = - zanoApi.lookup>('close_wallet').asFunction<_closeWalletStatus>(); -typedef _close_wallet = Void Function(Int64); -typedef _closeWalletStatus = void Function(int hWallet); - -// uint64_t get_current_tx_fee(uint64_t priority) -final _getCurrentTxFeeNative = zanoApi - .lookup>('get_current_tx_fee') - .asFunction<_getCurrentTxFee>(); -typedef _get_current_tx_fee = Int64 Function(Int64); -typedef _getCurrentTxFee = int Function(int priority); - -// char * restore_wallet_from_seed(char *path, char *password, char *seed, int32_t networkType, uint64_t restoreHeight, char *error) -final _restoreWalletFromSeedNative = zanoApi - .lookup>('restore_wallet_from_seed') - .asFunction<_RestoreWalletFromSeed>(); -typedef _restore_wallet_from_seed = Pointer Function( - Pointer, Pointer, Pointer, Int32, Int64, Pointer); -typedef _RestoreWalletFromSeed = Pointer Function( - Pointer, Pointer, Pointer, int, int, Pointer); - -// char* set_password(uint64_t hwallet, char *password, Utf8Box &error) -final _setPasswordNative = - zanoApi.lookup>('set_password').asFunction<_SetPassword>(); -typedef _set_password = Pointer Function(Int64 hWallet, Pointer password, Pointer error); -typedef _SetPassword = Pointer Function(int hWallet, Pointer password, Pointer error); - -String setPassword({required int hWallet, required String password}) { - final passwordPointer = password.toNativeUtf8(); - final errorMessagePointer = calloc(); - final result = - convertUTF8ToString(pointer: _setPasswordNative(hWallet, passwordPointer, errorMessagePointer)); - calloc.free(passwordPointer); - - /*if (!changed) { - final message = errorMessagePointer.ref.getValue(); - calloc.free(errorMessagePointer); - throw Exception(message); - }*/ - - calloc.free(errorMessagePointer); - return result; -} - -// is_wallet_exist(char *path) -final _isWalletExistNative = zanoApi - .lookup>('is_wallet_exist') - .asFunction<_IsWalletExist>(); -typedef _is_wallet_exist = Int8 Function(Pointer); -typedef _IsWalletExist = int Function(Pointer); - -bool isWalletExist({required String path}) { - final pathPointer = path.toNativeUtf8(); - final isExist = _isWalletExistNative(pathPointer) != 0; - calloc.free(pathPointer); - return isExist; -} - -// char* get_address_info(char* address) -final _getAddressInfoNative = zanoApi - .lookup>('get_address_info') - .asFunction<_GetAddressInfo>(); -typedef _get_address_info = Pointer Function(Pointer password); -typedef _GetAddressInfo = Pointer Function(Pointer address); - -String getAddressInfo(String address) { - debugPrint('get address info $address'); - final addressPointer = address.toNativeUtf8(); - final result = - convertUTF8ToString(pointer: _getAddressInfoNative(addressPointer)); - debugPrint('get address info result $result'); - calloc.free(addressPointer); - return result; -} - -bool setupNode({ - required String address, - String? login, - String? password, - bool useSSL = false, - bool isLightWallet = false, - /*String? socksProxyAddress*/ -}) { - final addressPointer = address.toNativeUtf8(); - Pointer? loginPointer; - Pointer? passwordPointer; - - if (login != null) { - loginPointer = login.toNativeUtf8(); - } - - if (password != null) { - passwordPointer = password.toNativeUtf8(); - } - - final errorMessagePointer = ''.toNativeUtf8(); - debugPrint( - "setup_node address $address login $login password $password useSSL $useSSL isLightWallet $isLightWallet"); - final isSetupNode = _setupNodeNative(addressPointer, loginPointer, passwordPointer, - _boolToInt(useSSL), _boolToInt(isLightWallet), errorMessagePointer) != - 0; - debugPrint("setup_node result $isSetupNode"); - - calloc.free(addressPointer); - - if (loginPointer != null) { - calloc.free(loginPointer); - } - - if (passwordPointer != null) { - calloc.free(passwordPointer); - } - - return isSetupNode; -} - -String asyncCall({required String methodName, required int hWallet, required String params}) { - final methodNamePointer = methodName.toNativeUtf8(); - final paramsPointer = params.toNativeUtf8(); - - debugPrint('async_call method_name $methodName hWallet $hWallet params $params'); - final result = - convertUTF8ToString(pointer: _asyncCallNative(methodNamePointer, hWallet, paramsPointer)); - - calloc.free(methodNamePointer); - calloc.free(paramsPointer); - - return result; -} - -String createWallet( - {required String path, required String password, required String language, int nettype = 0}) { - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final languagePointer = language.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - debugPrint('create_wallet path $path password $password language $language'); - final result = convertUTF8ToString( - pointer: _createWalletNative( - pathPointer, passwordPointer, languagePointer, nettype, errorMessagePointer)); - debugPrint('create_wallet result $result'); - calloc.free(pathPointer); - calloc.free(passwordPointer); - calloc.free(languagePointer); - - return result; -} - -Future invokeMethod(int hWallet, String methodName, String params) async { - debugPrint('invoke method $methodName params $params'); - final invokeResult = asyncCall( - methodName: 'invoke', - hWallet: hWallet, - params: json.encode({ - 'method': methodName, - 'params': params, - })); - debugPrint('invoke result $invokeResult'); - final map = json.decode(invokeResult); - if (map['job_id'] != null) { - await Future.delayed(Duration(seconds: 3)); - final result = tryPullResult(map['job_id'] as int); - return result; - } - return invokeResult; -} - -Future store(int hWallet) async { - return await invokeMethod(hWallet, 'store', '{}'); -} - -Future transfer(int hWallet, TransferParams params) async { - final invokeResult = await asyncCall( - methodName: 'invoke', - hWallet: hWallet, - params: '{"method": "transfer","params": ${jsonEncode(params)}}', - ); - debugPrint('invoke result $invokeResult'); - var map = json.decode(invokeResult); - if (map['job_id'] != null) { - // TODO: fixit - await Future.delayed(Duration(seconds: 3)); - final result = tryPullResult(map['job_id'] as int); - return result; - } - return invokeResult; -} - -Future getRecentTxsAndInfo( - {required int hWallet, - required int offset, - required int count, - bool updateProvisionInfo = true}) async { - return await invokeMethod( - hWallet, - 'get_recent_txs_and_info', - json.encode( - GetRecentTxsAndInfoParams( - offset: offset, - count: count, - updateProvisionInfo: updateProvisionInfo, - ), - ), - ); -} - -String getWalletStatus(int hWallet) { - debugPrint('get_wallet_status hWallet $hWallet'); - final result = convertUTF8ToString(pointer: _getWalletStatusNative(hWallet)); - debugPrint('get_wallet_status result $result'); - return result; -} - -void closeWallet(int hWallet) { - debugPrint('close_wallet hWallet $hWallet'); - _closeWalletNative(hWallet); -} - -int getCurrentTxFee(int priority) { - debugPrint('get_current_tx_fee priority $priority'); - final result = _getCurrentTxFeeNative(priority); - debugPrint('get_current_tx_fee result $result'); - return result; -} - -String getWalletInfo(int hWallet) { - debugPrint('get_wallet_info hWallet $hWallet'); - final result = convertUTF8ToString(pointer: _getWalletInfoNative(hWallet)); - debugPrint('get_wallet_info result $result'); - return result; -} - -String getConnectivityStatus() { - final result = convertUTF8ToString(pointer: _getConnectivityStatusNative()); - debugPrint('get_connectivity_status result $result'); - return result; -} - -String getVersion() { - final result = convertUTF8ToString(pointer: _getVersionNative()); - debugPrint('get_version result $result'); - return result; -} - -String restoreWalletFromSeed(String path, String password, String seed) { - debugPrint('restore_wallet_from_seed path $path password $password seed $seed'); - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final seedPointer = seed.toNativeUtf8(); - final errorMessagePointer = ''.toNativeUtf8(); - final result = convertUTF8ToString( - pointer: _restoreWalletFromSeedNative( - pathPointer, passwordPointer, seedPointer, 0, 0, errorMessagePointer)); - debugPrint('restore wallet from seed result $result'); - return result; -} - -String loadWallet(String path, String password, int nettype) { - debugPrint('load_wallet path $path password $password nettype $nettype'); - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final result = convertUTF8ToString( - pointer: _loadWalletNative(pathPointer, passwordPointer, nettype), - ); - debugPrint('load_wallet result $result'); - return result; -} - -String tryPullResult(int jobId) { - debugPrint('try_pull_result jobId $jobId'); - final result = convertUTF8ToString(pointer: _tryPullResultNative(jobId)); - debugPrint('try_pull_result result $result'); - return result; -} - -int _boolToInt(bool value) => value ? 1 : 0; diff --git a/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart b/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart index 9866e4418..ea90e5003 100644 --- a/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart +++ b/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart @@ -3,11 +3,11 @@ class GetRecentTxsAndInfoParams { final int count; final bool updateProvisionInfo; - GetRecentTxsAndInfoParams({required this.offset, required this.count, required this.updateProvisionInfo}); + GetRecentTxsAndInfoParams({required this.offset, required this.count, this.updateProvisionInfo = true}); Map toJson() => { - "offset": offset, - "count": count, - "update_provision_info": updateProvisionInfo, + 'offset': offset, + 'count': count, + 'update_provision_info': updateProvisionInfo, }; } \ No newline at end of file diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart index 712f45459..bafef1151 100644 --- a/cw_zano/lib/api/wallet.dart +++ b/cw_zano/lib/api/wallet.dart @@ -2,7 +2,8 @@ import 'dart:async'; import 'dart:convert'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/get_wallet_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; @@ -12,13 +13,13 @@ import 'package:flutter/foundation.dart'; import 'package:mobx/mobx.dart' as mobx; int getCurrentHeight(int hWallet) { - final json = calls.getWalletStatus(hWallet); + final json = ApiCalls.getWalletStatus(hWallet: hWallet); final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); return walletStatus.currentWalletHeight; } int getNodeHeightSync(int hWallet) { - final json = calls.getWalletStatus(hWallet); + final json = ApiCalls.getWalletStatus(hWallet: hWallet); final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); return walletStatus.currentDaemonHeight; } @@ -37,13 +38,13 @@ class SyncListener { int _lastKnownBlockHeight; int _initialSyncHeight; - Future getNodeHeightOrUpdate(int hWallet, int baseHeight) async { - if (_cachedBlockchainHeight < baseHeight || _cachedBlockchainHeight == 0) { - _cachedBlockchainHeight = await compute(getNodeHeightSync, hWallet); - } + // Future getNodeHeightOrUpdate(int hWallet, int baseHeight) async { + // if (_cachedBlockchainHeight < baseHeight || _cachedBlockchainHeight == 0) { + // _cachedBlockchainHeight = await compute(getNodeHeightSync, hWallet); + // } - return _cachedBlockchainHeight; - } + // return _cachedBlockchainHeight; + // } void start(ZanoWalletBase wallet, int hWallet) async { _cachedBlockchainHeight = 0; @@ -54,53 +55,56 @@ class SyncListener { onNewTransaction?.call(); }*/ - var syncHeight = getCurrentHeight(hWallet); + var json = ApiCalls.getWalletStatus(hWallet: hWallet); + final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + // You can call getWalletInfo ONLY if getWalletStatus returns NOT is in long refresh and wallet state is 2 (ready) + if (!status.isInLongRefresh && status.walletState == 2) { + final syncHeight = status.currentWalletHeight; - final json = calls.getWalletInfo(hWallet); - final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); - wallet.seed = result.wiExtended.seed; - wallet.keys = ZanoWalletKeys( - privateSpendKey: result.wiExtended.spendPrivateKey, - privateViewKey: result.wiExtended.viewPrivateKey, - publicSpendKey: result.wiExtended.spendPublicKey, - publicViewKey: result.wiExtended.viewPublicKey, - ); + json = ApiCalls.getWalletInfo(hWallet); + final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); + wallet.seed = result.wiExtended.seed; + wallet.keys = ZanoWalletKeys( + privateSpendKey: result.wiExtended.spendPrivateKey, + privateViewKey: result.wiExtended.viewPrivateKey, + publicSpendKey: result.wiExtended.spendPublicKey, + publicViewKey: result.wiExtended.viewPublicKey, + ); - final balance = result.wi.balances.first; - wallet.assetId = balance.assetInfo.assetId; - wallet.balance = mobx.ObservableMap.of( - {CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); + final balance = result.wi.balances.first; + wallet.assetId = balance.assetInfo.assetId; + wallet.balance = mobx.ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); - if (_initialSyncHeight <= 0) { - _initialSyncHeight = syncHeight; + if (_initialSyncHeight <= 0) { + _initialSyncHeight = syncHeight; + } + + final bchHeight = status.currentDaemonHeight; + + if (_lastKnownBlockHeight == syncHeight) { + return; + } + + _lastKnownBlockHeight = syncHeight; + final track = bchHeight - _initialSyncHeight; + final diff = track - (bchHeight - syncHeight); + final ptc = diff <= 0 ? 0.0 : diff / track; + final left = bchHeight - syncHeight; + + if (syncHeight < 0 || left < 0) { + return; + } + + // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; + onNewBlock.call(syncHeight, left, ptc); } - - final bchHeight = await getNodeHeightOrUpdate(hWallet, syncHeight); - - if (_lastKnownBlockHeight == syncHeight || syncHeight == null) { - return; - } - - _lastKnownBlockHeight = syncHeight; - final track = bchHeight - _initialSyncHeight; - final diff = track - (bchHeight - syncHeight); - final ptc = diff <= 0 ? 0.0 : diff / track; - final left = bchHeight - syncHeight; - - if (syncHeight < 0 || left < 0) { - return; - } - - // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; - onNewBlock?.call(syncHeight, left, ptc); }); } void stop() => _updateSyncInfoTimer?.cancel(); } -SyncListener setListeners( - void Function(int, int, double) onNewBlock, void Function() onNewTransaction) { +SyncListener setListeners(void Function(int, int, double) onNewBlock, void Function() onNewTransaction) { final listener = SyncListener(onNewBlock, onNewTransaction); /**setListenerNative();*/ return listener; diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index b3a293784..9cc22c573 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -7,13 +7,13 @@ import 'package:cw_zano/api/model/transfer_result.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/pending_transaction.dart'; -import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart' as calls; import 'package:cw_zano/zano_wallet.dart'; class PendingZanoTransaction with PendingTransaction { PendingZanoTransaction( {required this.zanoWallet, - required this.fee, + required this.fee, required this.intAmount, //required this.stringAmount, required this.hWallet, @@ -50,26 +50,24 @@ class PendingZanoTransaction with PendingTransaction { @override Future commit() async { - final result = await calls.transfer( - hWallet, - TransferParams( - destinations: [ - Destination( - amount: intAmount.toString(), - address: address, - assetId: assetId, - ) - ], - fee: fee, - mixin: zanoMixin, - paymentId: '', - comment: comment, - pushPayer: false, - hideReceiver: false, - )); - print('transfer result $result'); + final params = TransferParams( + destinations: [ + Destination( + amount: intAmount.toString(), + address: address, + assetId: assetId, + ) + ], + fee: fee, + mixin: zanoMixin, + paymentId: '', + comment: comment, + pushPayer: false, + hideReceiver: false, + ); + final result = await zanoWallet.invokeMethod(hWallet, 'transfer', params); final map = jsonDecode(result); - if (map['result'] != null && map['result']['result'] != null ) { + if (map['result'] != null && map['result']['result'] != null) { transferResult = TransferResult.fromJson( map['result']['result'] as Map, ); diff --git a/cw_zano/lib/zano_utils.dart b/cw_zano/lib/zano_utils.dart index 54235e3fa..4127a96ab 100644 --- a/cw_zano/lib/zano_utils.dart +++ b/cw_zano/lib/zano_utils.dart @@ -1,13 +1,12 @@ import 'dart:convert'; - -import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/get_address_info_result.dart'; class ZanoUtils { static bool validateAddress(String address) { try { final result = GetAddressInfoResult.fromJson( - jsonDecode(calls.getAddressInfo(address)) as Map, + jsonDecode(ApiCalls.getAddressInfo(address: address)) as Map, ); return result.valid; } catch (err) { diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index b071cb67b..85a158c12 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -13,8 +13,11 @@ import 'package:cw_core/sync_status.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; -import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart'; +import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/store_result.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; import 'package:cw_zano/api/wallet.dart' as zano_wallet; import 'package:cw_zano/api/zano_api.dart'; @@ -37,11 +40,9 @@ class ZanoWallet = ZanoWalletBase with _$ZanoWallet; typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); - const int zanoMixin = 10; -abstract class ZanoWalletBase - extends WalletBase with Store { +abstract class ZanoWalletBase extends WalletBase with Store { ZanoWalletBase(WalletInfo walletInfo) : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), _isTransactionUpdating = false, @@ -64,6 +65,8 @@ abstract class ZanoWalletBase String assetId = ''; static const int _autoSaveInterval = 30; + static const _statusDelivered = 'delivered'; + static const _maxAttempts = 10; @override ZanoWalletAddresses walletAddresses; @@ -80,8 +83,7 @@ abstract class ZanoWalletBase String seed = ''; @override - ZanoWalletKeys keys = ZanoWalletKeys( - privateSpendKey: '', privateViewKey: '', publicSpendKey: '', publicViewKey: ''); + ZanoWalletKeys keys = ZanoWalletKeys(privateSpendKey: '', privateViewKey: '', publicSpendKey: '', publicViewKey: ''); zano_wallet.SyncListener? _listener; /**ReactionDisposer? _onAccountChangeReaction;*/ @@ -100,6 +102,7 @@ abstract class ZanoWalletBase Future init(String address) async { await walletAddresses.init(); await walletAddresses.updateAddress(address); + ///balance.addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); _setListeners(); await updateTransactions(); @@ -112,8 +115,7 @@ abstract class ZanoWalletBase } } - _autoSaveTimer = - Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); + _autoSaveTimer = Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); } @override @@ -130,7 +132,7 @@ abstract class ZanoWalletBase Future connectToNode({required Node node}) async { try { syncStatus = ConnectingSyncStatus(); - await calls.setupNode( + await ApiCalls.setupNode( address: "195.201.107.230:33336", // node.uriRaw, login: "", // node.login, password: "", // node.password, @@ -169,15 +171,11 @@ abstract class ZanoWalletBase Future createTransaction(Object credentials) async { final creds = credentials as ZanoTransactionCreationCredentials; final output = creds.outputs.first; - final address = output.isParsedAddress && (output.extractedAddress?.isNotEmpty ?? false) - ? output.extractedAddress! - : output.address; + final address = output.isParsedAddress && (output.extractedAddress?.isNotEmpty ?? false) ? output.extractedAddress! : output.address; final stringAmount = output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); final fee = calculateEstimatedFee(creds.priority); final intAmount = (double.parse(stringAmount!) * pow(10, 12)).toInt(); - final transaction = PendingZanoTransaction(fee: fee, intAmount: intAmount, - hWallet: hWallet, address: address, assetId: assetId, - comment: output.note ?? '', zanoWallet: this); + final transaction = PendingZanoTransaction(fee: fee, intAmount: intAmount, hWallet: hWallet, address: address, assetId: assetId, comment: output.note ?? '', zanoWallet: this); return transaction; /*final _credentials = credentials as ZanoTransactionCreationCredentials; @@ -251,14 +249,31 @@ abstract class ZanoWalletBase @override int calculateEstimatedFee(TransactionPriority priority, [int? amount = null]) { - return calls.getCurrentTxFee(priority.raw); + return ApiCalls.getCurrentTxFee(priority: priority.raw); } @override Future save() async { - await walletAddresses.updateAddressesInBox(); - await backupWalletFiles(name); - await calls.store(hWallet); + try { + await walletAddresses.updateAddressesInBox(); + await backupWalletFiles(name); + await store(); + } catch (e) { + print('Error while saving Zano wallet file ${e.toString()}'); + } + } + + Future store() async { + try { + final json = await invokeMethod(hWallet, 'store', '{}'); + final map = jsonDecode(json) as Map; + if (map['result'] == null || map['result']['result'] == null) { + throw 'store empty response'; + } + final _ = StoreResult.fromJson(map['result']['result'] as Map); + } catch (e) { + print(e.toString()); + } } @override @@ -287,7 +302,7 @@ abstract class ZanoWalletBase @override Future changePassword(String password) async { - calls.setPassword(hWallet: hWallet, password: password); + ApiCalls.setPassword(hWallet: hWallet, password: password); } Future setAsRecovered() async { @@ -310,34 +325,52 @@ abstract class ZanoWalletBase } Future _refreshTransactions() async { - final result = await calls.getRecentTxsAndInfo(hWallet: hWallet, offset: 0, count: 30); - final map = jsonDecode(result); - if (map == null || map["result"] == null || map["result"]["result"] == null) { - return; + try { + final result = await invokeMethod(hWallet, 'get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + final map = jsonDecode(result) as Map?; + if (map == null) { + print('get_recent_txs_and_info empty response'); + return; + } + + final resultData = map['result']; + if (resultData == null) { + print('get_recent_txs_and_info empty response'); + return; + } + + if (resultData['error'] != null) { + print('get_recent_txs_and_info error ${resultData['error']}'); + return; + } + + final transfers = resultData['result']?['transfers'] as List?; + if (transfers == null) { + print('get_recent_txs_and_info empty transfers'); + return; + } + + history = transfers.map((e) => History.fromJson(e as Map)).toList(); + } catch (e) { + print(e.toString()); } - if (map["result"]["result"]["transfers"] != null) - history = (map["result"]["result"]["transfers"] as List) - .map((e) => History.fromJson(e as Map)) - .toList(); } @override Future> fetchTransactions() async { - //zano_transaction_history.refreshTransactions(); - await _refreshTransactions(); - return history - .map((history) => ZanoTransactionInfo.fromHistory(history)) - .fold>({}, - (Map acc, ZanoTransactionInfo tx) { - acc[tx.id] = tx; - return acc; - }); - // return _getAllTransactions(null) - // .fold>({}, - // (Map acc, ZanoTransactionInfo tx) { - // acc[tx.id] = tx; - // return acc; - // }); + try { + await _refreshTransactions(); + return history.map((history) => ZanoTransactionInfo.fromHistory(history)).fold>( + {}, + (Map acc, ZanoTransactionInfo tx) { + acc[tx.id] = tx; + return acc; + }, + ); + } catch (e) { + print(e); + return {}; + } } Future updateTransactions() async { @@ -432,8 +465,7 @@ abstract class ZanoWalletBase } } - final _loadWalletNative = - zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); + final _loadWalletNative = zanoApi.lookup>('load_wallet').asFunction<_LoadWallet>(); String loadWallet(String path, String password) { print('load_wallet path $path password $password'); @@ -451,4 +483,22 @@ abstract class ZanoWalletBase calloc.free(pointer); return str; } + + Future invokeMethod(int hWallet, String methodName, Object params) async { + var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); + var map = jsonDecode(invokeResult) as Map; + int attempts = 0; + if (map['job_id'] != null) { + final jobId = map['job_id'] as int; + do { + await Future.delayed(Duration(milliseconds: attempts < 2 ? 100 : 500)); + final result = ApiCalls.tryPullResult(jobId); + map = jsonDecode(result) as Map; + if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { + return result; + } + } while (++attempts < _maxAttempts); + } + return invokeResult; + } } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index d057c72ff..0651b32da 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -10,7 +10,8 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:cw_zano/api/calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart' as calls; +import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/consts.dart'; import 'package:cw_zano/api/exceptions/already_exists_exception.dart'; import 'package:cw_zano/api/exceptions/create_wallet_exception.dart'; @@ -72,12 +73,12 @@ class ZanoWalletService extends WalletService; if (map['result'] == null) throw CreateWalletException(''); final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); - await calls.store(hWallet); + await wallet.store(); await wallet.init(createWalletResult.wi.address); return wallet; } catch (e) { @@ -91,7 +92,7 @@ class ZanoWalletService extends WalletService isWalletExit(String name) async { try { final path = await pathForWallet(name: name, type: getType()); - return calls.isWalletExist(path: path); + return ApiCalls.isWalletExist(path: path); } catch (e) { // TODO: Implement Exception for wallet list service. print('ZanoWalletsManager Error: $e'); @@ -118,7 +119,7 @@ class ZanoWalletService extends WalletService); _parseCreateWalletResult(createWalletResult, wallet); - await calls.store(hWallet); + await wallet.store(); await wallet.init(createWalletResult.wi.address); return wallet; } catch (e) { @@ -180,13 +181,13 @@ class ZanoWalletService extends WalletService; if (map['result'] != null) { final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); - await calls.store(hWallet); + await wallet.store(); await wallet.init(createWalletResult.wi.address); return wallet; } else if (map['error'] != null) { diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index 2c0c78cdf..cbacf49a7 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -1,5 +1,4 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/zano/zano.dart'; @@ -33,8 +32,6 @@ class SeedValidator extends Validator { return zano!.getWordList(language); case WalletType.ethereum: return ethereum!.getEthereumWordList(language); - case WalletType.dummy: - return dummy!.getDummyWordList(); default: return []; } diff --git a/lib/di.dart b/lib/di.dart index 29406339c..fc8bf512e 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -5,7 +5,6 @@ import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart'; import 'package:cake_wallet/buy/payfura/payfura_buy_provider.dart'; import 'package:cake_wallet/buy/robinhood/robinhood_buy_provider.dart'; import 'package:cake_wallet/core/yat_service.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/background_tasks.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; @@ -793,8 +792,6 @@ Future setup({ return ethereum!.createEthereumWalletService(_walletInfoSource); case WalletType.zano: return zano!.createZanoWalletService(_walletInfoSource); - case WalletType.dummy: - return dummy!.createDummyWalletService(_walletInfoSource); default: throw Exception( diff --git a/lib/dummy/cw_dummy.dart b/lib/dummy/cw_dummy.dart deleted file mode 100644 index f0772959b..000000000 --- a/lib/dummy/cw_dummy.dart +++ /dev/null @@ -1,83 +0,0 @@ -part of 'dummy.dart'; - -class CWDummy extends Dummy { - @override - List getDummyWordList() => ["aaa", "bbb", "ccc"]; - - @override - WalletService createDummyWalletService(Box walletInfoSource) => - DummyWalletService(walletInfoSource); - - @override - WalletCredentials createDummyNewWalletCredentials( - {required String name, WalletInfo? walletInfo}) => - DummyNewWalletCredentials(name: name, walletInfo: walletInfo); - - @override - WalletCredentials createDummyRestoreWalletFromSeedCredentials( - {required String name, WalletInfo? walletInfo}) => - DummyRestoreWalletFromSeedCredentials(name: name, walletInfo: walletInfo); - - @override - WalletCredentials createDummyRestoreWalletFromKeyCredentials( - {required String name, WalletInfo? walletInfo}) => - DummyRestoreWalletFromKeyCredentials(name: name, walletInfo: walletInfo); - - @override - List getTransactionPriorities() => - DummyTransactionPriority.all; - - @override - TransactionPriority deserializeDummyTransactionPriority(int raw) => - DummyTransactionPriority.deserialize(raw: raw); - - @override - TransactionPriority getDefaultTransactionPriority() => - DummyTransactionPriority.fast; - - @override - CryptoCurrency assetOfTransaction(TransactionInfo tx) { - final transaction = tx as DummyTransactionInfo; - // TODO: !!! - return CryptoCurrency.dummy; - } - - @override - String formatterDummyAmountToString({required int amount}) => - throw UnimplementedError(); - - @override - TransactionPriority getDummyTransactionPrioritySlow() => - DummyTransactionPriority.slow; - - @override - TransactionPriority getDummyTransactionPriorityMedium() => - DummyTransactionPriority.medium; - - @override - double formatterDummyAmountToDouble({required int amount}) => throw UnimplementedError(); - - @override - int formatterDummyParseAmount({required String amount}) => throw UnimplementedError(); - - @override - Object createDummyTransactionCreationCredentials({required List outputs, required TransactionPriority priority}) => - DummyTransactionCreationCredentials(outputs: outputs.map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)).toList(), priority: priority as DummyTransactionPriority); - - @override - Future generateNewAddress(Object wallet) async { - final dummyWallet = wallet as DummyWallet; - await dummyWallet.walletAddresses.generateNewAddress(); - } - - @override - String getAddress(WalletBase wallet) => (wallet as DummyWallet).walletAddresses.address; -} diff --git a/lib/dummy/dummy.dart b/lib/dummy/dummy.dart deleted file mode 100644 index 884db3f1d..000000000 --- a/lib/dummy/dummy.dart +++ /dev/null @@ -1,42 +0,0 @@ -import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/output_info.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/wallet_service.dart'; -import 'package:cw_dummy/dummy_transaction_info.dart'; -import 'package:cw_dummy/dummy_transaction_priority.dart'; -import 'package:cw_dummy/dummy_wallet.dart'; -import 'package:cw_dummy/dummy_wallet_creation_credentials.dart'; -import 'package:cw_dummy/dummy_transaction_creation_credentials.dart'; -import 'package:cw_dummy/dummy_wallet_service.dart'; -import 'package:hive/hive.dart'; - -part 'cw_dummy.dart'; - -Dummy? dummy = CWDummy(); - -abstract class Dummy { - WalletCredentials createDummyNewWalletCredentials( - {required String name, WalletInfo? walletInfo}); - WalletCredentials createDummyRestoreWalletFromKeyCredentials( - {required String name, WalletInfo? walletInfo}); - WalletCredentials createDummyRestoreWalletFromSeedCredentials( - {required String name, WalletInfo? walletInfo}); - WalletService createDummyWalletService(Box walletInfoSource); - TransactionPriority deserializeDummyTransactionPriority(int raw); - List getDummyWordList(); - List getTransactionPriorities(); - TransactionPriority getDefaultTransactionPriority(); - CryptoCurrency assetOfTransaction(TransactionInfo tx); - double formatterDummyAmountToDouble({required int amount}); - TransactionPriority getDummyTransactionPrioritySlow(); - TransactionPriority getDummyTransactionPriorityMedium(); - int formatterDummyParseAmount({required String amount}); - Object createDummyTransactionCreationCredentials({required List outputs, required TransactionPriority priority}); - Future generateNewAddress(Object wallet); - String getAddress(WalletBase wallet); -} diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 65d2615a7..dacbe63d5 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -27,7 +27,6 @@ const cakeWalletLitecoinElectrumUri = 'ltc-electrum.cakewallet.com:50002'; const havenDefaultNodeUri = 'nodes.havenprotocol.org:443'; const ethereumDefaultNodeUri = 'ethereum.publicnode.com'; const zanoDefaultNodeUri = 'zano.org'; -const dummyDefaultNodeUri = 'example.com'; Future defaultSettingsMigration( {required int version, @@ -324,12 +323,6 @@ Node? getZanoDefaultNode({required Box nodes}) { ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.zano); } -Node? getDummyDefaultNode({required Box nodes}) { - return nodes.values.firstWhereOrNull( - (Node node) => node.uriRaw == dummyDefaultNodeUri) - ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.dummy); -} - Node getMoneroDefaultNode({required Box nodes}) { final timeZone = DateTime.now().timeZoneOffset.inHours; var nodeUri = ''; @@ -530,8 +523,6 @@ Future checkCurrentNodes( .getInt(PreferencesKey.currentEthereumNodeIdKey); final currentZanoNodeId = sharedPreferences .getInt(PreferencesKey.currentZanoNodeIdKey); - final currentDummyNodeId = sharedPreferences - .getInt(PreferencesKey.currentDummyNodeIdKey); final currentMoneroNode = nodeSource.values.firstWhereOrNull( (node) => node.key == currentMoneroNodeId); final currentBitcoinElectrumServer = nodeSource.values.firstWhereOrNull( @@ -543,7 +534,6 @@ Future checkCurrentNodes( final currentEthereumNodeServer = nodeSource.values.firstWhereOrNull( (node) => node.key == currentEthereumNodeId); final currentZanoNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentZanoNodeId); - final currentDummyNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentDummyNodeId); if (currentMoneroNode == null) { final newCakeWalletNode = @@ -591,13 +581,6 @@ Future checkCurrentNodes( await sharedPreferences.setInt( PreferencesKey.currentZanoNodeIdKey, node.key as int); } - - if (currentDummyNode == null) { - final node = Node(uri: dummyDefaultNodeUri, type: WalletType.dummy); - await nodeSource.add(node); - await sharedPreferences.setInt( - PreferencesKey.currentDummyNodeIdKey, node.key as int); - } } Future resetBitcoinElectrumServer( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 5bdab9e76..97fffcf5f 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -6,7 +6,6 @@ class PreferencesKey { static const currentLitecoinElectrumSererIdKey = 'current_node_id_ltc'; static const currentHavenNodeIdKey = 'current_node_id_xhv'; static const currentZanoNodeIdKey = 'current_node_id_zano'; - static const currentDummyNodeIdKey = 'current_node_id_dummy'; static const currentEthereumNodeIdKey = 'current_node_id_eth'; static const currentFiatCurrencyKey = 'current_fiat_currency'; static const currentTransactionPriorityKeyLegacy = 'current_fee_priority'; @@ -37,7 +36,6 @@ class PreferencesKey { static const litecoinTransactionPriority = 'current_fee_priority_litecoin'; static const ethereumTransactionPriority = 'current_fee_priority_ethereum'; static const zanoTransactionPriority = 'current_fee_priority_zano'; - static const dummyTransactionPriority = 'current_fee_priority_dummy'; static const shouldShowReceiveWarning = 'should_show_receive_warning'; static const shouldShowYatPopup = 'should_show_yat_popup'; static const moneroWalletPasswordUpdateV1Base = 'monero_wallet_update_v1'; diff --git a/lib/entities/priority_for_wallet_type.dart b/lib/entities/priority_for_wallet_type.dart index 59bf63ceb..54c1d2c2a 100644 --- a/lib/entities/priority_for_wallet_type.dart +++ b/lib/entities/priority_for_wallet_type.dart @@ -1,5 +1,4 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/monero/monero.dart'; @@ -21,8 +20,6 @@ List priorityForWalletType(WalletType type) { return ethereum!.getTransactionPriorities(); case WalletType.zano: return zano!.getTransactionPriorities(); - case WalletType.dummy: - return dummy!.getTransactionPriorities(); default: return []; } diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart index 2bd0e2eec..32f60394b 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart @@ -34,7 +34,6 @@ class _DesktopWalletSelectionDropDownState extends State Image.asset( @@ -145,8 +144,6 @@ class _DesktopWalletSelectionDropDownState extends State { this.litecoinIcon = Image.asset('assets/images/litecoin_menu.png'), this.havenIcon = Image.asset('assets/images/haven_menu.png'), this.ethereumIcon = Image.asset('assets/images/eth_icon.png'), - this.zanoIcon = Image.asset('assets/images/zano_icon.png'), - this.dummyIcon = Image.asset('assets/images/zano_icon.png'); + this.zanoIcon = Image.asset('assets/images/zano_icon.png'); final largeScreen = 731; @@ -50,7 +49,6 @@ class MenuWidgetState extends State { Image havenIcon; Image ethereumIcon; Image zanoIcon; - Image dummyIcon; @override void initState() { @@ -212,8 +210,6 @@ class MenuWidgetState extends State { return ethereumIcon; case WalletType.zano: return zanoIcon; - case WalletType.dummy: - return dummyIcon; default: throw Exception('No icon for ${type.toString()}'); } diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index 747c01008..edca592c0 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -49,7 +49,6 @@ class WalletListBodyState extends State { final havenIcon = Image.asset('assets/images/haven_logo.png', height: 24, width: 24); final ethereumIcon = Image.asset('assets/images/eth_icon.png', height: 24, width: 24); final zanoIcon = Image.asset('assets/images/zano_icon.png', height: 24, width: 24); - final dummyIcon = Image.asset('assets/images/zano_icon.png', height: 24, width: 24); final scrollController = ScrollController(); final double tileHeight = 60; Flushbar? _progressBar; diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 5bf8cf332..3d6cd2884 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -1,7 +1,6 @@ import 'dart:io'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/buy_provider_types.dart'; import 'package:cake_wallet/entities/cake_2fa_preset_options.dart'; @@ -88,7 +87,6 @@ abstract class SettingsStoreBase with Store { TransactionPriority? initialLitecoinTransactionPriority, TransactionPriority? initialEthereumTransactionPriority, TransactionPriority? initialZanoTransactionPriority, - TransactionPriority? initialDummyTransactionPriority, }) : nodes = ObservableMap.of(nodes), _sharedPreferences = sharedPreferences, @@ -153,10 +151,6 @@ abstract class SettingsStoreBase with Store { priority[WalletType.zano] = initialZanoTransactionPriority; } - if (initialDummyTransactionPriority != null) { - priority[WalletType.dummy] = initialDummyTransactionPriority; - } - reaction( (_) => fiatCurrency, (FiatCurrency fiatCurrency) => sharedPreferences.setString( @@ -188,9 +182,6 @@ abstract class SettingsStoreBase with Store { case WalletType.zano: key = PreferencesKey.zanoTransactionPriority; break; - case WalletType.dummy: - key = PreferencesKey.dummyTransactionPriority; - break; default: key = null; } @@ -538,7 +529,6 @@ abstract class SettingsStoreBase with Store { TransactionPriority? litecoinTransactionPriority; TransactionPriority? ethereumTransactionPriority; TransactionPriority? zanoTransactionPriority; - TransactionPriority? dummyTransactionPriority; if (sharedPreferences.getInt(PreferencesKey.havenTransactionPriority) != null) { havenTransactionPriority = monero?.deserializeMoneroTransactionPriority( @@ -556,10 +546,6 @@ abstract class SettingsStoreBase with Store { zanoTransactionPriority = monero?.deserializeMoneroTransactionPriority( raw: sharedPreferences.getInt(PreferencesKey.zanoTransactionPriority)!); } - if (sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority) != null) { - dummyTransactionPriority = dummy?.deserializeDummyTransactionPriority( - sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority)!); - } moneroTransactionPriority ??= monero?.getDefaultTransactionPriority(); bitcoinTransactionPriority ??= bitcoin?.getMediumTransactionPriority(); @@ -567,7 +553,6 @@ abstract class SettingsStoreBase with Store { litecoinTransactionPriority ??= bitcoin?.getLitecoinTransactionPriorityMedium(); ethereumTransactionPriority ??= ethereum?.getDefaultTransactionPriority(); zanoTransactionPriority ??= zano?.getDefaultTransactionPriority(); - dummyTransactionPriority ??= dummy?.getDefaultTransactionPriority(); final currentBalanceDisplayMode = BalanceDisplayMode.deserialize( raw: sharedPreferences.getInt(PreferencesKey.currentBalanceDisplayModeKey)!); @@ -650,14 +635,12 @@ abstract class SettingsStoreBase with Store { final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final zanoNodeId = sharedPreferences.getInt(PreferencesKey.currentZanoNodeIdKey); - final dummyNodeId = sharedPreferences.getInt(PreferencesKey.currentDummyNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); final havenNode = nodeSource.get(havenNodeId); final ethereumNode = nodeSource.get(ethereumNodeId); final zanoNode = nodeSource.get(zanoNodeId); - final dummyNode = nodeSource.get(dummyNodeId); final packageInfo = await PackageInfo.fromPlatform(); final deviceName = await _getDeviceName() ?? ''; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; @@ -693,10 +676,6 @@ abstract class SettingsStoreBase with Store { nodes[WalletType.zano] = zanoNode; } - if (dummyNode != null) { - nodes[WalletType.dummy] = dummyNode; - } - final savedSyncMode = SyncMode.all.firstWhere((element) { return element.type.index == (sharedPreferences.getInt(PreferencesKey.syncModeKey) ?? 1); }); @@ -737,7 +716,6 @@ abstract class SettingsStoreBase with Store { initialHavenTransactionPriority: havenTransactionPriority, initialLitecoinTransactionPriority: litecoinTransactionPriority, initialZanoTransactionPriority: zanoTransactionPriority, - initialDummyTransactionPriority: dummyTransactionPriority, initialShouldRequireTOTP2FAForAccessingWallet: shouldRequireTOTP2FAForAccessingWallet, initialShouldRequireTOTP2FAForSendsToContact: shouldRequireTOTP2FAForSendsToContact, initialShouldRequireTOTP2FAForSendsToNonContact: shouldRequireTOTP2FAForSendsToNonContact, @@ -789,11 +767,6 @@ abstract class SettingsStoreBase with Store { raw: sharedPreferences.getInt(PreferencesKey.zanoTransactionPriority)!) ?? priority[WalletType.zano]!; } - if (sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority) != null) { - priority[WalletType.dummy] = dummy?.deserializeDummyTransactionPriority( - sharedPreferences.getInt(PreferencesKey.dummyTransactionPriority)!) ?? - priority[WalletType.dummy]!; - } final generateSubaddresses = sharedPreferences.getInt(PreferencesKey.autoGenerateSubaddressStatusKey); @@ -881,7 +854,6 @@ abstract class SettingsStoreBase with Store { sharedPreferences.getInt(PreferencesKey.currentLitecoinElectrumSererIdKey); final havenNodeId = sharedPreferences.getInt(PreferencesKey.currentHavenNodeIdKey); final zanoNodeId = sharedPreferences.getInt(PreferencesKey.currentZanoNodeIdKey); - final dummyNodeId = sharedPreferences.getInt(PreferencesKey.currentDummyNodeIdKey); final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); @@ -889,7 +861,6 @@ abstract class SettingsStoreBase with Store { final havenNode = nodeSource.get(havenNodeId); final ethereumNode = nodeSource.get(ethereumNodeId); final zanoNode = nodeSource.get(zanoNodeId); - final dummyNode = nodeSource.get(dummyNodeId); if (moneroNode != null) { nodes[WalletType.monero] = moneroNode; @@ -914,10 +885,6 @@ abstract class SettingsStoreBase with Store { if (zanoNode != null) { nodes[WalletType.zano] = zanoNode; } - - if (dummyNode != null) { - nodes[WalletType.dummy] = dummyNode; - } } Future _saveCurrentNode(Node node, WalletType walletType) async { @@ -942,9 +909,6 @@ abstract class SettingsStoreBase with Store { case WalletType.zano: await _sharedPreferences.setInt(PreferencesKey.currentZanoNodeIdKey, node.key as int); break; - case WalletType.dummy: - await _sharedPreferences.setInt(PreferencesKey.currentDummyNodeIdKey, node.key as int); - break; default: break; } diff --git a/lib/view_model/dashboard/transaction_list_item.dart b/lib/view_model/dashboard/transaction_list_item.dart index d5c85c793..95d769d55 100644 --- a/lib/view_model/dashboard/transaction_list_item.dart +++ b/lib/view_model/dashboard/transaction_list_item.dart @@ -1,4 +1,3 @@ -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/balance_display_mode.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; @@ -101,13 +100,6 @@ class TransactionListItem extends ActionListItem with Keyable { cryptoAmount: zano!.formatterMoneroAmountToDouble(amount: transaction.amount), price: price); break; - case WalletType.dummy: - final asset = dummy!.assetOfTransaction(transaction); - final price = balanceViewModel.fiatConvertationStore.prices[asset]; - amount = calculateFiatAmountRaw( - cryptoAmount: dummy!.formatterDummyAmountToDouble(amount: transaction.amount), - price: price); - break; default: break; } diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index 754fff23c..85ae46155 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -3,7 +3,6 @@ import 'dart:collection'; import 'dart:convert'; import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/wallet_contact.dart'; @@ -280,8 +279,6 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with return transactionPriority == bitcoin!.getLitecoinTransactionPrioritySlow(); case WalletType.zano: return transactionPriority == monero!.getMoneroTransactionPrioritySlow(); - case WalletType.dummy: - return transactionPriority == dummy!.getDummyTransactionPrioritySlow(); default: return false; } @@ -698,11 +695,6 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with depositCurrency = CryptoCurrency.zano; receiveCurrency = CryptoCurrency.btc; break; - case WalletType.dummy: - // TODO: !!! - // depositCurrency = CryptoCurrency.dummy; - // receiveCurrency = ??? - throw UnimplementedError(); default: break; } @@ -789,9 +781,6 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with case WalletType.zano: _settingsStore.priority[wallet.type] = monero!.getMoneroTransactionPriorityAutomatic(); break; - case WalletType.dummy: - _settingsStore.priority[wallet.type] = dummy!.getDummyTransactionPriorityMedium(); - break; default: break; } diff --git a/lib/view_model/node_list/node_list_view_model.dart b/lib/view_model/node_list/node_list_view_model.dart index 8805962ce..abf97eb3e 100644 --- a/lib/view_model/node_list/node_list_view_model.dart +++ b/lib/view_model/node_list/node_list_view_model.dart @@ -69,9 +69,6 @@ abstract class NodeListViewModelBase with Store { case WalletType.zano: node = getZanoDefaultNode(nodes: _nodeSource)!; break; - case WalletType.dummy: - node = getDummyDefaultNode(nodes: _nodeSource)!; - break; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.type}'); } diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index ff2164f7f..bb451b321 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -1,5 +1,4 @@ import 'package:cake_wallet/di.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/calculate_fiat_amount_raw.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; import 'package:cake_wallet/entities/parsed_address.dart'; @@ -99,9 +98,6 @@ abstract class OutputBase with Store { case WalletType.zano: _amount = zano!.formatterMoneroParseAmount(amount: _cryptoAmount); break; - case WalletType.dummy: - _amount = dummy!.formatterDummyParseAmount(amount: _cryptoAmount); - break; default: break; } @@ -143,10 +139,6 @@ abstract class OutputBase with Store { if (_wallet.type == WalletType.ethereum) { return ethereum!.formatterEthereumAmountToDouble(amount: BigInt.from(fee)); } - - if (_wallet.type == WalletType.dummy) { - return dummy!.formatterDummyAmountToDouble(amount: fee); - } } catch (e) { print(e.toString()); } @@ -256,7 +248,6 @@ abstract class OutputBase with Store { case WalletType.ethereum: maximumFractionDigits = 12; break; - case WalletType.dummy: case WalletType.zano: maximumFractionDigits = 12; break; diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 743d0f7be..1dded82b1 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -1,5 +1,4 @@ import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; @@ -387,12 +386,6 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } return zano!.createZanoTransactionCreationCredentials( outputs: outputs, priority: priority, assetType: selectedCryptoCurrency.title); - case WalletType.dummy: - final priority = _settingsStore.priority[wallet.type]; - if (priority == null) { - throw Exception('Priority is null for wallet type: ${wallet.type}'); - } - return dummy!.createDummyTransactionCreationCredentials(outputs: outputs, priority: priority); default: throw Exception('Unexpected wallet type: ${wallet.type}'); } diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index 7a28ecef7..7d201139b 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -50,9 +50,6 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.zano: _addZanoListItems(tx, dateFormat); break; - case WalletType.dummy: - _addDummyListItems(tx, dateFormat); - break; default: break; } @@ -124,8 +121,6 @@ abstract class TransactionDetailsViewModelBase with Store { return 'https://etherscan.io/tx/${txId}'; case WalletType.zano: return 'https://testnet-explorer.zano.org/transaction/${txId}'; - case WalletType.dummy: - return 'https://example.com/${txId}'; default: return ''; } @@ -145,8 +140,6 @@ abstract class TransactionDetailsViewModelBase with Store { return S.current.view_transaction_on + 'etherscan.io'; case WalletType.zano: return S.current.view_transaction_on + 'zano'; - case WalletType.dummy: - return S.current.view_transaction_on + 'dummy'; default: return ''; } @@ -247,16 +240,4 @@ abstract class TransactionDetailsViewModelBase with Store { StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), ]); } - - void _addDummyListItems(TransactionInfo tx, DateFormat dateFormat) { - items.addAll([ - StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), - StandartListItem( - title: S.current.transaction_details_date, value: dateFormat.format(tx.date)), - StandartListItem(title: S.current.transaction_details_height, value: '${tx.height}'), - StandartListItem(title: S.current.transaction_details_amount, value: tx.amountFormatted()), - if (tx.feeFormatted()?.isNotEmpty ?? false) - StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), - ]); - } } diff --git a/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart index bb056bb5a..a4eb3d386 100644 --- a/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_edit_or_create_view_model.dart @@ -1,4 +1,3 @@ -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; @@ -91,11 +90,6 @@ abstract class WalletAddressEditOrCreateViewModelBase with Store { label: label); await wallet.save(); } - - if (wallet.type == WalletType.dummy) { - await dummy!.generateNewAddress(wallet); - await wallet.save(); - } } Future _update() async { diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart index a3c1b360f..47ea05017 100644 --- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart @@ -1,5 +1,4 @@ import 'package:cake_wallet/core/wallet_change_listener_view_model.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; @@ -125,22 +124,6 @@ class ZanoURI extends PaymentURI { } } -class DummyURI extends PaymentURI { - DummyURI({required String amount, required String address}) - : super(amount: amount, address: address); - - @override - String toString() { - var base = 'dummy:' + address; - - if (amount.isNotEmpty) { - base += '?amount=${amount.replaceAll(',', '.')}'; - } - - return base; - } -} - abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewModel with Store { WalletAddressListViewModelBase({ required AppStore appStore, @@ -214,10 +197,6 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo return ZanoURI(amount: amount, address: address.address); } - if (wallet.type == WalletType.dummy) { - return DummyURI(amount: amount, address: address.address); - } - throw Exception('Unexpected type: ${type.toString()}'); } @@ -274,12 +253,6 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); } - if (wallet.type == WalletType.dummy) { - final primaryAddress = dummy!.getAddress(wallet); - - addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); - } - return addressList; } diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index 0a01893cf..7a5b93062 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -111,13 +111,6 @@ abstract class WalletKeysViewModelBase with Store { StandartListItem(title: S.current.wallet_seed, value: _appStore.wallet!.seed!), ]); } - - if (_appStore.wallet!.type == WalletType.dummy) { - items.addAll([ - StandartListItem(title: S.current.wallet_seed, value: _appStore.wallet!.seed!), - ]); - } - } Future _currentHeight() async { @@ -147,8 +140,6 @@ abstract class WalletKeysViewModelBase with Store { return 'ethereum-wallet'; case WalletType.zano: return 'zano-wallet'; - case WalletType.dummy: - return 'dummy-wallet'; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.toString()}'); } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index eec60c883..e64f086de 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -1,4 +1,3 @@ -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/view_model/restore/restore_wallet.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/zano/zano.dart'; @@ -49,8 +48,6 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { return ethereum!.createEthereumNewWalletCredentials(name: name); case WalletType.zano: return zano!.createZanoNewWalletCredentials(name: name); - case WalletType.dummy: - return dummy!.createDummyNewWalletCredentials(name: name); default: throw Exception('Unexpected type: ${type.toString()}');; } diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index 0378e5971..fccd3443b 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -1,5 +1,4 @@ import 'package:cake_wallet/bitcoin/bitcoin.dart'; -import 'package:cake_wallet/dummy/dummy.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/zano/zano.dart'; import 'package:hive/hive.dart'; @@ -98,9 +97,6 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { password: password, height: height, mnemonic: seed); - case WalletType.dummy: - return dummy!.createDummyRestoreWalletFromSeedCredentials( - name: name); default: break; } @@ -151,10 +147,6 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { password: password, ); } - - if (type == WalletType.dummy) { - return dummy!.createDummyRestoreWalletFromKeyCredentials(name: name); - } } throw Exception('Unexpected type: ${type.toString()}'); From e1da71a1d1a0a9e90bb2c1c528ddbb5ca64a863e Mon Sep 17 00:00:00 2001 From: leo1234 Date: Wed, 6 Mar 2024 17:47:22 +0800 Subject: [PATCH 20/58] added logging for get status/get info --- cw_zano/lib/api/wallet.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart index bafef1151..b29d50159 100644 --- a/cw_zano/lib/api/wallet.dart +++ b/cw_zano/lib/api/wallet.dart @@ -56,12 +56,14 @@ class SyncListener { }*/ var json = ApiCalls.getWalletStatus(hWallet: hWallet); + print('wallet status $json'); final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); // You can call getWalletInfo ONLY if getWalletStatus returns NOT is in long refresh and wallet state is 2 (ready) if (!status.isInLongRefresh && status.walletState == 2) { final syncHeight = status.currentWalletHeight; json = ApiCalls.getWalletInfo(hWallet); + print('wallet info $json'); final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); wallet.seed = result.wiExtended.seed; wallet.keys = ZanoWalletKeys( From 7fcdc8c0cb9fdf887eb369f675a7fd612463daa6 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 6 Mar 2024 19:19:48 +0000 Subject: [PATCH 21/58] restored old wallet.dart --- cw_haven/lib/api/wallet.dart | 67 ++++++++++++------------------------ 1 file changed, 22 insertions(+), 45 deletions(-) diff --git a/cw_haven/lib/api/wallet.dart b/cw_haven/lib/api/wallet.dart index 007dd27d5..e6b75c0cc 100644 --- a/cw_haven/lib/api/wallet.dart +++ b/cw_haven/lib/api/wallet.dart @@ -124,23 +124,18 @@ final trustedDaemonNative = havenApi .lookup>('trusted_daemon') .asFunction(); -int getSyncingHeight() { - return getSyncingHeightNative(); -} +int getSyncingHeight() => getSyncingHeightNative(); bool isNeededToRefresh() => isNeededToRefreshNative() != 0; -bool isNewTransactionExist() { - return isNewTransactionExistNative() != 0; -} +bool isNewTransactionExist() => isNewTransactionExistNative() != 0; String getFilename() => convertUTF8ToString(pointer: getFileNameNative()); String getSeed() => convertUTF8ToString(pointer: getSeedNative()); -String getAddress({int accountIndex = 0, int addressIndex = 0}) { - return convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); -} +String getAddress({int accountIndex = 0, int addressIndex = 0}) => + convertUTF8ToString(pointer: getAddressNative(accountIndex, addressIndex)); int getFullBalance({int accountIndex = 0}) => getFullBalanceNative(accountIndex); @@ -148,17 +143,11 @@ int getFullBalance({int accountIndex = 0}) => int getUnlockedBalance({int accountIndex = 0}) => getUnlockedBalanceNative(accountIndex); -int getCurrentHeight() { - return getCurrentHeightNative(); -} +int getCurrentHeight() => getCurrentHeightNative(); -int getNodeHeightSync() { - return getNodeHeightNative(); -} +int getNodeHeightSync() => getNodeHeightNative(); -bool isConnectedSync() { - return isConnectedNative() != 0; -} +bool isConnectedSync() => isConnectedNative() != 0; bool setupNodeSync( {required String address, @@ -217,13 +206,11 @@ void startRefreshSync() => startRefreshNative(); Future connectToNode() async => connecToNodeNative() != 0; -void setRefreshFromBlockHeight({required int height}) { - setRefreshFromBlockHeightNative(height); -} +void setRefreshFromBlockHeight({required int height}) => + setRefreshFromBlockHeightNative(height); -void setRecoveringFromSeed({required bool isRecovery}) { - setRecoveringFromSeedNative(_boolToInt(isRecovery)); -} +void setRecoveringFromSeed({required bool isRecovery}) => + setRecoveringFromSeedNative(_boolToInt(isRecovery)); void storeSync() { final pathPointer = ''.toNativeUtf8(); @@ -248,21 +235,17 @@ void setPasswordSync(String password) { void closeCurrentWallet() => closeCurrentWalletNative(); -String getSecretViewKey() { - return convertUTF8ToString(pointer: getSecretViewKeyNative()); -} +String getSecretViewKey() => + convertUTF8ToString(pointer: getSecretViewKeyNative()); -String getPublicViewKey() { - return convertUTF8ToString(pointer: getPublicViewKeyNative()); -} +String getPublicViewKey() => + convertUTF8ToString(pointer: getPublicViewKeyNative()); -String getSecretSpendKey() { - return convertUTF8ToString(pointer: getSecretSpendKeyNative()); -} +String getSecretSpendKey() => + convertUTF8ToString(pointer: getSecretSpendKeyNative()); -String getPublicSpendKey() { - return convertUTF8ToString(pointer: getPublicSpendKeyNative()); -} +String getPublicSpendKey() => + convertUTF8ToString(pointer: getPublicSpendKeyNative()); class SyncListener { SyncListener(this.onNewBlock, this.onNewTransaction) @@ -337,9 +320,7 @@ SyncListener setListeners(void Function(int, int, double) onNewBlock, return listener; } -void onStartup() { - onStartupNative(); -} +void onStartup() => onStartupNative(); void _storeSync(Object _) => storeSync(); @@ -364,9 +345,7 @@ bool _isConnected(Object _) => isConnectedSync(); int _getNodeHeight(Object _) => getNodeHeightSync(); -void startRefresh() { - startRefreshSync(); -} +void startRefresh() => startRefreshSync(); Future setupNode( {required String address, @@ -390,9 +369,7 @@ Future isConnected() => compute(_isConnected, 0); Future getNodeHeight() => compute(_getNodeHeight, 0); -void rescanBlockchainAsync() { - rescanBlockchainAsyncNative(); -} +void rescanBlockchainAsync() => rescanBlockchainAsyncNative(); Future setTrustedDaemon(bool trusted) async => setTrustedDaemonNative(_boolToInt(trusted)); From b3e453a0f2c048656fc5388c0c9898e817cf1e45 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 7 Mar 2024 08:02:38 +0000 Subject: [PATCH 22/58] restoring original versions of files --- cw_haven/lib/haven_wallet.dart | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cw_haven/lib/haven_wallet.dart b/cw_haven/lib/haven_wallet.dart index f392b4965..e639be4b9 100644 --- a/cw_haven/lib/haven_wallet.dart +++ b/cw_haven/lib/haven_wallet.dart @@ -69,9 +69,7 @@ abstract class HavenWalletBase ObservableMap balance; @override - String get seed { - return haven_wallet.getSeed(); - } + String get seed => haven_wallet.getSeed(); @override MoneroWalletKeys get keys => MoneroWalletKeys( From d684be60d73b3cd1547e00691d3cdd85a980df9b Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 7 Mar 2024 08:28:57 +0000 Subject: [PATCH 23/58] restoring original versions of files --- android/app/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index d67e44d44..946c53697 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -41,7 +41,6 @@ android { lintOptions { disable 'InvalidPackage' - checkReleaseBuilds false } defaultConfig { From b585da56efb3b8fcf2aa6ef1e51da049bba9b27c Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 7 Mar 2024 08:53:38 +0000 Subject: [PATCH 24/58] restored get_height_by_date.dart, removed unnecessary calls for zano get height --- cw_core/lib/get_height_by_date.dart | 15 +++------------ lib/view_model/wallet_keys_view_model.dart | 5 ----- lib/zano/cw_zano.dart | 6 ------ lib/zano/zano.dart | 4 +--- 4 files changed, 4 insertions(+), 26 deletions(-) diff --git a/cw_core/lib/get_height_by_date.dart b/cw_core/lib/get_height_by_date.dart index d4fe8c9b0..819990e0a 100644 --- a/cw_core/lib/get_height_by_date.dart +++ b/cw_core/lib/get_height_by_date.dart @@ -189,15 +189,14 @@ const havenDates = { DateTime formatMapKey(String key) => dateFormat.parse(key); int getHavenHeightByDate({required DateTime date}) { - String closestKey = havenDates.keys - .firstWhere((key) => formatMapKey(key).isBefore(date), orElse: () => ''); + String closestKey = + havenDates.keys.firstWhere((key) => formatMapKey(key).isBefore(date), orElse: () => ''); return havenDates[closestKey] ?? 0; } Future getHavenCurrentHeight() async { - final response = await http - .get(Uri.parse('https://explorer.havenprotocol.org/api/networkinfo')); + final response = await http.get(Uri.parse('https://explorer.havenprotocol.org/api/networkinfo')); if (response.statusCode == 200) { final info = jsonDecode(response.body); @@ -206,11 +205,3 @@ Future getHavenCurrentHeight() async { throw Exception('Failed to load current blockchain height'); } } - -int getZanoHeightByDate({required DateTime date}) { - return 0; -} - -Future getZanoCurrentHeight() async { - return 0; -} diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index 7a5b93062..ccbe43416 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -120,9 +120,6 @@ abstract class WalletKeysViewModelBase with Store { if (_appStore.wallet!.type == WalletType.monero) { return monero_wallet.getCurrentHeight(); } - if (_appStore.wallet!.type == WalletType.zano) { - return await zano!.getCurrentHeight(); - } return null; } @@ -184,8 +181,6 @@ abstract class WalletKeysViewModelBase with Store { return monero!.getHeigthByDate(date: date); } else if (type == WalletType.haven) { return haven!.getHeightByDate(date: date); - } else if (type == WalletType.zano) { - return zano!.getHeightByDate(date: date); } return 0; } diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 7c283759e..ac8102333 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -90,12 +90,6 @@ class CWZano extends Zano { return CWZanoWalletDetails(wallet); } - @override - int getHeightByDate({required DateTime date}) => getZanoHeightByDate(date: date); - - @override - Future getCurrentHeight() => getZanoCurrentHeight(); - @override TransactionPriority getDefaultTransactionPriority() { return MoneroTransactionPriority.automatic; diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index b4d22b1ac..e3daa7e46 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -94,8 +94,6 @@ abstract class Zano { // String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); - int getHeightByDate({required DateTime date}); - Future getCurrentHeight(); TransactionPriority getDefaultTransactionPriority(); TransactionPriority deserializeMoneroTransactionPriority({required int raw}); List getTransactionPriorities(); @@ -143,4 +141,4 @@ abstract class Zano { // Future addAccount(Object wallet, {required String label}); // Future setLabelAccount(Object wallet, {required int accountIndex, required String label}); // } - \ No newline at end of file + From ba2dde7564ea9e62d064d99405aef84c05db5417 Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 7 Mar 2024 09:21:30 +0000 Subject: [PATCH 25/58] restoring original versions --- cw_shared_external/pubspec.lock | 112 ++++++++---------- lib/core/validator.dart | 2 +- lib/haven/cw_haven.dart | 54 +-------- .../screens/restore/wallet_restore_page.dart | 2 - 4 files changed, 52 insertions(+), 118 deletions(-) diff --git a/cw_shared_external/pubspec.lock b/cw_shared_external/pubspec.lock index 440f635ed..ef01c9f9a 100644 --- a/cw_shared_external/pubspec.lock +++ b/cw_shared_external/pubspec.lock @@ -5,50 +5,51 @@ packages: dependency: transitive description: name: async - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.11.0" + version: "2.5.0" boolean_selector: dependency: transitive description: name: boolean_selector - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.0" characters: dependency: transitive description: name: characters - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" clock: dependency: transitive description: name: clock - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.1.1" + version: "1.1.0" collection: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.17.1" + version: "1.15.0" fake_async: dependency: transitive description: name: fake_async - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.3.1" + version: "1.2.0" flutter: dependency: "direct main" description: flutter @@ -59,46 +60,27 @@ packages: description: flutter source: sdk version: "0.0.0" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" matcher: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.12.15" - material_color_utilities: - dependency: transitive - description: - name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 - url: "https://pub.dev" - source: hosted - version: "0.2.0" + version: "0.12.10" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.9.1" + version: "1.3.0" path: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.8.3" + version: "1.8.0" sky_engine: dependency: transitive description: flutter @@ -108,58 +90,58 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.9.1" + version: "1.8.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.1.0" term_glyph: dependency: transitive description: name: term_glyph - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "1.2.1" + version: "1.2.0" test_api: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "0.5.1" + version: "0.2.19" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" vector_math: dependency: transitive description: name: vector_math - sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" - url: "https://pub.dev" + url: "https://pub.dartlang.org" source: hosted - version: "2.1.4" + version: "2.1.0" sdks: - dart: ">=3.0.0-0 <4.0.0" + dart: ">=2.12.0-0.0 <3.0.0" flutter: ">=1.20.0" diff --git a/lib/core/validator.dart b/lib/core/validator.dart index 6ede96e57..34e985991 100644 --- a/lib/core/validator.dart +++ b/lib/core/validator.dart @@ -48,7 +48,7 @@ class TextValidator extends Validator { final valueMatched = match(value); final valueValidated = useAdditionalValidation != null - ? useAdditionalValidation!(value) && valueMatched + ? useAdditionalValidation!(value) || valueMatched : valueMatched; return valueValidated; diff --git a/lib/haven/cw_haven.dart b/lib/haven/cw_haven.dart index 6d473051e..57c4e49c3 100644 --- a/lib/haven/cw_haven.dart +++ b/lib/haven/cw_haven.dart @@ -8,7 +8,6 @@ class CWHavenAccountList extends HavenAccountList { @override @computed ObservableList get accounts { - debugPrint("CWHavenAccountList get accounts"); final havenWallet = _wallet as HavenWallet; final accounts = havenWallet.walletAddresses.accountList.accounts .map((acc) => Account(id: acc.id, label: acc.label)) @@ -18,21 +17,18 @@ class CWHavenAccountList extends HavenAccountList { @override void update(Object wallet) { - debugPrint("CWHavenAccountList update $wallet"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.accountList.update(); } @override void refresh(Object wallet) { - debugPrint("CWHavenAccountList refresh $wallet"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.accountList.refresh(); } @override List getAll(Object wallet) { - debugPrint("CWHavenAccountList getAll $wallet"); final havenWallet = wallet as HavenWallet; return havenWallet.walletAddresses.accountList .getAll() @@ -42,7 +38,6 @@ class CWHavenAccountList extends HavenAccountList { @override Future addAccount(Object wallet, {required String label}) async { - debugPrint("CWHavenAccountList addAccount $wallet $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.accountList.addAccount(label: label); } @@ -50,7 +45,6 @@ class CWHavenAccountList extends HavenAccountList { @override Future setLabelAccount(Object wallet, {required int accountIndex, required String label}) async { - debugPrint("CWHavenAccountList setLabelAccount $wallet $accountIndex $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.accountList .setLabelAccount(accountIndex: accountIndex, label: label); @@ -65,7 +59,6 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override @computed ObservableList get subaddresses { - debugPrint("CWHavenSubaddressList get subaddresses"); final havenWallet = _wallet as HavenWallet; final subAddresses = havenWallet.walletAddresses.subaddressList.subaddresses .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) @@ -75,21 +68,18 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override void update(Object wallet, {required int accountIndex}) { - debugPrint("CWHavenSubaddressList update $wallet $accountIndex"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); } @override void refresh(Object wallet, {required int accountIndex}) { - debugPrint("CWHavenSubaddressList refresh $wallet $accountIndex"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); } @override List getAll(Object wallet) { - debugPrint("CWHavenSubaddressList getAll $wallet"); final havenWallet = wallet as HavenWallet; return havenWallet.walletAddresses.subaddressList .getAll() @@ -100,7 +90,6 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override Future addSubaddress(Object wallet, {required int accountIndex, required String label}) async { - debugPrint("CWHavenSubaddressList addSubaddress $wallet $accountIndex $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.subaddressList .addSubaddress(accountIndex: accountIndex, label: label); @@ -109,7 +98,6 @@ class CWHavenSubaddressList extends MoneroSubaddressList { @override Future setLabelSubaddress(Object wallet, {required int accountIndex, required int addressIndex, required String label}) async { - debugPrint("CWHavenSubaddressList setLabelSubaddress $wallet $accountIndex $addressIndex $label"); final havenWallet = wallet as HavenWallet; await havenWallet.walletAddresses.subaddressList .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); @@ -124,7 +112,6 @@ class CWHavenWalletDetails extends HavenWalletDetails { @computed @override Account get account { - debugPrint("CWHavenWalletDetails get account"); final havenWallet = _wallet as HavenWallet; final acc = havenWallet.walletAddresses.account as monero_account.Account; return Account(id: acc.id, label: acc.label); @@ -133,7 +120,6 @@ class CWHavenWalletDetails extends HavenWalletDetails { @computed @override HavenBalance get balance { - debugPrint("CWHavenWalletDetails get balance"); final havenWallet = _wallet as HavenWallet; final balance = havenWallet.balance; throw Exception('Unimplemented'); @@ -146,62 +132,48 @@ class CWHavenWalletDetails extends HavenWalletDetails { class CWHaven extends Haven { @override HavenAccountList getAccountList(Object wallet) { - debugPrint("CWHaven getAccountList $wallet"); return CWHavenAccountList(wallet); } @override MoneroSubaddressList getSubaddressList(Object wallet) { - debugPrint("CWHaven getSubaddressList $wallet"); return CWHavenSubaddressList(wallet); } @override TransactionHistoryBase getTransactionHistory(Object wallet) { - debugPrint("CWHaven getTransactionHistory $wallet"); final havenWallet = wallet as HavenWallet; return havenWallet.transactionHistory; } @override HavenWalletDetails getMoneroWalletDetails(Object wallet) { - debugPrint("CWHaven getMoneroWalletDetails $wallet"); return CWHavenWalletDetails(wallet); } @override - int getHeightByDate({required DateTime date}) { - debugPrint("CWHaven getHeightByDate $date"); - return getHavenHeightByDate(date: date); - } + int getHeightByDate({required DateTime date}) => getHavenHeightByDate(date: date); @override - Future getCurrentHeight() { - debugPrint("CWHaven getCurrentHeight"); - return getHavenCurrentHeight(); - } + Future getCurrentHeight() => getHavenCurrentHeight(); @override TransactionPriority getDefaultTransactionPriority() { - debugPrint("CWHaven getDefaultTransactionPriority"); return MoneroTransactionPriority.automatic; } @override TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { - debugPrint("CWHaven deserializeMoneroTransactionPriority $raw"); return MoneroTransactionPriority.deserialize(raw: raw); } @override List getTransactionPriorities() { - debugPrint("CWHaven getTransactionPriorities"); return MoneroTransactionPriority.all; } @override List getMoneroWordList(String language) { - debugPrint("CWHaven getMoneroWordList $language"); switch (language.toLowerCase()) { case 'english': return EnglishMnemonics.words; @@ -237,7 +209,6 @@ class CWHaven extends Haven { required String password, required String language, required int height}) { - debugPrint("CWHaven createHavenRestoreWalletFromKeysCredentials $name $spendKey $viewKey $address $password $language $height"); return HavenRestoreWalletFromKeysCredentials( name: name, spendKey: spendKey, @@ -254,7 +225,6 @@ class CWHaven extends Haven { required String password, required int height, required String mnemonic}) { - debugPrint("CWHaven createHavenRestoreWalletFromSeedCredentials $name $password $height $mnemonic"); return HavenRestoreWalletFromSeedCredentials( name: name, password: password, height: height, mnemonic: mnemonic); } @@ -262,13 +232,11 @@ class CWHaven extends Haven { @override WalletCredentials createHavenNewWalletCredentials( {required String name, required String language, String? password}) { - debugPrint("CWHaven createHavenNewWalletCredentials $name $language $password"); return HavenNewWalletCredentials(name: name, password: password, language: language); } @override Map getKeys(Object wallet) { - debugPrint("CWHaven getKeys $wallet"); final havenWallet = wallet as HavenWallet; final keys = havenWallet.keys; return { @@ -284,7 +252,6 @@ class CWHaven extends Haven { {required List outputs, required TransactionPriority priority, required String assetType}) { - debugPrint("CWHaven createHavenTransactionCreationCredentials $outputs $priority $assetType"); return HavenTransactionCreationCredentials( outputs: outputs .map((out) => OutputInfo( @@ -303,25 +270,21 @@ class CWHaven extends Haven { @override String formatterMoneroAmountToString({required int amount}) { - debugPrint("CWHaven formatterMoneroAmountToString $amount"); return moneroAmountToString(amount: amount); } @override double formatterMoneroAmountToDouble({required int amount}) { - debugPrint("CWHaven formatterMoneroAmountToDouble $amount"); return moneroAmountToDouble(amount: amount); } @override int formatterMoneroParseAmount({required String amount}) { - debugPrint("CWHaven formatterMoneroParseAmount $amount"); return moneroParseAmount(amount: amount); } @override Account getCurrentAccount(Object wallet) { - debugPrint("CWHaven getCurrentAccount $wallet"); final havenWallet = wallet as HavenWallet; final acc = havenWallet.walletAddresses.account as monero_account.Account; return Account(id: acc.id, label: acc.label); @@ -329,49 +292,40 @@ class CWHaven extends Haven { @override void setCurrentAccount(Object wallet, int id, String label) { - debugPrint("CWHaven setCurrentAccount $wallet $id $label"); final havenWallet = wallet as HavenWallet; havenWallet.walletAddresses.account = monero_account.Account(id: id, label: label); } @override void onStartup() { - debugPrint("CWHaven onStartup"); monero_wallet_api.onStartup(); } @override int getTransactionInfoAccountId(TransactionInfo tx) { - debugPrint("CWHaven getTransactionInfoAccountId $tx"); final havenTransactionInfo = tx as HavenTransactionInfo; return havenTransactionInfo.accountIndex; } @override WalletService createHavenWalletService(Box walletInfoSource) { - debugPrint("CWHaven createHavenWalletService $walletInfoSource"); return HavenWalletService(walletInfoSource); } @override String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { - debugPrint("CWHaven getTransactionAddress $wallet $accountIndex $addressIndex"); final havenWallet = wallet as HavenWallet; return havenWallet.getTransactionAddress(accountIndex, addressIndex); } @override CryptoCurrency assetOfTransaction(TransactionInfo tx) { - debugPrint("CWHaven assetOfTransaction $tx"); final transaction = tx as HavenTransactionInfo; final asset = CryptoCurrency.fromString(transaction.assetType); return asset; } @override - List getAssetRate() { - final result = getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); - debugPrint("CWHaven getAssetRate: ${result.map((e) => '{${e.asset}: ${e.rate}}').join(" ")}"); - return result; - } + List getAssetRate() => + getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); } diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index 75ded88a5..bea84a7c9 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -211,8 +211,6 @@ class WalletRestorePage extends BasePage { final seedWords = walletRestoreFromSeedFormKey.currentState!.seedWidgetStateKey.currentState!.text.split(' '); - if (walletRestoreViewModel.type == WalletType.zano) return true; - if ((walletRestoreViewModel.type == WalletType.monero || walletRestoreViewModel.type == WalletType.haven) && seedWords.length != WalletRestoreViewModelBase.moneroSeedMnemonicLength) { From 43e9cd284a654b60b49b4161cfbedb8341b3c7c2 Mon Sep 17 00:00:00 2001 From: leo1234 Date: Fri, 8 Mar 2024 18:50:34 +0800 Subject: [PATCH 26/58] added multiple destinations, send all flag; some refactoring --- cw_zano/lib/api/model/destination.dart | 6 +- .../lib/api/model/get_wallet_info_result.dart | 7 +- .../api/model/get_wallet_status_result.dart | 12 +- cw_zano/lib/api/model/transfer_params.dart | 14 +- cw_zano/lib/api/model/transfer_result.dart | 6 +- cw_zano/lib/api/model/wi.dart | 14 +- cw_zano/lib/api/model/wi_extended.dart | 10 +- cw_zano/lib/api/wallet.dart | 113 --------- .../zano_transaction_creation_exception.dart | 8 + cw_zano/lib/pending_zano_transaction.dart | 71 ++---- ...dart => zano_transaction_credentials.dart} | 5 +- cw_zano/lib/zano_wallet.dart | 240 +++++++++--------- cw_zano/lib/zano_wallet_service.dart | 39 +-- lib/zano/cw_zano.dart | 36 +-- lib/zano/zano.dart | 4 +- 15 files changed, 216 insertions(+), 369 deletions(-) delete mode 100644 cw_zano/lib/api/wallet.dart create mode 100644 cw_zano/lib/exceptions/zano_transaction_creation_exception.dart rename cw_zano/lib/{zano_transaction_creation_credentials.dart => zano_transaction_credentials.dart} (56%) diff --git a/cw_zano/lib/api/model/destination.dart b/cw_zano/lib/api/model/destination.dart index ae2b5b283..f8028a8b7 100644 --- a/cw_zano/lib/api/model/destination.dart +++ b/cw_zano/lib/api/model/destination.dart @@ -1,5 +1,5 @@ class Destination { - final String amount; + final int amount; // transfered as string final String address; final String assetId; @@ -7,13 +7,13 @@ class Destination { {required this.amount, required this.address, required this.assetId}); factory Destination.fromJson(Map json) => Destination( - amount: json['amount'] as String, + amount: int.parse(json['amount'] as String), address: json['address'] as String, assetId: json['asset_id'] as String, ); Map toJson() => { - "amount": amount, + "amount": amount.toString(), "address": address, "asset_id": assetId, }; diff --git a/cw_zano/lib/api/model/get_wallet_info_result.dart b/cw_zano/lib/api/model/get_wallet_info_result.dart index 1f7a3b64b..e14d19375 100644 --- a/cw_zano/lib/api/model/get_wallet_info_result.dart +++ b/cw_zano/lib/api/model/get_wallet_info_result.dart @@ -8,6 +8,7 @@ class GetWalletInfoResult { GetWalletInfoResult({required this.wi, required this.wiExtended}); factory GetWalletInfoResult.fromJson(Map json) => GetWalletInfoResult( - wi: Wi.fromJson(json['wi'] as Map), - wiExtended: WiExtended.fromJson(json['wi_extended'] as Map)); -} \ No newline at end of file + wi: Wi.fromJson(json['wi'] as Map? ?? {}), + wiExtended: WiExtended.fromJson(json['wi_extended'] as Map? ?? {}), + ); +} diff --git a/cw_zano/lib/api/model/get_wallet_status_result.dart b/cw_zano/lib/api/model/get_wallet_status_result.dart index 85a80279f..da11c4c93 100644 --- a/cw_zano/lib/api/model/get_wallet_status_result.dart +++ b/cw_zano/lib/api/model/get_wallet_status_result.dart @@ -16,11 +16,11 @@ class GetWalletStatusResult { factory GetWalletStatusResult.fromJson(Map json) => GetWalletStatusResult( - currentDaemonHeight: json['current_daemon_height'] as int, - currentWalletHeight: json['current_wallet_height'] as int, - isDaemonConnected: json['is_daemon_connected'] as bool, - isInLongRefresh: json['is_in_long_refresh'] as bool, - progress: json['progress'] as int, - walletState: json['wallet_state'] as int, + currentDaemonHeight: json['current_daemon_height'] as int? ?? 0, + currentWalletHeight: json['current_wallet_height'] as int? ?? 0, + isDaemonConnected: json['is_daemon_connected'] as bool? ?? false, + isInLongRefresh: json['is_in_long_refresh'] as bool? ?? false, + progress: json['progress'] as int? ?? 0, + walletState: json['wallet_state'] as int? ?? 0, ); } diff --git a/cw_zano/lib/api/model/transfer_params.dart b/cw_zano/lib/api/model/transfer_params.dart index 4283fc0f0..8fddf31ac 100644 --- a/cw_zano/lib/api/model/transfer_params.dart +++ b/cw_zano/lib/api/model/transfer_params.dart @@ -30,12 +30,12 @@ class TransferParams { }; factory TransferParams.fromJson(Map json) => TransferParams( - destinations: (json['destinations'] as List).map((e) => Destination.fromJson(e as Map)).toList(), - fee: json['fee'] as int, - mixin: json['mixin'] as int, - paymentId: json['payment_id'] as String, - comment: json['comment'] as String, - pushPayer: json["push_payer"] as bool, - hideReceiver: json["hide_receiver"] as bool, + destinations: (json['destinations'] as List?)?.map((e) => Destination.fromJson(e as Map)).toList() ?? [], + fee: json['fee'] as int? ?? 0, + mixin: json['mixin'] as int? ?? 0, + paymentId: json['payment_id'] as String? ?? '', + comment: json['comment'] as String? ?? '', + pushPayer: json["push_payer"] as bool? ?? false, + hideReceiver: json["hide_receiver"] as bool? ?? false, ); } diff --git a/cw_zano/lib/api/model/transfer_result.dart b/cw_zano/lib/api/model/transfer_result.dart index 4b43f38ff..e0259fecc 100644 --- a/cw_zano/lib/api/model/transfer_result.dart +++ b/cw_zano/lib/api/model/transfer_result.dart @@ -6,8 +6,8 @@ class TransferResult { TransferResult({required this.txHash, required this.txSize, required this.txUnsignedHex}); factory TransferResult.fromJson(Map json) => TransferResult( - txHash: json['tx_hash'] as String, - txSize: json['tx_size'] as int, - txUnsignedHex: json['tx_unsigned_hex'] as String, + txHash: json['tx_hash'] as String? ?? '', + txSize: json['tx_size'] as int? ?? 0, + txUnsignedHex: json['tx_unsigned_hex'] as String? ?? '', ); } diff --git a/cw_zano/lib/api/model/wi.dart b/cw_zano/lib/api/model/wi.dart index 78a720c9c..0375cdf96 100644 --- a/cw_zano/lib/api/model/wi.dart +++ b/cw_zano/lib/api/model/wi.dart @@ -19,14 +19,14 @@ class Wi { required this.viewSecKey}); factory Wi.fromJson(Map json) => Wi( - address: json['address'] as String, - balances: (json['balances'] as List) + address: json['address'] as String? ?? '', + balances: (json['balances'] as List? ?? []) .map((e) => Balance.fromJson(e as Map)) .toList(), - isAuditable: json['is_auditable'] as bool, - isWatchOnly: json['is_watch_only'] as bool, - minedTotal: json['mined_total'] as int, - path: json['path'] as String, - viewSecKey: json['view_sec_key'] as String, + isAuditable: json['is_auditable'] as bool? ?? false, + isWatchOnly: json['is_watch_only'] as bool? ?? false, + minedTotal: json['mined_total'] as int? ?? 0, + path: json['path'] as String? ?? '', + viewSecKey: json['view_sec_key'] as String? ?? '', ); } diff --git a/cw_zano/lib/api/model/wi_extended.dart b/cw_zano/lib/api/model/wi_extended.dart index 81128643a..0cc4b90d3 100644 --- a/cw_zano/lib/api/model/wi_extended.dart +++ b/cw_zano/lib/api/model/wi_extended.dart @@ -8,10 +8,10 @@ class WiExtended { WiExtended({required this.seed, required this.spendPrivateKey, required this.spendPublicKey, required this.viewPrivateKey, required this.viewPublicKey}); factory WiExtended.fromJson(Map json) => WiExtended( - seed: json["seed"] as String, - spendPrivateKey: json["spend_private_key"] as String, - spendPublicKey: json["spend_public_key"] as String, - viewPrivateKey: json["view_private_key"] as String, - viewPublicKey: json["view_public_key"] as String, + seed: json["seed"] as String? ?? '', + spendPrivateKey: json["spend_private_key"] as String? ?? '', + spendPublicKey: json["spend_public_key"] as String? ?? '', + viewPrivateKey: json["view_private_key"] as String? ?? '', + viewPublicKey: json["view_public_key"] as String? ?? '', ); } \ No newline at end of file diff --git a/cw_zano/lib/api/wallet.dart b/cw_zano/lib/api/wallet.dart deleted file mode 100644 index b29d50159..000000000 --- a/cw_zano/lib/api/wallet.dart +++ /dev/null @@ -1,113 +0,0 @@ -import 'dart:async'; -import 'dart:convert'; - -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_zano/api/api_calls.dart' as calls; -import 'package:cw_zano/api/api_calls.dart'; -import 'package:cw_zano/api/model/get_wallet_info_result.dart'; -import 'package:cw_zano/api/model/get_wallet_status_result.dart'; -import 'package:cw_zano/api/model/zano_wallet_keys.dart'; -import 'package:cw_zano/zano_balance.dart'; -import 'package:cw_zano/zano_wallet.dart'; -import 'package:flutter/foundation.dart'; -import 'package:mobx/mobx.dart' as mobx; - -int getCurrentHeight(int hWallet) { - final json = ApiCalls.getWalletStatus(hWallet: hWallet); - final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - return walletStatus.currentWalletHeight; -} - -int getNodeHeightSync(int hWallet) { - final json = ApiCalls.getWalletStatus(hWallet: hWallet); - final walletStatus = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - return walletStatus.currentDaemonHeight; -} - -class SyncListener { - SyncListener(this.onNewBlock, this.onNewTransaction) - : _cachedBlockchainHeight = 0, - _lastKnownBlockHeight = 0, - _initialSyncHeight = 0; - - void Function(int, int, double) onNewBlock; - void Function() onNewTransaction; - - Timer? _updateSyncInfoTimer; - int _cachedBlockchainHeight; - int _lastKnownBlockHeight; - int _initialSyncHeight; - - // Future getNodeHeightOrUpdate(int hWallet, int baseHeight) async { - // if (_cachedBlockchainHeight < baseHeight || _cachedBlockchainHeight == 0) { - // _cachedBlockchainHeight = await compute(getNodeHeightSync, hWallet); - // } - - // return _cachedBlockchainHeight; - // } - - void start(ZanoWalletBase wallet, int hWallet) async { - _cachedBlockchainHeight = 0; - _lastKnownBlockHeight = 0; - _initialSyncHeight = 0; - _updateSyncInfoTimer ??= Timer.periodic(Duration(milliseconds: 1200), (_) async { - /**if (isNewTransactionExist()) { - onNewTransaction?.call(); - }*/ - - var json = ApiCalls.getWalletStatus(hWallet: hWallet); - print('wallet status $json'); - final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - // You can call getWalletInfo ONLY if getWalletStatus returns NOT is in long refresh and wallet state is 2 (ready) - if (!status.isInLongRefresh && status.walletState == 2) { - final syncHeight = status.currentWalletHeight; - - json = ApiCalls.getWalletInfo(hWallet); - print('wallet info $json'); - final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); - wallet.seed = result.wiExtended.seed; - wallet.keys = ZanoWalletKeys( - privateSpendKey: result.wiExtended.spendPrivateKey, - privateViewKey: result.wiExtended.viewPrivateKey, - publicSpendKey: result.wiExtended.spendPublicKey, - publicViewKey: result.wiExtended.viewPublicKey, - ); - - final balance = result.wi.balances.first; - wallet.assetId = balance.assetInfo.assetId; - wallet.balance = mobx.ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: balance.total, unlocked: balance.unlocked)}); - - if (_initialSyncHeight <= 0) { - _initialSyncHeight = syncHeight; - } - - final bchHeight = status.currentDaemonHeight; - - if (_lastKnownBlockHeight == syncHeight) { - return; - } - - _lastKnownBlockHeight = syncHeight; - final track = bchHeight - _initialSyncHeight; - final diff = track - (bchHeight - syncHeight); - final ptc = diff <= 0 ? 0.0 : diff / track; - final left = bchHeight - syncHeight; - - if (syncHeight < 0 || left < 0) { - return; - } - - // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; - onNewBlock.call(syncHeight, left, ptc); - } - }); - } - - void stop() => _updateSyncInfoTimer?.cancel(); -} - -SyncListener setListeners(void Function(int, int, double) onNewBlock, void Function() onNewTransaction) { - final listener = SyncListener(onNewBlock, onNewTransaction); - /**setListenerNative();*/ - return listener; -} diff --git a/cw_zano/lib/exceptions/zano_transaction_creation_exception.dart b/cw_zano/lib/exceptions/zano_transaction_creation_exception.dart new file mode 100644 index 000000000..74a5f77c6 --- /dev/null +++ b/cw_zano/lib/exceptions/zano_transaction_creation_exception.dart @@ -0,0 +1,8 @@ +class ZanoTransactionCreationException implements Exception { + ZanoTransactionCreationException(this.message); + + final String message; + + @override + String toString() => message; +} \ No newline at end of file diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index 9cc22c573..652194014 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -7,83 +7,62 @@ import 'package:cw_zano/api/model/transfer_result.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/pending_transaction.dart'; -import 'package:cw_zano/api/api_calls.dart' as calls; import 'package:cw_zano/zano_wallet.dart'; class PendingZanoTransaction with PendingTransaction { - PendingZanoTransaction( - {required this.zanoWallet, - required this.fee, - required this.intAmount, - //required this.stringAmount, - required this.hWallet, - required this.address, - required this.assetId, - required this.comment}); + PendingZanoTransaction({ + required this.zanoWallet, + required this.destinations, + required this.fee, + required this.comment, + }); final ZanoWalletBase zanoWallet; - final int hWallet; - final int intAmount; - //final String stringAmount; + final List destinations; final int fee; - final String address; - final String assetId; final String comment; - final CryptoCurrency cryptoCurrency = CryptoCurrency.zano; - @override - String get id => transferResult != null ? transferResult!.txHash : ''; + String get id => transferResult?.txHash ?? ''; @override String get hex => ''; @override - String get amountFormatted { - return AmountConverter.amountIntToString(cryptoCurrency, intAmount); - } + String get amountFormatted => AmountConverter.amountIntToString(CryptoCurrency.zano, destinations.first.amount); @override - String get feeFormatted => AmountConverter.amountIntToString(cryptoCurrency, fee); + String get feeFormatted => AmountConverter.amountIntToString(CryptoCurrency.zano, fee); TransferResult? transferResult; @override Future commit() async { final params = TransferParams( - destinations: [ - Destination( - amount: intAmount.toString(), - address: address, - assetId: assetId, - ) - ], + destinations: destinations, fee: fee, mixin: zanoMixin, paymentId: '', comment: comment, pushPayer: false, - hideReceiver: false, + hideReceiver: true, ); - final result = await zanoWallet.invokeMethod(hWallet, 'transfer', params); + final result = await zanoWallet.invokeMethod('transfer', params); final map = jsonDecode(result); - if (map['result'] != null && map['result']['result'] != null) { - transferResult = TransferResult.fromJson( - map['result']['result'] as Map, - ); - await zanoWallet.fetchTransactions(); - } else if (map['result'] != null && map['result']['error'] != null) { - final String code; - if (map['result']['error']['code'] is int) { - code = (map['result']['error']['code'] as int).toString(); - } else if (map['result']['error']['code'] is String) { - code = map['result']['error']['code'] as String; + final resultMap = map['result'] as Map?; + if (resultMap != null) { + final transferResultMap = resultMap['result'] as Map?; + if (transferResultMap != null) { + transferResult = TransferResult.fromJson(transferResultMap); + print('transfer success hash ${transferResult!.txHash}'); + await zanoWallet.fetchTransactions(); } else { - code = ''; + final errorCode = resultMap['error']['code']; + final code = errorCode is int ? errorCode.toString() : errorCode as String? ?? ''; + final message = resultMap['error']['message'] as String? ?? ''; + print('transfer error $code $message'); + throw TransferException(code, message); } - final message = map['result']['error']['message'] as String; - print('transfer error $code $message'); - throw TransferException(code, message); } } } diff --git a/cw_zano/lib/zano_transaction_creation_credentials.dart b/cw_zano/lib/zano_transaction_credentials.dart similarity index 56% rename from cw_zano/lib/zano_transaction_creation_credentials.dart rename to cw_zano/lib/zano_transaction_credentials.dart index 2465f4c9a..474a5b07f 100644 --- a/cw_zano/lib/zano_transaction_creation_credentials.dart +++ b/cw_zano/lib/zano_transaction_credentials.dart @@ -1,9 +1,8 @@ import 'package:cw_core/monero_transaction_priority.dart'; import 'package:cw_core/output_info.dart'; -class ZanoTransactionCreationCredentials { - ZanoTransactionCreationCredentials( - {required this.outputs, required this.priority, required this.assetType}); +class ZanoTransactionCredentials { + ZanoTransactionCredentials({required this.outputs, required this.priority, required this.assetType}); final List outputs; final MoneroTransactionPriority priority; diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 85a158c12..082d456cc 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -5,6 +5,7 @@ import 'dart:io'; import 'dart:math'; import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_wallet_utils.dart'; import 'package:cw_core/node.dart'; import 'package:cw_core/pathForWallet.dart'; @@ -13,17 +14,19 @@ import 'package:cw_core/sync_status.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; -import 'package:cw_zano/api/api_calls.dart' as calls; import 'package:cw_zano/api/api_calls.dart'; +import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; +import 'package:cw_zano/api/model/get_wallet_info_result.dart'; +import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/history.dart'; import 'package:cw_zano/api/model/store_result.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; -import 'package:cw_zano/api/wallet.dart' as zano_wallet; import 'package:cw_zano/api/zano_api.dart'; +import 'package:cw_zano/exceptions/zano_transaction_creation_exception.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; import 'package:cw_zano/zano_balance.dart'; -import 'package:cw_zano/zano_transaction_creation_credentials.dart'; +import 'package:cw_zano/zano_transaction_credentials.dart'; import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/zano_transaction_info.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; @@ -62,7 +65,7 @@ abstract class ZanoWalletBase extends WalletBase history = []; - String assetId = ''; + String defaultAsssetId = ''; static const int _autoSaveInterval = 30; static const _statusDelivered = 'delivered'; @@ -85,8 +88,12 @@ abstract class ZanoWalletBase extends WalletBase await save()); } @@ -123,7 +122,8 @@ abstract class ZanoWalletBase extends WalletBase startSync() async { - try { - _setInitialHeight(); - } catch (_) {} - try { syncStatus = AttemptingSyncStatus(); - debugPrint("startRefresh"); - _setListeners(); - _listener?.start(this, hWallet); + _cachedBlockchainHeight = 0; + _lastKnownBlockHeight = 0; + _initialSyncHeight = 0; + _updateSyncInfoTimer ??= Timer.periodic(Duration(milliseconds: 1200), (_) async { + /**if (isNewTransactionExist()) { + onNewTransaction?.call(); + }*/ + + GetWalletStatusResult status = getWalletStatus(); + // You can call getWalletInfo ONLY if getWalletStatus returns NOT is in long refresh and wallet state is 2 (ready) + if (!status.isInLongRefresh && status.walletState == 2) { + final syncHeight = status.currentWalletHeight; + + GetWalletInfoResult result = getWalletInfo(); + seed = result.wiExtended.seed; + keys = ZanoWalletKeys( + privateSpendKey: result.wiExtended.spendPrivateKey, + privateViewKey: result.wiExtended.viewPrivateKey, + publicSpendKey: result.wiExtended.spendPublicKey, + publicViewKey: result.wiExtended.viewPublicKey, + ); + + final _balance = result.wi.balances.first; + defaultAsssetId = _balance.assetInfo.assetId; + balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: _balance.total, unlocked: _balance.unlocked)}); + + if (_initialSyncHeight <= 0) { + _initialSyncHeight = syncHeight; + } + + final bchHeight = status.currentDaemonHeight; + + if (_lastKnownBlockHeight == syncHeight) { + return; + } + + _lastKnownBlockHeight = syncHeight; + final track = bchHeight - _initialSyncHeight; + final diff = track - (bchHeight - syncHeight); + final ptc = diff <= 0 ? 0.0 : diff / track; + final left = bchHeight - syncHeight; + + if (syncHeight < 0 || left < 0) { + return; + } + + // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; + _onNewBlock.call(syncHeight, left, ptc); + } + }); } catch (e) { syncStatus = FailedSyncStatus(); print(e); @@ -169,82 +212,54 @@ abstract class ZanoWalletBase extends WalletBase createTransaction(Object credentials) async { - final creds = credentials as ZanoTransactionCreationCredentials; - final output = creds.outputs.first; - final address = output.isParsedAddress && (output.extractedAddress?.isNotEmpty ?? false) ? output.extractedAddress! : output.address; - final stringAmount = output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); - final fee = calculateEstimatedFee(creds.priority); - final intAmount = (double.parse(stringAmount!) * pow(10, 12)).toInt(); - final transaction = PendingZanoTransaction(fee: fee, intAmount: intAmount, hWallet: hWallet, address: address, assetId: assetId, comment: output.note ?? '', zanoWallet: this); - return transaction; - - /*final _credentials = credentials as ZanoTransactionCreationCredentials; - final outputs = _credentials.outputs; + final creds = credentials as ZanoTransactionCredentials; + final outputs = creds.outputs; final hasMultiDestination = outputs.length > 1; - final assetType = - CryptoCurrency.fromString(_credentials.assetType.toLowerCase()); - final balances = getZanoBalance(/*accountIndex: walletAddresses.account!.id*/); - final unlockedBalance = balances[assetType]!.unlockedBalance; - - PendingTransactionDescription pendingTransactionDescription; - - if (!(syncStatus is SyncedSyncStatus)) { - throw ZanoTransactionCreationException('The wallet is not synced.'); - } - + final unlockedBalance = balance[CryptoCurrency.zano]?.unlocked ?? 0; + final fee = calculateEstimatedFee(creds.priority); + late List destinations; if (hasMultiDestination) { - if (outputs.any( - (item) => item.sendAll || (item.formattedCryptoAmount ?? 0) <= 0)) { - throw ZanoTransactionCreationException( - 'You do not have enough coins to send this amount.'); + if (outputs.any((output) => output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { + throw ZanoTransactionCreationException("You don't have enough coins."); } - - final int totalAmount = outputs.fold( - 0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); - - if (unlockedBalance < totalAmount) { + final int totalAmount = outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); + if (totalAmount + fee > unlockedBalance) { throw ZanoTransactionCreationException( - 'You do not have enough coins to send this amount.'); + "You don't have enough coins (required: ${moneroAmountToString(amount: totalAmount + fee)}, unlocked ${moneroAmountToString(amount: unlockedBalance)})."); } - - final zanoOutputs = outputs - .map((output) => ZanoOutput( - address: output.address, - amount: output.cryptoAmount!.replaceAll(',', '.'))) + destinations = outputs + .map((output) => Destination( + amount: output.formattedCryptoAmount ?? 0, + address: output.isParsedAddress ? output.extractedAddress! : output.address, + assetId: defaultAsssetId, + )) .toList(); - - pendingTransactionDescription = - await transaction_history.createTransactionMultDest( - outputs: zanoOutputs, - priorityRaw: _credentials.priority.serialize()); } else { final output = outputs.first; - final address = output.isParsedAddress && - (output.extractedAddress?.isNotEmpty ?? false) - ? output.extractedAddress! - : output.address; - final amount = - output.sendAll ? null : output.cryptoAmount!.replaceAll(',', '.'); - final int? formattedAmount = - output.sendAll ? null : output.formattedCryptoAmount; - - if ((formattedAmount != null && unlockedBalance < formattedAmount) || - (formattedAmount == null && unlockedBalance <= 0)) { - final formattedBalance = moneroAmountToString(amount: unlockedBalance); - - throw ZanoTransactionCreationException( - 'You do not have enough unlocked balance. Unlocked: $formattedBalance. Transaction amount: ${output.cryptoAmount}.'); + late int amount; + if (output.sendAll) { + amount = unlockedBalance - fee; + } else { + amount = output.formattedCryptoAmount!; } - - pendingTransactionDescription = - await transaction_history.createTransaction( - address: address, - assetType: _credentials.assetType, - amount: amount, - priorityRaw: _credentials.priority.serialize()); + if (amount + fee > unlockedBalance) { + throw ZanoTransactionCreationException( + "You don't have enough coins (required: ${moneroAmountToString(amount: amount + fee)}, unlocked ${moneroAmountToString(amount: unlockedBalance)})."); + } + destinations = [ + Destination( + amount: amount, + address: output.isParsedAddress ? output.extractedAddress! : output.address, + assetId: defaultAsssetId, + ) + ]; } - - return PendingZanoTransaction(pendingTransactionDescription, assetType);*/ + return PendingZanoTransaction( + zanoWallet: this, + destinations: destinations, + fee: fee, + comment: outputs.first.note ?? '', + ); } @override @@ -265,7 +280,7 @@ abstract class ZanoWalletBase extends WalletBase store() async { try { - final json = await invokeMethod(hWallet, 'store', '{}'); + final json = await invokeMethod('store', '{}'); final map = jsonDecode(json) as Map; if (map['result'] == null || map['result']['result'] == null) { throw 'store empty response'; @@ -326,7 +341,7 @@ abstract class ZanoWalletBase extends WalletBase _refreshTransactions() async { try { - final result = await invokeMethod(hWallet, 'get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + final result = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); final map = jsonDecode(result) as Map?; if (map == null) { print('get_recent_txs_and_info empty response'); @@ -396,31 +411,14 @@ abstract class ZanoWalletBase extends WalletBase ZanoTransactionInfo.fromRow(row)) // .toList(); - void _setListeners() { - _listener?.stop(); - _listener = zano_wallet.setListeners(_onNewBlock, _onNewTransaction); - } + // void _setListeners() { + // _listener?.stop(); + // _listener = zano_wallet.setListeners(_onNewBlock, _onNewTransaction); + // } - void _setInitialHeight() { - if (walletInfo.isRecovery) { - return; - } - - final currentHeight = zano_wallet.getCurrentHeight(hWallet); - - if (currentHeight <= 1) { - final height = _getHeightByDate(walletInfo.date); - debugPrint('setRecoveringFromSeed isRecovery true'); - debugPrint('setRefreshFromBlockHeight height $height'); - } - } - - int _getHeightByDate(DateTime date) { - return 0; - } void _askForUpdateBalance() { - debugPrint('askForUpdateBalance'); + debugPrint('askForUpdateBalance'); // TODO: remove, also remove this method completely } Future _askForUpdateTransactionHistory() async => await updateTransactions(); @@ -459,7 +457,7 @@ abstract class ZanoWalletBase extends WalletBase.delayed(Duration(seconds: 1)); + await Future.delayed(Duration(seconds: 1)); // TODO: ??? } catch (e) { print(e.toString()); } @@ -484,7 +482,7 @@ abstract class ZanoWalletBase extends WalletBase invokeMethod(int hWallet, String methodName, Object params) async { + Future invokeMethod(String methodName, Object params) async { var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); var map = jsonDecode(invokeResult) as Map; int attempts = 0; @@ -501,4 +499,18 @@ abstract class ZanoWalletBase extends WalletBase); + return result; + } + + GetWalletStatusResult getWalletStatus() { + final json = ApiCalls.getWalletStatus(hWallet: hWallet); + print('wallet status $json'); // TODO: remove + final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + return status; + } } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 0651b32da..7fc528a26 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -24,13 +24,11 @@ import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; class ZanoNewWalletCredentials extends WalletCredentials { - ZanoNewWalletCredentials({required String name, String? password}) - : super(name: name, password: password); + ZanoNewWalletCredentials({required String name, String? password}) : super(name: name, password: password); } class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { - ZanoRestoreWalletFromSeedCredentials( - {required String name, required String password, required int height, required this.mnemonic}) + ZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required this.mnemonic}) : super(name: name, password: password, height: height); final String mnemonic; @@ -38,13 +36,7 @@ class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { ZanoRestoreWalletFromKeysCredentials( - {required String name, - required String password, - required this.language, - required this.address, - required this.viewKey, - required this.spendKey, - required int height}) + {required String name, required String password, required this.language, required this.address, required this.viewKey, required this.spendKey, required int height}) : super(name: name, password: password, height: height); final String language; @@ -53,14 +45,12 @@ class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { final String spendKey; } -class ZanoWalletService extends WalletService { +class ZanoWalletService extends WalletService { ZanoWalletService(this.walletInfoSource); final Box walletInfoSource; - static bool walletFilesExist(String path) => - !File(path).existsSync() && !File('$path.keys').existsSync(); + static bool walletFilesExist(String path) => !File(path).existsSync() && !File('$path.keys').existsSync(); int hWallet = 0; @@ -109,8 +99,7 @@ class ZanoWalletService extends WalletService info.id == WalletBase.idFor(name, getType()))!; + final walletInfo = walletInfoSource.values.firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!; final wallet = ZanoWallet(walletInfo); await wallet.connectToNode(node: Node()); final result = wallet.loadWallet(path, password); @@ -132,9 +121,8 @@ class ZanoWalletService extends WalletService info.id == WalletBase.idFor(wallet, getType())); + final walletInfo = walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(wallet, getType())); await walletInfoSource.delete(walletInfo.key); } @override Future rename(String currentName, String password, String newName) async { - final currentWalletInfo = walletInfoSource.values - .firstWhere((info) => info.id == WalletBase.idFor(currentName, getType())); + final currentWalletInfo = walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(currentName, getType())); final currentWallet = ZanoWallet(currentWalletInfo); await currentWallet.renameWalletFiles(newName); @@ -184,8 +170,7 @@ class ZanoWalletService extends WalletService; if (map['result'] != null) { - final createWalletResult = - CreateWalletResult.fromJson(map['result'] as Map); + final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); await wallet.store(); await wallet.init(createWalletResult.wi.address); @@ -200,7 +185,7 @@ class ZanoWalletService extends WalletService outputs, - required TransactionPriority priority, - required String assetType}) { - return ZanoTransactionCreationCredentials( + Object createZanoTransactionCreationCredentials({required List outputs, required TransactionPriority priority, required String assetType}) { + return ZanoTransactionCredentials( outputs: outputs .map((out) => OutputInfo( fiatAmount: out.fiatAmount, diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index e3daa7e46..05a4cf000 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/utils/language_list.dart'; +import 'package:cw_zano/zano_transaction_credentials.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -12,15 +13,12 @@ import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:hive/hive.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/get_height_by_date.dart'; import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_transaction_priority.dart'; import 'package:cw_zano/zano_wallet_service.dart'; import 'package:cw_zano/zano_wallet.dart'; import 'package:cw_zano/zano_transaction_info.dart'; -import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/mnemonics/english.dart'; -import 'package:cw_zano/zano_transaction_creation_credentials.dart'; part 'cw_zano.dart'; From 9228d91daa07204643d7cdb4681ff4221af8af8f Mon Sep 17 00:00:00 2001 From: leo1234 Date: Fri, 8 Mar 2024 20:42:09 +0800 Subject: [PATCH 27/58] logging --- cw_zano/lib/zano_wallet.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 082d456cc..71b2e4e7c 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -254,6 +254,9 @@ abstract class ZanoWalletBase extends WalletBase _askForUpdateTransactionHistory() async => await updateTransactions(); From 75f1f3f7cc77bc9982c41dd779d99392a91739ce Mon Sep 17 00:00:00 2001 From: leo1234 Date: Sat, 9 Mar 2024 19:04:12 +0800 Subject: [PATCH 28/58] removed the duplicate --- cw_zano/lib/api/api_calls.dart | 4 ++-- cw_zano/lib/zano_wallet.dart | 14 +------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index e8cdc9804..65d80b933 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -23,7 +23,7 @@ typedef _IsWalletExist = int Function(Pointer); // void close_wallet(uint64_t hwallet) typedef _close_wallet = Void Function(Int64); -typedef _closeWalletStatus = void Function(int hWallet); +typedef _closeWallet = void Function(int hWallet); // uint64_t get_current_tx_fee(uint64_t priority) typedef _get_current_tx_fee = Int64 Function(Int64); @@ -157,7 +157,7 @@ class ApiCalls { return isExist; } - static final _closeWalletNative = zanoApi.lookup>('close_wallet').asFunction<_closeWalletStatus>(); + static final _closeWalletNative = zanoApi.lookup>('close_wallet').asFunction<_closeWallet>(); static void closeWallet({required int hWallet}) => _closeWalletNative(hWallet); diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 71b2e4e7c..8417f6a44 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -465,25 +465,13 @@ abstract class ZanoWalletBase extends WalletBase>('load_wallet').asFunction<_LoadWallet>(); - String loadWallet(String path, String password) { print('load_wallet path $path password $password'); - final pathPointer = path.toNativeUtf8(); - final passwordPointer = password.toNativeUtf8(); - final result = _convertUTF8ToString( - pointer: _loadWalletNative(pathPointer, passwordPointer, 0), - ); + final result = ApiCalls.loadWallet(path: path, password: password); print('load_wallet result $result'); return result; } - String _convertUTF8ToString({required Pointer pointer}) { - final str = pointer.toDartString(); - calloc.free(pointer); - return str; - } - Future invokeMethod(String methodName, Object params) async { var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); var map = jsonDecode(invokeResult) as Map; From 23485a4bab30387dced863f2ce27fb05513bdb57 Mon Sep 17 00:00:00 2001 From: leo Date: Sun, 10 Mar 2024 02:51:30 +0000 Subject: [PATCH 29/58] fixed syncing sync status, decimal division, safe null json parsing --- cw_core/lib/amount_converter.dart | 12 +- cw_core/pubspec.lock | 16 ++ cw_core/pubspec.yaml | 1 + cw_zano/lib/api/model/asset_info.dart | 16 +- cw_zano/lib/api/model/balance.dart | 10 +- .../lib/api/model/create_wallet_result.dart | 18 +- cw_zano/lib/api/model/destination.dart | 12 +- .../api/model/get_address_info_result.dart | 8 +- cw_zano/lib/api/model/history.dart | 32 ++-- cw_zano/lib/api/model/receive.dart | 6 +- cw_zano/lib/api/model/recent_history.dart | 4 +- cw_zano/lib/api/model/store_result.dart | 2 +- cw_zano/lib/api/model/subtransfer.dart | 6 +- cw_zano/lib/api/model/transfer_params.dart | 18 +- cw_zano/lib/api/model/wi_extended.dart | 10 +- cw_zano/lib/api/zano_api.dart | 4 +- cw_zano/lib/zano_balance.dart | 6 +- cw_zano/lib/zano_wallet.dart | 179 +++++++++++------- cw_zano/lib/zano_wallet_service.dart | 23 ++- 19 files changed, 232 insertions(+), 151 deletions(-) diff --git a/cw_core/lib/amount_converter.dart b/cw_core/lib/amount_converter.dart index cdd79bc35..adf7532f6 100644 --- a/cw_core/lib/amount_converter.dart +++ b/cw_core/lib/amount_converter.dart @@ -1,5 +1,8 @@ +import 'package:decimal/decimal.dart'; +import 'package:decimal/intl.dart'; import 'package:intl/intl.dart'; import 'package:cw_core/crypto_currency.dart'; +import 'package:rational/rational.dart'; class AmountConverter { static const _moneroAmountLength = 12; @@ -97,7 +100,7 @@ class AmountConverter { case CryptoCurrency.xusd: return _moneroAmountToString(amount); case CryptoCurrency.zano: - return _moneroAmountToString(amount); + return _moneroAmountToStringUsingDecimals(amount); default: return ''; } @@ -106,9 +109,16 @@ class AmountConverter { static double cryptoAmountToDouble({required num amount, required num divider}) => amount / divider; + static Decimal cryptoAmountToDecimal({required int amount, required int divider}) => + (Decimal.fromInt(amount) / Decimal.fromInt(divider)).toDecimal(); + static String _moneroAmountToString(int amount) => _moneroAmountFormat.format( cryptoAmountToDouble(amount: amount, divider: _moneroAmountDivider)); + static String _moneroAmountToStringUsingDecimals(int amount) => _moneroAmountFormat.format( + DecimalIntl(cryptoAmountToDecimal(amount: amount, divider: _moneroAmountDivider))); + + static double _moneroAmountToDouble(int amount) => cryptoAmountToDouble(amount: amount, divider: _moneroAmountDivider); diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index e399526fd..d476f1751 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -177,6 +177,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.4" + decimal: + dependency: "direct main" + description: + name: decimal + sha256: "24a261d5d5c87e86c7651c417a5dbdf8bcd7080dd592533910e8d0505a279f21" + url: "https://pub.dev" + source: hosted + version: "2.3.3" encrypt: dependency: "direct main" description: @@ -507,6 +515,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" + rational: + dependency: transitive + description: + name: rational + sha256: ba58e9e18df9abde280e8b10051e4bce85091e41e8e7e411b6cde2e738d357cf + url: "https://pub.dev" + source: hosted + version: "2.2.2" shelf: dependency: transitive description: diff --git a/cw_core/pubspec.yaml b/cw_core/pubspec.yaml index 9dcb7eaba..1274e5aa2 100644 --- a/cw_core/pubspec.yaml +++ b/cw_core/pubspec.yaml @@ -19,6 +19,7 @@ dependencies: flutter_mobx: ^2.0.6+1 intl: ^0.18.0 encrypt: ^5.0.1 + decimal: ^2.3.3 dev_dependencies: flutter_test: diff --git a/cw_zano/lib/api/model/asset_info.dart b/cw_zano/lib/api/model/asset_info.dart index 0b7605a17..ddf1a1d2d 100644 --- a/cw_zano/lib/api/model/asset_info.dart +++ b/cw_zano/lib/api/model/asset_info.dart @@ -21,14 +21,14 @@ class AssetInfo { required this.totalMaxSupply}); factory AssetInfo.fromJson(Map json) => AssetInfo( - assetId: json['asset_id'] as String, - currentSupply: json['current_supply'] as int, - decimalPoint: json['decimal_point'] as int, - fullName: json['full_name'] as String, + assetId: json['asset_id'] as String? ?? '', + currentSupply: json['current_supply'] as int? ?? 0, + decimalPoint: json['decimal_point'] as int? ?? 0, + fullName: json['full_name'] as String? ?? '', hiddenSupply: json['hidden_supply'] as bool, - metaInfo: json['meta_info'] as String, - owner: json['owner'] as String, - ticker: json['ticker'] as String, - totalMaxSupply: json['total_max_supply'] as int, + metaInfo: json['meta_info'] as String? ?? '', + owner: json['owner'] as String? ?? '', + ticker: json['ticker'] as String? ?? '', + totalMaxSupply: json['total_max_supply'] as int? ?? 0, ); } diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index 8ff18d891..a46922a9b 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -16,10 +16,10 @@ class Balance { factory Balance.fromJson(Map json) => Balance( assetInfo: - AssetInfo.fromJson(json['asset_info'] as Map), - awaitingIn: json['awaiting_in'] as int, - awaitingOut: json['awaiting_out'] as int, - total: json['total'] as int, - unlocked: json['unlocked'] as int, + AssetInfo.fromJson(json['asset_info'] as Map? ?? {}), + awaitingIn: json['awaiting_in'] as int? ?? 0, + awaitingOut: json['awaiting_out'] as int? ?? 0, + total: json['total'] as int? ?? 0, + unlocked: json['unlocked'] as int? ?? 0, ); } diff --git a/cw_zano/lib/api/model/create_wallet_result.dart b/cw_zano/lib/api/model/create_wallet_result.dart index 7b07f9045..91b6fc00b 100644 --- a/cw_zano/lib/api/model/create_wallet_result.dart +++ b/cw_zano/lib/api/model/create_wallet_result.dart @@ -25,15 +25,15 @@ class CreateWalletResult { factory CreateWalletResult.fromJson(Map json) => CreateWalletResult( - name: json['name'] as String, - pass: json['pass'] as String, + name: json['name'] as String? ?? '', + pass: json['pass'] as String? ?? '', recentHistory: RecentHistory.fromJson( - json['recent_history'] as Map), - recovered: json['recovered'] as bool, - seed: json['seed'] as String, - walletFileSize: json['wallet_file_size'] as int, - walletId: json['wallet_id'] as int, - walletLocalBcSize: json['wallet_local_bc_size'] as int, - wi: Wi.fromJson(json['wi'] as Map), + json['recent_history'] as Map? ?? {}), + recovered: json['recovered'] as bool? ?? false, + seed: json['seed'] as String? ?? '', + walletFileSize: json['wallet_file_size'] as int? ?? 0, + walletId: json['wallet_id'] as int? ?? 0, + walletLocalBcSize: json['wallet_local_bc_size'] as int? ?? 0, + wi: Wi.fromJson(json['wi'] as Map? ?? {}), ); } diff --git a/cw_zano/lib/api/model/destination.dart b/cw_zano/lib/api/model/destination.dart index f8028a8b7..dd3867511 100644 --- a/cw_zano/lib/api/model/destination.dart +++ b/cw_zano/lib/api/model/destination.dart @@ -7,14 +7,14 @@ class Destination { {required this.amount, required this.address, required this.assetId}); factory Destination.fromJson(Map json) => Destination( - amount: int.parse(json['amount'] as String), - address: json['address'] as String, - assetId: json['asset_id'] as String, + amount: int.parse(json['amount'] as String? ?? '0'), + address: json['address'] as String? ?? '', + assetId: json['asset_id'] as String? ?? '', ); Map toJson() => { - "amount": amount.toString(), - "address": address, - "asset_id": assetId, + 'amount': amount.toString(), + 'address': address, + 'asset_id': assetId, }; } diff --git a/cw_zano/lib/api/model/get_address_info_result.dart b/cw_zano/lib/api/model/get_address_info_result.dart index 4d3db12f6..e8399adb1 100644 --- a/cw_zano/lib/api/model/get_address_info_result.dart +++ b/cw_zano/lib/api/model/get_address_info_result.dart @@ -8,9 +8,9 @@ class GetAddressInfoResult { {required this.valid, required this.auditable, required this.paymentId, required this.wrap}); factory GetAddressInfoResult.fromJson(Map json) => GetAddressInfoResult( - valid: json['valid'] as bool, - auditable: json['auditable'] as bool, - paymentId: json['payment_id'] as bool, - wrap: json['wrap'] as bool, + valid: json['valid'] as bool? ?? false, + auditable: json['auditable'] as bool? ?? false, + paymentId: json['payment_id'] as bool? ?? false, + wrap: json['wrap'] as bool? ?? false, ); } diff --git a/cw_zano/lib/api/model/history.dart b/cw_zano/lib/api/model/history.dart index 2310e8519..faadfcdc2 100644 --- a/cw_zano/lib/api/model/history.dart +++ b/cw_zano/lib/api/model/history.dart @@ -43,27 +43,27 @@ class History { }); factory History.fromJson(Map json) => History( - comment: json['comment'] as String, + comment: json['comment'] as String? ?? '', employedEntries: EmployedEntries.fromJson( - json['employed_entries'] as Map), - fee: json['fee'] as int, - height: json['height'] as int, - isMining: json['is_mining'] as bool, - isMixing: json['is_mixing'] as bool, - isService: json['is_service'] as bool, - paymentId: json['payment_id'] as String, + json['employed_entries'] as Map? ?? {}), + fee: json['fee'] as int? ?? 0, + height: json['height'] as int? ?? 0, + isMining: json['is_mining'] as bool? ?? false, + isMixing: json['is_mixing'] as bool? ?? false, + isService: json['is_service'] as bool? ?? false, + paymentId: json['payment_id'] as String? ?? '', remoteAddresses: json['remote_addresses'] == null ? [] : (json['remote_addresses'] as List).cast(), remoteAliases: json['remote_aliases'] == null ? [] : (json['remote_aliases'] as List).cast(), - showSender: json['show_sender'] as bool, - subtransfers: (json['subtransfers'] as List) + showSender: json['show_sender'] as bool? ?? false, + subtransfers: (json['subtransfers'] as List? ?? []) .map((e) => Subtransfer.fromJson(e as Map)) .toList(), - timestamp: json['timestamp'] as int, - transferInternalIndex: json['transfer_internal_index'] is double ? (json['transfer_internal_index'] as double).toInt() : json['transfer_internal_index'] as int, - txBlobSize: json['tx_blob_size'] as int, - txHash: json['tx_hash'] as String, - txType: json['tx_type'] as int, - unlockTime: json['unlock_time'] as int, + timestamp: json['timestamp'] as int? ?? 0, + transferInternalIndex: json['transfer_internal_index'] == null ? 0 : json['transfer_internal_index'] is double ? (json['transfer_internal_index'] as double).toInt() : json['transfer_internal_index'] as int, + txBlobSize: json['tx_blob_size'] as int? ?? 0, + txHash: json['tx_hash'] as String? ?? '', + txType: json['tx_type'] as int? ?? 0, + unlockTime: json['unlock_time'] as int? ?? 0, ); } diff --git a/cw_zano/lib/api/model/receive.dart b/cw_zano/lib/api/model/receive.dart index bb5817c94..da0443b29 100644 --- a/cw_zano/lib/api/model/receive.dart +++ b/cw_zano/lib/api/model/receive.dart @@ -6,8 +6,8 @@ class Receive { Receive({required this.amount, required this.assetId, required this.index}); factory Receive.fromJson(Map json) => Receive( - amount: json['amount'] as int, - assetId: json['asset_id'] as String, - index: json['index'] as int, + amount: json['amount'] as int? ?? 0, + assetId: json['asset_id'] as String? ?? '', + index: json['index'] as int? ?? 0, ); } diff --git a/cw_zano/lib/api/model/recent_history.dart b/cw_zano/lib/api/model/recent_history.dart index 87d1aafa7..82e71ef44 100644 --- a/cw_zano/lib/api/model/recent_history.dart +++ b/cw_zano/lib/api/model/recent_history.dart @@ -14,7 +14,7 @@ class RecentHistory { history: json['history'] == null ? null : (json['history'] as List) .map((e) => History.fromJson(e as Map)) .toList(), - lastItemIndex: json['last_item_index'] as int, - totalHistoryItems: json['total_history_items'] as int, + lastItemIndex: json['last_item_index'] as int? ?? 0, + totalHistoryItems: json['total_history_items'] as int? ?? 0, ); } diff --git a/cw_zano/lib/api/model/store_result.dart b/cw_zano/lib/api/model/store_result.dart index 5bc022a76..0ff6625c1 100644 --- a/cw_zano/lib/api/model/store_result.dart +++ b/cw_zano/lib/api/model/store_result.dart @@ -4,6 +4,6 @@ class StoreResult { StoreResult({required this.walletFileSize}); factory StoreResult.fromJson(Map json) => StoreResult( - walletFileSize: json['wallet_file_size'] as int, + walletFileSize: json['wallet_file_size'] as int? ?? 0, ); } \ No newline at end of file diff --git a/cw_zano/lib/api/model/subtransfer.dart b/cw_zano/lib/api/model/subtransfer.dart index 56e6283e6..807134be3 100644 --- a/cw_zano/lib/api/model/subtransfer.dart +++ b/cw_zano/lib/api/model/subtransfer.dart @@ -7,8 +7,8 @@ class Subtransfer { {required this.amount, required this.assetId, required this.isIncome}); factory Subtransfer.fromJson(Map json) => Subtransfer( - amount: json['amount'] as int, - assetId: json['asset_id'] as String, - isIncome: json['is_income'] as bool, + amount: json['amount'] as int? ?? 0, + assetId: json['asset_id'] as String? ?? '', + isIncome: json['is_income'] as bool? ?? false, ); } diff --git a/cw_zano/lib/api/model/transfer_params.dart b/cw_zano/lib/api/model/transfer_params.dart index 8fddf31ac..4f252c402 100644 --- a/cw_zano/lib/api/model/transfer_params.dart +++ b/cw_zano/lib/api/model/transfer_params.dart @@ -20,13 +20,13 @@ class TransferParams { }); Map toJson() => { - "destinations": destinations, - "fee": fee, - "mixin": mixin, - "payment_id": paymentId, - "comment": comment, - "push_payer": pushPayer, - "hide_receiver": hideReceiver, + 'destinations': destinations, + 'fee': fee, + 'mixin': mixin, + 'payment_id': paymentId, + 'comment': comment, + 'push_payer': pushPayer, + 'hide_receiver': hideReceiver, }; factory TransferParams.fromJson(Map json) => TransferParams( @@ -35,7 +35,7 @@ class TransferParams { mixin: json['mixin'] as int? ?? 0, paymentId: json['payment_id'] as String? ?? '', comment: json['comment'] as String? ?? '', - pushPayer: json["push_payer"] as bool? ?? false, - hideReceiver: json["hide_receiver"] as bool? ?? false, + pushPayer: json['push_payer'] as bool? ?? false, + hideReceiver: json['hide_receiver'] as bool? ?? false, ); } diff --git a/cw_zano/lib/api/model/wi_extended.dart b/cw_zano/lib/api/model/wi_extended.dart index 0cc4b90d3..ab7e8efbd 100644 --- a/cw_zano/lib/api/model/wi_extended.dart +++ b/cw_zano/lib/api/model/wi_extended.dart @@ -8,10 +8,10 @@ class WiExtended { WiExtended({required this.seed, required this.spendPrivateKey, required this.spendPublicKey, required this.viewPrivateKey, required this.viewPublicKey}); factory WiExtended.fromJson(Map json) => WiExtended( - seed: json["seed"] as String? ?? '', - spendPrivateKey: json["spend_private_key"] as String? ?? '', - spendPublicKey: json["spend_public_key"] as String? ?? '', - viewPrivateKey: json["view_private_key"] as String? ?? '', - viewPublicKey: json["view_public_key"] as String? ?? '', + seed: json['seed'] as String? ?? '', + spendPrivateKey: json['spend_private_key'] as String? ?? '', + spendPublicKey: json['spend_public_key'] as String? ?? '', + viewPrivateKey: json['view_private_key'] as String? ?? '', + viewPublicKey: json['view_public_key'] as String? ?? '', ); } \ No newline at end of file diff --git a/cw_zano/lib/api/zano_api.dart b/cw_zano/lib/api/zano_api.dart index e135c4128..0bcff04e1 100644 --- a/cw_zano/lib/api/zano_api.dart +++ b/cw_zano/lib/api/zano_api.dart @@ -2,5 +2,5 @@ import 'dart:ffi'; import 'dart:io'; final DynamicLibrary zanoApi = Platform.isAndroid - ? DynamicLibrary.open("libcw_zano.so") - : DynamicLibrary.open("cw_zano.framework/cw_zano"); + ? DynamicLibrary.open('libcw_zano.so') + : DynamicLibrary.open('cw_zano.framework/cw_zano'); diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/zano_balance.dart index 9bbfb1ce1..c1566a81c 100644 --- a/cw_zano/lib/zano_balance.dart +++ b/cw_zano/lib/zano_balance.dart @@ -1,4 +1,6 @@ +import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/balance.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/monero_amount_format.dart'; class ZanoBalance extends Balance { @@ -7,10 +9,10 @@ class ZanoBalance extends Balance { ZanoBalance({required this.total, required this.unlocked}): super(unlocked, total-unlocked); @override - String get formattedAdditionalBalance => moneroAmountToString(amount: total-unlocked); + String get formattedAdditionalBalance => AmountConverter.amountIntToString(CryptoCurrency.zano, total-unlocked); @override - String get formattedAvailableBalance => moneroAmountToString(amount: unlocked); + String get formattedAvailableBalance => AmountConverter.amountIntToString(CryptoCurrency.zano, unlocked); @override String get formattedFrozenBalance => ''; diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 8417f6a44..2baf1aa8b 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -40,28 +40,32 @@ const moneroBlockSize = 1000; class ZanoWallet = ZanoWalletBase with _$ZanoWallet; -typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); +typedef _load_wallet = Pointer Function( + Pointer, Pointer, Int8); typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); const int zanoMixin = 10; -abstract class ZanoWalletBase extends WalletBase with Store { +abstract class ZanoWalletBase + extends WalletBase + with Store { ZanoWalletBase(WalletInfo walletInfo) - : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), + : balance = ObservableMap.of( + {CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), _isTransactionUpdating = false, _hasSyncAfterStartup = false, walletAddresses = ZanoWalletAddresses(walletInfo), syncStatus = NotConnectedSyncStatus(), super(walletInfo) { transactionHistory = ZanoTransactionHistory(); - /*_onAccountChangeReaction = - reaction((_) => walletAddresses.account, (Account? account) { - if (account == null) { - return; - } - balance.addAll(getZanoBalance(accountIndex: account.id)); - /**walletAddresses.updateSubaddressList(accountIndex: account.id);*/ - });*/ + // _onAccountChangeReaction = + // reaction((_) => walletAddresses.account, (Account? account) { + // if (account == null) { + // return; + // } + // balance.addAll(getZanoBalance(accountIndex: account.id)); + // /**walletAddresses.updateSubaddressList(accountIndex: account.id);*/ + // }); } List history = []; @@ -86,10 +90,14 @@ abstract class ZanoWalletBase extends WalletBase await save()); + _autoSaveTimer = Timer.periodic( + Duration(seconds: _autoSaveInterval), (_) async => await save()); } @override @@ -122,9 +131,10 @@ abstract class ZanoWalletBase extends WalletBase startSync() async { try { @@ -156,51 +191,31 @@ abstract class ZanoWalletBase extends WalletBase destinations; if (hasMultiDestination) { - if (outputs.any((output) => output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { + if (outputs.any((output) => + output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { throw ZanoTransactionCreationException("You don't have enough coins."); } - final int totalAmount = outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); + final int totalAmount = outputs.fold( + 0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); if (totalAmount + fee > unlockedBalance) { throw ZanoTransactionCreationException( "You don't have enough coins (required: ${moneroAmountToString(amount: totalAmount + fee)}, unlocked ${moneroAmountToString(amount: unlockedBalance)})."); @@ -230,7 +247,9 @@ abstract class ZanoWalletBase extends WalletBase Destination( amount: output.formattedCryptoAmount ?? 0, - address: output.isParsedAddress ? output.extractedAddress! : output.address, + address: output.isParsedAddress + ? output.extractedAddress! + : output.address, assetId: defaultAsssetId, )) .toList(); @@ -249,13 +268,16 @@ abstract class ZanoWalletBase extends WalletBase); + final _ = + StoreResult.fromJson(map['result']['result'] as Map); } catch (e) { print(e.toString()); } @@ -344,7 +368,8 @@ abstract class ZanoWalletBase extends WalletBase _refreshTransactions() async { try { - final result = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + final result = await invokeMethod('get_recent_txs_and_info', + GetRecentTxsAndInfoParams(offset: 0, count: 30)); final map = jsonDecode(result) as Map?; if (map == null) { print('get_recent_txs_and_info empty response'); @@ -368,7 +393,9 @@ abstract class ZanoWalletBase extends WalletBase History.fromJson(e as Map)).toList(); + history = transfers + .map((e) => History.fromJson(e as Map)) + .toList(); } catch (e) { print(e.toString()); } @@ -378,7 +405,10 @@ abstract class ZanoWalletBase extends WalletBase> fetchTransactions() async { try { await _refreshTransactions(); - return history.map((history) => ZanoTransactionInfo.fromHistory(history)).fold>( + return history + .map( + (history) => ZanoTransactionInfo.fromHistory(history)) + .fold>( {}, (Map acc, ZanoTransactionInfo tx) { acc[tx.id] = tx; @@ -420,10 +450,12 @@ abstract class ZanoWalletBase extends WalletBase _askForUpdateTransactionHistory() async => await updateTransactions(); + Future _askForUpdateTransactionHistory() async => + await updateTransactions(); void _onNewBlock(int height, int blocksLeft, double ptc) async { try { @@ -473,7 +505,10 @@ abstract class ZanoWalletBase extends WalletBase invokeMethod(String methodName, Object params) async { - var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); + var invokeResult = ApiCalls.asyncCall( + methodName: 'invoke', + hWallet: hWallet, + params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); var map = jsonDecode(invokeResult) as Map; int attempts = 0; if (map['job_id'] != null) { @@ -482,7 +517,9 @@ abstract class ZanoWalletBase extends WalletBase; - if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { + if (map['status'] != null && + map['status'] == _statusDelivered && + map['result'] != null) { return result; } } while (++attempts < _maxAttempts); @@ -493,14 +530,16 @@ abstract class ZanoWalletBase extends WalletBase); + final result = + GetWalletInfoResult.fromJson(jsonDecode(json) as Map); return result; } GetWalletStatusResult getWalletStatus() { final json = ApiCalls.getWalletStatus(hWallet: hWallet); print('wallet status $json'); // TODO: remove - final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + final status = GetWalletStatusResult.fromJson( + jsonDecode(json) as Map); return status; } } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 7fc528a26..c19578e1e 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -63,9 +63,9 @@ class ZanoWalletService extends WalletService; - if (map['result'] == null) throw CreateWalletException(''); + _checkForCreateWalletError(map); final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); await wallet.store(); @@ -103,9 +103,9 @@ class ZanoWalletService extends WalletService; - if (map['result'] == null) throw CreateWalletException(''); + _checkForCreateWalletError(map); final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); await wallet.store(); @@ -113,6 +113,19 @@ class ZanoWalletService extends WalletService map) { + if (map['error'] != null) { + final code = map['error']!['code'] ?? ''; + final message = map['error']!['message'] ?? ''; + throw CreateWalletException('Error creating/loading wallet $code $message'); + } + if (map['result'] == null) { + throw CreateWalletException('Error creating/loading wallet, empty response'); } } @@ -158,7 +171,7 @@ class ZanoWalletService extends WalletService restoreFromKeys(ZanoRestoreWalletFromKeysCredentials credentials) async { - throw UnimplementedError("Restore from keys not implemented"); + throw UnimplementedError('Restore from keys not implemented'); } @override From ce952294af8864718e983bc87743b100805b8731 Mon Sep 17 00:00:00 2001 From: leo Date: Sun, 10 Mar 2024 13:08:35 +0000 Subject: [PATCH 30/58] some fixes after merge --- lib/core/address_validator.dart | 2 +- lib/core/seed_validator.dart | 4 ++-- lib/di.dart | 3 --- lib/entities/default_settings_migration.dart | 12 ------------ lib/entities/provider_types.dart | 2 ++ .../advanced_privacy_settings_view_model.dart | 1 + 6 files changed, 6 insertions(+), 18 deletions(-) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 230f0b653..95849e7c9 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -11,7 +11,7 @@ class AddressValidator extends TextValidator { : super( errorMessage: S.current.error_text_address, useAdditionalValidation: type == CryptoCurrency.btc - ? bitcoin.Address.validateAddress + ? (String txt) => validateAddress(address: txt, network: BitcoinNetwork.mainnet) : type == CryptoCurrency.zano ? ZanoUtils.validateAddress : null, diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index ea6fe8f10..f7bfd1a96 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -31,8 +31,6 @@ class SeedValidator extends Validator { return monero!.getMoneroWordList(language); case WalletType.haven: return haven!.getMoneroWordList(language); - case WalletType.zano: - return zano!.getWordList(language); case WalletType.ethereum: return ethereum!.getEthereumWordList(language); case WalletType.bitcoinCash: @@ -44,6 +42,8 @@ class SeedValidator extends Validator { return polygon!.getPolygonWordList(language); case WalletType.solana: return solana!.getSolanaWordList(language); + case WalletType.zano: + return zano!.getWordList(language); default: return []; } diff --git a/lib/di.dart b/lib/di.dart index 605a45200..1116fd412 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -795,9 +795,6 @@ Future setup({ getIt.registerFactory(() => ConnectionSyncPage(getIt.get())); - getIt.registerFactory( - () => ConnectionSyncPage(getIt.get())); - getIt.registerFactory(() => SecurityBackupPage( getIt.get(), getIt.get())); diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 174412070..5965e44ec 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -388,18 +388,6 @@ Node? getZanoDefaultNode({required Box nodes}) { ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.zano); } -Node? getZanoDefaultNode({required Box nodes}) { - return nodes.values.firstWhereOrNull( - (Node node) => node.uriRaw == zanoDefaultNodeUri) - ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.zano); -} - -Node? getZanoDefaultNode({required Box nodes}) { - return nodes.values.firstWhereOrNull( - (Node node) => node.uriRaw == zanoDefaultNodeUri) - ?? nodes.values.firstWhereOrNull((node) => node.type == WalletType.zano); -} - Node getMoneroDefaultNode({required Box nodes}) { final timeZone = DateTime.now().timeZoneOffset.inHours; var nodeUri = ''; diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index f9c2f1a82..3222a381b 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -71,6 +71,7 @@ class ProvidersHelper { return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.none: case WalletType.haven: + case WalletType.zano: return []; } } @@ -102,6 +103,7 @@ class ProvidersHelper { case WalletType.banano: case WalletType.none: case WalletType.haven: + case WalletType.zano: return []; } } diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index b78d831a4..f24521614 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -43,6 +43,7 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { case WalletType.haven: case WalletType.nano: case WalletType.banano: + case WalletType.zano: return false; } } From 5699230ba1c869bf801e2581a91f6a7636834e5e Mon Sep 17 00:00:00 2001 From: leo Date: Thu, 14 Mar 2024 06:28:29 +0000 Subject: [PATCH 31/58] added multibalance/asset support for zano (ui) --- cw_core/lib/hive_type_ids.dart | 1 + cw_core/lib/wallet_type.dart | 4 +- cw_zano/lib/default_zano_assets.dart | 29 + cw_zano/lib/zano_asset.dart | 64 +++ cw_zano/lib/zano_wallet.dart | 521 ++++++++++-------- cw_zano/lib/zano_wallet_service.dart | 2 + .../screens/dashboard/edit_token_page.dart | 12 +- .../dashboard/balance_view_model.dart | 2 +- .../dashboard/home_settings_view_model.dart | 28 + lib/view_model/send/output.dart | 8 +- lib/zano/cw_zano.dart | 21 + lib/zano/zano.dart | 7 + 12 files changed, 447 insertions(+), 252 deletions(-) create mode 100644 cw_zano/lib/default_zano_assets.dart create mode 100644 cw_zano/lib/zano_asset.dart diff --git a/cw_core/lib/hive_type_ids.dart b/cw_core/lib/hive_type_ids.dart index 3fa2eb647..478068e77 100644 --- a/cw_core/lib/hive_type_ids.dart +++ b/cw_core/lib/hive_type_ids.dart @@ -15,3 +15,4 @@ const NANO_ACCOUNT_TYPE_ID = 13; const POW_NODE_TYPE_ID = 14; const DERIVATION_TYPE_TYPE_ID = 15; const SPL_TOKEN_TYPE_ID = 16; +const ZANO_ASSET_TYPE_ID = 17; diff --git a/cw_core/lib/wallet_type.dart b/cw_core/lib/wallet_type.dart index 507b93c0e..b93ab7788 100644 --- a/cw_core/lib/wallet_type.dart +++ b/cw_core/lib/wallet_type.dart @@ -184,8 +184,6 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.ltc; case WalletType.haven: return CryptoCurrency.xhv; - case WalletType.zano: - return CryptoCurrency.zano; case WalletType.ethereum: return CryptoCurrency.eth; case WalletType.bitcoinCash: @@ -198,6 +196,8 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.maticpoly; case WalletType.solana: return CryptoCurrency.sol; + case WalletType.zano: + return CryptoCurrency.zano; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); diff --git a/cw_zano/lib/default_zano_assets.dart b/cw_zano/lib/default_zano_assets.dart new file mode 100644 index 000000000..7dfe1ec64 --- /dev/null +++ b/cw_zano/lib/default_zano_assets.dart @@ -0,0 +1,29 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_zano/zano_asset.dart'; + +class DefaultZanoAssets { + final List _defaultAssets = [ + ZanoAsset( + assetId: 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a', + decimal: 12, + name: 'Zano', + symbol: 'ZANO', + ), + ZanoAsset( + assetId: '123', + decimal: 12, + name: 'Test Coin', + symbol: 'TC', + ), + ]; + + List get initialZanoAssets => _defaultAssets.map( + (token) { + String? iconPath; + if (CryptoCurrency.all.any((element) => element.title.toUpperCase() == token.symbol.toUpperCase())) { + iconPath = CryptoCurrency.all.singleWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase()).iconPath; + } + return ZanoAsset.copyWith(token, iconPath, 'ZANO'); + }, + ).toList(); +} diff --git a/cw_zano/lib/zano_asset.dart b/cw_zano/lib/zano_asset.dart new file mode 100644 index 000000000..6ea86a075 --- /dev/null +++ b/cw_zano/lib/zano_asset.dart @@ -0,0 +1,64 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/hive_type_ids.dart'; +import 'package:hive/hive.dart'; + +part 'zano_asset.g.dart'; + +@HiveType(typeId: ZanoAsset.typeId) +class ZanoAsset extends CryptoCurrency with HiveObjectMixin { + @HiveField(0) + final String name; + @HiveField(1) + final String symbol; + @HiveField(2) + final String assetId; + @HiveField(3) + final int decimal; + @HiveField(4, defaultValue: true) + bool _enabled; + @HiveField(5) + final String? iconPath; + @HiveField(6) + final String? tag; + + bool get enabled => _enabled; + + set enabled(bool value) => _enabled = value; + + ZanoAsset({ + required this.name, + required this.symbol, + required this.assetId, + required this.decimal, + bool enabled = true, + this.iconPath, + this.tag, + }) : _enabled = enabled, + super( + name: symbol.toLowerCase(), + title: symbol.toUpperCase(), + fullName: name, + tag: tag, + iconPath: iconPath, + decimals: decimal); + + ZanoAsset.copyWith(ZanoAsset other, String? icon, String? tag) + : this.name = other.name, + this.symbol = other.symbol, + this.assetId = other.assetId, + this.decimal = other.decimal, + this._enabled = other.enabled, + this.tag = tag, + this.iconPath = icon, + super( + name: other.name, + title: other.symbol.toUpperCase(), + fullName: other.name, + tag: tag, + iconPath: icon, + decimals: other.decimal, + ); + + static const typeId = ZANO_ASSET_TYPE_ID; + static const zanoAssetsBoxName = 'zanoAssets'; +} \ No newline at end of file diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 2baf1aa8b..a90e4b1f2 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -4,6 +4,7 @@ import 'dart:ffi'; import 'dart:io'; import 'dart:math'; +import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_wallet_utils.dart'; @@ -25,6 +26,7 @@ import 'package:cw_zano/api/model/zano_wallet_keys.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:cw_zano/exceptions/zano_transaction_creation_exception.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; +import 'package:cw_zano/zano_asset.dart'; import 'package:cw_zano/zano_balance.dart'; import 'package:cw_zano/zano_transaction_credentials.dart'; import 'package:cw_zano/zano_transaction_history.dart'; @@ -32,49 +34,30 @@ import 'package:cw_zano/zano_transaction_info.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; import 'package:ffi/ffi.dart'; import 'package:flutter/material.dart'; +import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; +import 'default_zano_assets.dart'; + part 'zano_wallet.g.dart'; const moneroBlockSize = 1000; -class ZanoWallet = ZanoWalletBase with _$ZanoWallet; - -typedef _load_wallet = Pointer Function( - Pointer, Pointer, Int8); -typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); - const int zanoMixin = 10; -abstract class ZanoWalletBase - extends WalletBase - with Store { - ZanoWalletBase(WalletInfo walletInfo) - : balance = ObservableMap.of( - {CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), - _isTransactionUpdating = false, - _hasSyncAfterStartup = false, - walletAddresses = ZanoWalletAddresses(walletInfo), - syncStatus = NotConnectedSyncStatus(), - super(walletInfo) { - transactionHistory = ZanoTransactionHistory(); - // _onAccountChangeReaction = - // reaction((_) => walletAddresses.account, (Account? account) { - // if (account == null) { - // return; - // } - // balance.addAll(getZanoBalance(accountIndex: account.id)); - // /**walletAddresses.updateSubaddressList(accountIndex: account.id);*/ - // }); - } +typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); +typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); - List history = []; - String defaultAsssetId = ''; +class ZanoWallet = ZanoWalletBase with _$ZanoWallet; +abstract class ZanoWalletBase extends WalletBase with Store { static const int _autoSaveInterval = 30; + static const _statusDelivered = 'delivered'; static const _maxAttempts = 10; + List history = []; + String defaultAsssetId = ''; @override ZanoWalletAddresses walletAddresses; @@ -90,44 +73,59 @@ abstract class ZanoWalletBase String seed = ''; @override - ZanoWalletKeys keys = ZanoWalletKeys( - privateSpendKey: '', - privateViewKey: '', - publicSpendKey: '', - publicViewKey: ''); + ZanoWalletKeys keys = ZanoWalletKeys(privateSpendKey: '', privateViewKey: '', publicSpendKey: '', publicViewKey: ''); + + late final Box zanoAssetsBox; + List get zanoAssets => zanoAssetsBox.values.toList(); //zano_wallet.SyncListener? _listener; // ReactionDisposer? _onAccountChangeReaction; Timer? _updateSyncInfoTimer; + int _cachedBlockchainHeight = 0; int _lastKnownBlockHeight = 0; int _initialSyncHeight = 0; bool _isTransactionUpdating; bool _hasSyncAfterStartup; Timer? _autoSaveTimer; - int _hWallet = 0; + ZanoWalletBase(WalletInfo walletInfo) + : balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: 0, unlocked: 0)}), + _isTransactionUpdating = false, + _hasSyncAfterStartup = false, + walletAddresses = ZanoWalletAddresses(walletInfo), + syncStatus = NotConnectedSyncStatus(), + super(walletInfo) { + transactionHistory = ZanoTransactionHistory(); + if (!CakeHive.isAdapterRegistered(ZanoAsset.typeId)) { + CakeHive.registerAdapter(ZanoAssetAdapter()); + } + // _onAccountChangeReaction = + // reaction((_) => walletAddresses.account, (Account? account) { + // if (account == null) { + // return; + // } + // balance.addAll(getZanoBalance(accountIndex: account.id)); + // /**walletAddresses.updateSubaddressList(accountIndex: account.id);*/ + // }); + } + int get hWallet => _hWallet; set hWallet(int value) { _hWallet = value; } - Future init(String address) async { - await walletAddresses.init(); - await walletAddresses.updateAddress(address); - - ///balance.addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); - //_setListeners(); - await updateTransactions(); - - _autoSaveTimer = Timer.periodic( - Duration(seconds: _autoSaveInterval), (_) async => await save()); + @override + int calculateEstimatedFee(TransactionPriority priority, [int? amount = null]) { + return ApiCalls.getCurrentTxFee(priority: priority.raw); } @override - Future? updateBalance() => null; + Future changePassword(String password) async { + ApiCalls.setPassword(hWallet: hWallet, password: password); + } @override void close() { @@ -159,72 +157,6 @@ abstract class ZanoWalletBase } } - void _updateSyncProgress(GetWalletStatusResult walletStatus) { - final syncHeight = walletStatus.currentWalletHeight; - if (_initialSyncHeight <= 0) { - _initialSyncHeight = syncHeight; - } - final bchHeight = walletStatus.currentDaemonHeight; - - if (_lastKnownBlockHeight == syncHeight) { - return; - } - - _lastKnownBlockHeight = syncHeight; - final track = bchHeight - _initialSyncHeight; - final diff = track - (bchHeight - syncHeight); - final ptc = diff <= 0 ? 0.0 : diff / track; - final left = bchHeight - syncHeight; - - if (syncHeight < 0 || left < 0) { - return; - } - - // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; - _onNewBlock.call(syncHeight, left, ptc); - } - - @override - Future startSync() async { - try { - syncStatus = AttemptingSyncStatus(); - _cachedBlockchainHeight = 0; - _lastKnownBlockHeight = 0; - _initialSyncHeight = 0; - _updateSyncInfoTimer ??= - Timer.periodic(Duration(milliseconds: 1200), (_) async { - /**if (isNewTransactionExist()) { - onNewTransaction?.call(); - }*/ - - final walletStatus = getWalletStatus(); - _updateSyncProgress(walletStatus); - // You can call getWalletInfo ONLY if getWalletStatus returns NOT is in long refresh and wallet state is 2 (ready) - if (!walletStatus.isInLongRefresh && walletStatus.walletState == 2) { - final walletInfo = getWalletInfo(); - seed = walletInfo.wiExtended.seed; - keys = ZanoWalletKeys( - privateSpendKey: walletInfo.wiExtended.spendPrivateKey, - privateViewKey: walletInfo.wiExtended.viewPrivateKey, - publicSpendKey: walletInfo.wiExtended.spendPublicKey, - publicViewKey: walletInfo.wiExtended.viewPublicKey, - ); - - final _balance = walletInfo.wi.balances.first; - defaultAsssetId = _balance.assetInfo.assetId; - balance = ObservableMap.of({ - CryptoCurrency.zano: - ZanoBalance(total: _balance.total, unlocked: _balance.unlocked) - }); - } - }); - } catch (e) { - syncStatus = FailedSyncStatus(); - print(e); - rethrow; - } - } - @override Future createTransaction(Object credentials) async { final creds = credentials as ZanoTransactionCredentials; @@ -234,12 +166,10 @@ abstract class ZanoWalletBase final fee = calculateEstimatedFee(creds.priority); late List destinations; if (hasMultiDestination) { - if (outputs.any((output) => - output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { + if (outputs.any((output) => output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { throw ZanoTransactionCreationException("You don't have enough coins."); } - final int totalAmount = outputs.fold( - 0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); + final int totalAmount = outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); if (totalAmount + fee > unlockedBalance) { throw ZanoTransactionCreationException( "You don't have enough coins (required: ${moneroAmountToString(amount: totalAmount + fee)}, unlocked ${moneroAmountToString(amount: unlockedBalance)})."); @@ -247,9 +177,7 @@ abstract class ZanoWalletBase destinations = outputs .map((output) => Destination( amount: output.formattedCryptoAmount ?? 0, - address: output.isParsedAddress - ? output.extractedAddress! - : output.address, + address: output.isParsedAddress ? output.extractedAddress! : output.address, assetId: defaultAsssetId, )) .toList(); @@ -268,16 +196,13 @@ abstract class ZanoWalletBase destinations = [ Destination( amount: amount, - address: output.isParsedAddress - ? output.extractedAddress! - : output.address, + address: output.isParsedAddress ? output.extractedAddress! : output.address, assetId: defaultAsssetId, ) ]; } destinations.forEach((destination) { - debugPrint( - 'destination ${destination.address} ${destination.amount} ${destination.assetId}'); + debugPrint('destination ${destination.address} ${destination.amount} ${destination.assetId}'); }); return PendingZanoTransaction( zanoWallet: this, @@ -288,34 +213,72 @@ abstract class ZanoWalletBase } @override - int calculateEstimatedFee(TransactionPriority priority, - [int? amount = null]) { - return ApiCalls.getCurrentTxFee(priority: priority.raw); - } - - @override - Future save() async { + Future> fetchTransactions() async { try { - await walletAddresses.updateAddressesInBox(); - await backupWalletFiles(name); - await store(); + await _refreshTransactions(); + return history.map((history) => ZanoTransactionInfo.fromHistory(history)).fold>( + {}, + (Map acc, ZanoTransactionInfo tx) { + acc[tx.id] = tx; + return acc; + }, + ); } catch (e) { - print('Error while saving Zano wallet file ${e.toString()}'); + print(e); + return {}; } } - Future store() async { - try { - final json = await invokeMethod('store', '{}'); - final map = jsonDecode(json) as Map; - if (map['result'] == null || map['result']['result'] == null) { - throw 'store empty response'; - } - final _ = - StoreResult.fromJson(map['result']['result'] as Map); - } catch (e) { - print(e.toString()); + GetWalletInfoResult getWalletInfo() { + final json = ApiCalls.getWalletInfo(hWallet); + print('wallet info $json'); // TODO: remove + final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); + return result; + } + + GetWalletStatusResult getWalletStatus() { + final json = ApiCalls.getWalletStatus(hWallet: hWallet); + print('wallet status $json'); // TODO: remove + final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + return status; + } + + Future init(String address) async { + _initZanoAssetsBox(); + await walletAddresses.init(); + await walletAddresses.updateAddress(address); + + ///balance.addAll(getZanoBalance(/**accountIndex: walletAddresses.account?.id ?? 0*/)); + //_setListeners(); + await updateTransactions(); + + _autoSaveTimer = Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); + } + + Future invokeMethod(String methodName, Object params) async { + var invokeResult = + ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); + var map = jsonDecode(invokeResult) as Map; + int attempts = 0; + if (map['job_id'] != null) { + final jobId = map['job_id'] as int; + do { + await Future.delayed(Duration(milliseconds: attempts < 2 ? 100 : 500)); + final result = ApiCalls.tryPullResult(jobId); + map = jsonDecode(result) as Map; + if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { + return result; + } + } while (++attempts < _maxAttempts); } + return invokeResult; + } + + String loadWallet(String path, String password) { + print('load_wallet path $path password $password'); + final result = ApiCalls.loadWallet(path: path, password: password); + print('load_wallet result $result'); + return result; } @override @@ -342,16 +305,6 @@ abstract class ZanoWalletBase await Directory(currentWalletPath).delete(recursive: true); } - @override - Future changePassword(String password) async { - ApiCalls.setPassword(hWallet: hWallet, password: password); - } - - Future setAsRecovered() async { - walletInfo.isRecovery = false; - await walletInfo.save(); - } - @override Future rescan({required int height}) async { walletInfo.restoreHeight = height; @@ -366,67 +319,81 @@ abstract class ZanoWalletBase await walletInfo.save(); } - Future _refreshTransactions() async { + @override + Future save() async { try { - final result = await invokeMethod('get_recent_txs_and_info', - GetRecentTxsAndInfoParams(offset: 0, count: 30)); - final map = jsonDecode(result) as Map?; - if (map == null) { - print('get_recent_txs_and_info empty response'); - return; - } + await walletAddresses.updateAddressesInBox(); + await backupWalletFiles(name); + await store(); + } catch (e) { + print('Error while saving Zano wallet file ${e.toString()}'); + } + } - final resultData = map['result']; - if (resultData == null) { - print('get_recent_txs_and_info empty response'); - return; - } + Future setAsRecovered() async { + walletInfo.isRecovery = false; + await walletInfo.save(); + } - if (resultData['error'] != null) { - print('get_recent_txs_and_info error ${resultData['error']}'); - return; - } + @override + Future startSync() async { + try { + syncStatus = AttemptingSyncStatus(); + _cachedBlockchainHeight = 0; + _lastKnownBlockHeight = 0; + _initialSyncHeight = 0; + _updateSyncInfoTimer ??= Timer.periodic(Duration(milliseconds: 1200), (_) async { + /*if (isNewTransactionExist()) { + onNewTransaction?.call(); + }*/ - final transfers = resultData['result']?['transfers'] as List?; - if (transfers == null) { - print('get_recent_txs_and_info empty transfers'); - return; - } + final walletStatus = getWalletStatus(); + _updateSyncProgress(walletStatus); + // You can call getWalletInfo ONLY if getWalletStatus returns NOT is in long refresh and wallet state is 2 (ready) + if (!walletStatus.isInLongRefresh && walletStatus.walletState == 2) { + final walletInfo = getWalletInfo(); + seed = walletInfo.wiExtended.seed; + keys = ZanoWalletKeys( + privateSpendKey: walletInfo.wiExtended.spendPrivateKey, + privateViewKey: walletInfo.wiExtended.viewPrivateKey, + publicSpendKey: walletInfo.wiExtended.spendPublicKey, + publicViewKey: walletInfo.wiExtended.viewPublicKey, + ); - history = transfers - .map((e) => History.fromJson(e as Map)) - .toList(); + final _balance = walletInfo.wi.balances.first; + defaultAsssetId = _balance.assetInfo.assetId; + balance[CryptoCurrency.zano] = ZanoBalance(total: _balance.total, unlocked: _balance.unlocked); + //balance = ObservableMap.of({CryptoCurrency.zano: ZanoBalance(total: _balance.total, unlocked: _balance.unlocked)}); + } + }); + } catch (e) { + syncStatus = FailedSyncStatus(); + print(e); + rethrow; + } + } + + Future store() async { + try { + final json = await invokeMethod('store', '{}'); + final map = jsonDecode(json) as Map; + if (map['result'] == null || map['result']['result'] == null) { + throw 'store empty response'; + } + final _ = StoreResult.fromJson(map['result']['result'] as Map); } catch (e) { print(e.toString()); } } @override - Future> fetchTransactions() async { - try { - await _refreshTransactions(); - return history - .map( - (history) => ZanoTransactionInfo.fromHistory(history)) - .fold>( - {}, - (Map acc, ZanoTransactionInfo tx) { - acc[tx.id] = tx; - return acc; - }, - ); - } catch (e) { - print(e); - return {}; - } - } + Future? updateBalance() => null; Future updateTransactions() async { try { if (_isTransactionUpdating) { return; } - _isTransactionUpdating = true; final transactions = await fetchTransactions(); transactionHistory.addMany(transactions); @@ -438,6 +405,65 @@ abstract class ZanoWalletBase } } + Future _initZanoAssetsBox() async { + final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${ZanoAsset.zanoAssetsBoxName}"; + if (await CakeHive.boxExists(boxName)) { + zanoAssetsBox = await CakeHive.openBox(boxName); + } else { + zanoAssetsBox = await CakeHive.openBox(boxName.replaceAll(" ", "")); + } + } + + void addInitialAssets() { + final initialZanoAssets = DefaultZanoAssets().initialZanoAssets; + + for (var token in initialZanoAssets) { + zanoAssetsBox.put(token.assetId, token); + } + } + + ZanoAsset createNewZanoAssetObject(ZanoAsset asset, String? iconPath) { + return ZanoAsset( + name: asset.name, + symbol: asset.symbol, + assetId: asset.assetId, + decimal: asset.decimal, + enabled: asset.enabled, + tag: asset.tag ?? "ZANO", + iconPath: iconPath, + ); + } + + Future addZanoAsset(ZanoAsset asset) async { + String? iconPath; + try { + iconPath = CryptoCurrency.all + .firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()) + .iconPath; + } catch (_) {} + + final newAsset = createNewZanoAssetObject(asset, iconPath); + + await zanoAssetsBox.put(newAsset.assetId, newAsset); + + if (asset.enabled) { + balance[asset] = ZanoBalance(total: 0, unlocked: 0); + } else { + balance.remove(asset); + } + } + + Future deleteZanoAsset(ZanoAsset token) async { + await token.delete(); + + balance.remove(token); + //_updateBalance(); + } + + Future getZanoAsset(String assetId) async { + return ZanoAsset(assetId: assetId, decimal: 12, name: 'Not implemented', symbol: 'NI'); + } + // List _getAllTransactions(dynamic _) => // zano_transaction_history // .getAllTransations() @@ -450,12 +476,10 @@ abstract class ZanoWalletBase // } void _askForUpdateBalance() { - debugPrint( - 'askForUpdateBalance'); // TODO: remove, also remove this method completely + debugPrint('askForUpdateBalance'); // TODO: remove, also remove this method completely } - Future _askForUpdateTransactionHistory() async => - await updateTransactions(); + Future _askForUpdateTransactionHistory() async => await updateTransactions(); void _onNewBlock(int height, int blocksLeft, double ptc) async { try { @@ -497,49 +521,60 @@ abstract class ZanoWalletBase } } - String loadWallet(String path, String password) { - print('load_wallet path $path password $password'); - final result = ApiCalls.loadWallet(path: path, password: password); - print('load_wallet result $result'); - return result; - } + Future _refreshTransactions() async { + try { + final result = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + final map = jsonDecode(result) as Map?; + if (map == null) { + print('get_recent_txs_and_info empty response'); + return; + } - Future invokeMethod(String methodName, Object params) async { - var invokeResult = ApiCalls.asyncCall( - methodName: 'invoke', - hWallet: hWallet, - params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); - var map = jsonDecode(invokeResult) as Map; - int attempts = 0; - if (map['job_id'] != null) { - final jobId = map['job_id'] as int; - do { - await Future.delayed(Duration(milliseconds: attempts < 2 ? 100 : 500)); - final result = ApiCalls.tryPullResult(jobId); - map = jsonDecode(result) as Map; - if (map['status'] != null && - map['status'] == _statusDelivered && - map['result'] != null) { - return result; - } - } while (++attempts < _maxAttempts); + final resultData = map['result']; + if (resultData == null) { + print('get_recent_txs_and_info empty response'); + return; + } + + if (resultData['error'] != null) { + print('get_recent_txs_and_info error ${resultData['error']}'); + return; + } + + final transfers = resultData['result']?['transfers'] as List?; + if (transfers == null) { + print('get_recent_txs_and_info empty transfers'); + return; + } + + history = transfers.map((e) => History.fromJson(e as Map)).toList(); + } catch (e) { + print(e.toString()); } - return invokeResult; } - GetWalletInfoResult getWalletInfo() { - final json = ApiCalls.getWalletInfo(hWallet); - print('wallet info $json'); // TODO: remove - final result = - GetWalletInfoResult.fromJson(jsonDecode(json) as Map); - return result; - } + void _updateSyncProgress(GetWalletStatusResult walletStatus) { + final syncHeight = walletStatus.currentWalletHeight; + if (_initialSyncHeight <= 0) { + _initialSyncHeight = syncHeight; + } + final bchHeight = walletStatus.currentDaemonHeight; - GetWalletStatusResult getWalletStatus() { - final json = ApiCalls.getWalletStatus(hWallet: hWallet); - print('wallet status $json'); // TODO: remove - final status = GetWalletStatusResult.fromJson( - jsonDecode(json) as Map); - return status; + if (_lastKnownBlockHeight == syncHeight) { + return; + } + + _lastKnownBlockHeight = syncHeight; + final track = bchHeight - _initialSyncHeight; + final diff = track - (bchHeight - syncHeight); + final ptc = diff <= 0 ? 0.0 : diff / track; + final left = bchHeight - syncHeight; + + if (syncHeight < 0 || left < 0) { + return; + } + + // 1. Actual new height; 2. Blocks left to finish; 3. Progress in percents; + _onNewBlock.call(syncHeight, left, ptc); } } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index b3fe00751..12dc16407 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -71,6 +71,7 @@ class ZanoWalletService extends WalletService { onPressed: () async { if (_formKey.currentState!.validate() && (!_showDisclaimer || _disclaimerChecked)) { - await widget.homeSettingsViewModel.addToken(Erc20Token( + // TODO: fix it!!! + await widget.homeSettingsViewModel.addToken(ZanoAsset( name: _tokenNameController.text, symbol: _tokenSymbolController.text, - contractAddress: _contractAddressController.text, + assetId: _contractAddressController.text, decimal: int.parse(_tokenDecimalController.text), )); + // await widget.homeSettingsViewModel.addToken(Erc20Token( + // name: _tokenNameController.text, + // symbol: _tokenSymbolController.text, + // contractAddress: _contractAddressController.text, + // decimal: int.parse(_tokenDecimalController.text), + // )); if (context.mounted) { Navigator.pop(context); } diff --git a/lib/view_model/dashboard/balance_view_model.dart b/lib/view_model/dashboard/balance_view_model.dart index eee53516e..e22e41ca7 100644 --- a/lib/view_model/dashboard/balance_view_model.dart +++ b/lib/view_model/dashboard/balance_view_model.dart @@ -80,7 +80,7 @@ abstract class BalanceViewModelBase with Store { @computed bool get isHomeScreenSettingsEnabled => - isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana; + isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana || wallet.type == WalletType.zano; @computed bool get hasAccounts => wallet.type == WalletType.monero; diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index 6d31a5af8..e880dd703 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/wallet_type.dart'; @@ -57,6 +58,10 @@ abstract class HomeSettingsViewModelBase with Store { await solana!.addSPLToken(_balanceViewModel.wallet, token); } + if (_balanceViewModel.wallet.type == WalletType.zano) { + await zano!.addZanoAsset(_balanceViewModel.wallet, token); + } + _updateTokensList(); _updateFiatPrices(token); } @@ -74,6 +79,10 @@ abstract class HomeSettingsViewModelBase with Store { await solana!.deleteSPLToken(_balanceViewModel.wallet, token); } + if (_balanceViewModel.wallet.type == WalletType.zano) { + await zano!.deleteZanoAsset(_balanceViewModel.wallet, token); + } + _updateTokensList(); } @@ -90,6 +99,10 @@ abstract class HomeSettingsViewModelBase with Store { return await solana!.getSPLToken(_balanceViewModel.wallet, contractAddress); } + if (_balanceViewModel.wallet.type == WalletType.zano) { + return await zano!.getZanoAsset(_balanceViewModel.wallet, contractAddress); + } + return null; } @@ -120,6 +133,10 @@ abstract class HomeSettingsViewModelBase with Store { solana!.addSPLToken(_balanceViewModel.wallet, token); } + if (_balanceViewModel.wallet.type == WalletType.zano) { + await zano!.addZanoAsset(_balanceViewModel.wallet, token); + } + _refreshTokensList(); } @@ -166,6 +183,13 @@ abstract class HomeSettingsViewModelBase with Store { .toList() ..sort(_sortFunc)); } + + if (_balanceViewModel.wallet.type == WalletType.zano) { + tokens.addAll(zano!.getZanoAssets(_balanceViewModel.wallet) + .where((element) => _matchesSearchText(element)) + .toList() + ..sort(_sortFunc)); + } } @action @@ -206,6 +230,10 @@ abstract class HomeSettingsViewModelBase with Store { return polygon!.getTokenAddress(asset); } + if (_balanceViewModel.wallet.type == WalletType.zano) { + return zano!.getZanoAssetAddress(asset); + } + // We return null if it's neither Polygin, Ethereum or Solana wallet (which is actually impossible because we only display home settings for either of these three wallets). return null; } diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index e287125f2..3966ca31a 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -135,10 +135,6 @@ abstract class OutputBase with Store { return haven!.formatterMoneroAmountToDouble(amount: fee); } - if (_wallet.type == WalletType.zano) { - return zano!.formatterMoneroAmountToDouble(amount: fee); - } - if (_wallet.type == WalletType.ethereum) { return ethereum!.formatterEthereumAmountToDouble(amount: BigInt.from(fee)); } @@ -146,6 +142,10 @@ abstract class OutputBase with Store { if (_wallet.type == WalletType.polygon) { return polygon!.formatterPolygonAmountToDouble(amount: BigInt.from(fee)); } + + if (_wallet.type == WalletType.zano) { + return zano!.formatterMoneroAmountToDouble(amount: fee); + } } catch (e) { print(e.toString()); } diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 058326771..5ceaa41bc 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -79,6 +79,25 @@ class CWZano extends Zano { return CWZanoAccountList(wallet); }*/ + List getZanoAssets(WalletBase wallet) { + final zanoWallet = wallet as ZanoWallet; + return zanoWallet.zanoAssets; + } + + @override + Future addZanoAsset(WalletBase wallet, CryptoCurrency token) async => + await (wallet as ZanoWallet).addZanoAsset(token as ZanoAsset); + + @override + Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token) async => + await (wallet as ZanoWallet).deleteZanoAsset(token as ZanoAsset); + + @override + Future getZanoAsset(WalletBase wallet, String mintAddress) async { + final zanoWallet = wallet as ZanoWallet; + return await zanoWallet.getZanoAsset(mintAddress); + } + @override TransactionHistoryBase getTransactionHistory(Object wallet) { final zanoWallet = wallet as ZanoWallet; @@ -214,6 +233,8 @@ class CWZano extends Zano { return asset; } + String getZanoAssetAddress(CryptoCurrency asset) => (asset as ZanoAsset).assetId; + // @override // List getAssetRate() => // getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index 05a4cf000..634d63a88 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -1,4 +1,6 @@ import 'package:cake_wallet/utils/language_list.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_zano/zano_asset.dart'; import 'package:cw_zano/zano_transaction_credentials.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; @@ -118,6 +120,11 @@ abstract class Zano { int getTransactionInfoAccountId(TransactionInfo tx); WalletService createZanoWalletService(Box walletInfoSource); CryptoCurrency assetOfTransaction(TransactionInfo tx); + List getZanoAssets(WalletBase wallet); + String getZanoAssetAddress(CryptoCurrency asset); + Future addZanoAsset(WalletBase wallet, CryptoCurrency token); + Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); + Future getZanoAsset(WalletBase wallet, String contractAddress); // List getAssetRate(); } From b2b6578972d664ac7b80c1049ae95946b740c5b8 Mon Sep 17 00:00:00 2001 From: leo Date: Fri, 15 Mar 2024 12:42:27 +0000 Subject: [PATCH 32/58] adding/removing from whitelist --- cw_core/lib/crypto_currency.dart | 2 + cw_monero/ios/Classes/monero_api.cpp | 4 +- .../add_remove_assets_whitelist_params.dart | 9 + cw_zano/lib/api/model/asset_descriptor.dart | 38 +++ cw_zano/lib/api/model/asset_info.dart | 64 ++--- cw_zano/lib/api/model/balance.dart | 10 +- cw_zano/lib/default_zano_assets.dart | 30 +- cw_zano/lib/pending_zano_transaction.dart | 3 +- cw_zano/lib/zano_asset.dart | 82 ++++-- cw_zano/lib/zano_wallet.dart | 267 +++++++----------- cw_zano/lib/zano_wallet_api.dart | 186 ++++++++++++ cw_zano/lib/zano_wallet_service.dart | 25 +- .../screens/dashboard/edit_token_page.dart | 143 +++++----- .../dashboard/home_settings_view_model.dart | 16 ++ lib/view_model/wallet_restore_view_model.dart | 4 +- lib/zano/cw_zano.dart | 14 +- lib/zano/zano.dart | 8 +- 17 files changed, 573 insertions(+), 332 deletions(-) create mode 100644 cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart create mode 100644 cw_zano/lib/api/model/asset_descriptor.dart create mode 100644 cw_zano/lib/zano_wallet_api.dart diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 9d27aa5d5..707a1a2d8 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -104,6 +104,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.digibyte, CryptoCurrency.usdtSol, CryptoCurrency.zano, + CryptoCurrency.ctZano, ]; static const havenCurrencies = [ @@ -219,6 +220,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const digibyte = CryptoCurrency(title: 'DGB', fullName: 'DigiByte', raw: 90, name: 'dgb', iconPath: 'assets/images/digibyte.png', decimals: 8); static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 91, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 92, name: 'zano', iconPath: 'assets/images/zano_icon.png', decimals: 12); + static const ctZano = CryptoCurrency(title: 'CT', tag: 'ZANO', fullName: 'Confidential token', raw: 93, name: 'ctzano', iconPath: 'assets/images/zano_icon.png', decimals: 12); static final Map _rawCurrencyMap = diff --git a/cw_monero/ios/Classes/monero_api.cpp b/cw_monero/ios/Classes/monero_api.cpp index 87be785ac..f55163b3b 100644 --- a/cw_monero/ios/Classes/monero_api.cpp +++ b/cw_monero/ios/Classes/monero_api.cpp @@ -376,7 +376,7 @@ extern "C" bool restore_wallet_from_spend_key(char *path, char *password, char *seed, char *language, char *spendKey, int32_t networkType, uint64_t restoreHeight, char *error) { - Monero::NetworkType _networkType = static_cast(networkType); + /*Monero::NetworkType _networkType = static_cast(networkType); Monero::Wallet *wallet = Monero::WalletManagerFactory::getWalletManager()->createDeterministicWalletFromSpendKey( std::string(path), std::string(password), @@ -399,7 +399,7 @@ extern "C" return false; } - change_current_wallet(wallet); + change_current_wallet(wallet);*/ return true; } diff --git a/cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart b/cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart new file mode 100644 index 000000000..4737427d7 --- /dev/null +++ b/cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart @@ -0,0 +1,9 @@ +class AddRemoveAssetsWhitelistParams { + final String assetId; + + AddRemoveAssetsWhitelistParams({required this.assetId}); + + Map toJson() => { + 'asset_id': assetId, + }; +} \ No newline at end of file diff --git a/cw_zano/lib/api/model/asset_descriptor.dart b/cw_zano/lib/api/model/asset_descriptor.dart new file mode 100644 index 000000000..6f4ec5e6b --- /dev/null +++ b/cw_zano/lib/api/model/asset_descriptor.dart @@ -0,0 +1,38 @@ +// class AssetDescriptor { +// static const defaultDecimalPoint = 12; +// final String assetId; +// final int currentSupply; +// final int decimalPoint; +// final String fullName; +// final bool hiddenSupply; +// final String metaInfo; +// final String owner; +// final String ticker; +// final int totalMaxSupply; + +// AssetDescriptor({ +// required this.assetId, +// required this.currentSupply, +// required this.decimalPoint, +// required this.fullName, +// required this.hiddenSupply, +// required this.metaInfo, +// required this.owner, +// required this.ticker, +// required this.totalMaxSupply, +// }); + +// factory AssetDescriptor.fromJson(Map json) => +// AssetDescriptor( +// assetId: json['asset_id'] as String? ?? '', +// currentSupply: json['current_supply'] as int? ?? 0, +// decimalPoint: json['decimal_point'] as int? ?? defaultDecimalPoint, +// fullName: json['full_name'] as String? ?? '', +// hiddenSupply: json['hidden_supply'] as bool? ?? false, +// metaInfo: json['meta_info'] as String? ?? '', +// owner: json['owner'] as String? ?? '', +// ticker: json['ticker'] as String? ?? '', +// totalMaxSupply: json['total_max_supply'] as int? ?? 0, +// ); + +// } diff --git a/cw_zano/lib/api/model/asset_info.dart b/cw_zano/lib/api/model/asset_info.dart index ddf1a1d2d..85dc23b6d 100644 --- a/cw_zano/lib/api/model/asset_info.dart +++ b/cw_zano/lib/api/model/asset_info.dart @@ -1,34 +1,34 @@ -class AssetInfo { - final String assetId; - final int currentSupply; - final int decimalPoint; - final String fullName; - final bool hiddenSupply; - final String metaInfo; - final String owner; - final String ticker; - final int totalMaxSupply; +// class AssetInfo { +// final String assetId; +// final int currentSupply; +// final int decimalPoint; +// final String fullName; +// final bool hiddenSupply; +// final String metaInfo; +// final String owner; +// final String ticker; +// final int totalMaxSupply; - AssetInfo( - {required this.assetId, - required this.currentSupply, - required this.decimalPoint, - required this.fullName, - required this.hiddenSupply, - required this.metaInfo, - required this.owner, - required this.ticker, - required this.totalMaxSupply}); +// AssetInfo( +// {required this.assetId, +// required this.currentSupply, +// required this.decimalPoint, +// required this.fullName, +// required this.hiddenSupply, +// required this.metaInfo, +// required this.owner, +// required this.ticker, +// required this.totalMaxSupply}); - factory AssetInfo.fromJson(Map json) => AssetInfo( - assetId: json['asset_id'] as String? ?? '', - currentSupply: json['current_supply'] as int? ?? 0, - decimalPoint: json['decimal_point'] as int? ?? 0, - fullName: json['full_name'] as String? ?? '', - hiddenSupply: json['hidden_supply'] as bool, - metaInfo: json['meta_info'] as String? ?? '', - owner: json['owner'] as String? ?? '', - ticker: json['ticker'] as String? ?? '', - totalMaxSupply: json['total_max_supply'] as int? ?? 0, - ); -} +// factory AssetInfo.fromJson(Map json) => AssetInfo( +// assetId: json['asset_id'] as String? ?? '', +// currentSupply: json['current_supply'] as int? ?? 0, +// decimalPoint: json['decimal_point'] as int? ?? 0, +// fullName: json['full_name'] as String? ?? '', +// hiddenSupply: json['hidden_supply'] as bool, +// metaInfo: json['meta_info'] as String? ?? '', +// owner: json['owner'] as String? ?? '', +// ticker: json['ticker'] as String? ?? '', +// totalMaxSupply: json['total_max_supply'] as int? ?? 0, +// ); +// } diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index a46922a9b..0fa6b6460 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -1,7 +1,10 @@ +import 'package:cw_core/amount_converter.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_zano/api/model/asset_info.dart'; +import 'package:cw_zano/zano_asset.dart'; class Balance { - final AssetInfo assetInfo; + final ZanoAsset assetInfo; final int awaitingIn; final int awaitingOut; final int total; @@ -14,9 +17,12 @@ class Balance { required this.total, required this.unlocked}); + @override + String toString() => '$assetInfo: ${AmountConverter.amountIntToString(CryptoCurrency.zano, total)}/${AmountConverter.amountIntToString(CryptoCurrency.zano, unlocked)}'; + factory Balance.fromJson(Map json) => Balance( assetInfo: - AssetInfo.fromJson(json['asset_info'] as Map? ?? {}), + ZanoAsset.fromJson(json['asset_info'] as Map? ?? {}), awaitingIn: json['awaiting_in'] as int? ?? 0, awaitingOut: json['awaiting_out'] as int? ?? 0, total: json['total'] as int? ?? 0, diff --git a/cw_zano/lib/default_zano_assets.dart b/cw_zano/lib/default_zano_assets.dart index 7dfe1ec64..88c106d16 100644 --- a/cw_zano/lib/default_zano_assets.dart +++ b/cw_zano/lib/default_zano_assets.dart @@ -4,26 +4,30 @@ import 'package:cw_zano/zano_asset.dart'; class DefaultZanoAssets { final List _defaultAssets = [ ZanoAsset( - assetId: 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a', - decimal: 12, - name: 'Zano', - symbol: 'ZANO', + decimalPoint: 12, + fullName: 'Confidential token', + assetId: 'cc4e69455e63f4a581257382191de6856c2156630b3fba0db4bdd73ffcfb36b6', + owner: '32911fabcf90b9731a152d2a3a75fcbb0a46c78e2f502678bae44c3d6823b4ce', + ticker: 'CT', + enabled: false, ), ZanoAsset( - assetId: '123', - decimal: 12, - name: 'Test Coin', - symbol: 'TC', + decimalPoint: 12, + fullName: '새로운경제', + assetId: 'bb9590162509f956ff79851fb1bc0ced6646f5d5ba7eae847a9f21c92c39437c', + owner: '32911fabcf90b9731a152d2a3a75fcbb0a46c78e2f502678bae44c3d6823b4ce', + ticker: '새로운경제', + enabled: false, ), ]; List get initialZanoAssets => _defaultAssets.map( - (token) { + (asset) { String? iconPath; - if (CryptoCurrency.all.any((element) => element.title.toUpperCase() == token.symbol.toUpperCase())) { - iconPath = CryptoCurrency.all.singleWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase()).iconPath; - } - return ZanoAsset.copyWith(token, iconPath, 'ZANO'); + try { + iconPath = CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()).iconPath; + } catch (_) {} + return ZanoAsset.copyWith(asset, iconPath, 'ZANO'); }, ).toList(); } diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index 652194014..fc08b1840 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:cw_zano/api/exceptions/transfer_exception.dart'; import 'package:cw_zano/api/model/destination.dart'; +import 'package:cw_zano/api/model/history.dart'; import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/model/transfer_result.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -41,7 +42,7 @@ class PendingZanoTransaction with PendingTransaction { final params = TransferParams( destinations: destinations, fee: fee, - mixin: zanoMixin, + mixin: zanoMixinValue, paymentId: '', comment: comment, pushPayer: false, diff --git a/cw_zano/lib/zano_asset.dart b/cw_zano/lib/zano_asset.dart index 6ea86a075..376bd78eb 100644 --- a/cw_zano/lib/zano_asset.dart +++ b/cw_zano/lib/zano_asset.dart @@ -7,58 +7,96 @@ part 'zano_asset.g.dart'; @HiveType(typeId: ZanoAsset.typeId) class ZanoAsset extends CryptoCurrency with HiveObjectMixin { @HiveField(0) - final String name; + final String fullName; @HiveField(1) - final String symbol; + final String ticker; @HiveField(2) final String assetId; @HiveField(3) - final int decimal; + final int decimalPoint; @HiveField(4, defaultValue: true) bool _enabled; @HiveField(5) final String? iconPath; @HiveField(6) final String? tag; + @HiveField(7) + final String owner; + @HiveField(8) + final String metaInfo; + @HiveField(9) + final int currentSupply; + @HiveField(10) + final bool hiddenSupply; + @HiveField(11) + final int totalMaxSupply; bool get enabled => _enabled; set enabled(bool value) => _enabled = value; ZanoAsset({ - required this.name, - required this.symbol, + this.fullName = '', + this.ticker = '', required this.assetId, - required this.decimal, + this.decimalPoint = defaultDecimalPoint, bool enabled = true, this.iconPath, this.tag, + this.owner = defaultOwner, + this.metaInfo = '', + this.currentSupply = 0, + this.hiddenSupply = false, + this.totalMaxSupply = 0, }) : _enabled = enabled, super( - name: symbol.toLowerCase(), - title: symbol.toUpperCase(), - fullName: name, - tag: tag, - iconPath: iconPath, - decimals: decimal); + name: fullName, + title: ticker.toUpperCase(), + fullName: fullName, + tag: tag, + iconPath: iconPath, + decimals: decimalPoint, + ); - ZanoAsset.copyWith(ZanoAsset other, String? icon, String? tag) - : this.name = other.name, - this.symbol = other.symbol, - this.assetId = other.assetId, - this.decimal = other.decimal, - this._enabled = other.enabled, + ZanoAsset.copyWith(ZanoAsset other, String? icon, String? tag, {String? assetId, bool enabled = false}) + : this.fullName = other.fullName, + this.ticker = other.ticker, + this.assetId = assetId ?? other.assetId, + this.decimalPoint = other.decimalPoint, + this._enabled = enabled || other.enabled, this.tag = tag, this.iconPath = icon, + this.currentSupply = other.currentSupply, + this.hiddenSupply = other.hiddenSupply, + this.metaInfo = other.metaInfo, + this.owner = other.owner, + this.totalMaxSupply = other.totalMaxSupply, super( name: other.name, - title: other.symbol.toUpperCase(), + title: other.ticker.toUpperCase(), fullName: other.name, tag: tag, iconPath: icon, - decimals: other.decimal, + decimals: other.decimalPoint, ); + factory ZanoAsset.fromJson(Map json) => ZanoAsset( + assetId: json['asset_id'] as String? ?? '', + currentSupply: json['current_supply'] as int? ?? 0, + decimalPoint: json['decimal_point'] as int? ?? defaultDecimalPoint, + fullName: json['full_name'] as String? ?? '', + hiddenSupply: json['hidden_supply'] as bool? ?? false, + metaInfo: json['meta_info'] as String? ?? '', + owner: json['owner'] as String? ?? '', + ticker: json['ticker'] as String? ?? '', + totalMaxSupply: json['total_max_supply'] as int? ?? 0, + ); + + @override + String toString() => '$ticker (${assetId.substring(0, 4)}...${assetId.substring(assetId.length - 4)})'; + static const typeId = ZANO_ASSET_TYPE_ID; - static const zanoAssetsBoxName = 'zanoAssets'; -} \ No newline at end of file + static const zanoAssetsBoxName = 'zanoAssetsBox'; + static const defaultDecimalPoint = 12; + static const defaultOwner = '0000000000000000000000000000000000000000000000000000000000000000'; +} diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index a90e4b1f2..4ee2e3b1a 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -1,8 +1,5 @@ import 'dart:async'; -import 'dart:convert'; -import 'dart:ffi'; import 'dart:io'; -import 'dart:math'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -17,13 +14,9 @@ import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/destination.dart'; -import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; -import 'package:cw_zano/api/model/get_wallet_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/history.dart'; -import 'package:cw_zano/api/model/store_result.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; -import 'package:cw_zano/api/zano_api.dart'; import 'package:cw_zano/exceptions/zano_transaction_creation_exception.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; import 'package:cw_zano/zano_asset.dart'; @@ -32,7 +25,7 @@ import 'package:cw_zano/zano_transaction_credentials.dart'; import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/zano_transaction_info.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; -import 'package:ffi/ffi.dart'; +import 'package:cw_zano/zano_wallet_api.dart'; import 'package:flutter/material.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; @@ -41,23 +34,15 @@ import 'default_zano_assets.dart'; part 'zano_wallet.g.dart'; -const moneroBlockSize = 1000; - -const int zanoMixin = 10; - -typedef _load_wallet = Pointer Function(Pointer, Pointer, Int8); -typedef _LoadWallet = Pointer Function(Pointer, Pointer, int); +const int zanoMixinValue = 10; class ZanoWallet = ZanoWalletBase with _$ZanoWallet; -abstract class ZanoWalletBase extends WalletBase with Store { +abstract class ZanoWalletBase extends WalletBase with Store, ZanoWalletApi { static const int _autoSaveInterval = 30; - static const _statusDelivered = 'delivered'; - static const _maxAttempts = 10; - List history = []; - String defaultAsssetId = ''; + //String defaultAsssetId = ''; @override ZanoWalletAddresses walletAddresses; @@ -88,7 +73,6 @@ abstract class ZanoWalletBase extends WalletBase _hWallet; - - set hWallet(int value) { - _hWallet = value; - } - @override - int calculateEstimatedFee(TransactionPriority priority, [int? amount = null]) { - return ApiCalls.getCurrentTxFee(priority: priority.raw); - } + int calculateEstimatedFee(TransactionPriority priority, [int? amount = null]) => getCurrentTxFee(priority); @override Future changePassword(String password) async { - ApiCalls.setPassword(hWallet: hWallet, password: password); + setPassword(password); } @override void close() { - ApiCalls.closeWallet(hWallet: hWallet); + closeWallet(); _updateSyncInfoTimer?.cancel(); //_listener?.stop(); // _onAccountChangeReaction?.reaction.dispose(); @@ -138,23 +114,16 @@ abstract class ZanoWalletBase extends WalletBase connectToNode({required Node node}) async { - try { - syncStatus = ConnectingSyncStatus(); - await ApiCalls.setupNode( - address: '195.201.107.230:33336', // node.uriRaw, - login: '', // node.login, - password: '', // node.password, - useSSL: false, // node.useSSL ?? false, - isLightWallet: false, // FIXME: hardcoded value - /*socksProxyAddress: node.socksProxyAddress*/ - ); - - //zano_wallet.setTrustedDaemon(node.trusted); - syncStatus = ConnectedSyncStatus(); - } catch (e) { - syncStatus = FailedSyncStatus(); - print(e); - } + syncStatus = ConnectingSyncStatus(); + await setupNode(); + syncStatus = ConnectedSyncStatus(); + // if (await setupNode() == false) { + // syncStatus = FailedSyncStatus(); + // // TODO: what's going on? + // //throw 'error connecting to zano node'; + // } else { + // syncStatus = ConnectedSyncStatus(); + // } } @override @@ -178,7 +147,7 @@ abstract class ZanoWalletBase extends WalletBase Destination( amount: output.formattedCryptoAmount ?? 0, address: output.isParsedAddress ? output.extractedAddress! : output.address, - assetId: defaultAsssetId, + assetId: "defaultAsssetId", )) .toList(); } else { @@ -197,7 +166,7 @@ abstract class ZanoWalletBase extends WalletBase); - return result; - } - - GetWalletStatusResult getWalletStatus() { - final json = ApiCalls.getWalletStatus(hWallet: hWallet); - print('wallet status $json'); // TODO: remove - final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - return status; - } - Future init(String address) async { - _initZanoAssetsBox(); + final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${ZanoAsset.zanoAssetsBoxName}"; + zanoAssetsBox = await CakeHive.openBox(boxName); + print( + 'assets in box total: ${zanoAssetsBox.length} ${zanoAssetsBox.values} active: ${zanoAssetsBox.values.where((element) => element.enabled).length} ${zanoAssetsBox.values.where((element) => element.enabled)}'); + for (final asset in zanoAssetsBox.values) { + if (asset.enabled) balance[asset] = ZanoBalance(total: 0, unlocked: 0); + } await walletAddresses.init(); await walletAddresses.updateAddress(address); @@ -255,25 +216,6 @@ abstract class ZanoWalletBase extends WalletBase await save()); } - Future invokeMethod(String methodName, Object params) async { - var invokeResult = - ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); - var map = jsonDecode(invokeResult) as Map; - int attempts = 0; - if (map['job_id'] != null) { - final jobId = map['job_id'] as int; - do { - await Future.delayed(Duration(milliseconds: attempts < 2 ? 100 : 500)); - final result = ApiCalls.tryPullResult(jobId); - map = jsonDecode(result) as Map; - if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { - return result; - } - } while (++attempts < _maxAttempts); - } - return invokeResult; - } - String loadWallet(String path, String password) { print('load_wallet path $path password $password'); final result = ApiCalls.loadWallet(path: path, password: password); @@ -312,7 +254,6 @@ abstract class ZanoWalletBase extends WalletBase startSync() async { try { @@ -342,7 +286,7 @@ abstract class ZanoWalletBase extends WalletBase= 10) { + // await getAssetsWhitelist(); + // _counter = 0; + // } } }); } catch (e) { @@ -373,19 +339,6 @@ abstract class ZanoWalletBase extends WalletBase store() async { - try { - final json = await invokeMethod('store', '{}'); - final map = jsonDecode(json) as Map; - if (map['result'] == null || map['result']['result'] == null) { - throw 'store empty response'; - } - final _ = StoreResult.fromJson(map['result']['result'] as Map); - } catch (e) { - print(e.toString()); - } - } - @override Future? updateBalance() => null; @@ -405,15 +358,6 @@ abstract class ZanoWalletBase extends WalletBase _initZanoAssetsBox() async { - final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${ZanoAsset.zanoAssetsBoxName}"; - if (await CakeHive.boxExists(boxName)) { - zanoAssetsBox = await CakeHive.openBox(boxName); - } else { - zanoAssetsBox = await CakeHive.openBox(boxName.replaceAll(" ", "")); - } - } - void addInitialAssets() { final initialZanoAssets = DefaultZanoAssets().initialZanoAssets; @@ -422,46 +366,56 @@ abstract class ZanoWalletBase extends WalletBase addZanoAsset(ZanoAsset asset) async { + Future addZanoAssetById(String assetId) async { + if (zanoAssetsBox.containsKey(assetId)) { + throw 'zano asset with id $assetId already added'; + } + final assetDescriptor = await addAssetsWhitelist(assetId); + if (assetDescriptor == null) { + throw "there's no zano asset with id $assetId"; + } String? iconPath; try { - iconPath = CryptoCurrency.all - .firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()) - .iconPath; + iconPath = CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == assetDescriptor.title.toUpperCase()).iconPath; } catch (_) {} + final asset = ZanoAsset.copyWith(assetDescriptor, iconPath, 'ZANO', assetId: assetId, enabled: true); + await zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); + balance[asset] = ZanoBalance(total: 0, unlocked: 0); + return asset; + } - final newAsset = createNewZanoAssetObject(asset, iconPath); - - await zanoAssetsBox.put(newAsset.assetId, newAsset); - + Future addRemoveZanoAsset(ZanoAsset asset) async { + String? iconPath; + try { + iconPath = CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()).iconPath; + } catch (_) {} + await zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); if (asset.enabled) { + final assetDescriptor = await addAssetsWhitelist(asset.assetId); + if (assetDescriptor == null) { + print('error adding zano asset'); + return; + } balance[asset] = ZanoBalance(total: 0, unlocked: 0); } else { - balance.remove(asset); + final result = await removeAssetsWhitelist(asset.assetId); + if (result == false) { + print('error removing zano asset'); + return; + } + balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); } } - Future deleteZanoAsset(ZanoAsset token) async { - await token.delete(); - - balance.remove(token); - //_updateBalance(); + Future deleteZanoAsset(ZanoAsset asset) async { + final result = await removeAssetsWhitelist(asset.assetId); + if (result == false) return; + await asset.delete(); + balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); } Future getZanoAsset(String assetId) async { - return ZanoAsset(assetId: assetId, decimal: 12, name: 'Not implemented', symbol: 'NI'); + return null; } // List _getAllTransactions(dynamic _) => @@ -475,23 +429,17 @@ abstract class ZanoWalletBase extends WalletBase _askForUpdateTransactionHistory() async => await updateTransactions(); void _onNewBlock(int height, int blocksLeft, double ptc) async { try { if (walletInfo.isRecovery) { await _askForUpdateTransactionHistory(); - _askForUpdateBalance(); /*walletAddresses.accountList.update();*/ } if (blocksLeft < 1000) { await _askForUpdateTransactionHistory(); - _askForUpdateBalance(); /*walletAddresses.accountList.update();*/ syncStatus = SyncedSyncStatus(); @@ -514,7 +462,6 @@ abstract class ZanoWalletBase extends WalletBase.delayed(Duration(seconds: 1)); // TODO: ??? } catch (e) { print(e.toString()); @@ -523,31 +470,7 @@ abstract class ZanoWalletBase extends WalletBase _refreshTransactions() async { try { - final result = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); - final map = jsonDecode(result) as Map?; - if (map == null) { - print('get_recent_txs_and_info empty response'); - return; - } - - final resultData = map['result']; - if (resultData == null) { - print('get_recent_txs_and_info empty response'); - return; - } - - if (resultData['error'] != null) { - print('get_recent_txs_and_info error ${resultData['error']}'); - return; - } - - final transfers = resultData['result']?['transfers'] as List?; - if (transfers == null) { - print('get_recent_txs_and_info empty transfers'); - return; - } - - history = transfers.map((e) => History.fromJson(e as Map)).toList(); + history = await getRecentTxsAndInfo(); } catch (e) { print(e.toString()); } diff --git a/cw_zano/lib/zano_wallet_api.dart b/cw_zano/lib/zano_wallet_api.dart new file mode 100644 index 000000000..d4bcf9230 --- /dev/null +++ b/cw_zano/lib/zano_wallet_api.dart @@ -0,0 +1,186 @@ +import 'dart:convert'; + +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_zano/api/api_calls.dart'; +import 'package:cw_zano/api/model/add_remove_assets_whitelist_params.dart'; +import 'package:cw_zano/api/model/asset_descriptor.dart'; +import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; +import 'package:cw_zano/api/model/get_wallet_info_result.dart'; +import 'package:cw_zano/api/model/get_wallet_status_result.dart'; +import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/zano_asset.dart'; + +import 'api/model/store_result.dart'; + +enum _LogType { none, simple, json } + +mixin ZanoWalletApi { + static const _defaultNodeUri = '195.201.107.230:33336'; + static const _statusDelivered = 'delivered'; + static const _maxAttempts = 10; + static const _logType = _LogType.simple; + + int _hWallet = 0; + + int get hWallet => _hWallet; + + set hWallet(int value) { + _hWallet = value; + } + + int getCurrentTxFee(TransactionPriority priority) => ApiCalls.getCurrentTxFee(priority: priority.raw); + + void setPassword(String password) => ApiCalls.setPassword(hWallet: hWallet, password: password); + + void closeWallet() => ApiCalls.closeWallet(hWallet: hWallet); + + Future setupNode() async => ApiCalls.setupNode( + address: _defaultNodeUri, + login: '', + password: '', + useSSL: false, + isLightWallet: false, + ); + + GetWalletInfoResult getWalletInfo() { + final json = ApiCalls.getWalletInfo(hWallet); + final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); + switch (_logType) { + case _LogType.json: + print('get_wallet_info $json'); + break; + case _LogType.simple: + print('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances}'); + } + + return result; + } + + GetWalletStatusResult getWalletStatus() { + final json = ApiCalls.getWalletStatus(hWallet: hWallet); + final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + switch (_logType) { + case _LogType.json: + print('get_wallet_status $json'); + break; + case _LogType.simple: + print('get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} wallet state: ${status.walletState}'); + } + return status; + } + + Future invokeMethod(String methodName, Object params) async { + var invokeResult = + ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); + var map = jsonDecode(invokeResult) as Map; + int attempts = 0; + if (map['job_id'] != null) { + final jobId = map['job_id'] as int; + do { + await Future.delayed(Duration(milliseconds: attempts < 2 ? 100 : 500)); + final result = ApiCalls.tryPullResult(jobId); + map = jsonDecode(result) as Map; + if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { + return result; + } + } while (++attempts < _maxAttempts); + } + return invokeResult; + } + + Future> getAssetsWhitelist() async { + try { + final json = await invokeMethod('assets_whitelist_get', '{}'); + if (_logType == _LogType.json) print('assets_whitelist_get $json'); + final map = jsonDecode(json) as Map?; + _checkForErrors(map); + final assets = map?['result']?['result']?['assets'] as List?; + final result = assets?.map((e) => ZanoAsset.fromJson(e as Map)).toList(); + if (_logType == _LogType.simple) print('assets_whitelist_get got ${result?.length ?? 0} assets: $result'); + return result ?? []; + } catch (e) { + print(e.toString()); + return []; + } + } + + Future addAssetsWhitelist(String assetId) async { + try { + final json = await invokeMethod('assets_whitelist_add', AddRemoveAssetsWhitelistParams(assetId: assetId)); + if (_logType == _LogType.json) print('assets_whitelist_add $assetId $json'); + final map = jsonDecode(json) as Map?; + _checkForErrors(map); + if (map!['result']!['result']!['status']! == 'OK') { + final assetDescriptor = ZanoAsset.fromJson(map['result']!['result']!['asset_descriptor']! as Map); + if (_logType == _LogType.simple) print('assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + return assetDescriptor; + } else { + if (_logType == _LogType.simple) print('assets_whitelist_add status ${map['result']!['result']!['status']!}'); + return null; + } + } catch (e) { + print(e.toString()); + return null; + } + } + + Future removeAssetsWhitelist(String assetId) async { + try { + final json = await invokeMethod('assets_whitelist_remove', AddRemoveAssetsWhitelistParams(assetId: assetId)); + if (_logType == _LogType.json) print('assets_whitelist_remove $assetId $json'); + final map = jsonDecode(json) as Map?; + _checkForErrors(map); + if (_logType == _LogType.simple) print('assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); + return (map!['result']!['result']!['status']! == 'OK'); + } catch (e) { + print(e.toString()); + return false; + } + } + + Future store() async { + try { + final json = await invokeMethod('store', '{}'); + final map = jsonDecode(json) as Map?; + _checkForErrors(map); + return StoreResult.fromJson(map!['result']['result'] as Map); + } catch (e) { + print(e); + return null; + } + } + + Future> getRecentTxsAndInfo() async { + try { + final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + final map = jsonDecode(json) as Map?; + _checkForErrors(map); + final transfers = map?['result']?['result']?['transfers'] as List?; + if (transfers == null) { + print('get_recent_txs_and_info empty transfers'); + return []; + } + return transfers.map((e) => History.fromJson(e as Map)).toList(); + } catch (e) { + print(e); + return []; + } + } + + void _checkForErrors(Map? map) { + if (map == null) { + throw 'empty response'; + } + + final result = map['result']; + if (result == null) { + throw 'empty response'; + } + + if (result['error'] != null) { + final code = result['error']!['code'] ?? ''; + final message = result['error']!['message'] ?? ''; + throw 'error $code $message'; + } + } +} diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 12dc16407..b1d0f8b02 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -18,6 +18,7 @@ import 'package:cw_zano/api/exceptions/create_wallet_exception.dart'; import 'package:cw_zano/api/exceptions/restore_from_seed_exception.dart'; import 'package:cw_zano/api/exceptions/wrong_seed_exception.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; +import 'package:cw_zano/zano_asset.dart'; import 'package:cw_zano/zano_balance.dart'; import 'package:cw_zano/zano_wallet.dart'; import 'package:hive/hive.dart'; @@ -36,7 +37,13 @@ class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { ZanoRestoreWalletFromKeysCredentials( - {required String name, required String password, required this.language, required this.address, required this.viewKey, required this.spendKey, required int height}) + {required String name, + required String password, + required this.language, + required this.address, + required this.viewKey, + required this.spendKey, + required int height}) : super(name: name, password: password, height: height); final String language; @@ -126,7 +133,7 @@ class ZanoWalletService extends WalletService { if (widget.token != null) { address = widget.homeSettingsViewModel.getTokenAddressBasedOnWallet(widget.token!); - + _contractAddressController.text = address ?? ''; _tokenNameController.text = widget.token!.name; _tokenSymbolController.text = widget.token!.title; @@ -145,9 +148,7 @@ class _EditTokenPageBodyState extends State { style: TextStyle( fontSize: 14, fontWeight: FontWeight.normal, - color: Theme.of(context) - .extension()! - .detailsTitlesColor, + color: Theme.of(context).extension()!.detailsTitlesColor, ), ), ), @@ -194,25 +195,32 @@ class _EditTokenPageBodyState extends State { Expanded( child: PrimaryButton( onPressed: () async { - if (_formKey.currentState!.validate() && - (!_showDisclaimer || _disclaimerChecked)) { - // TODO: fix it!!! - await widget.homeSettingsViewModel.addToken(ZanoAsset( - name: _tokenNameController.text, - symbol: _tokenSymbolController.text, - assetId: _contractAddressController.text, - decimal: int.parse(_tokenDecimalController.text), - )); - // await widget.homeSettingsViewModel.addToken(Erc20Token( - // name: _tokenNameController.text, - // symbol: _tokenSymbolController.text, - // contractAddress: _contractAddressController.text, - // decimal: int.parse(_tokenDecimalController.text), - // )); - if (context.mounted) { - Navigator.pop(context); + if (_formKey.currentState!.validate() && (!_showDisclaimer || _disclaimerChecked)) { + if (widget.homeSettingsViewModel.walletType == WalletType.zano) { + if (!await widget.homeSettingsViewModel.addAsset(_contractAddressController.text)) { + await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.current.error, + alertContent: 'Cannot add asset ${_contractAddressController.text}', + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop()); + }); + return; + } + } else { + await widget.homeSettingsViewModel.addToken(Erc20Token( + name: _tokenNameController.text, + symbol: _tokenSymbolController.text, + contractAddress: _contractAddressController.text, + decimal: int.parse(_tokenDecimalController.text), + )); } } + if (context.mounted) { + Navigator.pop(context); + } }, text: S.of(context).save, color: Theme.of(context).primaryColor, @@ -234,8 +242,7 @@ class _EditTokenPageBodyState extends State { if (token != null) { if (_tokenNameController.text.isEmpty) _tokenNameController.text = token.name; if (_tokenSymbolController.text.isEmpty) _tokenSymbolController.text = token.title; - if (_tokenDecimalController.text.isEmpty) - _tokenDecimalController.text = token.decimals.toString(); + if (_tokenDecimalController.text.isEmpty) _tokenDecimalController.text = token.decimals.toString(); } } } @@ -271,53 +278,55 @@ class _EditTokenPageBodyState extends State { _pasteText(); }, ), - const SizedBox(height: 8), - BaseTextFormField( - controller: _tokenNameController, - focusNode: _tokenNameFocusNode, - onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenSymbolFocusNode), - textInputAction: TextInputAction.next, - hintText: S.of(context).token_name, - validator: (text) { - if (text?.isNotEmpty ?? false) { - return null; - } + if (widget.homeSettingsViewModel.walletType != WalletType.zano) ...[ + const SizedBox(height: 8), + BaseTextFormField( + controller: _tokenNameController, + focusNode: _tokenNameFocusNode, + onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenSymbolFocusNode), + textInputAction: TextInputAction.next, + hintText: S.of(context).token_name, + validator: (text) { + if (text?.isNotEmpty ?? false) { + return null; + } - return S.of(context).field_required; - }, - ), - const SizedBox(height: 8), - BaseTextFormField( - controller: _tokenSymbolController, - focusNode: _tokenSymbolFocusNode, - onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenDecimalFocusNode), - textInputAction: TextInputAction.next, - hintText: S.of(context).token_symbol, - validator: (text) { - if (text?.isNotEmpty ?? false) { - return null; - } - - return S.of(context).field_required; - }, - ), - const SizedBox(height: 8), - BaseTextFormField( - controller: _tokenDecimalController, - focusNode: _tokenDecimalFocusNode, - textInputAction: TextInputAction.done, - hintText: S.of(context).token_decimal, - validator: (text) { - if (text?.isEmpty ?? true) { return S.of(context).field_required; - } - if (int.tryParse(text!) == null) { - return S.of(context).invalid_input; - } + }, + ), + const SizedBox(height: 8), + BaseTextFormField( + controller: _tokenSymbolController, + focusNode: _tokenSymbolFocusNode, + onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenDecimalFocusNode), + textInputAction: TextInputAction.next, + hintText: S.of(context).token_symbol, + validator: (text) { + if (text?.isNotEmpty ?? false) { + return null; + } - return null; - }, - ), + return S.of(context).field_required; + }, + ), + const SizedBox(height: 8), + BaseTextFormField( + controller: _tokenDecimalController, + focusNode: _tokenDecimalFocusNode, + textInputAction: TextInputAction.done, + hintText: S.of(context).token_decimal, + validator: (text) { + if (text?.isEmpty ?? true) { + return S.of(context).field_required; + } + if (int.tryParse(text!) == null) { + return S.of(context).invalid_input; + } + + return null; + }, + ), + ], SizedBox(height: 24), ], ), diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index e880dd703..7c9c382ff 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -27,6 +27,8 @@ abstract class HomeSettingsViewModelBase with Store { final ObservableSet tokens; + WalletType get walletType => _balanceViewModel.wallet.type; + @observable String searchText = ''; @@ -45,6 +47,20 @@ abstract class HomeSettingsViewModelBase with Store { @action void setPinNativeToken(bool value) => _settingsStore.pinNativeTokenAtTop = value; + Future addAsset(String assetId) async { + if (_balanceViewModel.wallet.type == WalletType.zano) { + try { + final asset = await zano!.addZanoAssetById(_balanceViewModel.wallet, assetId); + _updateTokensList(); + _updateFiatPrices(asset); + return true; + } catch (e) { + return false; + } + } + return false; + } + Future addToken(CryptoCurrency token) async { if (_balanceViewModel.wallet.type == WalletType.ethereum) { await ethereum!.addErc20Token(_balanceViewModel.wallet, token); diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index a3a675f9a..b8450060f 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -159,7 +159,7 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { language: 'English', ); - if (type == WalletType.zano) { + case WalletType.zano: return zano!.createZanoRestoreWalletFromKeysCredentials( name: name, height: height, @@ -168,7 +168,7 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { address: address!, password: password, language: 'English'); - } + case WalletType.ethereum: return ethereum!.createEthereumRestoreWalletFromPrivateKey( diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 5ceaa41bc..22e67309c 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -84,18 +84,22 @@ class CWZano extends Zano { return zanoWallet.zanoAssets; } + @override + Future addZanoAssetById(WalletBase wallet, String assetId) async => + await (wallet as ZanoWallet).addZanoAssetById(assetId); + @override Future addZanoAsset(WalletBase wallet, CryptoCurrency token) async => - await (wallet as ZanoWallet).addZanoAsset(token as ZanoAsset); + await (wallet as ZanoWallet).addRemoveZanoAsset(token as ZanoAsset); @override Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).deleteZanoAsset(token as ZanoAsset); @override - Future getZanoAsset(WalletBase wallet, String mintAddress) async { + Future getZanoAsset(WalletBase wallet, String assetId) async { final zanoWallet = wallet as ZanoWallet; - return await zanoWallet.getZanoAsset(mintAddress); + return await zanoWallet.getZanoAsset(assetId); } @override @@ -234,8 +238,4 @@ class CWZano extends Zano { } String getZanoAssetAddress(CryptoCurrency asset) => (asset as ZanoAsset).assetId; - - // @override - // List getAssetRate() => - // getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); } diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index 634d63a88..e64c33c25 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -69,12 +69,6 @@ class ZanoBalance extends Balance { String get formattedAdditionalBalance => formattedFullBalance; } -class AssetRate { - AssetRate(this.asset, this.rate); - - final String asset; - final int rate; -} abstract class ZanoWalletDetails { // FIX-ME: it's abstruct class @@ -123,9 +117,9 @@ abstract class Zano { List getZanoAssets(WalletBase wallet); String getZanoAssetAddress(CryptoCurrency asset); Future addZanoAsset(WalletBase wallet, CryptoCurrency token); + Future addZanoAssetById(WalletBase wallet, String assetId); Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); Future getZanoAsset(WalletBase wallet, String contractAddress); - // List getAssetRate(); } // abstract class MoneroSubaddressList { From c74a1142090fe1a16e7952833bd44d828874a2b6 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 16 Mar 2024 10:55:03 +0000 Subject: [PATCH 33/58] transfers in different assets --- cw_core/lib/amount_converter.dart | 1 - cw_zano/lib/api/model/asset_descriptor.dart | 38 -------- cw_zano/lib/api/model/destination.dart | 4 +- cw_zano/lib/api/model/recent_history.dart | 6 +- .../api/model/{history.dart => transfer.dart} | 6 +- cw_zano/lib/api/model/transfer_params.dart | 4 +- cw_zano/lib/pending_zano_transaction.dart | 22 +++-- cw_zano/lib/zano_asset.dart | 9 +- cw_zano/lib/zano_formatter.dart | 24 +++++ cw_zano/lib/zano_transaction_credentials.dart | 6 +- cw_zano/lib/zano_transaction_info.dart | 65 +++++++------ cw_zano/lib/zano_wallet.dart | 96 ++++++++++++------- cw_zano/lib/zano_wallet_api.dart | 9 +- cw_zano/lib/zano_wallet_service.dart | 19 ++-- cw_zano/pubspec.lock | 2 +- cw_zano/pubspec.yaml | 1 + .../dashboard/transaction_list_item.dart | 2 +- lib/view_model/send/send_view_model.dart | 12 +-- lib/zano/cw_zano.dart | 67 +++++++------ lib/zano/zano.dart | 4 +- 20 files changed, 211 insertions(+), 186 deletions(-) delete mode 100644 cw_zano/lib/api/model/asset_descriptor.dart rename cw_zano/lib/api/model/{history.dart => transfer.dart} (96%) create mode 100644 cw_zano/lib/zano_formatter.dart diff --git a/cw_core/lib/amount_converter.dart b/cw_core/lib/amount_converter.dart index 785d9a18a..a790e500f 100644 --- a/cw_core/lib/amount_converter.dart +++ b/cw_core/lib/amount_converter.dart @@ -2,7 +2,6 @@ import 'package:decimal/decimal.dart'; import 'package:decimal/intl.dart'; import 'package:intl/intl.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:rational/rational.dart'; class AmountConverter { static const _moneroAmountLength = 12; diff --git a/cw_zano/lib/api/model/asset_descriptor.dart b/cw_zano/lib/api/model/asset_descriptor.dart deleted file mode 100644 index 6f4ec5e6b..000000000 --- a/cw_zano/lib/api/model/asset_descriptor.dart +++ /dev/null @@ -1,38 +0,0 @@ -// class AssetDescriptor { -// static const defaultDecimalPoint = 12; -// final String assetId; -// final int currentSupply; -// final int decimalPoint; -// final String fullName; -// final bool hiddenSupply; -// final String metaInfo; -// final String owner; -// final String ticker; -// final int totalMaxSupply; - -// AssetDescriptor({ -// required this.assetId, -// required this.currentSupply, -// required this.decimalPoint, -// required this.fullName, -// required this.hiddenSupply, -// required this.metaInfo, -// required this.owner, -// required this.ticker, -// required this.totalMaxSupply, -// }); - -// factory AssetDescriptor.fromJson(Map json) => -// AssetDescriptor( -// assetId: json['asset_id'] as String? ?? '', -// currentSupply: json['current_supply'] as int? ?? 0, -// decimalPoint: json['decimal_point'] as int? ?? defaultDecimalPoint, -// fullName: json['full_name'] as String? ?? '', -// hiddenSupply: json['hidden_supply'] as bool? ?? false, -// metaInfo: json['meta_info'] as String? ?? '', -// owner: json['owner'] as String? ?? '', -// ticker: json['ticker'] as String? ?? '', -// totalMaxSupply: json['total_max_supply'] as int? ?? 0, -// ); - -// } diff --git a/cw_zano/lib/api/model/destination.dart b/cw_zano/lib/api/model/destination.dart index dd3867511..3db4f6652 100644 --- a/cw_zano/lib/api/model/destination.dart +++ b/cw_zano/lib/api/model/destination.dart @@ -1,5 +1,5 @@ class Destination { - final int amount; // transfered as string + final BigInt amount; // transfered as string final String address; final String assetId; @@ -7,7 +7,7 @@ class Destination { {required this.amount, required this.address, required this.assetId}); factory Destination.fromJson(Map json) => Destination( - amount: int.parse(json['amount'] as String? ?? '0'), + amount: BigInt.parse(json['amount'] as String? ?? '0'), address: json['address'] as String? ?? '', assetId: json['asset_id'] as String? ?? '', ); diff --git a/cw_zano/lib/api/model/recent_history.dart b/cw_zano/lib/api/model/recent_history.dart index 82e71ef44..6591f426d 100644 --- a/cw_zano/lib/api/model/recent_history.dart +++ b/cw_zano/lib/api/model/recent_history.dart @@ -1,7 +1,7 @@ -import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/transfer.dart'; class RecentHistory { - final List? history; + final List? history; final int lastItemIndex; final int totalHistoryItems; @@ -12,7 +12,7 @@ class RecentHistory { factory RecentHistory.fromJson(Map json) => RecentHistory( history: json['history'] == null ? null : (json['history'] as List) - .map((e) => History.fromJson(e as Map)) + .map((e) => Transfer.fromJson(e as Map)) .toList(), lastItemIndex: json['last_item_index'] as int? ?? 0, totalHistoryItems: json['total_history_items'] as int? ?? 0, diff --git a/cw_zano/lib/api/model/history.dart b/cw_zano/lib/api/model/transfer.dart similarity index 96% rename from cw_zano/lib/api/model/history.dart rename to cw_zano/lib/api/model/transfer.dart index faadfcdc2..5c8b66047 100644 --- a/cw_zano/lib/api/model/history.dart +++ b/cw_zano/lib/api/model/transfer.dart @@ -1,7 +1,7 @@ import 'package:cw_zano/api/model/employed_entries.dart'; import 'package:cw_zano/api/model/subtransfer.dart'; -class History { +class Transfer { final String comment; final EmployedEntries employedEntries; final int fee; @@ -21,7 +21,7 @@ class History { final int txType; final int unlockTime; - History({ + Transfer({ required this.comment, required this.employedEntries, required this.fee, @@ -42,7 +42,7 @@ class History { required this.unlockTime, }); - factory History.fromJson(Map json) => History( + factory Transfer.fromJson(Map json) => Transfer( comment: json['comment'] as String? ?? '', employedEntries: EmployedEntries.fromJson( json['employed_entries'] as Map? ?? {}), diff --git a/cw_zano/lib/api/model/transfer_params.dart b/cw_zano/lib/api/model/transfer_params.dart index 4f252c402..f1df727f5 100644 --- a/cw_zano/lib/api/model/transfer_params.dart +++ b/cw_zano/lib/api/model/transfer_params.dart @@ -2,7 +2,7 @@ import 'package:cw_zano/api/model/destination.dart'; class TransferParams { final List destinations; - final int fee; + final BigInt fee; final int mixin; final String paymentId; final String comment; @@ -31,7 +31,7 @@ class TransferParams { factory TransferParams.fromJson(Map json) => TransferParams( destinations: (json['destinations'] as List?)?.map((e) => Destination.fromJson(e as Map)).toList() ?? [], - fee: json['fee'] as int? ?? 0, + fee: BigInt.from(json['fee'] as int? ?? 0), mixin: json['mixin'] as int? ?? 0, paymentId: json['payment_id'] as String? ?? '', comment: json['comment'] as String? ?? '', diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index fc08b1840..726dda7f4 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -1,13 +1,11 @@ import 'dart:convert'; +import 'package:cw_core/pending_transaction.dart'; import 'package:cw_zano/api/exceptions/transfer_exception.dart'; import 'package:cw_zano/api/model/destination.dart'; -import 'package:cw_zano/api/model/history.dart'; import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/model/transfer_result.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/amount_converter.dart'; -import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_wallet.dart'; class PendingZanoTransaction with PendingTransaction { @@ -16,12 +14,20 @@ class PendingZanoTransaction with PendingTransaction { required this.destinations, required this.fee, required this.comment, + required this.assetId, + required this.ticker, + this.decimalPoint = 12, + required this.amount, }); final ZanoWalletBase zanoWallet; final List destinations; - final int fee; + final BigInt fee; final String comment; + final String assetId; + final String ticker; + final int decimalPoint; + final BigInt amount; @override String get id => transferResult?.txHash ?? ''; @@ -30,10 +36,10 @@ class PendingZanoTransaction with PendingTransaction { String get hex => ''; @override - String get amountFormatted => AmountConverter.amountIntToString(CryptoCurrency.zano, destinations.first.amount); + String get amountFormatted => '${ZanoFormatter.bigIntAmountToString(amount, decimalPoint)} $ticker'; @override - String get feeFormatted => AmountConverter.amountIntToString(CryptoCurrency.zano, fee); + String get feeFormatted => '${ZanoFormatter.bigIntAmountToString(fee)} ZANO'; TransferResult? transferResult; @@ -66,4 +72,6 @@ class PendingZanoTransaction with PendingTransaction { } } } + + } diff --git a/cw_zano/lib/zano_asset.dart b/cw_zano/lib/zano_asset.dart index 376bd78eb..e2e80b450 100644 --- a/cw_zano/lib/zano_asset.dart +++ b/cw_zano/lib/zano_asset.dart @@ -1,5 +1,6 @@ import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/hive_type_ids.dart'; +import 'package:cw_zano/zano_formatter.dart'; import 'package:hive/hive.dart'; part 'zano_asset.g.dart'; @@ -39,7 +40,7 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { this.fullName = '', this.ticker = '', required this.assetId, - this.decimalPoint = defaultDecimalPoint, + this.decimalPoint = ZanoFormatter.defaultDecimalPoint, bool enabled = true, this.iconPath, this.tag, @@ -83,7 +84,7 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { factory ZanoAsset.fromJson(Map json) => ZanoAsset( assetId: json['asset_id'] as String? ?? '', currentSupply: json['current_supply'] as int? ?? 0, - decimalPoint: json['decimal_point'] as int? ?? defaultDecimalPoint, + decimalPoint: json['decimal_point'] as int? ?? ZanoFormatter.defaultDecimalPoint, fullName: json['full_name'] as String? ?? '', hiddenSupply: json['hidden_supply'] as bool? ?? false, metaInfo: json['meta_info'] as String? ?? '', @@ -92,11 +93,7 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { totalMaxSupply: json['total_max_supply'] as int? ?? 0, ); - @override - String toString() => '$ticker (${assetId.substring(0, 4)}...${assetId.substring(assetId.length - 4)})'; - static const typeId = ZANO_ASSET_TYPE_ID; static const zanoAssetsBoxName = 'zanoAssetsBox'; - static const defaultDecimalPoint = 12; static const defaultOwner = '0000000000000000000000000000000000000000000000000000000000000000'; } diff --git a/cw_zano/lib/zano_formatter.dart b/cw_zano/lib/zano_formatter.dart new file mode 100644 index 000000000..2b8d4977d --- /dev/null +++ b/cw_zano/lib/zano_formatter.dart @@ -0,0 +1,24 @@ +import 'dart:math'; + +import 'package:decimal/decimal.dart'; +import 'package:decimal/intl.dart'; +import 'package:intl/intl.dart'; + +class ZanoFormatter { + static const defaultDecimalPoint = 12; + + //static const _moneroAmountLength = 12; + static final numberFormat = NumberFormat() + ..maximumFractionDigits = defaultDecimalPoint + ..minimumFractionDigits = 1; + + static Decimal _intDivision({required int amount, required BigInt divider}) => (Decimal.fromInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); + static Decimal _bigIntDivision({required BigInt amount, required BigInt divider}) => (Decimal.fromBigInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); + + static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format(DecimalIntl( + _intDivision(amount: amount, divider: BigInt.from(pow(10, decimalPoint))), + ),); + static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format(DecimalIntl( + _bigIntDivision(amount: amount, divider: BigInt.from(pow(10, decimalPoint))), + ),); +} diff --git a/cw_zano/lib/zano_transaction_credentials.dart b/cw_zano/lib/zano_transaction_credentials.dart index 474a5b07f..d7a491b6a 100644 --- a/cw_zano/lib/zano_transaction_credentials.dart +++ b/cw_zano/lib/zano_transaction_credentials.dart @@ -1,10 +1,12 @@ +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/monero_transaction_priority.dart'; import 'package:cw_core/output_info.dart'; class ZanoTransactionCredentials { - ZanoTransactionCredentials({required this.outputs, required this.priority, required this.assetType}); + ZanoTransactionCredentials({required this.outputs, required this.priority, required this.currency}); final List outputs; final MoneroTransactionPriority priority; - final String assetType; + final CryptoCurrency currency; + //final String assetType; } diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/zano_transaction_info.dart index c332bf4d6..7f3ad1885 100644 --- a/cw_zano/lib/zano_transaction_info.dart +++ b/cw_zano/lib/zano_transaction_info.dart @@ -2,35 +2,37 @@ import 'package:cw_core/format_amount.dart'; import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_info.dart'; -import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/transfer.dart'; class ZanoTransactionInfo extends TransactionInfo { - ZanoTransactionInfo( - this.id, - this.height, - this.direction, - this.date, - this.isPending, - this.amount, - this.accountIndex, - this.addressIndex, - this.fee, - this.confirmations); + ZanoTransactionInfo({ + required this.id, + required this.height, + required this.direction, + required this.date, + required this.isPending, + required this.amount, + required this.accountIndex, + required this.addressIndex, + required this.fee, + required this.assetId, + required this.confirmations, + required this.tokenSymbol, + }); - ZanoTransactionInfo.fromHistory(History history) - : id = history.txHash, - height = history.height, - direction = history.subtransfers.first.isIncome ? TransactionDirection.incoming : - TransactionDirection.outgoing, - date = DateTime.fromMillisecondsSinceEpoch(history.timestamp * 1000), - isPending = false, - amount = history.subtransfers.first.amount, - accountIndex = 0, - addressIndex = 0, - fee = history.fee, - confirmations = 1, - assetType = 'ZANO', // TODO: FIXIT: - recipientAddress = history.remoteAddresses.isNotEmpty ? history.remoteAddresses.first : ''; + ZanoTransactionInfo.fromTransfer(Transfer transfer, this.tokenSymbol) + : id = transfer.txHash, + height = transfer.height, + direction = transfer.subtransfers.first.isIncome ? TransactionDirection.incoming : TransactionDirection.outgoing, + date = DateTime.fromMillisecondsSinceEpoch(transfer.timestamp * 1000), + isPending = false, + amount = transfer.subtransfers.first.amount, + accountIndex = 0, + addressIndex = 0, + fee = transfer.fee, + confirmations = 1, + assetId = transfer.subtransfers.first.assetId, + recipientAddress = transfer.remoteAddresses.isNotEmpty ? transfer.remoteAddresses.first : ''; final String id; final int height; @@ -43,13 +45,13 @@ class ZanoTransactionInfo extends TransactionInfo { final int addressIndex; final int confirmations; late String recipientAddress; - late String assetType; + final String tokenSymbol; + late String assetId; String? _fiatAmount; String? key; @override - String amountFormatted() => - '${formatAmount(moneroAmountToString(amount: amount))} $assetType'; + String amountFormatted() => '${formatAmount(moneroAmountToString(amount: amount))} $tokenSymbol'; @override String fiatAmount() => _fiatAmount ?? ''; @@ -58,6 +60,7 @@ class ZanoTransactionInfo extends TransactionInfo { void changeFiatAmount(String amount) => _fiatAmount = formatAmount(amount); @override - String feeFormatted() => - '${formatAmount(moneroAmountToString(amount: fee))} $assetType'; + String feeFormatted() => '${formatAmount(moneroAmountToString(amount: fee))} $feeCurrency'; + + String get feeCurrency => 'ZANO'; } diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 4ee2e3b1a..15098366b 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -15,12 +15,13 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; -import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/transfer.dart'; import 'package:cw_zano/api/model/zano_wallet_keys.dart'; import 'package:cw_zano/exceptions/zano_transaction_creation_exception.dart'; import 'package:cw_zano/pending_zano_transaction.dart'; import 'package:cw_zano/zano_asset.dart'; import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_transaction_credentials.dart'; import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/zano_transaction_info.dart'; @@ -41,7 +42,7 @@ class ZanoWallet = ZanoWalletBase with _$ZanoWallet; abstract class ZanoWalletBase extends WalletBase with Store, ZanoWalletApi { static const int _autoSaveInterval = 30; - List history = []; + List transfers = []; //String defaultAsssetId = ''; @override ZanoWalletAddresses walletAddresses; @@ -60,6 +61,7 @@ abstract class ZanoWalletBase extends WalletBase zanoAssetsBox; List get zanoAssets => zanoAssetsBox.values.toList(); @@ -128,45 +130,64 @@ abstract class ZanoWalletBase extends WalletBase createTransaction(Object credentials) async { - final creds = credentials as ZanoTransactionCredentials; - final outputs = creds.outputs; + credentials as ZanoTransactionCredentials; + bool isZano() => credentials.currency == CryptoCurrency.zano; + final outputs = credentials.outputs; final hasMultiDestination = outputs.length > 1; - final unlockedBalance = balance[CryptoCurrency.zano]?.unlocked ?? 0; - final fee = calculateEstimatedFee(creds.priority); + final unlockedBalanceZano = BigInt.from(balance[CryptoCurrency.zano]?.unlocked ?? 0); + final unlockedBalanceCurrency = BigInt.from(balance[credentials.currency]?.unlocked ?? 0); + final fee = BigInt.from(calculateEstimatedFee(credentials.priority)); + late BigInt totalAmount; + void checkForEnoughBalances() { + if (isZano()) { + if (totalAmount + fee > unlockedBalanceZano) { + throw ZanoTransactionCreationException( + "You don't have enough coins (required: ${ZanoFormatter.bigIntAmountToString(totalAmount + fee)} ZANO, unlocked ${ZanoFormatter.bigIntAmountToString(unlockedBalanceZano)} ZANO)."); + } + } else { + if (fee > unlockedBalanceZano) { + throw ZanoTransactionCreationException( + "You don't have enough coins (required: ${ZanoFormatter.bigIntAmountToString(fee)} ZANO, unlocked ${ZanoFormatter.bigIntAmountToString(unlockedBalanceZano)} ZANO)."); + } + if (totalAmount > unlockedBalanceCurrency) { + throw ZanoTransactionCreationException( + "You don't have enough coins (required: ${ZanoFormatter.bigIntAmountToString(totalAmount)} ${credentials.currency.title}, unlocked ${ZanoFormatter.bigIntAmountToString(unlockedBalanceZano)} ${credentials.currency.title})."); + } + } + } + + final assetId = isZano() ? zanoAssetId : (currency as ZanoAsset).assetId; late List destinations; if (hasMultiDestination) { if (outputs.any((output) => output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { throw ZanoTransactionCreationException("You don't have enough coins."); } - final int totalAmount = outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); - if (totalAmount + fee > unlockedBalance) { - throw ZanoTransactionCreationException( - "You don't have enough coins (required: ${moneroAmountToString(amount: totalAmount + fee)}, unlocked ${moneroAmountToString(amount: unlockedBalance)})."); - } + totalAmount = outputs.fold(BigInt.zero, (acc, value) => acc + BigInt.from(value.formattedCryptoAmount ?? 0)); + checkForEnoughBalances(); destinations = outputs .map((output) => Destination( - amount: output.formattedCryptoAmount ?? 0, + amount: BigInt.from(output.formattedCryptoAmount ?? 0), address: output.isParsedAddress ? output.extractedAddress! : output.address, - assetId: "defaultAsssetId", + assetId: assetId, )) .toList(); } else { final output = outputs.first; - late int amount; if (output.sendAll) { - amount = unlockedBalance - fee; + if (isZano()) { + totalAmount = unlockedBalanceZano - fee; + } else { + totalAmount = unlockedBalanceCurrency; + } } else { - amount = output.formattedCryptoAmount!; - } - if (amount + fee > unlockedBalance) { - throw ZanoTransactionCreationException( - "You don't have enough coins (required: ${moneroAmountToString(amount: amount + fee)}, unlocked ${moneroAmountToString(amount: unlockedBalance)})."); + totalAmount = BigInt.from(output.formattedCryptoAmount!); } + checkForEnoughBalances(); destinations = [ Destination( - amount: amount, + amount: totalAmount, address: output.isParsedAddress ? output.extractedAddress! : output.address, - assetId: "defaultAsssetId", + assetId: assetId, ) ]; } @@ -178,18 +199,27 @@ abstract class ZanoWalletBase extends WalletBase> fetchTransactions() async { try { - await _refreshTransactions(); - return history.map((history) => ZanoTransactionInfo.fromHistory(history)).fold>( - {}, - (Map acc, ZanoTransactionInfo tx) { - acc[tx.id] = tx; - return acc; + transfers = await getRecentTxsAndInfo(); + return Map.fromIterable( + transfers, + key: (item) => (item as Transfer).txHash, + value: (item) { + item as Transfer; + if (item.subtransfers.first.assetId == zanoAssetId) { + return ZanoTransactionInfo.fromTransfer(item, 'ZANO'); + } else { + final tokenSymbol = zanoAssets.firstWhere((element) => element.assetId == item.subtransfers.first.assetId).ticker; + return ZanoTransactionInfo.fromTransfer(item, tokenSymbol); + } }, ); } catch (e) { @@ -286,7 +316,7 @@ abstract class ZanoWalletBase extends WalletBase _refreshTransactions() async { - try { - history = await getRecentTxsAndInfo(); - } catch (e) { - print(e.toString()); - } - } - void _updateSyncProgress(GetWalletStatusResult walletStatus) { final syncHeight = walletStatus.currentWalletHeight; if (_initialSyncHeight <= 0) { diff --git a/cw_zano/lib/zano_wallet_api.dart b/cw_zano/lib/zano_wallet_api.dart index d4bcf9230..b88948bce 100644 --- a/cw_zano/lib/zano_wallet_api.dart +++ b/cw_zano/lib/zano_wallet_api.dart @@ -3,12 +3,12 @@ import 'dart:convert'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/add_remove_assets_whitelist_params.dart'; -import 'package:cw_zano/api/model/asset_descriptor.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; import 'package:cw_zano/api/model/get_wallet_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; -import 'package:cw_zano/api/model/history.dart'; +import 'package:cw_zano/api/model/transfer.dart'; import 'package:cw_zano/zano_asset.dart'; +import 'package:flutter/foundation.dart'; import 'api/model/store_result.dart'; @@ -150,9 +150,10 @@ mixin ZanoWalletApi { } } - Future> getRecentTxsAndInfo() async { + Future> getRecentTxsAndInfo() async { try { final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + debugPrint('get_recent_txs_and_info $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); final transfers = map?['result']?['result']?['transfers'] as List?; @@ -160,7 +161,7 @@ mixin ZanoWalletApi { print('get_recent_txs_and_info empty transfers'); return []; } - return transfers.map((e) => History.fromJson(e as Map)).toList(); + return transfers.map((e) => Transfer.fromJson(e as Map)).toList(); } catch (e) { print(e); return []; diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index b1d0f8b02..136a4b7f1 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -10,7 +10,6 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:cw_zano/api/api_calls.dart' as calls; import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/consts.dart'; import 'package:cw_zano/api/exceptions/already_exists_exception.dart'; @@ -21,6 +20,7 @@ import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/zano_asset.dart'; import 'package:cw_zano/zano_balance.dart'; import 'package:cw_zano/zano_wallet.dart'; +import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; @@ -71,8 +71,8 @@ class ZanoWalletService extends WalletService; + final json = ApiCalls.createWallet(language: '', path: path, password: credentials.password!); + final map = jsonDecode(json) as Map; _checkForCreateWalletError(map); final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); @@ -111,9 +111,9 @@ class ZanoWalletService extends WalletService info.id == WalletBase.idFor(name, getType()))!; final wallet = ZanoWallet(walletInfo); await wallet.connectToNode(node: Node()); - final result = wallet.loadWallet(path, password); - print('load wallet result $result'); - final map = json.decode(result) as Map; + final json = wallet.loadWallet(path, password); + debugPrint('load wallet result $json'); + final map = jsonDecode(json) as Map; _checkForCreateWalletError(map); final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); @@ -144,6 +144,7 @@ class ZanoWalletService extends WalletService; + final json = ApiCalls.restoreWalletFromSeed(path: path, password: credentials.password!, seed: credentials.mnemonic); + final map = jsonDecode(json) as Map; if (map['result'] != null) { final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); _parseCreateWalletResult(createWalletResult, wallet); diff --git a/cw_zano/pubspec.lock b/cw_zano/pubspec.lock index a13bbc5f4..4d22dcfb8 100644 --- a/cw_zano/pubspec.lock +++ b/cw_zano/pubspec.lock @@ -185,7 +185,7 @@ packages: source: hosted version: "2.2.4" decimal: - dependency: transitive + dependency: "direct main" description: name: decimal sha256: "24a261d5d5c87e86c7651c417a5dbdf8bcd7080dd592533910e8d0505a279f21" diff --git a/cw_zano/pubspec.yaml b/cw_zano/pubspec.yaml index a1e76d72e..b09080e48 100644 --- a/cw_zano/pubspec.yaml +++ b/cw_zano/pubspec.yaml @@ -18,6 +18,7 @@ dependencies: mobx: ^2.0.7+4 flutter_mobx: ^2.0.6+1 intl: ^0.18.0 + decimal: ^2.3.3 cw_core: path: ../cw_core diff --git a/lib/view_model/dashboard/transaction_list_item.dart b/lib/view_model/dashboard/transaction_list_item.dart index 277b977e2..f2a594474 100644 --- a/lib/view_model/dashboard/transaction_list_item.dart +++ b/lib/view_model/dashboard/transaction_list_item.dart @@ -116,7 +116,7 @@ class TransactionListItem extends ActionListItem with Keyable { ); break; case WalletType.zano: - final asset = zano!.assetOfTransaction(transaction); + final asset = zano!.assetOfTransaction(balanceViewModel.wallet, transaction); final price = balanceViewModel.fiatConvertationStore.prices[asset]; amount = calculateFiatAmountRaw( cryptoAmount: zano!.formatterMoneroAmountToDouble(amount: transaction.amount), diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 5651d2780..66c84ed1d 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -46,7 +46,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor void onWalletChange(wallet) { currencies = wallet.balance.keys.toList(); selectedCryptoCurrency = wallet.currency; - hasMultipleTokens = isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana; + hasMultipleTokens = isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana || wallet.type == WalletType.zano; } SendViewModelBase( @@ -60,7 +60,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor currencies = appStore.wallet!.balance.keys.toList(), selectedCryptoCurrency = appStore.wallet!.currency, hasMultipleTokens = isEVMCompatibleChain(appStore.wallet!.type) || - appStore.wallet!.type == WalletType.solana, + appStore.wallet!.type == WalletType.solana || appStore.wallet!.type == WalletType.zano, outputs = ObservableList(), _settingsStore = appStore.settingsStore, fiatFromSettings = appStore.settingsStore.fiatCurrency, @@ -387,12 +387,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return solana! .createSolanaTransactionCredentials(outputs, currency: selectedCryptoCurrency); case WalletType.zano: - final priority = _settingsStore.priority[wallet.type]; - if (priority == null) { - throw Exception('Priority is null for wallet type: ${wallet.type}'); - } - return zano!.createZanoTransactionCreationCredentials( - outputs: outputs, priority: priority, assetType: selectedCryptoCurrency.title); + return zano!.createZanoTransactionCredentials( + outputs: outputs, priority: priority!, currency: selectedCryptoCurrency); default: throw Exception('Unexpected wallet type: ${wallet.type}'); } diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 22e67309c..50b2d6632 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -80,21 +80,18 @@ class CWZano extends Zano { }*/ List getZanoAssets(WalletBase wallet) { - final zanoWallet = wallet as ZanoWallet; - return zanoWallet.zanoAssets; + wallet as ZanoWallet; + return wallet.zanoAssets; } @override - Future addZanoAssetById(WalletBase wallet, String assetId) async => - await (wallet as ZanoWallet).addZanoAssetById(assetId); + Future addZanoAssetById(WalletBase wallet, String assetId) async => await (wallet as ZanoWallet).addZanoAssetById(assetId); @override - Future addZanoAsset(WalletBase wallet, CryptoCurrency token) async => - await (wallet as ZanoWallet).addRemoveZanoAsset(token as ZanoAsset); + Future addZanoAsset(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).addRemoveZanoAsset(token as ZanoAsset); @override - Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token) async => - await (wallet as ZanoWallet).deleteZanoAsset(token as ZanoAsset); + Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).deleteZanoAsset(token as ZanoAsset); @override Future getZanoAsset(WalletBase wallet, String assetId) async { @@ -136,12 +133,20 @@ class CWZano extends Zano { @override WalletCredentials createZanoRestoreWalletFromKeysCredentials( - {required String name, required String spendKey, required String viewKey, required String address, required String password, required String language, required int height}) { - return ZanoRestoreWalletFromKeysCredentials(name: name, spendKey: spendKey, viewKey: viewKey, address: address, password: password, language: language, height: height); + {required String name, + required String spendKey, + required String viewKey, + required String address, + required String password, + required String language, + required int height}) { + return ZanoRestoreWalletFromKeysCredentials( + name: name, spendKey: spendKey, viewKey: viewKey, address: address, password: password, language: language, height: height); } @override - WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}) { + WalletCredentials createZanoRestoreWalletFromSeedCredentials( + {required String name, required String password, required int height, required String mnemonic}) { return ZanoRestoreWalletFromSeedCredentials(name: name, password: password, height: height, mnemonic: mnemonic); } @@ -163,21 +168,22 @@ class CWZano extends Zano { } @override - Object createZanoTransactionCreationCredentials({required List outputs, required TransactionPriority priority, required String assetType}) { + Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}) { return ZanoTransactionCredentials( - outputs: outputs - .map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) - .toList(), - priority: priority as MoneroTransactionPriority, - assetType: assetType); + outputs: outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)) + .toList(), + priority: priority as MoneroTransactionPriority, + currency: currency, + ); } @override @@ -231,10 +237,13 @@ class CWZano extends Zano { // } @override - CryptoCurrency assetOfTransaction(TransactionInfo tx) { - final transaction = tx as ZanoTransactionInfo; - final asset = CryptoCurrency.fromString(transaction.assetType); - return asset; + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction) { + transaction as ZanoTransactionInfo; + if (transaction.tokenSymbol == CryptoCurrency.zano.title) { + return CryptoCurrency.zano; + } + wallet as ZanoWallet; + return wallet.zanoAssets.firstWhere((element) => element.ticker == transaction.tokenSymbol); } String getZanoAssetAddress(CryptoCurrency asset) => (asset as ZanoAsset).assetId; diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index e64c33c25..bd1c0a569 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -104,7 +104,7 @@ abstract class Zano { WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); WalletCredentials createZanoNewWalletCredentials({required String name, String password}); Map getKeys(Object wallet); - Object createZanoTransactionCreationCredentials({required List outputs, required TransactionPriority priority, required String assetType}); + Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); String formatterMoneroAmountToString({required int amount}); double formatterMoneroAmountToDouble({required int amount}); int formatterMoneroParseAmount({required String amount}); @@ -113,7 +113,7 @@ abstract class Zano { void onStartup(); int getTransactionInfoAccountId(TransactionInfo tx); WalletService createZanoWalletService(Box walletInfoSource); - CryptoCurrency assetOfTransaction(TransactionInfo tx); + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); List getZanoAssets(WalletBase wallet); String getZanoAssetAddress(CryptoCurrency asset); Future addZanoAsset(WalletBase wallet, CryptoCurrency token); From 5af75aa7ad8bf0a575e1dec77af23385f1b16b8e Mon Sep 17 00:00:00 2001 From: leo1234 Date: Mon, 18 Mar 2024 20:15:54 +0800 Subject: [PATCH 34/58] transfers for multiple destinations and send all, some refactoring --- cw_zano/lib/api/api_calls.dart | 9 ++++-- cw_zano/lib/api/convert_utf8_to_string.dart | 8 ----- cw_zano/lib/api/model/asset_info.dart | 34 --------------------- cw_zano/lib/api/model/balance.dart | 1 - cw_zano/lib/pending_zano_transaction.dart | 2 +- cw_zano/lib/zano_balance.dart | 16 +++++----- cw_zano/lib/zano_formatter.dart | 1 - cw_zano/lib/zano_transaction_info.dart | 10 +++--- cw_zano/lib/zano_wallet.dart | 21 ++++++------- cw_zano/lib/zano_wallet_service.dart | 22 +++++++------ 10 files changed, 43 insertions(+), 81 deletions(-) delete mode 100644 cw_zano/lib/api/convert_utf8_to_string.dart delete mode 100644 cw_zano/lib/api/model/asset_info.dart diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index 65d80b933..428f5afd0 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -1,6 +1,5 @@ import 'dart:ffi'; -import 'package:cw_zano/api/convert_utf8_to_string.dart'; import 'package:cw_zano/api/structs/utf8_box.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; @@ -55,12 +54,18 @@ typedef _SetPassword = Pointer Function(int hWallet, Pointer passwor typedef _stringFunction = Pointer Function(); class ApiCalls { + static String _convertUTF8ToString({required Pointer pointer}) { + final str = pointer.toDartString(); + calloc.free(pointer); + return str; + } + static String _performApiCall( Pointer Function() apiCall, { List>? pointersToFree, }) { try { - return convertUTF8ToString(pointer: apiCall()); + return _convertUTF8ToString(pointer: apiCall()); } finally { if (pointersToFree != null) { for (var pointer in pointersToFree) { diff --git a/cw_zano/lib/api/convert_utf8_to_string.dart b/cw_zano/lib/api/convert_utf8_to_string.dart deleted file mode 100644 index 41a6b648a..000000000 --- a/cw_zano/lib/api/convert_utf8_to_string.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'dart:ffi'; -import 'package:ffi/ffi.dart'; - -String convertUTF8ToString({required Pointer pointer}) { - final str = pointer.toDartString(); - calloc.free(pointer); - return str; -} \ No newline at end of file diff --git a/cw_zano/lib/api/model/asset_info.dart b/cw_zano/lib/api/model/asset_info.dart deleted file mode 100644 index 85dc23b6d..000000000 --- a/cw_zano/lib/api/model/asset_info.dart +++ /dev/null @@ -1,34 +0,0 @@ -// class AssetInfo { -// final String assetId; -// final int currentSupply; -// final int decimalPoint; -// final String fullName; -// final bool hiddenSupply; -// final String metaInfo; -// final String owner; -// final String ticker; -// final int totalMaxSupply; - -// AssetInfo( -// {required this.assetId, -// required this.currentSupply, -// required this.decimalPoint, -// required this.fullName, -// required this.hiddenSupply, -// required this.metaInfo, -// required this.owner, -// required this.ticker, -// required this.totalMaxSupply}); - -// factory AssetInfo.fromJson(Map json) => AssetInfo( -// assetId: json['asset_id'] as String? ?? '', -// currentSupply: json['current_supply'] as int? ?? 0, -// decimalPoint: json['decimal_point'] as int? ?? 0, -// fullName: json['full_name'] as String? ?? '', -// hiddenSupply: json['hidden_supply'] as bool, -// metaInfo: json['meta_info'] as String? ?? '', -// owner: json['owner'] as String? ?? '', -// ticker: json['ticker'] as String? ?? '', -// totalMaxSupply: json['total_max_supply'] as int? ?? 0, -// ); -// } diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index 0fa6b6460..e3bda0039 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -1,6 +1,5 @@ import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_zano/api/model/asset_info.dart'; import 'package:cw_zano/zano_asset.dart'; class Balance { diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/pending_zano_transaction.dart index 726dda7f4..98f5ec9cc 100644 --- a/cw_zano/lib/pending_zano_transaction.dart +++ b/cw_zano/lib/pending_zano_transaction.dart @@ -16,7 +16,7 @@ class PendingZanoTransaction with PendingTransaction { required this.comment, required this.assetId, required this.ticker, - this.decimalPoint = 12, + this.decimalPoint = ZanoFormatter.defaultDecimalPoint, required this.amount, }); diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/zano_balance.dart index c1566a81c..53b4bdc43 100644 --- a/cw_zano/lib/zano_balance.dart +++ b/cw_zano/lib/zano_balance.dart @@ -1,20 +1,18 @@ -import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/balance.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_amount_format.dart'; +import 'package:cw_zano/zano_formatter.dart'; class ZanoBalance extends Balance { final int total; final int unlocked; - ZanoBalance({required this.total, required this.unlocked}): super(unlocked, total-unlocked); + final int decimalPoint; + ZanoBalance({required this.total, required this.unlocked, required this.decimalPoint}) : super(unlocked, total - unlocked); @override - String get formattedAdditionalBalance => AmountConverter.amountIntToString(CryptoCurrency.zano, total-unlocked); + String get formattedAdditionalBalance => ZanoFormatter.intAmountToString(total - unlocked, decimalPoint); @override - String get formattedAvailableBalance => AmountConverter.amountIntToString(CryptoCurrency.zano, unlocked); - - @override - String get formattedFrozenBalance => ''; + String get formattedAvailableBalance => ZanoFormatter.intAmountToString(unlocked, decimalPoint); + // @override + // String get formattedFrozenBalance => ''; } diff --git a/cw_zano/lib/zano_formatter.dart b/cw_zano/lib/zano_formatter.dart index 2b8d4977d..9c9690c0d 100644 --- a/cw_zano/lib/zano_formatter.dart +++ b/cw_zano/lib/zano_formatter.dart @@ -7,7 +7,6 @@ import 'package:intl/intl.dart'; class ZanoFormatter { static const defaultDecimalPoint = 12; - //static const _moneroAmountLength = 12; static final numberFormat = NumberFormat() ..maximumFractionDigits = defaultDecimalPoint ..minimumFractionDigits = 1; diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/zano_transaction_info.dart index 7f3ad1885..594c2b879 100644 --- a/cw_zano/lib/zano_transaction_info.dart +++ b/cw_zano/lib/zano_transaction_info.dart @@ -1,8 +1,8 @@ import 'package:cw_core/format_amount.dart'; -import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cw_zano/api/model/transfer.dart'; +import 'package:cw_zano/zano_formatter.dart'; class ZanoTransactionInfo extends TransactionInfo { ZanoTransactionInfo({ @@ -18,9 +18,10 @@ class ZanoTransactionInfo extends TransactionInfo { required this.assetId, required this.confirmations, required this.tokenSymbol, + required this.decimalPoint, }); - ZanoTransactionInfo.fromTransfer(Transfer transfer, this.tokenSymbol) + ZanoTransactionInfo.fromTransfer(Transfer transfer, this.tokenSymbol, this.decimalPoint) : id = transfer.txHash, height = transfer.height, direction = transfer.subtransfers.first.isIncome ? TransactionDirection.incoming : TransactionDirection.outgoing, @@ -44,6 +45,7 @@ class ZanoTransactionInfo extends TransactionInfo { final int fee; final int addressIndex; final int confirmations; + final int decimalPoint; late String recipientAddress; final String tokenSymbol; late String assetId; @@ -51,7 +53,7 @@ class ZanoTransactionInfo extends TransactionInfo { String? key; @override - String amountFormatted() => '${formatAmount(moneroAmountToString(amount: amount))} $tokenSymbol'; + String amountFormatted() => '${formatAmount(ZanoFormatter.intAmountToString(amount, decimalPoint))} $tokenSymbol'; @override String fiatAmount() => _fiatAmount ?? ''; @@ -60,7 +62,7 @@ class ZanoTransactionInfo extends TransactionInfo { void changeFiatAmount(String amount) => _fiatAmount = formatAmount(amount); @override - String feeFormatted() => '${formatAmount(moneroAmountToString(amount: fee))} $feeCurrency'; + String feeFormatted() => '${formatAmount(ZanoFormatter.intAmountToString(fee))} $feeCurrency'; String get feeCurrency => 'ZANO'; } diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 15098366b..f19a10dcf 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -3,7 +3,6 @@ import 'dart:io'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_wallet_utils.dart'; import 'package:cw_core/node.dart'; import 'package:cw_core/pathForWallet.dart'; @@ -77,7 +76,7 @@ abstract class ZanoWalletBase extends WalletBase element.assetId == item.subtransfers.first.assetId).ticker; - return ZanoTransactionInfo.fromTransfer(item, tokenSymbol); + final asset = zanoAssets.firstWhere((element) => element.assetId == item.subtransfers.first.assetId); + return ZanoTransactionInfo.fromTransfer(item, asset.ticker, asset.decimalPoint); } }, ); @@ -229,12 +228,12 @@ abstract class ZanoWalletBase extends WalletBase init(String address) async { - final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${ZanoAsset.zanoAssetsBoxName}"; + final boxName = '${walletInfo.name.replaceAll(' ', '_')}_${ZanoAsset.zanoAssetsBoxName}'; zanoAssetsBox = await CakeHive.openBox(boxName); print( 'assets in box total: ${zanoAssetsBox.length} ${zanoAssetsBox.values} active: ${zanoAssetsBox.values.where((element) => element.enabled).length} ${zanoAssetsBox.values.where((element) => element.enabled)}'); for (final asset in zanoAssetsBox.values) { - if (asset.enabled) balance[asset] = ZanoBalance(total: 0, unlocked: 0); + if (asset.enabled) balance[asset] = ZanoBalance(total: 0, unlocked: 0, decimalPoint: asset.decimalPoint); } await walletAddresses.init(); await walletAddresses.updateAddress(address); @@ -336,11 +335,11 @@ abstract class ZanoWalletBase extends WalletBase Date: Tue, 19 Mar 2024 15:51:08 +0000 Subject: [PATCH 35/58] whitelists, some refactoring --- .../add_remove_assets_whitelist_params.dart | 9 -- cw_zano/lib/api/model/asset_id_params.dart | 9 ++ cw_zano/lib/api/model/balance.dart | 2 +- .../lib/api/model/proxy_to_daemon_params.dart | 13 ++ .../lib/api/model/proxy_to_daemon_result.dart | 13 ++ cw_zano/lib/api/model/transfer_params.dart | 2 +- cw_zano/lib/default_zano_assets.dart | 2 +- .../{ => model}/pending_zano_transaction.dart | 0 cw_zano/lib/{ => model}/zano_asset.dart | 10 ++ cw_zano/lib/{ => model}/zano_balance.dart | 0 .../zano_transaction_creation_exception.dart | 0 .../zano_transaction_credentials.dart | 0 .../{ => model}/zano_transaction_info.dart | 0 .../lib/{api => }/model/zano_wallet_keys.dart | 0 cw_zano/lib/zano_formatter.dart | 25 +++- cw_zano/lib/zano_transaction_history.dart | 2 +- cw_zano/lib/zano_utils.dart | 1 + cw_zano/lib/zano_wallet.dart | 34 +++-- cw_zano/lib/zano_wallet_api.dart | 72 ++++++++-- cw_zano/lib/zano_wallet_service.dart | 4 +- lib/core/address_validator.dart | 6 +- .../screens/dashboard/edit_token_page.dart | 132 ++++++++---------- .../screens/wallet_list/wallet_list_page.dart | 2 + .../dashboard/home_settings_view_model.dart | 6 +- lib/zano/cw_zano.dart | 36 ++--- lib/zano/zano.dart | 20 +-- 26 files changed, 240 insertions(+), 160 deletions(-) delete mode 100644 cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart create mode 100644 cw_zano/lib/api/model/asset_id_params.dart create mode 100644 cw_zano/lib/api/model/proxy_to_daemon_params.dart create mode 100644 cw_zano/lib/api/model/proxy_to_daemon_result.dart rename cw_zano/lib/{ => model}/pending_zano_transaction.dart (100%) rename cw_zano/lib/{ => model}/zano_asset.dart (87%) rename cw_zano/lib/{ => model}/zano_balance.dart (100%) rename cw_zano/lib/{exceptions => model}/zano_transaction_creation_exception.dart (100%) rename cw_zano/lib/{ => model}/zano_transaction_credentials.dart (100%) rename cw_zano/lib/{ => model}/zano_transaction_info.dart (100%) rename cw_zano/lib/{api => }/model/zano_wallet_keys.dart (100%) diff --git a/cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart b/cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart deleted file mode 100644 index 4737427d7..000000000 --- a/cw_zano/lib/api/model/add_remove_assets_whitelist_params.dart +++ /dev/null @@ -1,9 +0,0 @@ -class AddRemoveAssetsWhitelistParams { - final String assetId; - - AddRemoveAssetsWhitelistParams({required this.assetId}); - - Map toJson() => { - 'asset_id': assetId, - }; -} \ No newline at end of file diff --git a/cw_zano/lib/api/model/asset_id_params.dart b/cw_zano/lib/api/model/asset_id_params.dart new file mode 100644 index 000000000..3856f5f4e --- /dev/null +++ b/cw_zano/lib/api/model/asset_id_params.dart @@ -0,0 +1,9 @@ +class AssetIdParams { + final String assetId; + + AssetIdParams({required this.assetId}); + + Map toJson() => { + 'asset_id': assetId, + }; +} \ No newline at end of file diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index e3bda0039..4b40a2f4b 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -1,6 +1,6 @@ import 'package:cw_core/amount_converter.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_zano/zano_asset.dart'; +import 'package:cw_zano/model/zano_asset.dart'; class Balance { final ZanoAsset assetInfo; diff --git a/cw_zano/lib/api/model/proxy_to_daemon_params.dart b/cw_zano/lib/api/model/proxy_to_daemon_params.dart new file mode 100644 index 000000000..328187cfa --- /dev/null +++ b/cw_zano/lib/api/model/proxy_to_daemon_params.dart @@ -0,0 +1,13 @@ +import 'dart:convert'; + +class ProxyToDaemonParams { + final String body; + final String uri; + + ProxyToDaemonParams({required this.body, required this.uri}); + + Map toJson() => { + 'base64_body': base64Encode(utf8.encode(body)), + 'uri': uri, + }; +} diff --git a/cw_zano/lib/api/model/proxy_to_daemon_result.dart b/cw_zano/lib/api/model/proxy_to_daemon_result.dart new file mode 100644 index 000000000..bf8da7c8d --- /dev/null +++ b/cw_zano/lib/api/model/proxy_to_daemon_result.dart @@ -0,0 +1,13 @@ +import 'dart:convert'; + +class ProxyToDaemonResult { + final String body; + final int responseCode; + + ProxyToDaemonResult({required this.body, required this.responseCode}); + + factory ProxyToDaemonResult.fromJson(Map json) => ProxyToDaemonResult( + body: utf8.decode(base64Decode(json['base64_body'] as String? ?? '')), + responseCode: json['response_code'] as int? ?? 0, + ); +} diff --git a/cw_zano/lib/api/model/transfer_params.dart b/cw_zano/lib/api/model/transfer_params.dart index f1df727f5..586d5ddb8 100644 --- a/cw_zano/lib/api/model/transfer_params.dart +++ b/cw_zano/lib/api/model/transfer_params.dart @@ -21,7 +21,7 @@ class TransferParams { Map toJson() => { 'destinations': destinations, - 'fee': fee, + 'fee': fee.toInt(), 'mixin': mixin, 'payment_id': paymentId, 'comment': comment, diff --git a/cw_zano/lib/default_zano_assets.dart b/cw_zano/lib/default_zano_assets.dart index 88c106d16..98f3e58b9 100644 --- a/cw_zano/lib/default_zano_assets.dart +++ b/cw_zano/lib/default_zano_assets.dart @@ -1,5 +1,5 @@ import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_zano/zano_asset.dart'; +import 'package:cw_zano/model/zano_asset.dart'; class DefaultZanoAssets { final List _defaultAssets = [ diff --git a/cw_zano/lib/pending_zano_transaction.dart b/cw_zano/lib/model/pending_zano_transaction.dart similarity index 100% rename from cw_zano/lib/pending_zano_transaction.dart rename to cw_zano/lib/model/pending_zano_transaction.dart diff --git a/cw_zano/lib/zano_asset.dart b/cw_zano/lib/model/zano_asset.dart similarity index 87% rename from cw_zano/lib/zano_asset.dart rename to cw_zano/lib/model/zano_asset.dart index e2e80b450..416d45234 100644 --- a/cw_zano/lib/zano_asset.dart +++ b/cw_zano/lib/model/zano_asset.dart @@ -59,6 +59,16 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { decimals: decimalPoint, ); + // ZanoAsset.copyWithCurrency(CryptoCurrency other, String? icon, String? tag, String? assetId, {bool enabled = false}): + // ZanoAsset(assetId: assetId, ); + // // this.fullName = other.fullName ?? other.title, + // // this.ticker = other.title, + // // this.decimalPoint = other.decimals, + // // this.assetId = assetId, + // // this.iconPath = icon, + // // this.tag = tag, + // // this._enabled = enabled; + ZanoAsset.copyWith(ZanoAsset other, String? icon, String? tag, {String? assetId, bool enabled = false}) : this.fullName = other.fullName, this.ticker = other.ticker, diff --git a/cw_zano/lib/zano_balance.dart b/cw_zano/lib/model/zano_balance.dart similarity index 100% rename from cw_zano/lib/zano_balance.dart rename to cw_zano/lib/model/zano_balance.dart diff --git a/cw_zano/lib/exceptions/zano_transaction_creation_exception.dart b/cw_zano/lib/model/zano_transaction_creation_exception.dart similarity index 100% rename from cw_zano/lib/exceptions/zano_transaction_creation_exception.dart rename to cw_zano/lib/model/zano_transaction_creation_exception.dart diff --git a/cw_zano/lib/zano_transaction_credentials.dart b/cw_zano/lib/model/zano_transaction_credentials.dart similarity index 100% rename from cw_zano/lib/zano_transaction_credentials.dart rename to cw_zano/lib/model/zano_transaction_credentials.dart diff --git a/cw_zano/lib/zano_transaction_info.dart b/cw_zano/lib/model/zano_transaction_info.dart similarity index 100% rename from cw_zano/lib/zano_transaction_info.dart rename to cw_zano/lib/model/zano_transaction_info.dart diff --git a/cw_zano/lib/api/model/zano_wallet_keys.dart b/cw_zano/lib/model/zano_wallet_keys.dart similarity index 100% rename from cw_zano/lib/api/model/zano_wallet_keys.dart rename to cw_zano/lib/model/zano_wallet_keys.dart diff --git a/cw_zano/lib/zano_formatter.dart b/cw_zano/lib/zano_formatter.dart index 9c9690c0d..b96eee235 100644 --- a/cw_zano/lib/zano_formatter.dart +++ b/cw_zano/lib/zano_formatter.dart @@ -12,12 +12,23 @@ class ZanoFormatter { ..minimumFractionDigits = 1; static Decimal _intDivision({required int amount, required BigInt divider}) => (Decimal.fromInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); - static Decimal _bigIntDivision({required BigInt amount, required BigInt divider}) => (Decimal.fromBigInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); + static Decimal _bigIntDivision({required BigInt amount, required BigInt divider}) => + (Decimal.fromBigInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); - static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format(DecimalIntl( - _intDivision(amount: amount, divider: BigInt.from(pow(10, decimalPoint))), - ),); - static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format(DecimalIntl( - _bigIntDivision(amount: amount, divider: BigInt.from(pow(10, decimalPoint))), - ),); + static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format( + DecimalIntl( + _intDivision( + amount: amount, + divider: BigInt.from(pow(10, decimalPoint)), + ), + ), + ).replaceAll(',', ''); + static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format( + DecimalIntl( + _bigIntDivision( + amount: amount, + divider: BigInt.from(pow(10, decimalPoint)), + ), + ), + ).replaceAll(',', ''); } diff --git a/cw_zano/lib/zano_transaction_history.dart b/cw_zano/lib/zano_transaction_history.dart index f2b1125ab..4c6a2d554 100644 --- a/cw_zano/lib/zano_transaction_history.dart +++ b/cw_zano/lib/zano_transaction_history.dart @@ -1,7 +1,7 @@ import 'dart:core'; import 'package:mobx/mobx.dart'; import 'package:cw_core/transaction_history.dart'; -import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; part 'zano_transaction_history.g.dart'; diff --git a/cw_zano/lib/zano_utils.dart b/cw_zano/lib/zano_utils.dart index 4127a96ab..643cf7051 100644 --- a/cw_zano/lib/zano_utils.dart +++ b/cw_zano/lib/zano_utils.dart @@ -1,6 +1,7 @@ import 'dart:convert'; import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/get_address_info_result.dart'; +import 'package:cw_zano/zano_wallet_api.dart'; class ZanoUtils { static bool validateAddress(String address) { diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index f19a10dcf..21bbce3b1 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -15,15 +15,15 @@ import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/transfer.dart'; -import 'package:cw_zano/api/model/zano_wallet_keys.dart'; -import 'package:cw_zano/exceptions/zano_transaction_creation_exception.dart'; -import 'package:cw_zano/pending_zano_transaction.dart'; -import 'package:cw_zano/zano_asset.dart'; -import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/model/zano_wallet_keys.dart'; +import 'package:cw_zano/model/zano_transaction_creation_exception.dart'; +import 'package:cw_zano/model/pending_zano_transaction.dart'; +import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/model/zano_balance.dart'; import 'package:cw_zano/zano_formatter.dart'; -import 'package:cw_zano/zano_transaction_credentials.dart'; +import 'package:cw_zano/model/zano_transaction_credentials.dart'; import 'package:cw_zano/zano_transaction_history.dart'; -import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; import 'package:cw_zano/zano_wallet_api.dart'; import 'package:flutter/material.dart'; @@ -130,7 +130,7 @@ abstract class ZanoWalletBase extends WalletBase createTransaction(Object credentials) async { credentials as ZanoTransactionCredentials; - bool isZano() => credentials.currency == CryptoCurrency.zano; + final isZano = credentials.currency == CryptoCurrency.zano; final outputs = credentials.outputs; final hasMultiDestination = outputs.length > 1; final unlockedBalanceZano = BigInt.from(balance[CryptoCurrency.zano]?.unlocked ?? 0); @@ -138,7 +138,7 @@ abstract class ZanoWalletBase extends WalletBase unlockedBalanceZano) { throw ZanoTransactionCreationException( "You don't have enough coins (required: ${ZanoFormatter.bigIntAmountToString(totalAmount + fee)} ZANO, unlocked ${ZanoFormatter.bigIntAmountToString(unlockedBalanceZano)} ZANO)."); @@ -155,7 +155,7 @@ abstract class ZanoWalletBase extends WalletBase destinations; if (hasMultiDestination) { if (outputs.any((output) => output.sendAll || (output.formattedCryptoAmount ?? 0) <= 0)) { @@ -173,7 +173,7 @@ abstract class ZanoWalletBase extends WalletBase addRemoveZanoAsset(ZanoAsset asset) async { + Future changeZanoAssetAvailability(ZanoAsset asset) async { String? iconPath; try { iconPath = CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()).iconPath; @@ -422,15 +422,13 @@ abstract class ZanoWalletBase extends WalletBase key is ZanoAsset && key.assetId == asset.assetId); } @@ -439,12 +437,12 @@ abstract class ZanoWalletBase extends WalletBase deleteZanoAsset(ZanoAsset asset) async { final result = await removeAssetsWhitelist(asset.assetId); if (result == false) return; - await asset.delete(); + if (asset.isInBox) await asset.delete(); balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); } Future getZanoAsset(String assetId) async { - return null; + return await getAssetInfo(assetId); } // List _getAllTransactions(dynamic _) => diff --git a/cw_zano/lib/zano_wallet_api.dart b/cw_zano/lib/zano_wallet_api.dart index b88948bce..ec4d50246 100644 --- a/cw_zano/lib/zano_wallet_api.dart +++ b/cw_zano/lib/zano_wallet_api.dart @@ -2,12 +2,15 @@ import 'dart:convert'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_zano/api/api_calls.dart'; -import 'package:cw_zano/api/model/add_remove_assets_whitelist_params.dart'; +import 'package:cw_zano/api/model/asset_id_params.dart'; +import 'package:cw_zano/api/model/get_address_info_result.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; import 'package:cw_zano/api/model/get_wallet_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; +import 'package:cw_zano/api/model/proxy_to_daemon_params.dart'; +import 'package:cw_zano/api/model/proxy_to_daemon_result.dart'; import 'package:cw_zano/api/model/transfer.dart'; -import 'package:cw_zano/zano_asset.dart'; +import 'package:cw_zano/model/zano_asset.dart'; import 'package:flutter/foundation.dart'; import 'api/model/store_result.dart'; @@ -47,10 +50,10 @@ mixin ZanoWalletApi { final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); switch (_logType) { case _LogType.json: - print('get_wallet_info $json'); + debugPrint('get_wallet_info $json'); break; case _LogType.simple: - print('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances}'); + debugPrint('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances}'); } return result; @@ -61,10 +64,11 @@ mixin ZanoWalletApi { final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); switch (_logType) { case _LogType.json: - print('get_wallet_status $json'); + debugPrint('get_wallet_status $json'); break; case _LogType.simple: - print('get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} wallet state: ${status.walletState}'); + debugPrint( + 'get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} wallet state: ${status.walletState}'); } return status; } @@ -91,13 +95,19 @@ mixin ZanoWalletApi { Future> getAssetsWhitelist() async { try { final json = await invokeMethod('assets_whitelist_get', '{}'); - if (_logType == _LogType.json) print('assets_whitelist_get $json'); + /*if (_logType == _LogType.json)*/ debugPrint('assets_whitelist_get $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); - final assets = map?['result']?['result']?['assets'] as List?; - final result = assets?.map((e) => ZanoAsset.fromJson(e as Map)).toList(); - if (_logType == _LogType.simple) print('assets_whitelist_get got ${result?.length ?? 0} assets: $result'); - return result ?? []; + List assets(String type) => + (map?['result']?['result']?[type] as List?)?.map((e) => ZanoAsset.fromJson(e as Map)).toList() ?? []; + final localWhitelist = assets('local_whitelist'); + final globalWhitelist = assets('global_whitelist'); + final ownAssets = assets('own_assets'); + if (_logType == _LogType.simple) + print('assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' + 'global whitelist: ${globalWhitelist.length} ($globalWhitelist); ' + 'own assets: ${ownAssets.length} ($ownAssets)'); + return [...localWhitelist, ...globalWhitelist, ...ownAssets]; } catch (e) { print(e.toString()); return []; @@ -106,7 +116,7 @@ mixin ZanoWalletApi { Future addAssetsWhitelist(String assetId) async { try { - final json = await invokeMethod('assets_whitelist_add', AddRemoveAssetsWhitelistParams(assetId: assetId)); + final json = await invokeMethod('assets_whitelist_add', AssetIdParams(assetId: assetId)); if (_logType == _LogType.json) print('assets_whitelist_add $assetId $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); @@ -126,7 +136,7 @@ mixin ZanoWalletApi { Future removeAssetsWhitelist(String assetId) async { try { - final json = await invokeMethod('assets_whitelist_remove', AddRemoveAssetsWhitelistParams(assetId: assetId)); + final json = await invokeMethod('assets_whitelist_remove', AssetIdParams(assetId: assetId)); if (_logType == _LogType.json) print('assets_whitelist_remove $assetId $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); @@ -138,6 +148,36 @@ mixin ZanoWalletApi { } } + Future _proxyToDaemon(String uri, String body) async { + final json = await invokeMethod('proxy_to_daemon', ProxyToDaemonParams(body: body, uri: uri)); + final map = jsonDecode(json) as Map?; + _checkForErrors(map); + return ProxyToDaemonResult.fromJson(map!['result']['result'] as Map); + } + + Future getAssetInfo(String assetId) async { + final methodName = 'get_asset_info'; + final params = AssetIdParams(assetId: assetId); + final result = await _proxyToDaemon('/json_rpc', '{"method": "$methodName","params": ${jsonEncode(params)}}'); + if (_logType == _LogType.json) print('$methodName $assetId ${result?.body}'); + if (result == null) { + debugPrint('get_asset_info empty result'); + return null; + } + final map = jsonDecode(result.body) as Map?; + if (map!['error'] != null) { + if (_logType == _LogType.simple) print('get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); + return null; + } else if (map['result']!['status']! == 'OK') { + final assetDescriptor = ZanoAsset.fromJson(map['result']!['asset_descriptor']! as Map); + if (_logType == _LogType.simple) print('get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + return assetDescriptor; + } else { + if (_logType == _LogType.simple) print('get_asset_info $assetId status ${map['result']!['status']!}'); + return null; + } + } + Future store() async { try { final json = await invokeMethod('store', '{}'); @@ -153,7 +193,7 @@ mixin ZanoWalletApi { Future> getRecentTxsAndInfo() async { try { final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); - debugPrint('get_recent_txs_and_info $json'); + //debugPrint('get_recent_txs_and_info $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); final transfers = map?['result']?['result']?['transfers'] as List?; @@ -168,6 +208,10 @@ mixin ZanoWalletApi { } } + GetAddressInfoResult getAddressInfo(String address) => GetAddressInfoResult.fromJson( + jsonDecode(ApiCalls.getAddressInfo(address: address)) as Map, + ); + void _checkForErrors(Map? map) { if (map == null) { throw 'empty response'; diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 3a037bff7..92f563a82 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -17,8 +17,8 @@ import 'package:cw_zano/api/exceptions/create_wallet_exception.dart'; import 'package:cw_zano/api/exceptions/restore_from_seed_exception.dart'; import 'package:cw_zano/api/exceptions/wrong_seed_exception.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; -import 'package:cw_zano/zano_asset.dart'; -import 'package:cw_zano/zano_balance.dart'; +import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/model/zano_balance.dart'; import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_wallet.dart'; import 'package:flutter/foundation.dart'; diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 95849e7c9..9407f58f3 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -7,12 +7,12 @@ import 'package:cw_core/erc20_token.dart'; import 'package:cw_zano/zano_utils.dart'; class AddressValidator extends TextValidator { - AddressValidator({required CryptoCurrency type}) + AddressValidator({required CryptoCurrency type, bool skipZanoAddressValidation = false}) : super( errorMessage: S.current.error_text_address, useAdditionalValidation: type == CryptoCurrency.btc ? (String txt) => validateAddress(address: txt, network: BitcoinNetwork.mainnet) - : type == CryptoCurrency.zano + : type == CryptoCurrency.zano && !skipZanoAddressValidation ? ZanoUtils.validateAddress : null, pattern: getPattern(type), @@ -125,6 +125,8 @@ class AddressValidator extends TextValidator { return 'D([1-9a-km-zA-HJ-NP-Z]){33}'; case CryptoCurrency.btcln: return '^(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)'; + case CryptoCurrency.zano: + return r'$.^'; // always false, we use additional validation then default: return '[0-9a-zA-Z]'; } diff --git a/lib/src/screens/dashboard/edit_token_page.dart b/lib/src/screens/dashboard/edit_token_page.dart index dde23184d..dc9e86018 100644 --- a/lib/src/screens/dashboard/edit_token_page.dart +++ b/lib/src/screens/dashboard/edit_token_page.dart @@ -13,7 +13,6 @@ import 'package:cake_wallet/view_model/dashboard/home_settings_view_model.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:cw_zano/zano_asset.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -196,27 +195,12 @@ class _EditTokenPageBodyState extends State { child: PrimaryButton( onPressed: () async { if (_formKey.currentState!.validate() && (!_showDisclaimer || _disclaimerChecked)) { - if (widget.homeSettingsViewModel.walletType == WalletType.zano) { - if (!await widget.homeSettingsViewModel.addAsset(_contractAddressController.text)) { - await showPopUp( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: S.current.error, - alertContent: 'Cannot add asset ${_contractAddressController.text}', - buttonText: S.of(context).ok, - buttonAction: () => Navigator.of(context).pop()); - }); - return; - } - } else { - await widget.homeSettingsViewModel.addToken(Erc20Token( - name: _tokenNameController.text, - symbol: _tokenSymbolController.text, - contractAddress: _contractAddressController.text, - decimal: int.parse(_tokenDecimalController.text), - )); - } + await widget.homeSettingsViewModel.addToken(Erc20Token( + name: _tokenNameController.text, + symbol: _tokenSymbolController.text, + contractAddress: _contractAddressController.text, + decimal: int.parse(_tokenDecimalController.text), + )); } if (context.mounted) { Navigator.pop(context); @@ -240,9 +224,10 @@ class _EditTokenPageBodyState extends State { final token = await widget.homeSettingsViewModel.getToken(_contractAddressController.text); if (token != null) { - if (_tokenNameController.text.isEmpty) _tokenNameController.text = token.name; - if (_tokenSymbolController.text.isEmpty) _tokenSymbolController.text = token.title; - if (_tokenDecimalController.text.isEmpty) _tokenDecimalController.text = token.decimals.toString(); + final isZano = widget.homeSettingsViewModel.walletType == WalletType.zano; + if (_tokenNameController.text.isEmpty || isZano) _tokenNameController.text = token.name; + if (_tokenSymbolController.text.isEmpty || isZano) _tokenSymbolController.text = token.title; + if (_tokenDecimalController.text.isEmpty || isZano) _tokenDecimalController.text = token.decimals.toString(); } } } @@ -273,60 +258,59 @@ class _EditTokenPageBodyState extends State { placeholder: S.of(context).token_contract_address, options: [AddressTextFieldOption.paste], buttonColor: Theme.of(context).hintColor, - validator: AddressValidator(type: widget.homeSettingsViewModel.nativeToken), + // we don't use zano addresses validations here, addresses and asset ids are difference entities + validator: AddressValidator(type: widget.homeSettingsViewModel.nativeToken, skipZanoAddressValidation: true), onPushPasteButton: (_) { _pasteText(); }, ), - if (widget.homeSettingsViewModel.walletType != WalletType.zano) ...[ - const SizedBox(height: 8), - BaseTextFormField( - controller: _tokenNameController, - focusNode: _tokenNameFocusNode, - onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenSymbolFocusNode), - textInputAction: TextInputAction.next, - hintText: S.of(context).token_name, - validator: (text) { - if (text?.isNotEmpty ?? false) { - return null; - } - - return S.of(context).field_required; - }, - ), - const SizedBox(height: 8), - BaseTextFormField( - controller: _tokenSymbolController, - focusNode: _tokenSymbolFocusNode, - onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenDecimalFocusNode), - textInputAction: TextInputAction.next, - hintText: S.of(context).token_symbol, - validator: (text) { - if (text?.isNotEmpty ?? false) { - return null; - } - - return S.of(context).field_required; - }, - ), - const SizedBox(height: 8), - BaseTextFormField( - controller: _tokenDecimalController, - focusNode: _tokenDecimalFocusNode, - textInputAction: TextInputAction.done, - hintText: S.of(context).token_decimal, - validator: (text) { - if (text?.isEmpty ?? true) { - return S.of(context).field_required; - } - if (int.tryParse(text!) == null) { - return S.of(context).invalid_input; - } - + const SizedBox(height: 8), + BaseTextFormField( + controller: _tokenNameController, + focusNode: _tokenNameFocusNode, + onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenSymbolFocusNode), + textInputAction: TextInputAction.next, + hintText: S.of(context).token_name, + validator: (text) { + if (text?.isNotEmpty ?? false) { return null; - }, - ), - ], + } + + return S.of(context).field_required; + }, + ), + const SizedBox(height: 8), + BaseTextFormField( + controller: _tokenSymbolController, + focusNode: _tokenSymbolFocusNode, + onSubmit: (_) => FocusScope.of(context).requestFocus(_tokenDecimalFocusNode), + textInputAction: TextInputAction.next, + hintText: S.of(context).token_symbol, + validator: (text) { + if (text?.isNotEmpty ?? false) { + return null; + } + + return S.of(context).field_required; + }, + ), + const SizedBox(height: 8), + BaseTextFormField( + controller: _tokenDecimalController, + focusNode: _tokenDecimalFocusNode, + textInputAction: TextInputAction.done, + hintText: S.of(context).token_decimal, + validator: (text) { + if (text?.isEmpty ?? true) { + return S.of(context).field_required; + } + if (int.tryParse(text!) == null) { + return S.of(context).invalid_input; + } + + return null; + }, + ), SizedBox(height: 24), ], ), diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index bd100ad58..d5c5953de 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -317,6 +317,8 @@ class WalletListBodyState extends State { return polygonIcon; case WalletType.solana: return solanaIcon; + case WalletType.zano: + return zanoIcon; default: return nonWalletTypeIcon; } diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index 7c9c382ff..0dcae8d81 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -75,7 +75,9 @@ abstract class HomeSettingsViewModelBase with Store { } if (_balanceViewModel.wallet.type == WalletType.zano) { - await zano!.addZanoAsset(_balanceViewModel.wallet, token); + // TODO: assuming that token is Erc20Token + token as Erc20Token; + await zano!.addZanoAssetById(_balanceViewModel.wallet, token.contractAddress); } _updateTokensList(); @@ -150,7 +152,7 @@ abstract class HomeSettingsViewModelBase with Store { } if (_balanceViewModel.wallet.type == WalletType.zano) { - await zano!.addZanoAsset(_balanceViewModel.wallet, token); + await zano!.changeZanoAssetAvailability(_balanceViewModel.wallet, token); } _refreshTokensList(); diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 50b2d6632..5bedb7669 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -51,7 +51,7 @@ part of 'zano.dart'; } }*/ -class CWZanoWalletDetails extends ZanoWalletDetails { +/*class CWZanoWalletDetails extends ZanoWalletDetails { CWZanoWalletDetails(this._wallet); final Object _wallet; @@ -64,14 +64,14 @@ class CWZanoWalletDetails extends ZanoWalletDetails { // return Account(id: acc.id, label: acc.label); // } - @computed - @override - ZanoBalance get balance { - final zanoWallet = _wallet as ZanoWallet; - final balance = zanoWallet.balance; - return ZanoBalance(fullBalance: balance[CryptoCurrency.zano]!.total, unlockedBalance: balance[CryptoCurrency.zano]!.unlocked); - } -} + // @computed + // @override + // ZanoBalance get balance { + // final zanoWallet = _wallet as ZanoWallet; + // final balance = zanoWallet.balance; + // return ZanoBalance(fullBalance: balance[CryptoCurrency.zano]!.total, unlockedBalance: balance[CryptoCurrency.zano]!.unlocked); + // } +}*/ class CWZano extends Zano { /**@override @@ -88,7 +88,7 @@ class CWZano extends Zano { Future addZanoAssetById(WalletBase wallet, String assetId) async => await (wallet as ZanoWallet).addZanoAssetById(assetId); @override - Future addZanoAsset(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).addRemoveZanoAsset(token as ZanoAsset); + Future changeZanoAssetAvailability(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).changeZanoAssetAvailability(token as ZanoAsset); @override Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).deleteZanoAsset(token as ZanoAsset); @@ -105,10 +105,10 @@ class CWZano extends Zano { return zanoWallet.transactionHistory; } - @override - ZanoWalletDetails getZanoWalletDetails(Object wallet) { - return CWZanoWalletDetails(wallet); - } + // @override + // ZanoWalletDetails getZanoWalletDetails(Object wallet) { + // return CWZanoWalletDetails(wallet); + // } @override TransactionPriority getDefaultTransactionPriority() { @@ -186,10 +186,10 @@ class CWZano extends Zano { ); } - @override - String formatterMoneroAmountToString({required int amount}) { - return moneroAmountToString(amount: amount); - } + // @override + // String formatterMoneroAmountToString({required int amount}) { + // return moneroAmountToString(amount: amount); + // } @override double formatterMoneroAmountToDouble({required int amount}) { diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index bd1c0a569..c5517d372 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -1,7 +1,7 @@ import 'package:cake_wallet/utils/language_list.dart'; import 'package:cw_core/wallet_base.dart'; -import 'package:cw_zano/zano_asset.dart'; -import 'package:cw_zano/zano_transaction_credentials.dart'; +import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/model/zano_transaction_credentials.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -19,7 +19,7 @@ import 'package:cw_core/monero_amount_format.dart'; import 'package:cw_core/monero_transaction_priority.dart'; import 'package:cw_zano/zano_wallet_service.dart'; import 'package:cw_zano/zano_wallet.dart'; -import 'package:cw_zano/zano_transaction_info.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; import 'package:cw_zano/mnemonics/english.dart'; part 'cw_zano.dart'; @@ -42,7 +42,7 @@ Zano? zano = CWZano(); // final String address; // } -class ZanoBalance extends Balance { +/*class ZanoBalance extends Balance { ZanoBalance({required this.fullBalance, required this.unlockedBalance}) : formattedFullBalance = zano!.formatterMoneroAmountToString(amount: fullBalance), formattedUnlockedBalance = @@ -67,24 +67,24 @@ class ZanoBalance extends Balance { @override String get formattedAdditionalBalance => formattedFullBalance; -} +}*/ -abstract class ZanoWalletDetails { +/*abstract class ZanoWalletDetails { // FIX-ME: it's abstruct class // @observable // late Account account; // FIX-ME: it's abstruct class @observable late ZanoBalance balance; -} +}*/ abstract class Zano { /**ZanoAccountList getAccountList(Object wallet);*/ TransactionHistoryBase getTransactionHistory(Object wallet); - ZanoWalletDetails getZanoWalletDetails(Object wallet); + //ZanoWalletDetails getZanoWalletDetails(Object wallet); // String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); @@ -105,7 +105,7 @@ abstract class Zano { WalletCredentials createZanoNewWalletCredentials({required String name, String password}); Map getKeys(Object wallet); Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); - String formatterMoneroAmountToString({required int amount}); + // String formatterMoneroAmountToString({required int amount}); double formatterMoneroAmountToDouble({required int amount}); int formatterMoneroParseAmount({required String amount}); // Account getCurrentAccount(Object wallet); @@ -116,7 +116,7 @@ abstract class Zano { CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); List getZanoAssets(WalletBase wallet); String getZanoAssetAddress(CryptoCurrency asset); - Future addZanoAsset(WalletBase wallet, CryptoCurrency token); + Future changeZanoAssetAvailability(WalletBase wallet, CryptoCurrency token); Future addZanoAssetById(WalletBase wallet, String assetId); Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); Future getZanoAsset(WalletBase wallet, String contractAddress); From 9d9fe4a5a64b324644f58bbe08a93c7a9c00c0d6 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 20 Mar 2024 11:17:48 +0000 Subject: [PATCH 36/58] added different digits (decimal points) for formatters, some refactoring --- cw_zano/lib/zano_formatter.dart | 25 ++++-- cw_zano/lib/zano_utils.dart | 2 +- cw_zano/lib/zano_wallet.dart | 2 +- cw_zano/lib/zano_wallet_service.dart | 1 - .../dashboard/transaction_list_item.dart | 2 +- lib/view_model/send/output.dart | 4 +- .../wallet_address_list_view_model.dart | 6 ++ lib/zano/cw_zano.dart | 42 ++------- lib/zano/zano.dart | 90 +------------------ 9 files changed, 42 insertions(+), 132 deletions(-) diff --git a/cw_zano/lib/zano_formatter.dart b/cw_zano/lib/zano_formatter.dart index b96eee235..92851e388 100644 --- a/cw_zano/lib/zano_formatter.dart +++ b/cw_zano/lib/zano_formatter.dart @@ -11,24 +11,35 @@ class ZanoFormatter { ..maximumFractionDigits = defaultDecimalPoint ..minimumFractionDigits = 1; - static Decimal _intDivision({required int amount, required BigInt divider}) => (Decimal.fromInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); static Decimal _bigIntDivision({required BigInt amount, required BigInt divider}) => (Decimal.fromBigInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); - static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format( + static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat + .format( DecimalIntl( - _intDivision( - amount: amount, + _bigIntDivision( + amount: BigInt.from(amount), divider: BigInt.from(pow(10, decimalPoint)), ), ), - ).replaceAll(',', ''); - static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat.format( + ) + .replaceAll(',', ''); + static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat + .format( DecimalIntl( _bigIntDivision( amount: amount, divider: BigInt.from(pow(10, decimalPoint)), ), ), - ).replaceAll(',', ''); + ) + .replaceAll(',', ''); + + static double intAmountToDouble(int amount, [int decimalPoint = defaultDecimalPoint]) => _bigIntDivision( + amount: BigInt.from(amount), + divider: BigInt.from(pow(10, decimalPoint)), + ).toDouble(); + + static int parseAmount(String amount, [int decimalPoint = defaultDecimalPoint]) => + (Decimal.parse(amount) * Decimal.fromBigInt(BigInt.from(10).pow(decimalPoint))).toBigInt().toInt(); } diff --git a/cw_zano/lib/zano_utils.dart b/cw_zano/lib/zano_utils.dart index 643cf7051..57ea72279 100644 --- a/cw_zano/lib/zano_utils.dart +++ b/cw_zano/lib/zano_utils.dart @@ -1,7 +1,7 @@ import 'dart:convert'; + import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/api/model/get_address_info_result.dart'; -import 'package:cw_zano/zano_wallet_api.dart'; class ZanoUtils { static bool validateAddress(String address) { diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 21bbce3b1..f17ea8d6b 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -42,7 +42,6 @@ abstract class ZanoWalletBase extends WalletBase transfers = []; - //String defaultAsssetId = ''; @override ZanoWalletAddresses walletAddresses; @@ -200,6 +199,7 @@ abstract class ZanoWalletBase extends WalletBase (asset as ZanoAsset).assetId; + + @override + String getAddress(WalletBase wallet) => (wallet as ZanoWallet).walletAddresses.address; } diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index c5517d372..91d8edb96 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/utils/language_list.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_zano/model/zano_asset.dart'; import 'package:cw_zano/model/zano_transaction_credentials.dart'; +import 'package:cw_zano/zano_formatter.dart'; import 'package:mobx/mobx.dart'; import 'package:flutter/foundation.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -26,68 +27,8 @@ part 'cw_zano.dart'; Zano? zano = CWZano(); -// class Account { -// Account({required this.id, required this.label}); -// final int id; -// final String label; -// } - -// class Subaddress { -// Subaddress({ -// required this.id, -// required this.label, -// required this.address}); -// final int id; -// final String label; -// final String address; -// } - -/*class ZanoBalance extends Balance { - ZanoBalance({required this.fullBalance, required this.unlockedBalance}) - : formattedFullBalance = zano!.formatterMoneroAmountToString(amount: fullBalance), - formattedUnlockedBalance = - zano!.formatterMoneroAmountToString(amount: unlockedBalance), - super(unlockedBalance, fullBalance); - - ZanoBalance.fromString( - {required this.formattedFullBalance, - required this.formattedUnlockedBalance}) - : fullBalance = zano!.formatterMoneroParseAmount(amount: formattedFullBalance), - unlockedBalance = zano!.formatterMoneroParseAmount(amount: formattedUnlockedBalance), - super(zano!.formatterMoneroParseAmount(amount: formattedUnlockedBalance), - zano!.formatterMoneroParseAmount(amount: formattedFullBalance)); - - final int fullBalance; - final int unlockedBalance; - final String formattedFullBalance; - final String formattedUnlockedBalance; - - @override - String get formattedAvailableBalance => formattedUnlockedBalance; - - @override - String get formattedAdditionalBalance => formattedFullBalance; -}*/ - - -/*abstract class ZanoWalletDetails { - // FIX-ME: it's abstruct class - // @observable - // late Account account; - // FIX-ME: it's abstruct class - @observable - late ZanoBalance balance; -}*/ - abstract class Zano { - /**ZanoAccountList getAccountList(Object wallet);*/ - TransactionHistoryBase getTransactionHistory(Object wallet); - - //ZanoWalletDetails getZanoWalletDetails(Object wallet); - - // String getTransactionAddress(Object wallet, int accountIndex, int addressIndex); - TransactionPriority getDefaultTransactionPriority(); TransactionPriority deserializeMoneroTransactionPriority({required int raw}); List getTransactionPriorities(); @@ -105,12 +46,8 @@ abstract class Zano { WalletCredentials createZanoNewWalletCredentials({required String name, String password}); Map getKeys(Object wallet); Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); - // String formatterMoneroAmountToString({required int amount}); - double formatterMoneroAmountToDouble({required int amount}); - int formatterMoneroParseAmount({required String amount}); - // Account getCurrentAccount(Object wallet); - // void setCurrentAccount(Object wallet, int id, String label); - void onStartup(); + double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency}); + int formatterParseAmount({required String amount, required CryptoCurrency currency}); int getTransactionInfoAccountId(TransactionInfo tx); WalletService createZanoWalletService(Box walletInfoSource); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); @@ -120,24 +57,5 @@ abstract class Zano { Future addZanoAssetById(WalletBase wallet, String assetId); Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); Future getZanoAsset(WalletBase wallet, String contractAddress); + String getAddress(WalletBase wallet); } - -// abstract class MoneroSubaddressList { -// ObservableList get subaddresses; -// void update(Object wallet, {required int accountIndex}); -// void refresh(Object wallet, {required int accountIndex}); -// List getAll(Object wallet); -// Future addSubaddress(Object wallet, {required int accountIndex, required String label}); -// Future setLabelSubaddress(Object wallet, -// {required int accountIndex, required int addressIndex, required String label}); -// } - -// abstract class ZanoAccountList { -// ObservableList get accounts; -// void update(Object wallet); -// void refresh(Object wallet); -// List getAll(Object wallet); -// Future addAccount(Object wallet, {required String label}); -// Future setLabelAccount(Object wallet, {required int accountIndex, required String label}); -// } - From 42731fcdcb22abf9491b4ff86903dcdaf7cc6684 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 3 Apr 2024 15:14:53 +0000 Subject: [PATCH 37/58] open, create, restore wallet refactoring; whitelists --- cw_zano/lib/api/api_calls.dart | 5 +- cw_zano/lib/api/consts.dart | 1 + .../exceptions/already_exists_exception.dart | 6 - cw_zano/lib/api/exceptions/api_exception.dart | 9 - .../exceptions/create_wallet_exception.dart | 7 - .../restore_from_seed_exception.dart | 5 - .../api/exceptions/transfer_exception.dart | 5 - .../wallet_restore_from_keys_exception.dart | 5 - .../api/exceptions/wrong_seed_exception.dart | 6 - cw_zano/lib/api/model/balance.dart | 4 +- cw_zano/lib/api/utf8.dart | 25 ++ cw_zano/lib/api/{structs => }/utf8_box.dart | 0 cw_zano/lib/default_zano_assets.dart | 33 --- .../lib/model/pending_zano_transaction.dart | 34 +-- cw_zano/lib/model/zano_asset.dart | 12 +- cw_zano/lib/zano_wallet.dart | 191 +++++++++----- cw_zano/lib/zano_wallet_addresses.dart | 54 +--- cw_zano/lib/zano_wallet_api.dart | 245 ++++++++++++++---- cw_zano/lib/zano_wallet_exceptions.dart | 15 ++ cw_zano/lib/zano_wallet_service.dart | 177 ++----------- lib/core/address_validator.dart | 6 +- .../dashboard/home_settings_view_model.dart | 14 - lib/view_model/send/send_view_model.dart | 9 +- lib/zano/cw_zano.dart | 4 +- 24 files changed, 394 insertions(+), 478 deletions(-) delete mode 100644 cw_zano/lib/api/exceptions/already_exists_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/api_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/create_wallet_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/restore_from_seed_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/transfer_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart delete mode 100644 cw_zano/lib/api/exceptions/wrong_seed_exception.dart create mode 100644 cw_zano/lib/api/utf8.dart rename cw_zano/lib/api/{structs => }/utf8_box.dart (100%) delete mode 100644 cw_zano/lib/default_zano_assets.dart create mode 100644 cw_zano/lib/zano_wallet_exceptions.dart diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index 428f5afd0..23a76b6e1 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -1,6 +1,7 @@ import 'dart:ffi'; -import 'package:cw_zano/api/structs/utf8_box.dart'; +import 'package:cw_zano/api/utf8.dart'; +import 'package:cw_zano/api/utf8_box.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; @@ -55,7 +56,7 @@ typedef _stringFunction = Pointer Function(); class ApiCalls { static String _convertUTF8ToString({required Pointer pointer}) { - final str = pointer.toDartString(); + final str = pointer.toDartStringAllowingMalformed(); calloc.free(pointer); return str; } diff --git a/cw_zano/lib/api/consts.dart b/cw_zano/lib/api/consts.dart index 06c3b314b..f3c64f648 100644 --- a/cw_zano/lib/api/consts.dart +++ b/cw_zano/lib/api/consts.dart @@ -1,4 +1,5 @@ class Consts { static const errorWrongSeed = 'WRONG_SEED'; static const errorAlreadyExists = 'ALREADY_EXISTS'; + static const errorWalletWrongId = 'WALLET_WRONG_ID'; } \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/already_exists_exception.dart b/cw_zano/lib/api/exceptions/already_exists_exception.dart deleted file mode 100644 index a6d00fef9..000000000 --- a/cw_zano/lib/api/exceptions/already_exists_exception.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'package:cw_zano/api/consts.dart'; -import 'package:cw_zano/api/exceptions/api_exception.dart'; - -class AlreadyExistsException extends ApiException { - AlreadyExistsException(String message): super(Consts.errorAlreadyExists, message); -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/api_exception.dart b/cw_zano/lib/api/exceptions/api_exception.dart deleted file mode 100644 index e9923942b..000000000 --- a/cw_zano/lib/api/exceptions/api_exception.dart +++ /dev/null @@ -1,9 +0,0 @@ -class ApiException implements Exception { - final String code; - final String message; - - ApiException(this.code, this.message); - - @override - String toString() => '${this.runtimeType}(code: $code, message: $message)'; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/create_wallet_exception.dart b/cw_zano/lib/api/exceptions/create_wallet_exception.dart deleted file mode 100644 index 199f743a0..000000000 --- a/cw_zano/lib/api/exceptions/create_wallet_exception.dart +++ /dev/null @@ -1,7 +0,0 @@ -class CreateWalletException implements Exception { - final String message; - - CreateWalletException(this.message): super(); - @override - String toString() => '${this.runtimeType}(message: $message)'; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/restore_from_seed_exception.dart b/cw_zano/lib/api/exceptions/restore_from_seed_exception.dart deleted file mode 100644 index 3319cdaf1..000000000 --- a/cw_zano/lib/api/exceptions/restore_from_seed_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'package:cw_zano/api/exceptions/api_exception.dart'; - -class RestoreFromSeedException extends ApiException { - RestoreFromSeedException(String code, String message): super(code, message); -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/transfer_exception.dart b/cw_zano/lib/api/exceptions/transfer_exception.dart deleted file mode 100644 index d263ff646..000000000 --- a/cw_zano/lib/api/exceptions/transfer_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -import 'package:cw_zano/api/exceptions/api_exception.dart'; - -class TransferException extends ApiException { - TransferException(String code, String message): super(code, message); -} diff --git a/cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart b/cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart deleted file mode 100644 index c6b6c6ef7..000000000 --- a/cw_zano/lib/api/exceptions/wallet_restore_from_keys_exception.dart +++ /dev/null @@ -1,5 +0,0 @@ -class WalletRestoreFromKeysException implements Exception { - WalletRestoreFromKeysException({required this.message}); - - final String message; -} \ No newline at end of file diff --git a/cw_zano/lib/api/exceptions/wrong_seed_exception.dart b/cw_zano/lib/api/exceptions/wrong_seed_exception.dart deleted file mode 100644 index 624fc24b9..000000000 --- a/cw_zano/lib/api/exceptions/wrong_seed_exception.dart +++ /dev/null @@ -1,6 +0,0 @@ -import 'package:cw_zano/api/consts.dart'; -import 'package:cw_zano/api/exceptions/api_exception.dart'; - -class WrongSeedException extends ApiException { - WrongSeedException(String message): super(Consts.errorWrongSeed, message); -} \ No newline at end of file diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index 4b40a2f4b..0cafc5759 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -1,5 +1,3 @@ -import 'package:cw_core/amount_converter.dart'; -import 'package:cw_core/crypto_currency.dart'; import 'package:cw_zano/model/zano_asset.dart'; class Balance { @@ -17,7 +15,7 @@ class Balance { required this.unlocked}); @override - String toString() => '$assetInfo: ${AmountConverter.amountIntToString(CryptoCurrency.zano, total)}/${AmountConverter.amountIntToString(CryptoCurrency.zano, unlocked)}'; + String toString() => '$assetInfo: $total/$unlocked'; factory Balance.fromJson(Map json) => Balance( assetInfo: diff --git a/cw_zano/lib/api/utf8.dart b/cw_zano/lib/api/utf8.dart new file mode 100644 index 000000000..fced763cc --- /dev/null +++ b/cw_zano/lib/api/utf8.dart @@ -0,0 +1,25 @@ +import 'dart:convert'; +import 'dart:ffi'; + +import 'package:ffi/ffi.dart'; + +extension Utf8Pointer on Pointer { + String toDartStringAllowingMalformed({int? length}) { + //_ensureNotNullptr('toDartString'); + final codeUnits = cast(); + if (length != null) { + RangeError.checkNotNegative(length, 'length'); + } else { + length = _length(codeUnits); + } + return utf8.decode(codeUnits.asTypedList(length), allowMalformed: true); + } + + static int _length(Pointer codeUnits) { + var length = 0; + while (codeUnits[length] != 0) { + length++; + } + return length; + } +} \ No newline at end of file diff --git a/cw_zano/lib/api/structs/utf8_box.dart b/cw_zano/lib/api/utf8_box.dart similarity index 100% rename from cw_zano/lib/api/structs/utf8_box.dart rename to cw_zano/lib/api/utf8_box.dart diff --git a/cw_zano/lib/default_zano_assets.dart b/cw_zano/lib/default_zano_assets.dart deleted file mode 100644 index 98f3e58b9..000000000 --- a/cw_zano/lib/default_zano_assets.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_zano/model/zano_asset.dart'; - -class DefaultZanoAssets { - final List _defaultAssets = [ - ZanoAsset( - decimalPoint: 12, - fullName: 'Confidential token', - assetId: 'cc4e69455e63f4a581257382191de6856c2156630b3fba0db4bdd73ffcfb36b6', - owner: '32911fabcf90b9731a152d2a3a75fcbb0a46c78e2f502678bae44c3d6823b4ce', - ticker: 'CT', - enabled: false, - ), - ZanoAsset( - decimalPoint: 12, - fullName: '새로운경제', - assetId: 'bb9590162509f956ff79851fb1bc0ced6646f5d5ba7eae847a9f21c92c39437c', - owner: '32911fabcf90b9731a152d2a3a75fcbb0a46c78e2f502678bae44c3d6823b4ce', - ticker: '새로운경제', - enabled: false, - ), - ]; - - List get initialZanoAssets => _defaultAssets.map( - (asset) { - String? iconPath; - try { - iconPath = CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()).iconPath; - } catch (_) {} - return ZanoAsset.copyWith(asset, iconPath, 'ZANO'); - }, - ).toList(); -} diff --git a/cw_zano/lib/model/pending_zano_transaction.dart b/cw_zano/lib/model/pending_zano_transaction.dart index 98f5ec9cc..c63ade6f9 100644 --- a/cw_zano/lib/model/pending_zano_transaction.dart +++ b/cw_zano/lib/model/pending_zano_transaction.dart @@ -1,9 +1,5 @@ -import 'dart:convert'; - import 'package:cw_core/pending_transaction.dart'; -import 'package:cw_zano/api/exceptions/transfer_exception.dart'; import 'package:cw_zano/api/model/destination.dart'; -import 'package:cw_zano/api/model/transfer_params.dart'; import 'package:cw_zano/api/model/transfer_result.dart'; import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_wallet.dart'; @@ -45,33 +41,7 @@ class PendingZanoTransaction with PendingTransaction { @override Future commit() async { - final params = TransferParams( - destinations: destinations, - fee: fee, - mixin: zanoMixinValue, - paymentId: '', - comment: comment, - pushPayer: false, - hideReceiver: true, - ); - final result = await zanoWallet.invokeMethod('transfer', params); - final map = jsonDecode(result); - final resultMap = map['result'] as Map?; - if (resultMap != null) { - final transferResultMap = resultMap['result'] as Map?; - if (transferResultMap != null) { - transferResult = TransferResult.fromJson(transferResultMap); - print('transfer success hash ${transferResult!.txHash}'); - await zanoWallet.fetchTransactions(); - } else { - final errorCode = resultMap['error']['code']; - final code = errorCode is int ? errorCode.toString() : errorCode as String? ?? ''; - final message = resultMap['error']['message'] as String? ?? ''; - print('transfer error $code $message'); - throw TransferException(code, message); - } - } + await zanoWallet.transfer(destinations, fee, comment); + await zanoWallet.fetchTransactions(); } - - } diff --git a/cw_zano/lib/model/zano_asset.dart b/cw_zano/lib/model/zano_asset.dart index 416d45234..c47612c1d 100644 --- a/cw_zano/lib/model/zano_asset.dart +++ b/cw_zano/lib/model/zano_asset.dart @@ -41,7 +41,7 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { this.ticker = '', required this.assetId, this.decimalPoint = ZanoFormatter.defaultDecimalPoint, - bool enabled = true, + bool enabled = false, this.iconPath, this.tag, this.owner = defaultOwner, @@ -59,16 +59,6 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { decimals: decimalPoint, ); - // ZanoAsset.copyWithCurrency(CryptoCurrency other, String? icon, String? tag, String? assetId, {bool enabled = false}): - // ZanoAsset(assetId: assetId, ); - // // this.fullName = other.fullName ?? other.title, - // // this.ticker = other.title, - // // this.decimalPoint = other.decimals, - // // this.assetId = assetId, - // // this.iconPath = icon, - // // this.tag = tag, - // // this._enabled = enabled; - ZanoAsset.copyWith(ZanoAsset other, String? icon, String? tag, {String? assetId, bool enabled = false}) : this.fullName = other.fullName, this.ticker = other.ticker, diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index f17ea8d6b..a3ed43f51 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -10,32 +10,30 @@ import 'package:cw_core/pending_transaction.dart'; import 'package:cw_core/sync_status.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; -import 'package:cw_zano/api/api_calls.dart'; +import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/transfer.dart'; -import 'package:cw_zano/model/zano_wallet_keys.dart'; -import 'package:cw_zano/model/zano_transaction_creation_exception.dart'; import 'package:cw_zano/model/pending_zano_transaction.dart'; import 'package:cw_zano/model/zano_asset.dart'; import 'package:cw_zano/model/zano_balance.dart'; -import 'package:cw_zano/zano_formatter.dart'; +import 'package:cw_zano/model/zano_transaction_creation_exception.dart'; import 'package:cw_zano/model/zano_transaction_credentials.dart'; -import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/model/zano_transaction_info.dart'; +import 'package:cw_zano/model/zano_wallet_keys.dart'; +import 'package:cw_zano/zano_formatter.dart'; +import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; import 'package:cw_zano/zano_wallet_api.dart'; +import 'package:cw_zano/zano_wallet_service.dart'; import 'package:flutter/material.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; -import 'default_zano_assets.dart'; - part 'zano_wallet.g.dart'; -const int zanoMixinValue = 10; - class ZanoWallet = ZanoWalletBase with _$ZanoWallet; abstract class ZanoWalletBase extends WalletBase with Store, ZanoWalletApi { @@ -62,6 +60,7 @@ abstract class ZanoWalletBase extends WalletBase zanoAssetsBox; List get zanoAssets => zanoAssetsBox.values.toList(); + // final Map zanoAssets = {}; //zano_wallet.SyncListener? _listener; // ReactionDisposer? _onAccountChangeReaction; @@ -103,6 +102,66 @@ abstract class ZanoWalletBase extends WalletBase create({required WalletCredentials credentials}) async { + final wallet = ZanoWallet(credentials.walletInfo!); + await wallet.connectToNode(node: Node()); + final path = await pathForWallet(name: credentials.name, type: credentials.walletInfo!.type); + final createWalletResult = await wallet.createWallet(path, credentials.password!); + _parseCreateWalletResult(createWalletResult, wallet); + //await wallet.store(); // TODO: unnecessary here? + await wallet.init(createWalletResult.wi.address); + return wallet; + } + + static Future restore({required ZanoRestoreWalletFromSeedCredentials credentials}) async { + final wallet = ZanoWallet(credentials.walletInfo!); + await wallet.connectToNode(node: Node()); + final path = await pathForWallet(name: credentials.name, type: credentials.walletInfo!.type); + final createWalletResult = await wallet.restoreWalletFromSeed(path, credentials.password!, credentials.mnemonic); + _parseCreateWalletResult(createWalletResult, wallet); + //await wallet.store(); // TODO: unnecessary here? + await wallet.init(createWalletResult.wi.address); + return wallet; + } + + static Future open({required String name, required String password, required WalletInfo walletInfo}) async { + final path = await pathForWallet(name: name, type: walletInfo.type); + final wallet = ZanoWallet(walletInfo); + await wallet.connectToNode(node: Node()); + final createWalletResult = await wallet.loadWallet(path, password); + _parseCreateWalletResult(createWalletResult, wallet); + //await wallet.store(); // TODO: unnecessary here? + await wallet.init(createWalletResult.wi.address); + return wallet; + } + + static void _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) { + wallet.hWallet = result.walletId; + wallet.walletAddresses.address = result.wi.address; + for (final item in result.wi.balances) { + if (item.assetInfo.ticker == 'ZANO') { + wallet.balance[CryptoCurrency.zano] = ZanoBalance( + total: item.total, + unlocked: item.unlocked, + decimalPoint: ZanoFormatter.defaultDecimalPoint, + ); + } else { + for (final asset in wallet.balance.keys) { + if (asset is ZanoAsset && asset.assetId == item.assetInfo.assetId) { + wallet.balance[asset] = ZanoBalance( + total: item.total, + unlocked: item.unlocked, + decimalPoint: asset.decimalPoint, + ); + } + } + } + } + if (result.recentHistory.history != null) { + wallet.transfers = result.recentHistory.history!; + } + } + @override void close() { closeWallet(); @@ -221,6 +280,20 @@ abstract class ZanoWalletBase extends WalletBase result = {}; + for (final item in transfers) { + if (item.subtransfers.first.assetId == zanoAssetId) { + result[item.txHash] = ZanoTransactionInfo.fromTransfer(item, 'ZANO', ZanoFormatter.defaultDecimalPoint); + } else { + if (!zanoAssets.containsKey(item.subtransfers.first.assetId)) { + print('no such asset ${item.subtransfers.first.assetId}'); + } else { + final asset = zanoAssets[item.subtransfers.first.assetId]!; + result[item.txHash] = ZanoTransactionInfo.fromTransfer(item, asset.ticker, asset.decimalPoint); + } + } + } + return result;*/ } catch (e) { print(e); return {}; @@ -237,21 +310,11 @@ abstract class ZanoWalletBase extends WalletBase await save()); } - String loadWallet(String path, String password) { - print('load_wallet path $path password $password'); - final result = ApiCalls.loadWallet(path: path, password: password); - print('load_wallet result $result'); - return result; - } - @override Future renameWalletFiles(String newWalletName) async { final currentWalletPath = await pathForWallet(name: name, type: type); @@ -277,6 +340,8 @@ abstract class ZanoWalletBase extends WalletBase rescan({required int height}) => throw UnimplementedError(); + /*@override Future rescan({required int height}) async { walletInfo.restoreHeight = height; walletInfo.isRecovery = true; @@ -287,25 +352,18 @@ abstract class ZanoWalletBase extends WalletBase save() async { try { - await walletAddresses.updateAddressesInBox(); - await backupWalletFiles(name); await store(); + await walletAddresses.updateAddressesInBox(); } catch (e) { print('Error while saving Zano wallet file ${e.toString()}'); } } - Future setAsRecovered() async { - walletInfo.isRecovery = false; - await walletInfo.save(); - } - - bool _calledOnce = false; int _counter = 0; @override @@ -320,11 +378,12 @@ abstract class ZanoWalletBase extends WalletBase !whitelists.any((element) => element.assetId == key)); + + // matching balances and whitelists + // 1. show only balances available in whitelists + // 2. set whitelists available in balances as 'enabled' ('disabled' by default) for (final item in walletInfo.wi.balances) { if (item.assetInfo.ticker == 'ZANO') { balance[CryptoCurrency.zano] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: ZanoFormatter.defaultDecimalPoint); } else { - for (final asset in balance.keys) { - if (asset is ZanoAsset && asset.assetId == item.assetInfo.assetId) { - balance[asset] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); - } + final asset = zanoAssetsBox.get(item.assetInfo.assetId); + if (asset == null) { + debugPrint('balance for an unknown asset ${item.assetInfo.assetId}'); + continue; } + if (balance.keys.any((element) => element is ZanoAsset && element.assetId == item.assetInfo.assetId)) { + balance[balance.keys.firstWhere((element) => element is ZanoAsset && element.assetId == item.assetInfo.assetId)] = + ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); + } else { + balance[asset] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); + } + //balance[asset] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); + asset.enabled = true; } } + // removing balances for assets missing in wallet info balances (in case they were removed for some reason) + balance.removeWhere( + (key, _) => + key != CryptoCurrency.zano && !walletInfo.wi.balances.any((element) => element.assetInfo.assetId == (key as ZanoAsset).assetId), + ); - //await getAssetsWhitelist(); - if (!_calledOnce) { - //await addAssetsWhitelist('00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff'); - //await removeAssetsWhitelist('cc4e69455e63f4a581257382191de6856c2156630b3fba0db4bdd73ffcfb36b6'); - //await removeAssetsWhitelist('bb9590162509f956ff79851fb1bc0ced6646f5d5ba7eae847a9f21c92c39437c'); - //await removeAssetsWhitelist(''); - _calledOnce = true; - } else { - await getAssetsWhitelist(); - } - // if (++_counter >= 10) { - // await getAssetsWhitelist(); - // _counter = 0; - // } + //if (_counter++ % 10 == 0) await _askForUpdateTransactionHistory(); } }); } catch (e) { @@ -387,14 +457,6 @@ abstract class ZanoWalletBase extends WalletBase addZanoAssetById(String assetId) async { if (zanoAssetsBox.containsKey(assetId)) { throw 'zano asset with id $assetId already added'; @@ -407,8 +469,9 @@ abstract class ZanoWalletBase extends WalletBase element.title.toUpperCase() == assetDescriptor.title.toUpperCase()).iconPath; } catch (_) {} + // TODO: copywith two times. was it intended final asset = ZanoAsset.copyWith(assetDescriptor, iconPath, 'ZANO', assetId: assetId, enabled: true); - await zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); + zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); balance[asset] = ZanoBalance(total: 0, unlocked: 0, decimalPoint: asset.decimalPoint); return asset; } @@ -418,7 +481,7 @@ abstract class ZanoWalletBase extends WalletBase element.title.toUpperCase() == asset.title.toUpperCase()).iconPath; } catch (_) {} - await zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); + zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); if (asset.enabled) { final assetDescriptor = await addAssetsWhitelist(asset.assetId); if (assetDescriptor == null) { @@ -460,12 +523,8 @@ abstract class ZanoWalletBase extends WalletBase with Store {*/ abstract class ZanoWalletAddressesBase extends WalletAddresses with Store { ZanoWalletAddressesBase(WalletInfo walletInfo) : address = '', @@ -16,24 +15,10 @@ abstract class ZanoWalletAddressesBase extends WalletAddresses with Store { @observable String address; - // @override - /**@observable - Account? account;*/ - - /**@observable - Subaddress? subaddress;*/ - - /**ZanoSubaddressList subaddressList;*/ - - /**ZanoAccountList accountList;*/ - @override Future init() async { - /*accountList.update(); - account = accountList.accounts.first;*/ - /**updateSubaddressList(accountIndex: account?.id ?? 0);*/ - //address = walletInfo.address; - //await updateAddressesInBox(); + address = walletInfo.address; + await updateAddressesInBox(); } Future updateAddress(String address) async { @@ -44,46 +29,11 @@ abstract class ZanoWalletAddressesBase extends WalletAddresses with Store { @override Future updateAddressesInBox() async { try { - /**final _subaddressList = ZanoSubaddressList();*/ - addressesMap.clear(); addressesMap[address] = ''; await saveAddressesInBox(); - - /*accountList.accounts.forEach((account) { - _subaddressList.update(accountIndex: account.id); - _subaddressList.subaddresses.forEach((subaddress) { - addressesMap[subaddress.address] = subaddress.label; - }); - }); - - await saveAddressesInBox();*/ } catch (e) { print(e.toString()); } } - - // bool validate() { - // accountList.update(); - // final accountListLength = accountList.accounts.length ?? 0; - - // if (accountListLength <= 0) { - // return false; - // } - - // /**subaddressList.update(accountIndex: accountList.accounts.first.id); - // final subaddressListLength = subaddressList.subaddresses.length ?? 0; - - // if (subaddressListLength <= 0) { - // return false; - // }*/ - - // return true; - // } - - /*void updateSubaddressList({required int accountIndex}) { - subaddressList.update(accountIndex: accountIndex); - subaddress = subaddressList.subaddresses.first; - address = subaddress!.address; - }*/ } diff --git a/cw_zano/lib/zano_wallet_api.dart b/cw_zano/lib/zano_wallet_api.dart index ec4d50246..af26c6958 100644 --- a/cw_zano/lib/zano_wallet_api.dart +++ b/cw_zano/lib/zano_wallet_api.dart @@ -1,8 +1,12 @@ import 'dart:convert'; +import 'dart:io'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_zano/api/api_calls.dart'; +import 'package:cw_zano/api/consts.dart'; import 'package:cw_zano/api/model/asset_id_params.dart'; +import 'package:cw_zano/api/model/create_wallet_result.dart'; +import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_address_info_result.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_params.dart'; import 'package:cw_zano/api/model/get_wallet_info_result.dart'; @@ -10,18 +14,25 @@ import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/proxy_to_daemon_params.dart'; import 'package:cw_zano/api/model/proxy_to_daemon_result.dart'; import 'package:cw_zano/api/model/transfer.dart'; +import 'package:cw_zano/api/model/transfer_params.dart'; +import 'package:cw_zano/api/model/transfer_result.dart'; import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/zano_wallet_exceptions.dart'; import 'package:flutter/foundation.dart'; +import 'package:path_provider/path_provider.dart'; import 'api/model/store_result.dart'; -enum _LogType { none, simple, json } +//enum _LogType { none, simple, json } mixin ZanoWalletApi { static const _defaultNodeUri = '195.201.107.230:33336'; static const _statusDelivered = 'delivered'; static const _maxAttempts = 10; - static const _logType = _LogType.simple; + //static const _logType = _LogType.json; + static const _logInfo = true; + static const _logJson = false; + static const int _zanoMixinValue = 10; int _hWallet = 0; @@ -37,43 +48,46 @@ mixin ZanoWalletApi { void closeWallet() => ApiCalls.closeWallet(hWallet: hWallet); - Future setupNode() async => ApiCalls.setupNode( - address: _defaultNodeUri, - login: '', - password: '', - useSSL: false, - isLightWallet: false, - ); - - GetWalletInfoResult getWalletInfo() { - final json = ApiCalls.getWalletInfo(hWallet); - final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); - switch (_logType) { - case _LogType.json: - debugPrint('get_wallet_info $json'); - break; - case _LogType.simple: - debugPrint('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances}'); - } - + Future setupNode() async { + debugPrint('[info] init $_defaultNodeUri'); + final result = ApiCalls.setupNode( + address: _defaultNodeUri, + login: '', + password: '', + useSSL: false, + isLightWallet: false, + ); + debugPrint('[info] init result $result'); return result; } - GetWalletStatusResult getWalletStatus() { + Future getWalletInfo() async { + final json = ApiCalls.getWalletInfo(hWallet); + final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); + if (_logJson) debugPrint('get_wallet_info $json'); + await _writeLog('get_wallet_info', 'get_wallet_info result $json'); + if (_logInfo) + debugPrint('[info] get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances} seed: ${_shorten(result.wiExtended.seed)}'); + return result; + } + + Future getWalletStatus() async { final json = ApiCalls.getWalletStatus(hWallet: hWallet); - final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - switch (_logType) { - case _LogType.json: - debugPrint('get_wallet_status $json'); - break; - case _LogType.simple: - debugPrint( - 'get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} wallet state: ${status.walletState}'); + if (json == Consts.errorWalletWrongId) { + print('wrong wallet id'); + throw ZanoWalletException('Wrong wallet id'); } + final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); + if (_logJson) debugPrint('get_wallet_status $json'); + await _writeLog('get_wallet_status', 'get_wallet_status result $json'); + if (_logInfo) + debugPrint( + '[info] get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); return status; } Future invokeMethod(String methodName, Object params) async { + await _writeLog(methodName, 'invoke method $methodName params: ${jsonEncode(params)} hWallet: $hWallet'); var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); var map = jsonDecode(invokeResult) as Map; @@ -85,17 +99,19 @@ mixin ZanoWalletApi { final result = ApiCalls.tryPullResult(jobId); map = jsonDecode(result) as Map; if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { + await _writeLog(methodName, 'invoke method $methodName result $result'); return result; } } while (++attempts < _maxAttempts); } + await _writeLog(methodName, 'invoke method $methodName result: $invokeResult'); return invokeResult; } Future> getAssetsWhitelist() async { try { final json = await invokeMethod('assets_whitelist_get', '{}'); - /*if (_logType == _LogType.json)*/ debugPrint('assets_whitelist_get $json'); + if (_logJson) debugPrint('assets_whitelist_get $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); List assets(String type) => @@ -103,13 +119,13 @@ mixin ZanoWalletApi { final localWhitelist = assets('local_whitelist'); final globalWhitelist = assets('global_whitelist'); final ownAssets = assets('own_assets'); - if (_logType == _LogType.simple) - print('assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' + if (_logInfo) + print('[info] assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' 'global whitelist: ${globalWhitelist.length} ($globalWhitelist); ' 'own assets: ${ownAssets.length} ($ownAssets)'); return [...localWhitelist, ...globalWhitelist, ...ownAssets]; } catch (e) { - print(e.toString()); + print('[error] assets_whitelist_get $e'); return []; } } @@ -117,19 +133,19 @@ mixin ZanoWalletApi { Future addAssetsWhitelist(String assetId) async { try { final json = await invokeMethod('assets_whitelist_add', AssetIdParams(assetId: assetId)); - if (_logType == _LogType.json) print('assets_whitelist_add $assetId $json'); + if (_logJson) print('assets_whitelist_add $assetId $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); if (map!['result']!['result']!['status']! == 'OK') { final assetDescriptor = ZanoAsset.fromJson(map['result']!['result']!['asset_descriptor']! as Map); - if (_logType == _LogType.simple) print('assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + if (_logInfo) print('[info] assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); return assetDescriptor; } else { - if (_logType == _LogType.simple) print('assets_whitelist_add status ${map['result']!['result']!['status']!}'); + if (_logInfo) print('[info] assets_whitelist_add status ${map['result']!['result']!['status']!}'); return null; } } catch (e) { - print(e.toString()); + print('[error] assets_whitelist_add $e'); return null; } } @@ -137,13 +153,13 @@ mixin ZanoWalletApi { Future removeAssetsWhitelist(String assetId) async { try { final json = await invokeMethod('assets_whitelist_remove', AssetIdParams(assetId: assetId)); - if (_logType == _LogType.json) print('assets_whitelist_remove $assetId $json'); + if (_logJson) print('assets_whitelist_remove $assetId $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); - if (_logType == _LogType.simple) print('assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); + if (_logInfo) print('[info] assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); return (map!['result']!['result']!['status']! == 'OK'); } catch (e) { - print(e.toString()); + print('[error] assets_whitelist_remove $e'); return false; } } @@ -159,21 +175,21 @@ mixin ZanoWalletApi { final methodName = 'get_asset_info'; final params = AssetIdParams(assetId: assetId); final result = await _proxyToDaemon('/json_rpc', '{"method": "$methodName","params": ${jsonEncode(params)}}'); - if (_logType == _LogType.json) print('$methodName $assetId ${result?.body}'); + if (_logJson) print('$methodName $assetId ${result?.body}'); if (result == null) { debugPrint('get_asset_info empty result'); return null; } final map = jsonDecode(result.body) as Map?; if (map!['error'] != null) { - if (_logType == _LogType.simple) print('get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); + if (_logInfo) print('[info] get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); return null; } else if (map['result']!['status']! == 'OK') { final assetDescriptor = ZanoAsset.fromJson(map['result']!['asset_descriptor']! as Map); - if (_logType == _LogType.simple) print('get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + if (_logInfo) print('[info] get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); return assetDescriptor; } else { - if (_logType == _LogType.simple) print('get_asset_info $assetId status ${map['result']!['status']!}'); + if (_logInfo) print('[info] get_asset_info $assetId status ${map['result']!['status']!}'); return null; } } @@ -185,7 +201,7 @@ mixin ZanoWalletApi { _checkForErrors(map); return StoreResult.fromJson(map!['result']['result'] as Map); } catch (e) { - print(e); + print('[error] store $e'); return null; } } @@ -193,17 +209,18 @@ mixin ZanoWalletApi { Future> getRecentTxsAndInfo() async { try { final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); - //debugPrint('get_recent_txs_and_info $json'); + if (_logJson) debugPrint('get_recent_txs_and_info $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); final transfers = map?['result']?['result']?['transfers'] as List?; if (transfers == null) { - print('get_recent_txs_and_info empty transfers'); + if (_logInfo) print('[info] get_recent_txs_and_info empty transfers'); return []; } + if (_logInfo) print('[info] get_recent_txs_and_info transfers: ${transfers.length}'); return transfers.map((e) => Transfer.fromJson(e as Map)).toList(); } catch (e) { - print(e); + print('[error] get_recent_txs_and_info $e'); return []; } } @@ -212,20 +229,140 @@ mixin ZanoWalletApi { jsonDecode(ApiCalls.getAddressInfo(address: address)) as Map, ); + String _shorten(String s) => s.length > 10 ? '${s.substring(0, 4)}...${s.substring(s.length - 4)}' : s; + + Future createWallet(String path, String password) async { + if (_logInfo) debugPrint('[info] create_wallet path $path password ${_shorten(password)}'); + await _writeLog('create_wallet', 'create_wallet path $path password ${_shorten(password)}'); + final json = ApiCalls.createWallet(path: path, password: password); + if (_logJson) debugPrint('create_wallet $json'); + await _writeLog('create_wallet', 'create_wallet result $json'); + final map = jsonDecode(json) as Map?; + if (map?['error'] != null) { + final code = map!['error']!['code'] ?? ''; + final message = map['error']!['message'] ?? ''; + throw ZanoWalletException('Error creating wallet file, $message ($code)'); + } + if (map?['result'] == null) { + throw ZanoWalletException('Error creating wallet file, empty response'); + } + final result = CreateWalletResult.fromJson(map!['result'] as Map); + if (_logInfo) debugPrint('[info] create_wallet ${result.name} ${result.seed}'); + return result; + } + + Future restoreWalletFromSeed(String path, String password, String seed) async { + if (_logInfo) debugPrint('[info] restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); + await _writeLog('restore_wallet', 'restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); + final json = ApiCalls.restoreWalletFromSeed(path: path, password: password, seed: seed); + if (_logJson) debugPrint('restore_wallet $json'); + await _writeLog('restore_wallet', 'restore_wallet result $json'); + final map = jsonDecode(json) as Map?; + if (map?['error'] != null) { + final code = map!['error']!['code'] ?? ''; + final message = map['error']!['message'] ?? ''; + if (code == Consts.errorWrongSeed) { + throw RestoreFromKeysException('Error restoring wallet, wrong seed'); + } else if (code == Consts.errorAlreadyExists) { + throw RestoreFromKeysException('Error restoring wallet, already exists'); + } + throw RestoreFromKeysException('Error restoring wallet, $message ($code)'); + } + if (map?['result'] == null) { + throw RestoreFromKeysException('Error restoring wallet, empty response'); + } + final result = CreateWalletResult.fromJson(map!['result'] as Map); + if (_logInfo) debugPrint('[info] restore_wallet ${result.name} ${result.wi.address}'); + return result; + } + + Future loadWallet(String path, String password, [bool secondAttempt = false]) async { + if (_logInfo) debugPrint('[info] load_wallet path $path password ${_shorten(password)}'); + await _writeLog('load_wallet', 'load_wallet path $path password ${_shorten(password)}'); + final json = ApiCalls.loadWallet(path: path, password: password); + if (_logJson) debugPrint('load_wallet $json'); + await _writeLog('load_wallet', 'load_wallet result $json'); + final map = jsonDecode(json) as Map?; + if (map?['error'] != null) { + final code = map?['error']!['code'] ?? ''; + final message = map?['error']!['message'] ?? ''; + if (code == Consts.errorAlreadyExists && !secondAttempt) { + // TODO: that's not the best solution! + // already connected to this wallet. closing and attempting to reopen + debugPrint('already connected. closing and reopen wallet'); + closeWallet(); + await Future.delayed(const Duration(milliseconds: 500)); + return await loadWallet(path, password, true); + } + throw ZanoWalletException('Error loading wallet, $message ($code)'); + } + if (map?['result'] == null) { + throw ZanoWalletException('Error loading wallet, empty response'); + } + final result = CreateWalletResult.fromJson(map!['result'] as Map); + if (_logInfo) debugPrint('[info] load_wallet ${result.name} ${result.wi.address}'); + return result; + } + + Future transfer(List destinations, BigInt fee, String comment) async { + final params = TransferParams( + destinations: destinations, + fee: fee, + mixin: _zanoMixinValue, + paymentId: '', + comment: comment, + pushPayer: false, + hideReceiver: true, + ); + final json = await invokeMethod('transfer', params); + if (_logJson) debugPrint('transfer $json'); + final map = jsonDecode(json); + final resultMap = map['result'] as Map?; + if (resultMap != null) { + final transferResultMap = resultMap['result'] as Map?; + if (transferResultMap != null) { + final transferResult = TransferResult.fromJson(transferResultMap); + debugPrint('transfer success hash ${transferResult.txHash}'); + return transferResult; + } else { + final errorCode = resultMap['error']['code']; + final code = errorCode is int ? errorCode.toString() : errorCode as String? ?? ''; + final message = resultMap['error']['message'] as String? ?? ''; + debugPrint('transfer error $code $message'); + throw TransferException('Transfer error, $message ($code)'); + } + } + debugPrint('transfer error empty result'); + throw TransferException('Transfer error, empty result'); + } + void _checkForErrors(Map? map) { if (map == null) { - throw 'empty response'; + throw ZanoWalletException('Empty response'); } - final result = map['result']; if (result == null) { - throw 'empty response'; + throw ZanoWalletException('Empty response'); } - if (result['error'] != null) { final code = result['error']!['code'] ?? ''; final message = result['error']!['message'] ?? ''; - throw 'error $code $message'; + throw ZanoWalletException('Error, $message ($code)'); + } + } + + Future _writeLog(String method, String logMessage) async { + final dir = await getDownloadsDirectory(); + final logFile = File('${dir!.path}/$method.txt'); + final date = DateTime.now(); + String twoDigits(int value) => value.toString().padLeft(2, '0'); + String removeCRandLF(String input) => input.replaceAll(RegExp('\r|\n'), ''); + await logFile.writeAsString('${twoDigits(date.hour)}:${twoDigits(date.minute)}:${twoDigits(date.second)} ${removeCRandLF(logMessage)}\n', + mode: FileMode.append); + RegExp regExp = RegExp(r'"fee":\s*(\d+(?:\.\d+)?)'); + final matches = regExp.allMatches(logMessage); + if (matches.isNotEmpty) { + await logFile.writeAsString(' ' + matches.map((element) => '${element.group(0)}').join(', ') + '\n', mode: FileMode.append); } } } diff --git a/cw_zano/lib/zano_wallet_exceptions.dart b/cw_zano/lib/zano_wallet_exceptions.dart new file mode 100644 index 000000000..4e82cb2aa --- /dev/null +++ b/cw_zano/lib/zano_wallet_exceptions.dart @@ -0,0 +1,15 @@ +class ZanoWalletException implements Exception { + final String message; + + ZanoWalletException(this.message); + @override + String toString() => '${this.runtimeType} (message: $message)'; +} + +class RestoreFromKeysException extends ZanoWalletException { + RestoreFromKeysException(String message) : super(message); +} + +class TransferException extends ZanoWalletException { + TransferException(String message): super(message); +} \ No newline at end of file diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index b74511db4..68d2772a5 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -1,9 +1,6 @@ -import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/node.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -11,17 +8,7 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_zano/api/api_calls.dart'; -import 'package:cw_zano/api/consts.dart'; -import 'package:cw_zano/api/exceptions/already_exists_exception.dart'; -import 'package:cw_zano/api/exceptions/create_wallet_exception.dart'; -import 'package:cw_zano/api/exceptions/restore_from_seed_exception.dart'; -import 'package:cw_zano/api/exceptions/wrong_seed_exception.dart'; -import 'package:cw_zano/api/model/create_wallet_result.dart'; -import 'package:cw_zano/model/zano_asset.dart'; -import 'package:cw_zano/model/zano_balance.dart'; -import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_wallet.dart'; -import 'package:flutter/foundation.dart'; import 'package:hive/hive.dart'; class ZanoNewWalletCredentials extends WalletCredentials { @@ -37,7 +24,13 @@ class ZanoRestoreWalletFromSeedCredentials extends WalletCredentials { class ZanoRestoreWalletFromKeysCredentials extends WalletCredentials { ZanoRestoreWalletFromKeysCredentials( - {required String name, required String password, required this.language, required this.address, required this.viewKey, required this.spendKey, required int height}) + {required String name, + required String password, + required this.language, + required this.address, + required this.viewKey, + required this.spendKey, + required int height}) : super(name: name, password: password, height: height); final String language; @@ -61,102 +54,25 @@ class ZanoWalletService extends WalletService create(WalletCredentials credentials, {bool? isTestnet}) async { print('zanowallet service create isTestnet $isTestnet'); // TODO: remove - try { - final wallet = ZanoWallet(credentials.walletInfo!); - await wallet.connectToNode(node: Node()); - final path = await pathForWallet(name: credentials.name, type: getType()); - final json = ApiCalls.createWallet(language: '', path: path, password: credentials.password!); - final map = jsonDecode(json) as Map; - _checkForCreateWalletError(map); - final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); - _parseCreateWalletResult(createWalletResult, wallet); - await wallet.store(); - await wallet.init(createWalletResult.wi.address); - wallet.addInitialAssets(); - return wallet; - } catch (e) { - // TODO: Implement Exception for wallet list service. - print('ZanoWalletsManager Error: ${e.toString()}'); - rethrow; - } + return await ZanoWalletBase.create(credentials: credentials); } @override Future isWalletExit(String name) async { - try { - final path = await pathForWallet(name: name, type: getType()); - return ApiCalls.isWalletExist(path: path); - } catch (e) { - // TODO: Implement Exception for wallet list service. - print('ZanoWalletsManager Error: $e'); - rethrow; - } + final path = await pathForWallet(name: name, type: getType()); + return ApiCalls.isWalletExist(path: path); } @override Future openWallet(String name, String password) async { + final walletInfo = walletInfoSource.values.firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!; try { - final path = await pathForWallet(name: name, type: getType()); - - if (walletFilesExist(path)) { - await repairOldAndroidWallet(name); - } - - final walletInfo = walletInfoSource.values.firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!; - final wallet = ZanoWallet(walletInfo); - await wallet.connectToNode(node: Node()); - final json = wallet.loadWallet(path, password); - debugPrint('load wallet result $json'); - final map = jsonDecode(json) as Map; - _checkForCreateWalletError(map); - final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); - _parseCreateWalletResult(createWalletResult, wallet); - await wallet.store(); - await wallet.init(createWalletResult.wi.address); + final wallet = await ZanoWalletBase.open(name: name, password: password, walletInfo: walletInfo); + saveBackup(name); return wallet; } catch (e) { - rethrow; - // TODO: uncomment after merge - //await restoreWalletFilesFromBackup(name); - } - } - - void _checkForCreateWalletError(Map map) { - if (map['error'] != null) { - final code = map['error']!['code'] ?? ''; - final message = map['error']!['message'] ?? ''; - throw CreateWalletException('Error creating/loading wallet $code $message'); - } - if (map['result'] == null) { - throw CreateWalletException('Error creating/loading wallet, empty response'); - } - } - - void _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) { - hWallet = result.walletId; - wallet.hWallet = hWallet; - wallet.walletAddresses.address = result.wi.address; - for (final item in result.wi.balances) { - if (item.assetInfo.ticker == 'ZANO') { - wallet.balance[CryptoCurrency.zano] = ZanoBalance( - total: item.total, - unlocked: item.unlocked, - decimalPoint: ZanoFormatter.defaultDecimalPoint, - ); - } else { - for (final asset in wallet.balance.keys) { - if (asset is ZanoAsset && asset.assetId == item.assetInfo.assetId) { - wallet.balance[asset] = ZanoBalance( - total: item.total, - unlocked: item.unlocked, - decimalPoint: asset.decimalPoint, - ); - } - } - } - } - if (result.recentHistory.history != null) { - wallet.transfers = result.recentHistory.history!; + await restoreWalletFilesFromBackup(name); + return await ZanoWalletBase.open(name: name, password: password, walletInfo: walletInfo); } } @@ -190,70 +106,11 @@ class ZanoWalletService extends WalletService restoreFromKeys(ZanoRestoreWalletFromKeysCredentials credentials, {bool? isTestnet}) async { - throw UnimplementedError('Restore from keys not implemented'); + throw UnimplementedError(); } @override Future restoreFromSeed(ZanoRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { - try { - final wallet = ZanoWallet(credentials.walletInfo!); - await wallet.connectToNode(node: Node()); - final path = await pathForWallet(name: credentials.name, type: getType()); - final json = ApiCalls.restoreWalletFromSeed(path: path, password: credentials.password!, seed: credentials.mnemonic); - final map = jsonDecode(json) as Map; - if (map['result'] != null) { - final createWalletResult = CreateWalletResult.fromJson(map['result'] as Map); - _parseCreateWalletResult(createWalletResult, wallet); - await wallet.store(); - await wallet.init(createWalletResult.wi.address); - wallet.addInitialAssets(); - return wallet; - } else if (map['error'] != null) { - final code = map['error']['code'] as String; - final message = map['error']['message'] as String; - if (code == Consts.errorWrongSeed) { - throw WrongSeedException(message); - } else if (code == Consts.errorAlreadyExists) { - throw AlreadyExistsException(message); - } - throw RestoreFromSeedException(code, message); - } - throw RestoreFromSeedException('', ''); - } catch (e) { - // TODO: Implement Exception for wallet list service. - print('ZanoWalletsManager Error: $e'); - rethrow; - } - } - - Future repairOldAndroidWallet(String name) async { - try { - if (!Platform.isAndroid) { - return; - } - - final oldAndroidWalletDirPath = await outdatedAndroidPathForWalletDir(name: name); - final dir = Directory(oldAndroidWalletDirPath); - - if (!dir.existsSync()) { - return; - } - - final newWalletDirPath = await pathForWalletDir(name: name, type: getType()); - - dir.listSync().forEach((f) { - final file = File(f.path); - final name = f.path.split('/').last; - final newPath = newWalletDirPath + '/$name'; - final newFile = File(newPath); - - if (!newFile.existsSync()) { - newFile.createSync(); - } - newFile.writeAsBytesSync(file.readAsBytesSync()); - }); - } catch (e) { - print(e.toString()); - } + return ZanoWalletBase.restore(credentials: credentials); } } diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 9407f58f3..5554fbaa0 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -15,10 +15,10 @@ class AddressValidator extends TextValidator { : type == CryptoCurrency.zano && !skipZanoAddressValidation ? ZanoUtils.validateAddress : null, - pattern: getPattern(type), + pattern: getPattern(type, skipZanoAddressValidation), length: getLength(type)); - static String getPattern(CryptoCurrency type) { + static String getPattern(CryptoCurrency type, bool skipZanoAddressValidation) { if (type is Erc20Token) { return '0x[0-9a-zA-Z]'; } @@ -126,7 +126,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.btcln: return '^(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)'; case CryptoCurrency.zano: - return r'$.^'; // always false, we use additional validation then + return skipZanoAddressValidation ? '[0-9a-zA-Z]' : r'$.^'; // always false, we use additional validation then default: return '[0-9a-zA-Z]'; } diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index 0dcae8d81..fe61ddc8e 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -47,20 +47,6 @@ abstract class HomeSettingsViewModelBase with Store { @action void setPinNativeToken(bool value) => _settingsStore.pinNativeTokenAtTop = value; - Future addAsset(String assetId) async { - if (_balanceViewModel.wallet.type == WalletType.zano) { - try { - final asset = await zano!.addZanoAssetById(_balanceViewModel.wallet, assetId); - _updateTokensList(); - _updateFiatPrices(asset); - return true; - } catch (e) { - return false; - } - } - return false; - } - Future addToken(CryptoCurrency token) async { if (_balanceViewModel.wallet.type == WalletType.ethereum) { await ethereum!.addErc20Token(_balanceViewModel.wallet, token); diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 66c84ed1d..dd49fbee8 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -168,7 +168,14 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor PendingTransaction? pendingTransaction; @computed - String get balance => wallet.balance[selectedCryptoCurrency]!.formattedAvailableBalance; + String get balance { + try { + return wallet.balance[selectedCryptoCurrency]!.formattedAvailableBalance; + } catch (e) { + print(e); + return 'err'; + } + } @computed bool get isFiatDisabled => balanceViewModel.isFiatDisabled; diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 524155bac..bc0773f53 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -81,7 +81,7 @@ class CWZano extends Zano { List getZanoAssets(WalletBase wallet) { wallet as ZanoWallet; - return wallet.zanoAssets; + return wallet.zanoAssets.values.toList(); } @override @@ -216,7 +216,7 @@ class CWZano extends Zano { return CryptoCurrency.zano; } wallet as ZanoWallet; - return wallet.zanoAssets.firstWhere((element) => element.ticker == transaction.tokenSymbol); + return wallet.zanoAssets.values.firstWhere((element) => element.ticker == transaction.tokenSymbol); } String getZanoAssetAddress(CryptoCurrency asset) => (asset as ZanoAsset).assetId; From 89b572cae21644b0512c09d6c92b1c95c36ef5e2 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 6 Apr 2024 10:03:11 +0000 Subject: [PATCH 38/58] whitelists --- cw_zano/lib/api/api_calls.dart | 3 +- cw_zano/lib/api/model/balance.dart | 2 + cw_zano/lib/model/zano_asset.dart | 31 ++++--- cw_zano/lib/model/zano_balance.dart | 7 +- cw_zano/lib/zano_wallet.dart | 130 ++++++++++++++++++++++------ cw_zano/lib/zano_wallet_api.dart | 74 ++++++++++------ 6 files changed, 174 insertions(+), 73 deletions(-) diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index 23a76b6e1..338d2e3a7 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -56,7 +56,8 @@ typedef _stringFunction = Pointer Function(); class ApiCalls { static String _convertUTF8ToString({required Pointer pointer}) { - final str = pointer.toDartStringAllowingMalformed(); + final str = pointer.toDartString(); + //final str = pointer.toDartStringAllowingMalformed(); calloc.free(pointer); return str; } diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index 0cafc5759..386bc5173 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -13,6 +13,8 @@ class Balance { required this.awaitingOut, required this.total, required this.unlocked}); + + String get assetId => assetInfo.assetId; @override String toString() => '$assetInfo: $total/$unlocked'; diff --git a/cw_zano/lib/model/zano_asset.dart b/cw_zano/lib/model/zano_asset.dart index c47612c1d..2e183cb41 100644 --- a/cw_zano/lib/model/zano_asset.dart +++ b/cw_zano/lib/model/zano_asset.dart @@ -19,18 +19,20 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { bool _enabled; @HiveField(5) final String? iconPath; + // @HiveField(6) + // final String? tag; @HiveField(6) - final String? tag; - @HiveField(7) final String owner; - @HiveField(8) + @HiveField(7) final String metaInfo; - @HiveField(9) + @HiveField(8) final int currentSupply; - @HiveField(10) + @HiveField(9) final bool hiddenSupply; - @HiveField(11) + @HiveField(10) final int totalMaxSupply; + @HiveField(11) + final bool isInGlobalWhitelist; bool get enabled => _enabled; @@ -43,45 +45,47 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { this.decimalPoint = ZanoFormatter.defaultDecimalPoint, bool enabled = false, this.iconPath, - this.tag, + //this.tag, this.owner = defaultOwner, this.metaInfo = '', this.currentSupply = 0, this.hiddenSupply = false, this.totalMaxSupply = 0, + this.isInGlobalWhitelist = false, }) : _enabled = enabled, super( name: fullName, title: ticker.toUpperCase(), fullName: fullName, - tag: tag, + tag: 'ZANO', iconPath: iconPath, decimals: decimalPoint, ); - ZanoAsset.copyWith(ZanoAsset other, String? icon, String? tag, {String? assetId, bool enabled = false}) + ZanoAsset.copyWith(ZanoAsset other, String? icon, /*String? tag,*/ {String? assetId, bool enabled = false}) : this.fullName = other.fullName, this.ticker = other.ticker, this.assetId = assetId ?? other.assetId, this.decimalPoint = other.decimalPoint, this._enabled = enabled || other.enabled, - this.tag = tag, + //this.tag = tag, this.iconPath = icon, this.currentSupply = other.currentSupply, this.hiddenSupply = other.hiddenSupply, this.metaInfo = other.metaInfo, this.owner = other.owner, this.totalMaxSupply = other.totalMaxSupply, + this.isInGlobalWhitelist = other.isInGlobalWhitelist, super( name: other.name, title: other.ticker.toUpperCase(), fullName: other.name, - tag: tag, + tag: 'ZANO', iconPath: icon, decimals: other.decimalPoint, ); - factory ZanoAsset.fromJson(Map json) => ZanoAsset( + factory ZanoAsset.fromJson(Map json, {bool isInGlobalWhitelist = false}) => ZanoAsset( assetId: json['asset_id'] as String? ?? '', currentSupply: json['current_supply'] as int? ?? 0, decimalPoint: json['decimal_point'] as int? ?? ZanoFormatter.defaultDecimalPoint, @@ -91,9 +95,10 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { owner: json['owner'] as String? ?? '', ticker: json['ticker'] as String? ?? '', totalMaxSupply: json['total_max_supply'] as int? ?? 0, + isInGlobalWhitelist: isInGlobalWhitelist, ); static const typeId = ZANO_ASSET_TYPE_ID; - static const zanoAssetsBoxName = 'zanoAssetsBox'; + static const zanoAssetsBoxName = 'ZanoAssetsBox123'; // TODO: change to normal name static const defaultOwner = '0000000000000000000000000000000000000000000000000000000000000000'; } diff --git a/cw_zano/lib/model/zano_balance.dart b/cw_zano/lib/model/zano_balance.dart index 53b4bdc43..77baeaa63 100644 --- a/cw_zano/lib/model/zano_balance.dart +++ b/cw_zano/lib/model/zano_balance.dart @@ -5,14 +5,13 @@ class ZanoBalance extends Balance { final int total; final int unlocked; final int decimalPoint; - ZanoBalance({required this.total, required this.unlocked, required this.decimalPoint}) : super(unlocked, total - unlocked); + ZanoBalance({required this.total, required this.unlocked, this.decimalPoint = ZanoFormatter.defaultDecimalPoint}) : super(unlocked, total - unlocked); + + ZanoBalance.empty({this.decimalPoint = ZanoFormatter.defaultDecimalPoint}): total = 0, unlocked = 0, super(0, 0); @override String get formattedAdditionalBalance => ZanoFormatter.intAmountToString(total - unlocked, decimalPoint); @override String get formattedAvailableBalance => ZanoFormatter.intAmountToString(unlocked, decimalPoint); - - // @override - // String get formattedFrozenBalance => ''; } diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index a3ed43f51..893cdabf6 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -12,6 +12,7 @@ import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; +import 'package:cw_zano/api/model/balance.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; @@ -31,6 +32,7 @@ import 'package:cw_zano/zano_wallet_service.dart'; import 'package:flutter/material.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; +import 'package:collection/collection.dart'; part 'zano_wallet.g.dart'; @@ -59,6 +61,7 @@ abstract class ZanoWalletBase extends WalletBase zanoAssetsBox; + List whitelists = []; List get zanoAssets => zanoAssetsBox.values.toList(); // final Map zanoAssets = {}; @@ -74,7 +77,7 @@ abstract class ZanoWalletBase extends WalletBase element.enabled).length} ${zanoAssetsBox.values.where((element) => element.enabled)}'); for (final asset in zanoAssetsBox.values) { - if (asset.enabled) balance[asset] = ZanoBalance(total: 0, unlocked: 0, decimalPoint: asset.decimalPoint); + if (asset.enabled) balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); } await walletAddresses.init(); await walletAddresses.updateAddress(address); @@ -392,7 +396,65 @@ abstract class ZanoWalletBase extends WalletBase(Set set1, Set set2) => set1.length == set2.length && set1.every(set2.contains); + + Set getSetFromWhitelist(List whitelist, bool isInGlobalWhitelist) => + whitelist.where((item) => item.isInGlobalWhitelist == isInGlobalWhitelist).map((item) => item.assetId).toSet(); + bool areWhitelistsTheSame(List whitelist1, List whitelist2) { + return areSetsEqual(getSetFromWhitelist(whitelist1, true), getSetFromWhitelist(whitelist2, true)) && + areSetsEqual(getSetFromWhitelist(whitelist1, false), getSetFromWhitelist(whitelist2, false)); + } + + void addOrUpdateBalance(ZanoAsset asset, Balance? _balance) { + if (balance.keys.any((element) => element is ZanoAsset && element.assetId == asset.assetId)) { + balance[balance.keys.firstWhere((element) => element is ZanoAsset && element.assetId == asset.assetId)] = _balance == null + ? ZanoBalance.empty(decimalPoint: asset.decimalPoint) + : ZanoBalance(total: _balance.total, unlocked: _balance.unlocked, decimalPoint: asset.decimalPoint); + } else { + balance[asset] = _balance == null + ? ZanoBalance.empty(decimalPoint: asset.decimalPoint) + : ZanoBalance(total: _balance.total, unlocked: _balance.unlocked, decimalPoint: asset.decimalPoint); + } + } + + final whitelistsFromServer = await getAssetsWhitelist(); + void loadWhitelists() { + debugPrint('loadWhitelists'); + final globalWhitelist = whitelistsFromServer.where((item) => item.isInGlobalWhitelist); + final globalWhitelistIds = globalWhitelist.map((item) => item.assetId).toSet(); + final localWhitelist = whitelistsFromServer.where((item) => !item.isInGlobalWhitelist && !globalWhitelistIds.contains(item.assetId)); + for (final asset in globalWhitelist.followedBy(localWhitelist)) { + // we have two options: + // 1. adding as active (enabled) and adding to balance (even there's no balance for this asset) + // 2. checking if there's a balance, then setting enabled true or false + bool firstOption = 1 == 0; + if (firstOption) { + asset.enabled = true; + zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, _getIconPath(asset.title), enabled: true)); + addOrUpdateBalance(asset, walletInfo.wi.balances.firstWhereOrNull((item) => item.assetId == asset.assetId)); + } else { + final _balance = walletInfo.wi.balances.firstWhereOrNull((item) => item.assetId == asset.assetId); + zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, _getIconPath(asset.title), enabled: _balance != null)); + addOrUpdateBalance(asset, _balance); + } + } + } + + if (this.whitelists.isEmpty) { + if (zanoAssetsBox.isEmpty) loadWhitelists(); + this.whitelists = whitelistsFromServer; + } else if (!areWhitelistsTheSame(whitelistsFromServer, this.whitelists)) { + // // updating whitelists from server + // if (zanoAssetsBox.isEmpty) { + // debugPrint('first loading of whitelists'); + // loadWhitelists(); + // } else { + // debugPrint('later updating of whitelists'); + // } + debugPrint('whitelists changed!'); + if (zanoAssetsBox.isEmpty) loadWhitelists(); + this.whitelists = whitelistsFromServer; + } // TODO: here should be synchronization of whitelists // for (final item in whitelists) { // if (!zanoAssets.containsKey(item.assetId)) zanoAssets[item.assetId] = item; @@ -400,23 +462,33 @@ abstract class ZanoWalletBase extends WalletBase !whitelists.any((element) => element.assetId == key)); + for (final asset in balance.keys) { + if (asset == CryptoCurrency.zano) { + final _balance = walletInfo.wi.balances.firstWhere((element) => element.assetId == zanoAssetId); + balance[asset] = ZanoBalance(total: _balance.total, unlocked: _balance.unlocked); + } else if (asset is ZanoAsset) { + addOrUpdateBalance(asset, walletInfo.wi.balances.firstWhereOrNull((element) => element.assetId == asset.assetId)); + } + } + + /* // matching balances and whitelists // 1. show only balances available in whitelists // 2. set whitelists available in balances as 'enabled' ('disabled' by default) - for (final item in walletInfo.wi.balances) { - if (item.assetInfo.ticker == 'ZANO') { - balance[CryptoCurrency.zano] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: ZanoFormatter.defaultDecimalPoint); + for (final b in walletInfo.wi.balances) { + if (b.assetInfo.ticker == 'ZANO') { + balance[CryptoCurrency.zano] = ZanoBalance(total: b.total, unlocked: b.unlocked, decimalPoint: ZanoFormatter.defaultDecimalPoint); } else { - final asset = zanoAssetsBox.get(item.assetInfo.assetId); + final asset = zanoAssetsBox.get(b.assetInfo.assetId); if (asset == null) { - debugPrint('balance for an unknown asset ${item.assetInfo.assetId}'); + debugPrint('balance for an unknown asset ${b.assetInfo.assetId}'); continue; } - if (balance.keys.any((element) => element is ZanoAsset && element.assetId == item.assetInfo.assetId)) { - balance[balance.keys.firstWhere((element) => element is ZanoAsset && element.assetId == item.assetInfo.assetId)] = - ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); + if (balance.keys.any((element) => element is ZanoAsset && element.assetId == b.assetInfo.assetId)) { + balance[balance.keys.firstWhere((element) => element is ZanoAsset && element.assetId == b.assetInfo.assetId)] = + ZanoBalance(total: b.total, unlocked: b.unlocked, decimalPoint: asset.decimalPoint); } else { - balance[asset] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); + balance[asset] = ZanoBalance(total: b.total, unlocked: b.unlocked, decimalPoint: asset.decimalPoint); } //balance[asset] = ZanoBalance(total: item.total, unlocked: item.unlocked, decimalPoint: asset.decimalPoint); asset.enabled = true; @@ -426,7 +498,7 @@ abstract class ZanoWalletBase extends WalletBase key != CryptoCurrency.zano && !walletInfo.wi.balances.any((element) => element.assetInfo.assetId == (key as ZanoAsset).assetId), - ); + );*/ //if (_counter++ % 10 == 0) await _askForUpdateTransactionHistory(); } @@ -465,29 +537,29 @@ abstract class ZanoWalletBase extends WalletBase element.title.toUpperCase() == assetDescriptor.title.toUpperCase()).iconPath; - } catch (_) {} - // TODO: copywith two times. was it intended - final asset = ZanoAsset.copyWith(assetDescriptor, iconPath, 'ZANO', assetId: assetId, enabled: true); - zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); - balance[asset] = ZanoBalance(total: 0, unlocked: 0, decimalPoint: asset.decimalPoint); + final iconPath = _getIconPath(assetDescriptor.title); + final asset = ZanoAsset.copyWith(assetDescriptor, iconPath, assetId: assetId, enabled: true); + zanoAssetsBox.put(asset.assetId, asset); + balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); return asset; } - Future changeZanoAssetAvailability(ZanoAsset asset) async { - String? iconPath; + String? _getIconPath(String title) { try { - iconPath = CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == asset.title.toUpperCase()).iconPath; + return CryptoCurrency.all.firstWhere((element) => element.title.toUpperCase() == title.toUpperCase()).iconPath; } catch (_) {} - zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath, 'ZANO')); + return null; + } + + Future changeZanoAssetAvailability(ZanoAsset asset) async { + String? iconPath = _getIconPath(asset.title); + zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath)); if (asset.enabled) { final assetDescriptor = await addAssetsWhitelist(asset.assetId); if (assetDescriptor == null) { throw 'error adding zano asset'; } - balance[asset] = ZanoBalance(total: 0, unlocked: 0, decimalPoint: asset.decimalPoint); + balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); } else { final result = await removeAssetsWhitelist(asset.assetId); if (result == false) { @@ -574,4 +646,8 @@ abstract class ZanoWalletBase extends WalletBase ApiCalls.closeWallet(hWallet: hWallet); Future setupNode() async { - debugPrint('[info] init $_defaultNodeUri'); + _info('init $_defaultNodeUri'); final result = ApiCalls.setupNode( address: _defaultNodeUri, login: '', @@ -57,7 +57,7 @@ mixin ZanoWalletApi { useSSL: false, isLightWallet: false, ); - debugPrint('[info] init result $result'); + _info('init result $result'); return result; } @@ -66,8 +66,7 @@ mixin ZanoWalletApi { final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); if (_logJson) debugPrint('get_wallet_info $json'); await _writeLog('get_wallet_info', 'get_wallet_info result $json'); - if (_logInfo) - debugPrint('[info] get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances} seed: ${_shorten(result.wiExtended.seed)}'); + _info('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances} seed: ${_shorten(result.wiExtended.seed)}'); return result; } @@ -81,8 +80,7 @@ mixin ZanoWalletApi { if (_logJson) debugPrint('get_wallet_status $json'); await _writeLog('get_wallet_status', 'get_wallet_status result $json'); if (_logInfo) - debugPrint( - '[info] get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); + _info('get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); return status; } @@ -90,14 +88,25 @@ mixin ZanoWalletApi { await _writeLog(methodName, 'invoke method $methodName params: ${jsonEncode(params)} hWallet: $hWallet'); var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); - var map = jsonDecode(invokeResult) as Map; + Map map; + try { + map = jsonDecode(invokeResult) as Map; + } catch (e) { + debugPrint('exception in parsing json in invokeMethod: $invokeResult'); + rethrow; + } int attempts = 0; if (map['job_id'] != null) { final jobId = map['job_id'] as int; do { await Future.delayed(Duration(milliseconds: attempts < 2 ? 100 : 500)); final result = ApiCalls.tryPullResult(jobId); - map = jsonDecode(result) as Map; + try { + map = jsonDecode(result) as Map; + } catch (e) { + debugPrint('exception in parsing json in invokeMethod: $result'); + rethrow; + } if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { await _writeLog(methodName, 'invoke method $methodName result $result'); return result; @@ -114,13 +123,16 @@ mixin ZanoWalletApi { if (_logJson) debugPrint('assets_whitelist_get $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); - List assets(String type) => - (map?['result']?['result']?[type] as List?)?.map((e) => ZanoAsset.fromJson(e as Map)).toList() ?? []; - final localWhitelist = assets('local_whitelist'); - final globalWhitelist = assets('global_whitelist'); - final ownAssets = assets('own_assets'); + List assets(String type, bool isGlobalWhitelist) => + (map?['result']?['result']?[type] as List?) + ?.map((e) => ZanoAsset.fromJson(e as Map, isInGlobalWhitelist: isGlobalWhitelist)) + .toList() ?? + []; + final localWhitelist = assets('local_whitelist', false); + final globalWhitelist = assets('global_whitelist', true); + final ownAssets = assets('own_assets', false); if (_logInfo) - print('[info] assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' + _info('assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' 'global whitelist: ${globalWhitelist.length} ($globalWhitelist); ' 'own assets: ${ownAssets.length} ($ownAssets)'); return [...localWhitelist, ...globalWhitelist, ...ownAssets]; @@ -138,10 +150,10 @@ mixin ZanoWalletApi { _checkForErrors(map); if (map!['result']!['result']!['status']! == 'OK') { final assetDescriptor = ZanoAsset.fromJson(map['result']!['result']!['asset_descriptor']! as Map); - if (_logInfo) print('[info] assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + _info('assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); return assetDescriptor; } else { - if (_logInfo) print('[info] assets_whitelist_add status ${map['result']!['result']!['status']!}'); + _info('assets_whitelist_add status ${map['result']!['result']!['status']!}'); return null; } } catch (e) { @@ -156,7 +168,7 @@ mixin ZanoWalletApi { if (_logJson) print('assets_whitelist_remove $assetId $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); - if (_logInfo) print('[info] assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); + _info('assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); return (map!['result']!['result']!['status']! == 'OK'); } catch (e) { print('[error] assets_whitelist_remove $e'); @@ -182,14 +194,14 @@ mixin ZanoWalletApi { } final map = jsonDecode(result.body) as Map?; if (map!['error'] != null) { - if (_logInfo) print('[info] get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); + _info('get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); return null; } else if (map['result']!['status']! == 'OK') { final assetDescriptor = ZanoAsset.fromJson(map['result']!['asset_descriptor']! as Map); - if (_logInfo) print('[info] get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + _info('get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); return assetDescriptor; } else { - if (_logInfo) print('[info] get_asset_info $assetId status ${map['result']!['status']!}'); + _info('get_asset_info $assetId status ${map['result']!['status']!}'); return null; } } @@ -214,10 +226,10 @@ mixin ZanoWalletApi { _checkForErrors(map); final transfers = map?['result']?['result']?['transfers'] as List?; if (transfers == null) { - if (_logInfo) print('[info] get_recent_txs_and_info empty transfers'); + _info('get_recent_txs_and_info empty transfers'); return []; } - if (_logInfo) print('[info] get_recent_txs_and_info transfers: ${transfers.length}'); + _info('get_recent_txs_and_info transfers: ${transfers.length}'); return transfers.map((e) => Transfer.fromJson(e as Map)).toList(); } catch (e) { print('[error] get_recent_txs_and_info $e'); @@ -232,7 +244,7 @@ mixin ZanoWalletApi { String _shorten(String s) => s.length > 10 ? '${s.substring(0, 4)}...${s.substring(s.length - 4)}' : s; Future createWallet(String path, String password) async { - if (_logInfo) debugPrint('[info] create_wallet path $path password ${_shorten(password)}'); + _info('create_wallet path $path password ${_shorten(password)}'); await _writeLog('create_wallet', 'create_wallet path $path password ${_shorten(password)}'); final json = ApiCalls.createWallet(path: path, password: password); if (_logJson) debugPrint('create_wallet $json'); @@ -247,12 +259,12 @@ mixin ZanoWalletApi { throw ZanoWalletException('Error creating wallet file, empty response'); } final result = CreateWalletResult.fromJson(map!['result'] as Map); - if (_logInfo) debugPrint('[info] create_wallet ${result.name} ${result.seed}'); + _info('create_wallet ${result.name} ${result.seed}'); return result; } Future restoreWalletFromSeed(String path, String password, String seed) async { - if (_logInfo) debugPrint('[info] restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); + _info('restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); await _writeLog('restore_wallet', 'restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); final json = ApiCalls.restoreWalletFromSeed(path: path, password: password, seed: seed); if (_logJson) debugPrint('restore_wallet $json'); @@ -272,12 +284,12 @@ mixin ZanoWalletApi { throw RestoreFromKeysException('Error restoring wallet, empty response'); } final result = CreateWalletResult.fromJson(map!['result'] as Map); - if (_logInfo) debugPrint('[info] restore_wallet ${result.name} ${result.wi.address}'); + _info('restore_wallet ${result.name} ${result.wi.address}'); return result; } Future loadWallet(String path, String password, [bool secondAttempt = false]) async { - if (_logInfo) debugPrint('[info] load_wallet path $path password ${_shorten(password)}'); + _info('load_wallet path $path password ${_shorten(password)}'); await _writeLog('load_wallet', 'load_wallet path $path password ${_shorten(password)}'); final json = ApiCalls.loadWallet(path: path, password: password); if (_logJson) debugPrint('load_wallet $json'); @@ -300,7 +312,7 @@ mixin ZanoWalletApi { throw ZanoWalletException('Error loading wallet, empty response'); } final result = CreateWalletResult.fromJson(map!['result'] as Map); - if (_logInfo) debugPrint('[info] load_wallet ${result.name} ${result.wi.address}'); + _info('load_wallet ${result.name} ${result.wi.address}'); return result; } @@ -365,4 +377,10 @@ mixin ZanoWalletApi { await logFile.writeAsString(' ' + matches.map((element) => '${element.group(0)}').join(', ') + '\n', mode: FileMode.append); } } + + static void _info(String s) { + if (_logInfo) { + debugPrint('[info] $s'); + } + } } From 54a522ac0b7fef7e68c992d405d8072200dc1da9 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 9 Apr 2024 10:59:43 +0000 Subject: [PATCH 39/58] getting and updating transaction list; restoring a wallet from QR code --- cw_core/lib/crypto_currency.dart | 2 - .../model/get_recent_txs_and_info_params.dart | 1 + .../model/get_recent_txs_and_info_result.dart | 12 ++ cw_zano/lib/api/model/transfer.dart | 49 +++++ cw_zano/lib/model/zano_asset.dart | 9 +- cw_zano/lib/model/zano_transaction_info.dart | 30 ++-- cw_zano/lib/zano_wallet.dart | 167 +++++++++--------- cw_zano/lib/zano_wallet_api.dart | 48 +++-- lib/core/address_validator.dart | 2 + .../restore/restore_from_qr_vm.dart | 3 + .../restore/wallet_restore_from_qr_code.dart | 1 + .../transaction_details_view_model.dart | 5 +- lib/zano/cw_zano.dart | 128 +++----------- lib/zano/zano.dart | 41 ++--- 14 files changed, 251 insertions(+), 247 deletions(-) create mode 100644 cw_zano/lib/api/model/get_recent_txs_and_info_result.dart diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 707a1a2d8..9d27aa5d5 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -104,7 +104,6 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.digibyte, CryptoCurrency.usdtSol, CryptoCurrency.zano, - CryptoCurrency.ctZano, ]; static const havenCurrencies = [ @@ -220,7 +219,6 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const digibyte = CryptoCurrency(title: 'DGB', fullName: 'DigiByte', raw: 90, name: 'dgb', iconPath: 'assets/images/digibyte.png', decimals: 8); static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 91, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static const zano = CryptoCurrency(title: 'ZANO', tag: 'ZANO', fullName: 'Zano', raw: 92, name: 'zano', iconPath: 'assets/images/zano_icon.png', decimals: 12); - static const ctZano = CryptoCurrency(title: 'CT', tag: 'ZANO', fullName: 'Confidential token', raw: 93, name: 'ctzano', iconPath: 'assets/images/zano_icon.png', decimals: 12); static final Map _rawCurrencyMap = diff --git a/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart b/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart index ea90e5003..1ad9fc155 100644 --- a/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart +++ b/cw_zano/lib/api/model/get_recent_txs_and_info_params.dart @@ -9,5 +9,6 @@ class GetRecentTxsAndInfoParams { 'offset': offset, 'count': count, 'update_provision_info': updateProvisionInfo, + 'order': 'FROM_BEGIN_TO_END', }; } \ No newline at end of file diff --git a/cw_zano/lib/api/model/get_recent_txs_and_info_result.dart b/cw_zano/lib/api/model/get_recent_txs_and_info_result.dart new file mode 100644 index 000000000..6b725490c --- /dev/null +++ b/cw_zano/lib/api/model/get_recent_txs_and_info_result.dart @@ -0,0 +1,12 @@ +import 'package:cw_zano/api/model/transfer.dart'; + +class GetRecentTxsAndInfoResult { + final List transfers; + final int lastItemIndex; + final int totalTransfers; + + GetRecentTxsAndInfoResult({required this.transfers, required this.lastItemIndex, required this.totalTransfers}); + + GetRecentTxsAndInfoResult.empty(): this.transfers = [], this.lastItemIndex = 0, this.totalTransfers = 0; + +} \ No newline at end of file diff --git a/cw_zano/lib/api/model/transfer.dart b/cw_zano/lib/api/model/transfer.dart index 5c8b66047..e5d7887ac 100644 --- a/cw_zano/lib/api/model/transfer.dart +++ b/cw_zano/lib/api/model/transfer.dart @@ -1,5 +1,9 @@ import 'package:cw_zano/api/model/employed_entries.dart'; import 'package:cw_zano/api/model/subtransfer.dart'; +import 'package:collection/collection.dart'; +import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; +import 'package:cw_zano/zano_wallet.dart'; class Transfer { final String comment; @@ -66,4 +70,49 @@ class Transfer { txType: json['tx_type'] as int? ?? 0, unlockTime: json['unlock_time'] as int? ?? 0, ); + + //static const String zanoAssetId = 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a'; + + + static Map makeMap(List transfers, Map zanoAssets, int currentDaemonHeight) => Map.fromIterable( + transfers, + key: (item) => (item as Transfer).txHash, + value: (transfer) { + transfer as Transfer; + Subtransfer? single = transfer.subtransfers.singleOrNull; + if (transfer.subtransfers.length == 2) { + final zano = transfer.subtransfers.firstWhereOrNull((element) => element.assetId == ZanoWalletBase.zanoAssetId); + if (zano != null && !zano.isIncome && zano.amount == transfer.fee) { + single = transfer.subtransfers.firstWhere((element) => element.assetId != ZanoWalletBase.zanoAssetId); + } + } + bool isSimple = single != null; + // TODO: for complex transactions we show zano or any other transaction, will fix it later + if (!isSimple) { + single = transfer.subtransfers.firstWhereOrNull((element) => element.assetId == ZanoWalletBase.zanoAssetId) ?? transfer.subtransfers.first; + } + if (single.assetId != ZanoWalletBase.zanoAssetId) { + final asset = zanoAssets[single.assetId]; + if (asset != null) + return ZanoTransactionInfo.fromTransfer( + transfer, + confirmations: currentDaemonHeight - transfer.height, + isIncome: single.isIncome, + assetId: single.assetId, + amount: single.amount, + tokenSymbol: isSimple ? asset.ticker : '*${asset.ticker}', + decimalPoint: asset.decimalPoint, + ); + } + final amount = single.isIncome ? single.amount : single.amount - transfer.fee; + return ZanoTransactionInfo.fromTransfer( + transfer, + confirmations: currentDaemonHeight - transfer.height, + isIncome: single.isIncome, + assetId: single.assetId, + amount: amount, + tokenSymbol: isSimple ? 'ZANO' : '*ZANO', + ); + }, + ); } diff --git a/cw_zano/lib/model/zano_asset.dart b/cw_zano/lib/model/zano_asset.dart index 2e183cb41..902a391ca 100644 --- a/cw_zano/lib/model/zano_asset.dart +++ b/cw_zano/lib/model/zano_asset.dart @@ -43,7 +43,7 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { this.ticker = '', required this.assetId, this.decimalPoint = ZanoFormatter.defaultDecimalPoint, - bool enabled = false, + bool enabled = true, this.iconPath, //this.tag, this.owner = defaultOwner, @@ -62,12 +62,12 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { decimals: decimalPoint, ); - ZanoAsset.copyWith(ZanoAsset other, String? icon, /*String? tag,*/ {String? assetId, bool enabled = false}) + ZanoAsset.copyWith(ZanoAsset other, {String? icon, /*String? tag,*/ String? assetId, bool enabled = true}) : this.fullName = other.fullName, this.ticker = other.ticker, this.assetId = assetId ?? other.assetId, this.decimalPoint = other.decimalPoint, - this._enabled = enabled || other.enabled, + this._enabled = enabled && other.enabled, //this.tag = tag, this.iconPath = icon, this.currentSupply = other.currentSupply, @@ -83,6 +83,7 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { tag: 'ZANO', iconPath: icon, decimals: other.decimalPoint, + enabled: enabled, ); factory ZanoAsset.fromJson(Map json, {bool isInGlobalWhitelist = false}) => ZanoAsset( @@ -99,6 +100,6 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { ); static const typeId = ZANO_ASSET_TYPE_ID; - static const zanoAssetsBoxName = 'ZanoAssetsBox123'; // TODO: change to normal name + static const zanoAssetsBoxName = 'zanoAssetsBox'; static const defaultOwner = '0000000000000000000000000000000000000000000000000000000000000000'; } diff --git a/cw_zano/lib/model/zano_transaction_info.dart b/cw_zano/lib/model/zano_transaction_info.dart index 594c2b879..4fe3a9d89 100644 --- a/cw_zano/lib/model/zano_transaction_info.dart +++ b/cw_zano/lib/model/zano_transaction_info.dart @@ -12,8 +12,6 @@ class ZanoTransactionInfo extends TransactionInfo { required this.date, required this.isPending, required this.amount, - required this.accountIndex, - required this.addressIndex, required this.fee, required this.assetId, required this.confirmations, @@ -21,29 +19,35 @@ class ZanoTransactionInfo extends TransactionInfo { required this.decimalPoint, }); - ZanoTransactionInfo.fromTransfer(Transfer transfer, this.tokenSymbol, this.decimalPoint) + ZanoTransactionInfo.fromTransfer(Transfer transfer, + {required int confirmations, + required bool isIncome, + required String assetId, + required int amount, + this.tokenSymbol = 'ZANO', + this.decimalPoint = ZanoFormatter.defaultDecimalPoint}) : id = transfer.txHash, height = transfer.height, - direction = transfer.subtransfers.first.isIncome ? TransactionDirection.incoming : TransactionDirection.outgoing, + direction = isIncome ? TransactionDirection.incoming : TransactionDirection.outgoing, date = DateTime.fromMillisecondsSinceEpoch(transfer.timestamp * 1000), - isPending = false, - amount = transfer.subtransfers.first.amount, - accountIndex = 0, - addressIndex = 0, + amount = amount, fee = transfer.fee, - confirmations = 1, - assetId = transfer.subtransfers.first.assetId, - recipientAddress = transfer.remoteAddresses.isNotEmpty ? transfer.remoteAddresses.first : ''; + assetId = assetId, + confirmations = confirmations, + isPending = false, + recipientAddress = transfer.remoteAddresses.isNotEmpty ? transfer.remoteAddresses.first : '' { + additionalInfo = { + 'comment': transfer.comment, + }; + } final String id; final int height; final TransactionDirection direction; final DateTime date; - final int accountIndex; final bool isPending; final int amount; final int fee; - final int addressIndex; final int confirmations; final int decimalPoint; late String recipientAddress; diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 893cdabf6..39bfd6171 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -1,13 +1,16 @@ import 'dart:async'; import 'dart:io'; +import 'dart:math'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_transaction_priority.dart'; import 'package:cw_core/monero_wallet_utils.dart'; import 'package:cw_core/node.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; @@ -15,7 +18,9 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_zano/api/model/balance.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/model/destination.dart'; +import 'package:cw_zano/api/model/get_recent_txs_and_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; +import 'package:cw_zano/api/model/subtransfer.dart'; import 'package:cw_zano/api/model/transfer.dart'; import 'package:cw_zano/model/pending_zano_transaction.dart'; import 'package:cw_zano/model/zano_asset.dart'; @@ -28,6 +33,7 @@ import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_transaction_history.dart'; import 'package:cw_zano/zano_wallet_addresses.dart'; import 'package:cw_zano/zano_wallet_api.dart'; +import 'package:cw_zano/zano_wallet_exceptions.dart'; import 'package:cw_zano/zano_wallet_service.dart'; import 'package:flutter/material.dart'; import 'package:hive/hive.dart'; @@ -41,7 +47,7 @@ class ZanoWallet = ZanoWalletBase with _$ZanoWallet; abstract class ZanoWalletBase extends WalletBase with Store, ZanoWalletApi { static const int _autoSaveInterval = 30; - List transfers = []; + //List transfers = []; @override ZanoWalletAddresses walletAddresses; @@ -60,10 +66,12 @@ abstract class ZanoWalletBase extends WalletBase zanoAssetsBox; List whitelists = []; List get zanoAssets => zanoAssetsBox.values.toList(); - // final Map zanoAssets = {}; + */ + Map zanoAssets = {}; //zano_wallet.SyncListener? _listener; // ReactionDisposer? _onAccountChangeReaction; @@ -72,10 +80,16 @@ abstract class ZanoWalletBase extends WalletBase _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) async { wallet.hWallet = result.walletId; _info('setting hWallet = ${result.walletId}'); wallet.walletAddresses.address = result.wi.address; for (final item in result.wi.balances) { - if (item.assetInfo.ticker == 'ZANO') { + if (item.assetInfo.assetId == zanoAssetId) { wallet.balance[CryptoCurrency.zano] = ZanoBalance( total: item.total, unlocked: item.unlocked, ); - } else { - // TODO: here will be always empty! - for (final asset in wallet.balance.keys) { - if (asset is ZanoAsset && asset.assetId == item.assetInfo.assetId) { - wallet.balance[asset] = ZanoBalance( - total: item.total, - unlocked: item.unlocked, - decimalPoint: asset.decimalPoint, - ); - } - } } } if (result.recentHistory.history != null) { - wallet.transfers = result.recentHistory.history!; + final transfers = result.recentHistory.history!; + final transactions = Transfer.makeMap(transfers, wallet.zanoAssets, wallet.currentDaemonHeight); + wallet.transactionHistory.addMany(transactions); + await wallet.transactionHistory.save(); } } @@ -270,34 +276,18 @@ abstract class ZanoWalletBase extends WalletBase> fetchTransactions() async { try { - transfers = await getRecentTxsAndInfo(); - return Map.fromIterable( - transfers, - key: (item) => (item as Transfer).txHash, - value: (item) { - item as Transfer; - if (item.subtransfers.first.assetId == zanoAssetId) { - return ZanoTransactionInfo.fromTransfer(item, 'ZANO', ZanoFormatter.defaultDecimalPoint); - } else { - final asset = zanoAssets.firstWhere((element) => element.assetId == item.subtransfers.first.assetId); - return ZanoTransactionInfo.fromTransfer(item, asset.ticker, asset.decimalPoint); - } - }, - ); - /*final Map result = {}; - for (final item in transfers) { - if (item.subtransfers.first.assetId == zanoAssetId) { - result[item.txHash] = ZanoTransactionInfo.fromTransfer(item, 'ZANO', ZanoFormatter.defaultDecimalPoint); - } else { - if (!zanoAssets.containsKey(item.subtransfers.first.assetId)) { - print('no such asset ${item.subtransfers.first.assetId}'); - } else { - final asset = zanoAssets[item.subtransfers.first.assetId]!; - result[item.txHash] = ZanoTransactionInfo.fromTransfer(item, asset.ticker, asset.decimalPoint); - } - } - } - return result;*/ + final transfers = []; + late GetRecentTxsAndInfoResult result; + bool first = true; + do { + result = await getRecentTxsAndInfo(offset: _lastTxIndex, count: _txChunkSize); + // TODO: remove this, just for debug purposes + if (first && result.transfers.isEmpty) return {}; + first = false; + _lastTxIndex += result.transfers.length; + transfers.addAll(result.transfers); + } while (result.lastItemIndex + 1 < result.totalTransfers); + return Transfer.makeMap(transfers, zanoAssets, currentDaemonHeight); } catch (e) { print(e); return {}; @@ -306,12 +296,12 @@ abstract class ZanoWalletBase extends WalletBase init(String address) async { final boxName = '${walletInfo.name.replaceAll(' ', '_')}_${ZanoAsset.zanoAssetsBoxName}'; - zanoAssetsBox = await CakeHive.openBox(boxName); + /*zanoAssetsBox = await CakeHive.openBox(boxName); print( 'assets in box total: ${zanoAssetsBox.length} ${zanoAssetsBox.values} active: ${zanoAssetsBox.values.where((element) => element.enabled).length} ${zanoAssetsBox.values.where((element) => element.enabled)}'); for (final asset in zanoAssetsBox.values) { if (asset.enabled) balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); - } + }*/ await walletAddresses.init(); await walletAddresses.updateAddress(address); //_setListeners(); @@ -369,6 +359,7 @@ abstract class ZanoWalletBase extends WalletBase startSync() async { @@ -383,6 +374,7 @@ abstract class ZanoWalletBase extends WalletBase(Set set1, Set set2) => set1.length == set2.length && set1.every(set2.contains); + /*bool areSetsEqual(Set set1, Set set2) => set1.length == set2.length && set1.every(set2.contains); Set getSetFromWhitelist(List whitelist, bool isInGlobalWhitelist) => whitelist.where((item) => item.isInGlobalWhitelist == isInGlobalWhitelist).map((item) => item.assetId).toSet(); bool areWhitelistsTheSame(List whitelist1, List whitelist2) { return areSetsEqual(getSetFromWhitelist(whitelist1, true), getSetFromWhitelist(whitelist2, true)) && areSetsEqual(getSetFromWhitelist(whitelist1, false), getSetFromWhitelist(whitelist2, false)); - } + }*/ - void addOrUpdateBalance(ZanoAsset asset, Balance? _balance) { + /*void addOrUpdateBalance(ZanoAsset asset, Balance? _balance) { if (balance.keys.any((element) => element is ZanoAsset && element.assetId == asset.assetId)) { balance[balance.keys.firstWhere((element) => element is ZanoAsset && element.assetId == asset.assetId)] = _balance == null ? ZanoBalance.empty(decimalPoint: asset.decimalPoint) @@ -415,9 +407,9 @@ abstract class ZanoWalletBase extends WalletBase item.isInGlobalWhitelist); @@ -470,16 +462,23 @@ abstract class ZanoWalletBase extends WalletBase element.assetId == asset.assetId)); } } + */ - /* + final assets = await getAssetsWhitelist(); + zanoAssets = {}; + for (final asset in assets) { + final newAsset = ZanoAsset.copyWith(asset, + icon: _getIconPath(asset.title), enabled: walletInfo.wi.balances.any((element) => element.assetId == asset.assetId)); + zanoAssets.putIfAbsent(asset.assetId, () => newAsset); + } // matching balances and whitelists // 1. show only balances available in whitelists // 2. set whitelists available in balances as 'enabled' ('disabled' by default) for (final b in walletInfo.wi.balances) { - if (b.assetInfo.ticker == 'ZANO') { - balance[CryptoCurrency.zano] = ZanoBalance(total: b.total, unlocked: b.unlocked, decimalPoint: ZanoFormatter.defaultDecimalPoint); + if (b.assetId == zanoAssetId) { + balance[CryptoCurrency.zano] = ZanoBalance(total: b.total, unlocked: b.unlocked); } else { - final asset = zanoAssetsBox.get(b.assetInfo.assetId); + final asset = zanoAssets[b.assetId]; if (asset == null) { debugPrint('balance for an unknown asset ${b.assetInfo.assetId}'); continue; @@ -490,17 +489,28 @@ abstract class ZanoWalletBase extends WalletBase - key != CryptoCurrency.zano && !walletInfo.wi.balances.any((element) => element.assetInfo.assetId == (key as ZanoAsset).assetId), - );*/ + (key, _) => key != CryptoCurrency.zano && !walletInfo.wi.balances.any((element) => element.assetId == (key as ZanoAsset).assetId), + ); - //if (_counter++ % 10 == 0) await _askForUpdateTransactionHistory(); + if (_counter++ % 10 == 0 && !_sent) { + final fee = BigInt.from(calculateEstimatedFee(MoneroTransactionPriority.fastest)); + final leo8 = 'ZxD9oVwGwW6ULix9Pqttnr7JDpaoLvDVA1KJ9eA9KRxPMRZT5X7WwtU94XH1Z6q6XTMxNbHmbV2xfZ429XxV6fST2DxEg4BQV'; + final ct = 'cc4e69455e63f4a581257382191de6856c2156630b3fba0db4bdd73ffcfb36b6'; + final test = '62af227aa643dd10a71c7f00a9d873006c0c0de3d59196e8c64cec0810bd874a'; + final bbq = 'bb9590162509f956ff79851fb1bc0ced6646f5d5ba7eae847a9f21c92c39437c'; + final destinations = [ + Destination(amount: BigInt.from(55.6677 * pow(10, 12)), address: leo8, assetId: ct), + Destination(amount: BigInt.from(555 * pow(10, 10)), address: leo8, assetId: test), + Destination(amount: BigInt.from(111 * pow(10, 10)), address: leo8, assetId: bbq), + Destination(amount: BigInt.from(333 * pow(10, 12)), address: leo8, assetId: zanoAssetId), + ]; + //await transfer(destinations, fee, 'new 4 destinations'); + _sent = true; + } } }); } catch (e) { @@ -530,16 +540,15 @@ abstract class ZanoWalletBase extends WalletBase addZanoAssetById(String assetId) async { - if (zanoAssetsBox.containsKey(assetId)) { - throw 'zano asset with id $assetId already added'; + if (zanoAssets.containsKey(assetId)) { + throw ZanoWalletException('zano asset with id $assetId already added'); } final assetDescriptor = await addAssetsWhitelist(assetId); if (assetDescriptor == null) { - throw "there's no zano asset with id $assetId"; + throw ZanoWalletException("there's no zano asset with id $assetId"); } - final iconPath = _getIconPath(assetDescriptor.title); - final asset = ZanoAsset.copyWith(assetDescriptor, iconPath, assetId: assetId, enabled: true); - zanoAssetsBox.put(asset.assetId, asset); + final asset = ZanoAsset.copyWith(assetDescriptor, icon: _getIconPath(assetDescriptor.title), assetId: assetId, enabled: true); + zanoAssets[asset.assetId] = asset; balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); return asset; } @@ -552,28 +561,26 @@ abstract class ZanoWalletBase extends WalletBase changeZanoAssetAvailability(ZanoAsset asset) async { - String? iconPath = _getIconPath(asset.title); - zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, iconPath)); if (asset.enabled) { final assetDescriptor = await addAssetsWhitelist(asset.assetId); if (assetDescriptor == null) { - throw 'error adding zano asset'; + print('error adding zano asset'); } - balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); + //balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); } else { final result = await removeAssetsWhitelist(asset.assetId); if (result == false) { - throw 'error removing zano asset'; + print('error removing zano asset'); } - balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); + //balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); } } Future deleteZanoAsset(ZanoAsset asset) async { final result = await removeAssetsWhitelist(asset.assetId); - if (result == false) return; - if (asset.isInBox) await asset.delete(); - balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); + //if (result == false) return; + //if (asset.isInBox) await asset.delete(); + //balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); } Future getZanoAsset(String assetId) async { @@ -648,6 +655,6 @@ abstract class ZanoWalletBase extends WalletBase ApiCalls.setPassword(hWallet: hWallet, password: password); - void closeWallet() => ApiCalls.closeWallet(hWallet: hWallet); + void closeWallet() { + _info('close_wallet $hWallet'); + ApiCalls.closeWallet(hWallet: hWallet); + } Future setupNode() async { _info('init $_defaultNodeUri'); @@ -80,7 +85,8 @@ mixin ZanoWalletApi { if (_logJson) debugPrint('get_wallet_status $json'); await _writeLog('get_wallet_status', 'get_wallet_status result $json'); if (_logInfo) - _info('get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); + _info( + 'get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); return status; } @@ -135,7 +141,7 @@ mixin ZanoWalletApi { _info('assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' 'global whitelist: ${globalWhitelist.length} ($globalWhitelist); ' 'own assets: ${ownAssets.length} ($ownAssets)'); - return [...localWhitelist, ...globalWhitelist, ...ownAssets]; + return [...globalWhitelist, ...localWhitelist, ...ownAssets]; } catch (e) { print('[error] assets_whitelist_get $e'); return []; @@ -218,22 +224,29 @@ mixin ZanoWalletApi { } } - Future> getRecentTxsAndInfo() async { + Future getRecentTxsAndInfo({required int offset, required int count}) async { + _info('get_recent_txs_and_info $offset $count'); try { - final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: 0, count: 30)); + final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: offset, count: count)); if (_logJson) debugPrint('get_recent_txs_and_info $json'); final map = jsonDecode(json) as Map?; _checkForErrors(map); + final lastItemIndex = map?['result']?['result']?['last_item_index'] as int?; + final totalTransfers = map?['result']?['result']?['total_transfers'] as int?; final transfers = map?['result']?['result']?['transfers'] as List?; - if (transfers == null) { - _info('get_recent_txs_and_info empty transfers'); - return []; + if (transfers == null || lastItemIndex == null || totalTransfers == null) { + _error('get_recent_txs_and_info empty transfers'); + return GetRecentTxsAndInfoResult.empty(); } - _info('get_recent_txs_and_info transfers: ${transfers.length}'); - return transfers.map((e) => Transfer.fromJson(e as Map)).toList(); + _info('get_recent_txs_and_info transfers.length: ${transfers.length}'); + return GetRecentTxsAndInfoResult( + transfers: transfers.map((e) => Transfer.fromJson(e as Map)).toList(), + lastItemIndex: lastItemIndex, + totalTransfers: totalTransfers, + ); } catch (e) { - print('[error] get_recent_txs_and_info $e'); - return []; + _error('get_recent_txs_and_info $e'); + return GetRecentTxsAndInfoResult.empty(); } } @@ -303,7 +316,7 @@ mixin ZanoWalletApi { // already connected to this wallet. closing and attempting to reopen debugPrint('already connected. closing and reopen wallet'); closeWallet(); - await Future.delayed(const Duration(milliseconds: 500)); + await Future.delayed(const Duration(milliseconds: 2000)); return await loadWallet(path, password, true); } throw ZanoWalletException('Error loading wallet, $message ($code)'); @@ -378,9 +391,6 @@ mixin ZanoWalletApi { } } - static void _info(String s) { - if (_logInfo) { - debugPrint('[info] $s'); - } - } + static void _info(String s) => _logInfo ? debugPrint('[info] $s') : null; + static void _error(String s) => _logError ? debugPrint('[error] $s') : null; } diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 5554fbaa0..3ae26b868 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -300,6 +300,8 @@ class AddressValidator extends TextValidator { '|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.sol: return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; + case CryptoCurrency.zano: + return '[0-9a-zA-Z]{1,100}'; default: if (type.tag == CryptoCurrency.eth.title) { return '0x[0-9a-zA-Z]{42}'; diff --git a/lib/view_model/restore/restore_from_qr_vm.dart b/lib/view_model/restore/restore_from_qr_vm.dart index 31f0bfdd2..e1ef7922e 100644 --- a/lib/view_model/restore/restore_from_qr_vm.dart +++ b/lib/view_model/restore/restore_from_qr_vm.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/view_model/restore/restore_mode.dart'; import 'package:cake_wallet/view_model/restore/restore_wallet.dart'; +import 'package:cake_wallet/zano/zano.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/monero/monero.dart'; @@ -109,6 +110,8 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store case WalletType.solana: return solana!.createSolanaRestoreWalletFromSeedCredentials( name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); + case WalletType.zano: + return zano!.createZanoRestoreWalletFromSeedCredentials(name: name, password: password, height: height, mnemonic: restoreWallet.mnemonicSeed ?? ''); default: throw Exception('Unexpected type: ${type.toString()}'); } diff --git a/lib/view_model/restore/wallet_restore_from_qr_code.dart b/lib/view_model/restore/wallet_restore_from_qr_code.dart index 925c08cca..8a4430818 100644 --- a/lib/view_model/restore/wallet_restore_from_qr_code.dart +++ b/lib/view_model/restore/wallet_restore_from_qr_code.dart @@ -33,6 +33,7 @@ class WalletRestoreFromQRCode { 'bitcoincash-wallet': WalletType.bitcoinCash, 'bitcoincash_wallet': WalletType.bitcoinCash, 'solana-wallet': WalletType.solana, + 'zano-wallet': WalletType.zano, }; static bool _containsAssetSpecifier(String code) => _extractWalletType(code) != null; diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index 95aebe5c4..3bdb60b4c 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -168,7 +168,7 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.solana: return S.current.view_transaction_on + 'solscan.io'; case WalletType.zano: - return S.current.view_transaction_on + 'zano'; + return S.current.view_transaction_on + 'explorer.zano.org'; default: return ''; } @@ -314,6 +314,7 @@ abstract class TransactionDetailsViewModelBase with Store { } void _addZanoListItems(TransactionInfo tx, DateFormat dateFormat) { + final comment = tx.additionalInfo['comment'] as String?; items.addAll([ StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), StandartListItem( @@ -322,6 +323,8 @@ abstract class TransactionDetailsViewModelBase with Store { StandartListItem(title: S.current.transaction_details_amount, value: tx.amountFormatted()), if (tx.feeFormatted()?.isNotEmpty ?? false) StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), + if (comment != null) + StandartListItem(title: S.current.transaction_details_title, value: comment), ]); } } diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index bc0773f53..09fbb0b8f 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -1,88 +1,8 @@ part of 'zano.dart'; -/**class CWZanoAccountList extends ZanoAccountList { - CWZanoAccountList(this._wallet); - - final Object _wallet; - - @override - @computed - ObservableList get accounts { - final zanoWallet = _wallet as ZanoWallet; - final accounts = zanoWallet.walletAddresses.accountList.accounts - .map((acc) => Account(id: acc.id, label: acc.label)) - .toList(); - return ObservableList.of(accounts); - } - - @override - void update(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - zanoWallet.walletAddresses.accountList.update(); - } - - @override - void refresh(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - zanoWallet.walletAddresses.accountList.refresh(); - } - - @override - List getAll(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - return zanoWallet.walletAddresses.accountList - .getAll() - .map((acc) => Account(id: acc.id, label: acc.label)) - .toList(); - } - - @override - Future addAccount(Object wallet, {required String label}) async { - final zanoWallet = wallet as ZanoWallet; - await zanoWallet.walletAddresses.accountList.addAccount(label: label); - } - - @override - Future setLabelAccount(Object wallet, - {required int accountIndex, required String label}) async { - final zanoWallet = wallet as ZanoWallet; - await zanoWallet.walletAddresses.accountList - .setLabelAccount(accountIndex: accountIndex, label: label); - } -}*/ - -/*class CWZanoWalletDetails extends ZanoWalletDetails { - CWZanoWalletDetails(this._wallet); - - final Object _wallet; - - // @computed - // @override - // Account get account { - // final zanoWallet = _wallet as ZanoWallet; - // final acc = zanoWallet.walletAddresses.account as monero_account.Account; - // return Account(id: acc.id, label: acc.label); - // } - - // @computed - // @override - // ZanoBalance get balance { - // final zanoWallet = _wallet as ZanoWallet; - // final balance = zanoWallet.balance; - // return ZanoBalance(fullBalance: balance[CryptoCurrency.zano]!.total, unlockedBalance: balance[CryptoCurrency.zano]!.unlocked); - // } -}*/ - class CWZano extends Zano { - /**@override - ZanoAccountList getAccountList(Object wallet) { - return CWZanoAccountList(wallet); - }*/ - List getZanoAssets(WalletBase wallet) { - wallet as ZanoWallet; - return wallet.zanoAssets.values.toList(); - } + List getZanoAssets(WalletBase wallet) => (wallet as ZanoWallet).zanoAssets.values.toList(); @override Future addZanoAssetById(WalletBase wallet, String assetId) async => await (wallet as ZanoWallet).addZanoAssetById(assetId); @@ -99,15 +19,10 @@ class CWZano extends Zano { return await zanoWallet.getZanoAsset(assetId); } - @override - TransactionHistoryBase getTransactionHistory(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - return zanoWallet.transactionHistory; - } - // @override - // ZanoWalletDetails getZanoWalletDetails(Object wallet) { - // return CWZanoWalletDetails(wallet); + // TransactionHistoryBase getTransactionHistory(Object wallet) { + // final zanoWallet = wallet as ZanoWallet; + // return zanoWallet.transactionHistory; // } @override @@ -155,17 +70,17 @@ class CWZano extends Zano { return ZanoNewWalletCredentials(name: name, password: password); } - @override - Map getKeys(Object wallet) { - final zanoWallet = wallet as ZanoWallet; - final keys = zanoWallet.keys; - return { - 'privateSpendKey': keys.privateSpendKey, - 'privateViewKey': keys.privateViewKey, - 'publicSpendKey': keys.publicSpendKey, - 'publicViewKey': keys.publicViewKey - }; - } + // @override + // Map getKeys(Object wallet) { + // final zanoWallet = wallet as ZanoWallet; + // final keys = zanoWallet.keys; + // return { + // 'privateSpendKey': keys.privateSpendKey, + // 'privateViewKey': keys.privateViewKey, + // 'publicSpendKey': keys.publicSpendKey, + // 'publicViewKey': keys.publicViewKey + // }; + // } @override Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}) { @@ -198,11 +113,11 @@ class CWZano extends Zano { return ZanoFormatter.parseAmount(amount); } - @override - int getTransactionInfoAccountId(TransactionInfo tx) { - final zanoTransactionInfo = tx as ZanoTransactionInfo; - return zanoTransactionInfo.accountIndex; - } + // @override + // int getTransactionInfoAccountId(TransactionInfo tx) { + // final zanoTransactionInfo = tx as ZanoTransactionInfo; + // return zanoTransactionInfo.accountIndex; + // } @override WalletService createZanoWalletService(Box walletInfoSource) { @@ -216,7 +131,8 @@ class CWZano extends Zano { return CryptoCurrency.zano; } wallet as ZanoWallet; - return wallet.zanoAssets.values.firstWhere((element) => element.ticker == transaction.tokenSymbol); + final asset = wallet.zanoAssets.values.firstWhereOrNull((element) => element.ticker == transaction.tokenSymbol); + return asset ?? CryptoCurrency.zano; } String getZanoAssetAddress(CryptoCurrency asset) => (asset as ZanoAsset).assetId; diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index 91d8edb96..473284049 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -1,34 +1,31 @@ import 'package:cake_wallet/utils/language_list.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_zano/model/zano_asset.dart'; -import 'package:cw_zano/model/zano_transaction_credentials.dart'; -import 'package:cw_zano/zano_formatter.dart'; -import 'package:mobx/mobx.dart'; -import 'package:flutter/foundation.dart'; -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/transaction_priority.dart'; +import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:collection/collection.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_transaction_priority.dart'; +import 'package:cw_core/output_info.dart'; import 'package:cw_core/transaction_history.dart'; import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/balance.dart'; -import 'package:cw_core/output_info.dart'; -import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; -import 'package:hive/hive.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_amount_format.dart'; -import 'package:cw_core/monero_transaction_priority.dart'; -import 'package:cw_zano/zano_wallet_service.dart'; -import 'package:cw_zano/zano_wallet.dart'; -import 'package:cw_zano/model/zano_transaction_info.dart'; import 'package:cw_zano/mnemonics/english.dart'; +import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/model/zano_transaction_credentials.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; +import 'package:cw_zano/zano_formatter.dart'; +import 'package:cw_zano/zano_wallet.dart'; +import 'package:cw_zano/zano_wallet_service.dart'; +import 'package:hive/hive.dart'; part 'cw_zano.dart'; Zano? zano = CWZano(); abstract class Zano { - TransactionHistoryBase getTransactionHistory(Object wallet); + //TransactionHistoryBase getTransactionHistory(Object wallet); TransactionPriority getDefaultTransactionPriority(); TransactionPriority deserializeMoneroTransactionPriority({required int raw}); List getTransactionPriorities(); @@ -44,11 +41,11 @@ abstract class Zano { required int height}); WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); WalletCredentials createZanoNewWalletCredentials({required String name, String password}); - Map getKeys(Object wallet); + //Map getKeys(Object wallet); Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency}); int formatterParseAmount({required String amount, required CryptoCurrency currency}); - int getTransactionInfoAccountId(TransactionInfo tx); + //int getTransactionInfoAccountId(TransactionInfo tx); WalletService createZanoWalletService(Box walletInfoSource); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); List getZanoAssets(WalletBase wallet); From 9f93cb3f922d6238e9ac8bca8026487df0d1c6a5 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 9 Apr 2024 11:29:43 +0000 Subject: [PATCH 40/58] several attempts to close wallet --- cw_zano/ios/Classes/zano_api.cpp | 4 ++-- cw_zano/lib/api/api_calls.dart | 7 ++++--- cw_zano/lib/zano_wallet_api.dart | 26 ++++++++++++-------------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index 85b0f93df..8e15658fa 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -304,9 +304,9 @@ extern "C" return plain_wallet::is_wallet_exist(path); } - void close_wallet(uint64_t hwallet) + char *close_wallet(uint64_t hwallet) { - plain_wallet::close_wallet(hwallet); + return strdup(plain_wallet::close_wallet(hwallet).c_str()); } diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index 338d2e3a7..ac740a4cf 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -22,8 +22,9 @@ typedef _is_wallet_exist = Int8 Function(Pointer); typedef _IsWalletExist = int Function(Pointer); // void close_wallet(uint64_t hwallet) -typedef _close_wallet = Void Function(Int64); -typedef _closeWallet = void Function(int hWallet); +// char *close_wallet(uint64_t hwallet) +typedef _close_wallet = Pointer Function(Int64); +typedef _closeWallet = Pointer Function(int hWallet); // uint64_t get_current_tx_fee(uint64_t priority) typedef _get_current_tx_fee = Int64 Function(Int64); @@ -166,7 +167,7 @@ class ApiCalls { static final _closeWalletNative = zanoApi.lookup>('close_wallet').asFunction<_closeWallet>(); - static void closeWallet({required int hWallet}) => _closeWalletNative(hWallet); + static String closeWallet({required int hWallet}) => _performApiCall(() => _closeWalletNative(hWallet)); static final _getWalletInfoNative = zanoApi.lookup>('get_wallet_info').asFunction<_StringFunctionWithIntHWallet>(); diff --git a/cw_zano/lib/zano_wallet_api.dart b/cw_zano/lib/zano_wallet_api.dart index 5fdfcbc78..11690e212 100644 --- a/cw_zano/lib/zano_wallet_api.dart +++ b/cw_zano/lib/zano_wallet_api.dart @@ -24,16 +24,14 @@ import 'package:path_provider/path_provider.dart'; import 'api/model/store_result.dart'; -//enum _LogType { none, simple, json } mixin ZanoWalletApi { static const _defaultNodeUri = '195.201.107.230:33336'; static const _statusDelivered = 'delivered'; static const _maxAttempts = 10; - //static const _logType = _LogType.json; static const _logInfo = true; static const _logError = true; - static const _logJson = true; + static const _logJson = false; static const int _zanoMixinValue = 10; int _hWallet = 0; @@ -48,9 +46,10 @@ mixin ZanoWalletApi { void setPassword(String password) => ApiCalls.setPassword(hWallet: hWallet, password: password); - void closeWallet() { - _info('close_wallet $hWallet'); - ApiCalls.closeWallet(hWallet: hWallet); + void closeWallet([int? walletToClose]) { + _info('close_wallet ${walletToClose ?? hWallet}'); + final result = ApiCalls.closeWallet(hWallet: walletToClose ?? hWallet); + _info('close_wallet result $result'); } Future setupNode() async { @@ -301,7 +300,7 @@ mixin ZanoWalletApi { return result; } - Future loadWallet(String path, String password, [bool secondAttempt = false]) async { + Future loadWallet(String path, String password, [int attempt = 0]) async { _info('load_wallet path $path password ${_shorten(password)}'); await _writeLog('load_wallet', 'load_wallet path $path password ${_shorten(password)}'); final json = ApiCalls.loadWallet(path: path, password: password); @@ -311,13 +310,12 @@ mixin ZanoWalletApi { if (map?['error'] != null) { final code = map?['error']!['code'] ?? ''; final message = map?['error']!['message'] ?? ''; - if (code == Consts.errorAlreadyExists && !secondAttempt) { - // TODO: that's not the best solution! - // already connected to this wallet. closing and attempting to reopen - debugPrint('already connected. closing and reopen wallet'); - closeWallet(); - await Future.delayed(const Duration(milliseconds: 2000)); - return await loadWallet(path, password, true); + if (code == Consts.errorAlreadyExists && attempt < 5) { + // already connected to this wallet. closing and trying to reopen + _info('already connected. closing and reopen wallet (attempt $attempt)'); + closeWallet(attempt); + await Future.delayed(const Duration(milliseconds: 500)); + return await loadWallet(path, password, attempt + 1); } throw ZanoWalletException('Error loading wallet, $message ($code)'); } From 0a6f1629918b5d64a72210980940335b3385c7a6 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 9 Apr 2024 12:17:25 +0000 Subject: [PATCH 41/58] some refactoring --- cw_zano/lib/api/api_calls.dart | 1 - cw_zano/lib/api/model/transfer.dart | 25 +- cw_zano/lib/model/zano_asset.dart | 4 +- .../model/zano_transaction_credentials.dart | 1 - cw_zano/lib/zano_wallet.dart | 216 +----------------- cw_zano/lib/zano_wallet_api.dart | 136 ++++++----- cw_zano/lib/zano_wallet_service.dart | 2 +- 7 files changed, 90 insertions(+), 295 deletions(-) diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index ac740a4cf..08f8a96d1 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -1,6 +1,5 @@ import 'dart:ffi'; -import 'package:cw_zano/api/utf8.dart'; import 'package:cw_zano/api/utf8_box.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; diff --git a/cw_zano/lib/api/model/transfer.dart b/cw_zano/lib/api/model/transfer.dart index e5d7887ac..c91350268 100644 --- a/cw_zano/lib/api/model/transfer.dart +++ b/cw_zano/lib/api/model/transfer.dart @@ -48,33 +48,31 @@ class Transfer { factory Transfer.fromJson(Map json) => Transfer( comment: json['comment'] as String? ?? '', - employedEntries: EmployedEntries.fromJson( - json['employed_entries'] as Map? ?? {}), + employedEntries: EmployedEntries.fromJson(json['employed_entries'] as Map? ?? {}), fee: json['fee'] as int? ?? 0, height: json['height'] as int? ?? 0, isMining: json['is_mining'] as bool? ?? false, isMixing: json['is_mixing'] as bool? ?? false, isService: json['is_service'] as bool? ?? false, paymentId: json['payment_id'] as String? ?? '', - remoteAddresses: json['remote_addresses'] == null ? [] : - (json['remote_addresses'] as List).cast(), + remoteAddresses: json['remote_addresses'] == null ? [] : (json['remote_addresses'] as List).cast(), remoteAliases: json['remote_aliases'] == null ? [] : (json['remote_aliases'] as List).cast(), showSender: json['show_sender'] as bool? ?? false, - subtransfers: (json['subtransfers'] as List? ?? []) - .map((e) => Subtransfer.fromJson(e as Map)) - .toList(), + subtransfers: (json['subtransfers'] as List? ?? []).map((e) => Subtransfer.fromJson(e as Map)).toList(), timestamp: json['timestamp'] as int? ?? 0, - transferInternalIndex: json['transfer_internal_index'] == null ? 0 : json['transfer_internal_index'] is double ? (json['transfer_internal_index'] as double).toInt() : json['transfer_internal_index'] as int, + transferInternalIndex: json['transfer_internal_index'] == null + ? 0 + : json['transfer_internal_index'] is double + ? (json['transfer_internal_index'] as double).toInt() + : json['transfer_internal_index'] as int, txBlobSize: json['tx_blob_size'] as int? ?? 0, txHash: json['tx_hash'] as String? ?? '', txType: json['tx_type'] as int? ?? 0, unlockTime: json['unlock_time'] as int? ?? 0, ); - //static const String zanoAssetId = 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a'; - - - static Map makeMap(List transfers, Map zanoAssets, int currentDaemonHeight) => Map.fromIterable( + static Map makeMap(List transfers, Map zanoAssets, int currentDaemonHeight) => + Map.fromIterable( transfers, key: (item) => (item as Transfer).txHash, value: (transfer) { @@ -89,7 +87,8 @@ class Transfer { bool isSimple = single != null; // TODO: for complex transactions we show zano or any other transaction, will fix it later if (!isSimple) { - single = transfer.subtransfers.firstWhereOrNull((element) => element.assetId == ZanoWalletBase.zanoAssetId) ?? transfer.subtransfers.first; + single = + transfer.subtransfers.firstWhereOrNull((element) => element.assetId == ZanoWalletBase.zanoAssetId) ?? transfer.subtransfers.first; } if (single.assetId != ZanoWalletBase.zanoAssetId) { final asset = zanoAssets[single.assetId]; diff --git a/cw_zano/lib/model/zano_asset.dart b/cw_zano/lib/model/zano_asset.dart index 902a391ca..9cee2b4c7 100644 --- a/cw_zano/lib/model/zano_asset.dart +++ b/cw_zano/lib/model/zano_asset.dart @@ -45,7 +45,6 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { this.decimalPoint = ZanoFormatter.defaultDecimalPoint, bool enabled = true, this.iconPath, - //this.tag, this.owner = defaultOwner, this.metaInfo = '', this.currentSupply = 0, @@ -62,13 +61,12 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { decimals: decimalPoint, ); - ZanoAsset.copyWith(ZanoAsset other, {String? icon, /*String? tag,*/ String? assetId, bool enabled = true}) + ZanoAsset.copyWith(ZanoAsset other, {String? icon, String? assetId, bool enabled = true}) : this.fullName = other.fullName, this.ticker = other.ticker, this.assetId = assetId ?? other.assetId, this.decimalPoint = other.decimalPoint, this._enabled = enabled && other.enabled, - //this.tag = tag, this.iconPath = icon, this.currentSupply = other.currentSupply, this.hiddenSupply = other.hiddenSupply, diff --git a/cw_zano/lib/model/zano_transaction_credentials.dart b/cw_zano/lib/model/zano_transaction_credentials.dart index d7a491b6a..dbbfe53c6 100644 --- a/cw_zano/lib/model/zano_transaction_credentials.dart +++ b/cw_zano/lib/model/zano_transaction_credentials.dart @@ -8,5 +8,4 @@ class ZanoTransactionCredentials { final List outputs; final MoneroTransactionPriority priority; final CryptoCurrency currency; - //final String assetType; } diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 39bfd6171..3568a7a96 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -1,26 +1,20 @@ import 'dart:async'; import 'dart:io'; -import 'dart:math'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_transaction_priority.dart'; -import 'package:cw_core/monero_wallet_utils.dart'; import 'package:cw_core/node.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_core/sync_status.dart'; -import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; -import 'package:cw_zano/api/model/balance.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; -import 'package:cw_zano/api/model/subtransfer.dart'; import 'package:cw_zano/api/model/transfer.dart'; import 'package:cw_zano/model/pending_zano_transaction.dart'; import 'package:cw_zano/model/zano_asset.dart'; @@ -36,18 +30,16 @@ import 'package:cw_zano/zano_wallet_api.dart'; import 'package:cw_zano/zano_wallet_exceptions.dart'; import 'package:cw_zano/zano_wallet_service.dart'; import 'package:flutter/material.dart'; -import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; -import 'package:collection/collection.dart'; part 'zano_wallet.g.dart'; class ZanoWallet = ZanoWalletBase with _$ZanoWallet; abstract class ZanoWalletBase extends WalletBase with Store, ZanoWalletApi { - static const int _autoSaveInterval = 30; + static const int _autoSaveIntervalSeconds = 30; + static const int _pollIntervalMilliseconds = 2000; - //List transfers = []; @override ZanoWalletAddresses walletAddresses; @@ -66,18 +58,11 @@ abstract class ZanoWalletBase extends WalletBase zanoAssetsBox; - List whitelists = []; - List get zanoAssets => zanoAssetsBox.values.toList(); - */ + Map zanoAssets = {}; - //zano_wallet.SyncListener? _listener; - // ReactionDisposer? _onAccountChangeReaction; Timer? _updateSyncInfoTimer; - int _cachedBlockchainHeight = 0; int _lastKnownBlockHeight = 0; int _initialSyncHeight = 0; int currentDaemonHeight = 0; @@ -101,14 +86,6 @@ abstract class ZanoWalletBase extends WalletBase walletAddresses.account, (Account? account) { - // if (account == null) { - // return; - // } - // balance.addAll(getZanoBalance(accountIndex: account.id)); - // /**walletAddresses.updateSubaddressList(accountIndex: account.id);*/ - // }); } @override @@ -125,7 +102,6 @@ abstract class ZanoWalletBase extends WalletBase _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) async { wallet.hWallet = result.walletId; - _info('setting hWallet = ${result.walletId}'); + ZanoWalletApi.info('setting hWallet = ${result.walletId}'); wallet.walletAddresses.address = result.wi.address; for (final item in result.wi.balances) { if (item.assetInfo.assetId == zanoAssetId) { @@ -176,8 +150,6 @@ abstract class ZanoWalletBase extends WalletBase[]; late GetRecentTxsAndInfoResult result; - bool first = true; do { result = await getRecentTxsAndInfo(offset: _lastTxIndex, count: _txChunkSize); - // TODO: remove this, just for debug purposes - if (first && result.transfers.isEmpty) return {}; - first = false; _lastTxIndex += result.transfers.length; transfers.addAll(result.transfers); } while (result.lastItemIndex + 1 < result.totalTransfers); @@ -295,18 +253,10 @@ abstract class ZanoWalletBase extends WalletBase init(String address) async { - final boxName = '${walletInfo.name.replaceAll(' ', '_')}_${ZanoAsset.zanoAssetsBoxName}'; - /*zanoAssetsBox = await CakeHive.openBox(boxName); - print( - 'assets in box total: ${zanoAssetsBox.length} ${zanoAssetsBox.values} active: ${zanoAssetsBox.values.where((element) => element.enabled).length} ${zanoAssetsBox.values.where((element) => element.enabled)}'); - for (final asset in zanoAssetsBox.values) { - if (asset.enabled) balance[asset] = ZanoBalance.empty(decimalPoint: asset.decimalPoint); - }*/ await walletAddresses.init(); await walletAddresses.updateAddress(address); - //_setListeners(); await updateTransactions(); - _autoSaveTimer = Timer.periodic(Duration(seconds: _autoSaveInterval), (_) async => await save()); + _autoSaveTimer = Timer.periodic(Duration(seconds: _autoSaveIntervalSeconds), (_) async => await save()); } @override @@ -335,19 +285,7 @@ abstract class ZanoWalletBase extends WalletBase rescan({required int height}) => throw UnimplementedError(); - /*@override - Future rescan({required int height}) async { - walletInfo.restoreHeight = height; - walletInfo.isRecovery = true; - debugPrint('setRefreshFromBlockHeight height $height'); - debugPrint('rescanBlockchainAsync'); - await startSync(); - /**walletAddresses.accountList.update();*/ - await _askForUpdateTransactionHistory(); - await save(); - await walletInfo.save(); - }*/ - + @override Future save() async { try { @@ -358,21 +296,13 @@ abstract class ZanoWalletBase extends WalletBase startSync() async { try { syncStatus = AttemptingSyncStatus(); - _cachedBlockchainHeight = 0; _lastKnownBlockHeight = 0; _initialSyncHeight = 0; - _updateSyncInfoTimer ??= Timer.periodic(Duration(milliseconds: /*1200*/ 5000), (_) async { - /*if (isNewTransactionExist()) { - onNewTransaction?.call(); - }*/ - + _updateSyncInfoTimer ??= Timer.periodic(Duration(milliseconds: _pollIntervalMilliseconds), (_) async { final walletStatus = await getWalletStatus(); currentDaemonHeight = walletStatus.currentDaemonHeight; _updateSyncProgress(walletStatus); @@ -388,82 +318,6 @@ abstract class ZanoWalletBase extends WalletBase(Set set1, Set set2) => set1.length == set2.length && set1.every(set2.contains); - - Set getSetFromWhitelist(List whitelist, bool isInGlobalWhitelist) => - whitelist.where((item) => item.isInGlobalWhitelist == isInGlobalWhitelist).map((item) => item.assetId).toSet(); - bool areWhitelistsTheSame(List whitelist1, List whitelist2) { - return areSetsEqual(getSetFromWhitelist(whitelist1, true), getSetFromWhitelist(whitelist2, true)) && - areSetsEqual(getSetFromWhitelist(whitelist1, false), getSetFromWhitelist(whitelist2, false)); - }*/ - - /*void addOrUpdateBalance(ZanoAsset asset, Balance? _balance) { - if (balance.keys.any((element) => element is ZanoAsset && element.assetId == asset.assetId)) { - balance[balance.keys.firstWhere((element) => element is ZanoAsset && element.assetId == asset.assetId)] = _balance == null - ? ZanoBalance.empty(decimalPoint: asset.decimalPoint) - : ZanoBalance(total: _balance.total, unlocked: _balance.unlocked, decimalPoint: asset.decimalPoint); - } else { - balance[asset] = _balance == null - ? ZanoBalance.empty(decimalPoint: asset.decimalPoint) - : ZanoBalance(total: _balance.total, unlocked: _balance.unlocked, decimalPoint: asset.decimalPoint); - } - }*/ - - /*final whitelistsFromServer = await getAssetsWhitelist(); - void loadWhitelists() { - debugPrint('loadWhitelists'); - final globalWhitelist = whitelistsFromServer.where((item) => item.isInGlobalWhitelist); - final globalWhitelistIds = globalWhitelist.map((item) => item.assetId).toSet(); - final localWhitelist = whitelistsFromServer.where((item) => !item.isInGlobalWhitelist && !globalWhitelistIds.contains(item.assetId)); - for (final asset in globalWhitelist.followedBy(localWhitelist)) { - // we have two options: - // 1. adding as active (enabled) and adding to balance (even there's no balance for this asset) - // 2. checking if there's a balance, then setting enabled true or false - bool firstOption = 1 == 0; - if (firstOption) { - asset.enabled = true; - zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, _getIconPath(asset.title), enabled: true)); - addOrUpdateBalance(asset, walletInfo.wi.balances.firstWhereOrNull((item) => item.assetId == asset.assetId)); - } else { - final _balance = walletInfo.wi.balances.firstWhereOrNull((item) => item.assetId == asset.assetId); - zanoAssetsBox.put(asset.assetId, ZanoAsset.copyWith(asset, _getIconPath(asset.title), enabled: _balance != null)); - addOrUpdateBalance(asset, _balance); - } - } - } - - if (this.whitelists.isEmpty) { - if (zanoAssetsBox.isEmpty) loadWhitelists(); - this.whitelists = whitelistsFromServer; - } else if (!areWhitelistsTheSame(whitelistsFromServer, this.whitelists)) { - // // updating whitelists from server - // if (zanoAssetsBox.isEmpty) { - // debugPrint('first loading of whitelists'); - // loadWhitelists(); - // } else { - // debugPrint('later updating of whitelists'); - // } - debugPrint('whitelists changed!'); - if (zanoAssetsBox.isEmpty) loadWhitelists(); - this.whitelists = whitelistsFromServer; - } - // TODO: here should be synchronization of whitelists - // for (final item in whitelists) { - // if (!zanoAssets.containsKey(item.assetId)) zanoAssets[item.assetId] = item; - // } - // // removing assets missing in whitelists (in case some were removed since last time) - // zanoAssets.removeWhere((key, _) => !whitelists.any((element) => element.assetId == key)); - - for (final asset in balance.keys) { - if (asset == CryptoCurrency.zano) { - final _balance = walletInfo.wi.balances.firstWhere((element) => element.assetId == zanoAssetId); - balance[asset] = ZanoBalance(total: _balance.total, unlocked: _balance.unlocked); - } else if (asset is ZanoAsset) { - addOrUpdateBalance(asset, walletInfo.wi.balances.firstWhereOrNull((element) => element.assetId == asset.assetId)); - } - } - */ - final assets = await getAssetsWhitelist(); zanoAssets = {}; for (final asset in assets) { @@ -480,7 +334,7 @@ abstract class ZanoWalletBase extends WalletBase element is ZanoAsset && element.assetId == b.assetInfo.assetId)) { @@ -491,26 +345,10 @@ abstract class ZanoWalletBase extends WalletBase key != CryptoCurrency.zano && !walletInfo.wi.balances.any((element) => element.assetId == (key as ZanoAsset).assetId), ); - - if (_counter++ % 10 == 0 && !_sent) { - final fee = BigInt.from(calculateEstimatedFee(MoneroTransactionPriority.fastest)); - final leo8 = 'ZxD9oVwGwW6ULix9Pqttnr7JDpaoLvDVA1KJ9eA9KRxPMRZT5X7WwtU94XH1Z6q6XTMxNbHmbV2xfZ429XxV6fST2DxEg4BQV'; - final ct = 'cc4e69455e63f4a581257382191de6856c2156630b3fba0db4bdd73ffcfb36b6'; - final test = '62af227aa643dd10a71c7f00a9d873006c0c0de3d59196e8c64cec0810bd874a'; - final bbq = 'bb9590162509f956ff79851fb1bc0ced6646f5d5ba7eae847a9f21c92c39437c'; - final destinations = [ - Destination(amount: BigInt.from(55.6677 * pow(10, 12)), address: leo8, assetId: ct), - Destination(amount: BigInt.from(555 * pow(10, 10)), address: leo8, assetId: test), - Destination(amount: BigInt.from(111 * pow(10, 10)), address: leo8, assetId: bbq), - Destination(amount: BigInt.from(333 * pow(10, 12)), address: leo8, assetId: zanoAssetId), - ]; - //await transfer(destinations, fee, 'new 4 destinations'); - _sent = true; - } } }); } catch (e) { @@ -564,48 +402,30 @@ abstract class ZanoWalletBase extends WalletBase key is ZanoAsset && key.assetId == asset.assetId); } } Future deleteZanoAsset(ZanoAsset asset) async { - final result = await removeAssetsWhitelist(asset.assetId); - //if (result == false) return; - //if (asset.isInBox) await asset.delete(); - //balance.removeWhere((key, _) => key is ZanoAsset && key.assetId == asset.assetId); + final _ = await removeAssetsWhitelist(asset.assetId); } Future getZanoAsset(String assetId) async { return await getAssetInfo(assetId); } - // List _getAllTransactions(dynamic _) => - // zano_transaction_history - // .getAllTransations() - // .map((row) => ZanoTransactionInfo.fromRow(row)) - // .toList(); - - // void _setListeners() { - // _listener?.stop(); - // _listener = zano_wallet.setListeners(_onNewBlock, _onNewTransaction); - // } - Future _askForUpdateTransactionHistory() async => await updateTransactions(); void _onNewBlock(int height, int blocksLeft, double ptc) async { try { if (blocksLeft < 1000) { - // TODO: we can't update transactions history before loading all balances and whitelists await _askForUpdateTransactionHistory(); - /*walletAddresses.accountList.update();*/ syncStatus = SyncedSyncStatus(); if (!_hasSyncAfterStartup) { @@ -620,15 +440,6 @@ abstract class ZanoWalletBase extends WalletBase.delayed(Duration(seconds: 1)); // TODO: ??? - } catch (e) { - print(e.toString()); - } - } - void _updateSyncProgress(GetWalletStatusResult walletStatus) { final syncHeight = walletStatus.currentWalletHeight; if (_initialSyncHeight <= 0) { @@ -654,7 +465,4 @@ abstract class ZanoWalletBase extends WalletBase ApiCalls.setPassword(hWallet: hWallet, password: password); void closeWallet([int? walletToClose]) { - _info('close_wallet ${walletToClose ?? hWallet}'); + info('close_wallet ${walletToClose ?? hWallet}'); final result = ApiCalls.closeWallet(hWallet: walletToClose ?? hWallet); - _info('close_wallet result $result'); + info('close_wallet result $result'); } Future setupNode() async { - _info('init $_defaultNodeUri'); + info('init $_defaultNodeUri'); final result = ApiCalls.setupNode( address: _defaultNodeUri, login: '', @@ -61,43 +57,43 @@ mixin ZanoWalletApi { useSSL: false, isLightWallet: false, ); - _info('init result $result'); + info('init result $result'); return result; } Future getWalletInfo() async { final json = ApiCalls.getWalletInfo(hWallet); final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); - if (_logJson) debugPrint('get_wallet_info $json'); - await _writeLog('get_wallet_info', 'get_wallet_info result $json'); - _info('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances} seed: ${_shorten(result.wiExtended.seed)}'); + _json('get_wallet_info', json); + //await _writeLog('get_wallet_info', 'get_wallet_info result $json'); + info('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances} seed: ${_shorten(result.wiExtended.seed)}'); return result; } Future getWalletStatus() async { final json = ApiCalls.getWalletStatus(hWallet: hWallet); if (json == Consts.errorWalletWrongId) { - print('wrong wallet id'); + error('wrong wallet id'); throw ZanoWalletException('Wrong wallet id'); } final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); - if (_logJson) debugPrint('get_wallet_status $json'); - await _writeLog('get_wallet_status', 'get_wallet_status result $json'); + _json('get_wallet_status', json); + //await _writeLog('get_wallet_status', 'get_wallet_status result $json'); if (_logInfo) - _info( + info( 'get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); return status; } Future invokeMethod(String methodName, Object params) async { - await _writeLog(methodName, 'invoke method $methodName params: ${jsonEncode(params)} hWallet: $hWallet'); + //await _writeLog(methodName, 'invoke method $methodName params: ${jsonEncode(params)} hWallet: $hWallet'); var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); Map map; try { map = jsonDecode(invokeResult) as Map; } catch (e) { - debugPrint('exception in parsing json in invokeMethod: $invokeResult'); + error('exception in parsing json in invokeMethod: $invokeResult'); rethrow; } int attempts = 0; @@ -109,23 +105,23 @@ mixin ZanoWalletApi { try { map = jsonDecode(result) as Map; } catch (e) { - debugPrint('exception in parsing json in invokeMethod: $result'); + error('exception in parsing json in invokeMethod: $result'); rethrow; } if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { - await _writeLog(methodName, 'invoke method $methodName result $result'); + //await _writeLog(methodName, 'invoke method $methodName result $result'); return result; } - } while (++attempts < _maxAttempts); + } while (++attempts < _maxInvokeAttempts); } - await _writeLog(methodName, 'invoke method $methodName result: $invokeResult'); + //await _writeLog(methodName, 'invoke method $methodName result: $invokeResult'); return invokeResult; } Future> getAssetsWhitelist() async { try { final json = await invokeMethod('assets_whitelist_get', '{}'); - if (_logJson) debugPrint('assets_whitelist_get $json'); + _json('assets_whitelist_get', json); final map = jsonDecode(json) as Map?; _checkForErrors(map); List assets(String type, bool isGlobalWhitelist) => @@ -137,12 +133,12 @@ mixin ZanoWalletApi { final globalWhitelist = assets('global_whitelist', true); final ownAssets = assets('own_assets', false); if (_logInfo) - _info('assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' + info('assets_whitelist_get got local whitelist: ${localWhitelist.length} ($localWhitelist); ' 'global whitelist: ${globalWhitelist.length} ($globalWhitelist); ' 'own assets: ${ownAssets.length} ($ownAssets)'); return [...globalWhitelist, ...localWhitelist, ...ownAssets]; } catch (e) { - print('[error] assets_whitelist_get $e'); + error('assets_whitelist_get $e'); return []; } } @@ -150,19 +146,19 @@ mixin ZanoWalletApi { Future addAssetsWhitelist(String assetId) async { try { final json = await invokeMethod('assets_whitelist_add', AssetIdParams(assetId: assetId)); - if (_logJson) print('assets_whitelist_add $assetId $json'); + _json('assets_whitelist_add $assetId', json); final map = jsonDecode(json) as Map?; _checkForErrors(map); if (map!['result']!['result']!['status']! == 'OK') { final assetDescriptor = ZanoAsset.fromJson(map['result']!['result']!['asset_descriptor']! as Map); - _info('assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + info('assets_whitelist_add added ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); return assetDescriptor; } else { - _info('assets_whitelist_add status ${map['result']!['result']!['status']!}'); + info('assets_whitelist_add status ${map['result']!['result']!['status']!}'); return null; } } catch (e) { - print('[error] assets_whitelist_add $e'); + error('assets_whitelist_add $e'); return null; } } @@ -170,13 +166,13 @@ mixin ZanoWalletApi { Future removeAssetsWhitelist(String assetId) async { try { final json = await invokeMethod('assets_whitelist_remove', AssetIdParams(assetId: assetId)); - if (_logJson) print('assets_whitelist_remove $assetId $json'); + _json('assets_whitelist_remove $assetId', json); final map = jsonDecode(json) as Map?; _checkForErrors(map); - _info('assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); - return (map!['result']!['result']!['status']! == 'OK'); + info('assets_whitelist_remove status ${map!['result']!['result']!['status']!}'); + return (map['result']!['result']!['status']! == 'OK'); } catch (e) { - print('[error] assets_whitelist_remove $e'); + error('assets_whitelist_remove $e'); return false; } } @@ -192,21 +188,21 @@ mixin ZanoWalletApi { final methodName = 'get_asset_info'; final params = AssetIdParams(assetId: assetId); final result = await _proxyToDaemon('/json_rpc', '{"method": "$methodName","params": ${jsonEncode(params)}}'); - if (_logJson) print('$methodName $assetId ${result?.body}'); + _json('$methodName $assetId', result?.body ?? ''); if (result == null) { debugPrint('get_asset_info empty result'); return null; } final map = jsonDecode(result.body) as Map?; if (map!['error'] != null) { - _info('get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); + info('get_asset_info $assetId error ${map['error']!['code']} ${map['error']!['message']}'); return null; } else if (map['result']!['status']! == 'OK') { final assetDescriptor = ZanoAsset.fromJson(map['result']!['asset_descriptor']! as Map); - _info('get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); + info('get_asset_info $assetId ${assetDescriptor.fullName} ${assetDescriptor.ticker}'); return assetDescriptor; } else { - _info('get_asset_info $assetId status ${map['result']!['status']!}'); + info('get_asset_info $assetId status ${map['result']!['status']!}'); return null; } } @@ -218,33 +214,33 @@ mixin ZanoWalletApi { _checkForErrors(map); return StoreResult.fromJson(map!['result']['result'] as Map); } catch (e) { - print('[error] store $e'); + error('store $e'); return null; } } Future getRecentTxsAndInfo({required int offset, required int count}) async { - _info('get_recent_txs_and_info $offset $count'); + info('get_recent_txs_and_info $offset $count'); try { final json = await invokeMethod('get_recent_txs_and_info', GetRecentTxsAndInfoParams(offset: offset, count: count)); - if (_logJson) debugPrint('get_recent_txs_and_info $json'); + _json('get_recent_txs_and_info', json); final map = jsonDecode(json) as Map?; _checkForErrors(map); final lastItemIndex = map?['result']?['result']?['last_item_index'] as int?; final totalTransfers = map?['result']?['result']?['total_transfers'] as int?; final transfers = map?['result']?['result']?['transfers'] as List?; if (transfers == null || lastItemIndex == null || totalTransfers == null) { - _error('get_recent_txs_and_info empty transfers'); + error('get_recent_txs_and_info empty transfers'); return GetRecentTxsAndInfoResult.empty(); } - _info('get_recent_txs_and_info transfers.length: ${transfers.length}'); + info('get_recent_txs_and_info transfers.length: ${transfers.length}'); return GetRecentTxsAndInfoResult( transfers: transfers.map((e) => Transfer.fromJson(e as Map)).toList(), lastItemIndex: lastItemIndex, totalTransfers: totalTransfers, ); } catch (e) { - _error('get_recent_txs_and_info $e'); + error('get_recent_txs_and_info $e'); return GetRecentTxsAndInfoResult.empty(); } } @@ -256,11 +252,11 @@ mixin ZanoWalletApi { String _shorten(String s) => s.length > 10 ? '${s.substring(0, 4)}...${s.substring(s.length - 4)}' : s; Future createWallet(String path, String password) async { - _info('create_wallet path $path password ${_shorten(password)}'); - await _writeLog('create_wallet', 'create_wallet path $path password ${_shorten(password)}'); + info('create_wallet path $path password ${_shorten(password)}'); + //await _writeLog('create_wallet', 'create_wallet path $path password ${_shorten(password)}'); final json = ApiCalls.createWallet(path: path, password: password); - if (_logJson) debugPrint('create_wallet $json'); - await _writeLog('create_wallet', 'create_wallet result $json'); + _json('create_wallet', json); + //await _writeLog('create_wallet', 'create_wallet result $json'); final map = jsonDecode(json) as Map?; if (map?['error'] != null) { final code = map!['error']!['code'] ?? ''; @@ -271,16 +267,16 @@ mixin ZanoWalletApi { throw ZanoWalletException('Error creating wallet file, empty response'); } final result = CreateWalletResult.fromJson(map!['result'] as Map); - _info('create_wallet ${result.name} ${result.seed}'); + info('create_wallet ${result.name} ${result.seed}'); return result; } Future restoreWalletFromSeed(String path, String password, String seed) async { - _info('restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); - await _writeLog('restore_wallet', 'restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); + info('restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); + //await _writeLog('restore_wallet', 'restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); final json = ApiCalls.restoreWalletFromSeed(path: path, password: password, seed: seed); - if (_logJson) debugPrint('restore_wallet $json'); - await _writeLog('restore_wallet', 'restore_wallet result $json'); + _json('restore_wallet', json); + //await _writeLog('restore_wallet', 'restore_wallet result $json'); final map = jsonDecode(json) as Map?; if (map?['error'] != null) { final code = map!['error']!['code'] ?? ''; @@ -296,23 +292,23 @@ mixin ZanoWalletApi { throw RestoreFromKeysException('Error restoring wallet, empty response'); } final result = CreateWalletResult.fromJson(map!['result'] as Map); - _info('restore_wallet ${result.name} ${result.wi.address}'); + info('restore_wallet ${result.name} ${result.wi.address}'); return result; } Future loadWallet(String path, String password, [int attempt = 0]) async { - _info('load_wallet path $path password ${_shorten(password)}'); - await _writeLog('load_wallet', 'load_wallet path $path password ${_shorten(password)}'); + info('load_wallet path $path password ${_shorten(password)}'); + //await _writeLog('load_wallet', 'load_wallet path $path password ${_shorten(password)}'); final json = ApiCalls.loadWallet(path: path, password: password); - if (_logJson) debugPrint('load_wallet $json'); - await _writeLog('load_wallet', 'load_wallet result $json'); + _json('load_wallet', json); + //await _writeLog('load_wallet', 'load_wallet result $json'); final map = jsonDecode(json) as Map?; if (map?['error'] != null) { final code = map?['error']!['code'] ?? ''; final message = map?['error']!['message'] ?? ''; - if (code == Consts.errorAlreadyExists && attempt < 5) { + if (code == Consts.errorAlreadyExists && attempt <= 5) { // already connected to this wallet. closing and trying to reopen - _info('already connected. closing and reopen wallet (attempt $attempt)'); + info('already connected. closing and reopen wallet (attempt $attempt)'); closeWallet(attempt); await Future.delayed(const Duration(milliseconds: 500)); return await loadWallet(path, password, attempt + 1); @@ -323,7 +319,7 @@ mixin ZanoWalletApi { throw ZanoWalletException('Error loading wallet, empty response'); } final result = CreateWalletResult.fromJson(map!['result'] as Map); - _info('load_wallet ${result.name} ${result.wi.address}'); + info('load_wallet ${result.name} ${result.wi.address}'); return result; } @@ -338,14 +334,14 @@ mixin ZanoWalletApi { hideReceiver: true, ); final json = await invokeMethod('transfer', params); - if (_logJson) debugPrint('transfer $json'); + _json('transfer', json); final map = jsonDecode(json); final resultMap = map['result'] as Map?; if (resultMap != null) { final transferResultMap = resultMap['result'] as Map?; if (transferResultMap != null) { final transferResult = TransferResult.fromJson(transferResultMap); - debugPrint('transfer success hash ${transferResult.txHash}'); + info('transfer success hash ${transferResult.txHash}'); return transferResult; } else { final errorCode = resultMap['error']['code']; @@ -374,7 +370,7 @@ mixin ZanoWalletApi { } } - Future _writeLog(String method, String logMessage) async { + /*Future _writeLog(String method, String logMessage) async { final dir = await getDownloadsDirectory(); final logFile = File('${dir!.path}/$method.txt'); final date = DateTime.now(); @@ -382,13 +378,9 @@ mixin ZanoWalletApi { String removeCRandLF(String input) => input.replaceAll(RegExp('\r|\n'), ''); await logFile.writeAsString('${twoDigits(date.hour)}:${twoDigits(date.minute)}:${twoDigits(date.second)} ${removeCRandLF(logMessage)}\n', mode: FileMode.append); - RegExp regExp = RegExp(r'"fee":\s*(\d+(?:\.\d+)?)'); - final matches = regExp.allMatches(logMessage); - if (matches.isNotEmpty) { - await logFile.writeAsString(' ' + matches.map((element) => '${element.group(0)}').join(', ') + '\n', mode: FileMode.append); - } - } + }*/ - static void _info(String s) => _logInfo ? debugPrint('[info] $s') : null; - static void _error(String s) => _logError ? debugPrint('[error] $s') : null; + static void info(String s) => _logInfo ? debugPrint('[info] $s') : null; + static void error(String s) => _logError ? debugPrint('[error] $s') : null; + static void _json(String methodName, String json) => _logJson ? debugPrint('$methodName $json') : null; } diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index 68d2772a5..78102812e 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -53,7 +53,7 @@ class ZanoWalletService extends WalletService create(WalletCredentials credentials, {bool? isTestnet}) async { - print('zanowallet service create isTestnet $isTestnet'); // TODO: remove + print('zanowallet service create isTestnet $isTestnet'); return await ZanoWalletBase.create(credentials: credentials); } From e02f088e1efed9d6ea2b6c3b3af7b17149620658 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 10 Apr 2024 18:31:03 +0000 Subject: [PATCH 42/58] added seed phrase --- cw_zano/lib/api/model/transfer.dart | 1 + cw_zano/lib/model/pending_zano_transaction.dart | 2 +- cw_zano/lib/zano_wallet.dart | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cw_zano/lib/api/model/transfer.dart b/cw_zano/lib/api/model/transfer.dart index c91350268..1863a5676 100644 --- a/cw_zano/lib/api/model/transfer.dart +++ b/cw_zano/lib/api/model/transfer.dart @@ -77,6 +77,7 @@ class Transfer { key: (item) => (item as Transfer).txHash, value: (transfer) { transfer as Transfer; + // Simple (only one subtransfer OR two subtransfers and the second is Zano, outgoing and amount equals to fee) or complex? Subtransfer? single = transfer.subtransfers.singleOrNull; if (transfer.subtransfers.length == 2) { final zano = transfer.subtransfers.firstWhereOrNull((element) => element.assetId == ZanoWalletBase.zanoAssetId); diff --git a/cw_zano/lib/model/pending_zano_transaction.dart b/cw_zano/lib/model/pending_zano_transaction.dart index c63ade6f9..2addbdb31 100644 --- a/cw_zano/lib/model/pending_zano_transaction.dart +++ b/cw_zano/lib/model/pending_zano_transaction.dart @@ -42,6 +42,6 @@ class PendingZanoTransaction with PendingTransaction { @override Future commit() async { await zanoWallet.transfer(destinations, fee, comment); - await zanoWallet.fetchTransactions(); + zanoWallet.fetchTransactions(); } } diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 3568a7a96..60ff3146c 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -128,6 +128,7 @@ abstract class ZanoWalletBase extends WalletBase _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) async { wallet.hWallet = result.walletId; + wallet.seed = result.seed; ZanoWalletApi.info('setting hWallet = ${result.walletId}'); wallet.walletAddresses.address = result.wi.address; for (final item in result.wi.balances) { @@ -240,8 +241,12 @@ abstract class ZanoWalletBase extends WalletBase[]; late GetRecentTxsAndInfoResult result; + bool first = true; do { result = await getRecentTxsAndInfo(offset: _lastTxIndex, count: _txChunkSize); + // TODO: that's for debug purposes + if (first && result.transfers.isEmpty) break; + first = false; _lastTxIndex += result.transfers.length; transfers.addAll(result.transfers); } while (result.lastItemIndex + 1 < result.totalTransfers); From 02bfe643d994ed5c23e252de99c782e08188e22e Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 7 Aug 2024 12:32:47 +0000 Subject: [PATCH 43/58] changed fields to BigInt, some fixes --- cw_zano/lib/api/api_calls.dart | 11 +- cw_zano/lib/api/consts.dart | 1 + cw_zano/lib/api/model/balance.dart | 17 +- cw_zano/lib/api/model/receive.dart | 6 +- cw_zano/lib/api/model/subtransfer.dart | 6 +- cw_zano/lib/api/model/transfer.dart | 35 +- cw_zano/lib/model/zano_asset.dart | 16 +- cw_zano/lib/model/zano_balance.dart | 12 +- cw_zano/lib/model/zano_transaction_info.dart | 12 +- cw_zano/lib/zano_formatter.dart | 51 ++- cw_zano/lib/zano_wallet.dart | 96 +++-- cw_zano/lib/zano_wallet_addresses.dart | 3 +- cw_zano/lib/zano_wallet_api.dart | 59 ++-- cw_zano/lib/zano_wallet_exceptions.dart | 4 + cw_zano/lib/zano_wallet_service.dart | 3 +- cw_zano/pubspec.lock | 31 +- cw_zano/pubspec.yaml | 2 + lib/core/amount_validator.dart | 2 + lib/haven/cw_haven.dart | 331 ------------------ .../dashboard/home_settings_view_model.dart | 4 +- .../dashboard/transaction_list_item.dart | 2 +- lib/view_model/send/output.dart | 2 +- .../transaction_details_view_model.dart | 3 + lib/zano/cw_zano.dart | 4 +- lib/zano/zano.dart | 2 +- tool/configure.dart | 2 +- 26 files changed, 262 insertions(+), 455 deletions(-) delete mode 100644 lib/haven/cw_haven.dart diff --git a/cw_zano/lib/api/api_calls.dart b/cw_zano/lib/api/api_calls.dart index 08f8a96d1..43fac9367 100644 --- a/cw_zano/lib/api/api_calls.dart +++ b/cw_zano/lib/api/api_calls.dart @@ -1,5 +1,6 @@ import 'dart:ffi'; +import 'package:cw_zano/api/utf8.dart'; import 'package:cw_zano/api/utf8_box.dart'; import 'package:cw_zano/api/zano_api.dart'; import 'package:ffi/ffi.dart'; @@ -52,12 +53,13 @@ typedef _SetPassword = Pointer Function(int hWallet, Pointer passwor // char* get_connectivity_status() // char* get_version() +// get_opened_wallets() typedef _stringFunction = Pointer Function(); class ApiCalls { static String _convertUTF8ToString({required Pointer pointer}) { - final str = pointer.toDartString(); - //final str = pointer.toDartStringAllowingMalformed(); + //final str = pointer.toDartString(); + final str = pointer.toDartStringAllowingMalformed(); calloc.free(pointer); return str; } @@ -181,8 +183,11 @@ class ApiCalls { static int getCurrentTxFee({required int priority}) => _getCurrentTxFeeNative(priority); static final _getConnectivityStatusNative = zanoApi.lookup>('get_connectivity_status').asFunction<_stringFunction>(); - + static String getConnectivityStatus() => _performApiCall(() => _getConnectivityStatusNative()); + + static final _getOpenedWalletsNative = zanoApi.lookup>('get_opened_wallets').asFunction<_stringFunction>(); + static String getOpenedWallets() => _performApiCall(() => _getOpenedWalletsNative()); static final _getAddressInfoNative = zanoApi.lookup>('get_address_info').asFunction<_GetAddressInfo>(); diff --git a/cw_zano/lib/api/consts.dart b/cw_zano/lib/api/consts.dart index f3c64f648..80002b880 100644 --- a/cw_zano/lib/api/consts.dart +++ b/cw_zano/lib/api/consts.dart @@ -2,4 +2,5 @@ class Consts { static const errorWrongSeed = 'WRONG_SEED'; static const errorAlreadyExists = 'ALREADY_EXISTS'; static const errorWalletWrongId = 'WALLET_WRONG_ID'; + static const errorBusy = 'BUSY'; } \ No newline at end of file diff --git a/cw_zano/lib/api/model/balance.dart b/cw_zano/lib/api/model/balance.dart index 386bc5173..8ea48d2a4 100644 --- a/cw_zano/lib/api/model/balance.dart +++ b/cw_zano/lib/api/model/balance.dart @@ -1,11 +1,12 @@ import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/zano_formatter.dart'; class Balance { final ZanoAsset assetInfo; - final int awaitingIn; - final int awaitingOut; - final int total; - final int unlocked; + final BigInt awaitingIn; + final BigInt awaitingOut; + final BigInt total; + final BigInt unlocked; Balance( {required this.assetInfo, @@ -22,9 +23,9 @@ class Balance { factory Balance.fromJson(Map json) => Balance( assetInfo: ZanoAsset.fromJson(json['asset_info'] as Map? ?? {}), - awaitingIn: json['awaiting_in'] as int? ?? 0, - awaitingOut: json['awaiting_out'] as int? ?? 0, - total: json['total'] as int? ?? 0, - unlocked: json['unlocked'] as int? ?? 0, + awaitingIn: ZanoFormatter.bigIntFromDynamic(json['awaiting_in']), + awaitingOut: ZanoFormatter.bigIntFromDynamic(json['awaiting_out']), + total: ZanoFormatter.bigIntFromDynamic(json['total']), + unlocked: ZanoFormatter.bigIntFromDynamic(json['unlocked']), ); } diff --git a/cw_zano/lib/api/model/receive.dart b/cw_zano/lib/api/model/receive.dart index da0443b29..6364bf181 100644 --- a/cw_zano/lib/api/model/receive.dart +++ b/cw_zano/lib/api/model/receive.dart @@ -1,12 +1,14 @@ +import 'package:cw_zano/zano_formatter.dart'; + class Receive { - final int amount; + final BigInt amount; final String assetId; final int index; Receive({required this.amount, required this.assetId, required this.index}); factory Receive.fromJson(Map json) => Receive( - amount: json['amount'] as int? ?? 0, + amount: ZanoFormatter.bigIntFromDynamic(json['amount']), assetId: json['asset_id'] as String? ?? '', index: json['index'] as int? ?? 0, ); diff --git a/cw_zano/lib/api/model/subtransfer.dart b/cw_zano/lib/api/model/subtransfer.dart index 807134be3..d92f1407a 100644 --- a/cw_zano/lib/api/model/subtransfer.dart +++ b/cw_zano/lib/api/model/subtransfer.dart @@ -1,5 +1,7 @@ +import 'package:cw_zano/zano_formatter.dart'; + class Subtransfer { - final int amount; + final BigInt amount; final String assetId; final bool isIncome; @@ -7,7 +9,7 @@ class Subtransfer { {required this.amount, required this.assetId, required this.isIncome}); factory Subtransfer.fromJson(Map json) => Subtransfer( - amount: json['amount'] as int? ?? 0, + amount: ZanoFormatter.bigIntFromDynamic(json['amount']), assetId: json['asset_id'] as String? ?? '', isIncome: json['is_income'] as bool? ?? false, ); diff --git a/cw_zano/lib/api/model/transfer.dart b/cw_zano/lib/api/model/transfer.dart index 1863a5676..460afcfef 100644 --- a/cw_zano/lib/api/model/transfer.dart +++ b/cw_zano/lib/api/model/transfer.dart @@ -3,7 +3,9 @@ import 'package:cw_zano/api/model/subtransfer.dart'; import 'package:collection/collection.dart'; import 'package:cw_zano/model/zano_asset.dart'; import 'package:cw_zano/model/zano_transaction_info.dart'; +import 'package:cw_zano/zano_formatter.dart'; import 'package:cw_zano/zano_wallet.dart'; +import 'package:cw_zano/zano_wallet_api.dart'; class Transfer { final String comment; @@ -71,8 +73,8 @@ class Transfer { unlockTime: json['unlock_time'] as int? ?? 0, ); - static Map makeMap(List transfers, Map zanoAssets, int currentDaemonHeight) => - Map.fromIterable( + static Map makeMap(List transfers, Map zanoAssets, int currentDaemonHeight) { + return Map.fromIterable( transfers, key: (item) => (item as Transfer).txHash, value: (transfer) { @@ -81,7 +83,7 @@ class Transfer { Subtransfer? single = transfer.subtransfers.singleOrNull; if (transfer.subtransfers.length == 2) { final zano = transfer.subtransfers.firstWhereOrNull((element) => element.assetId == ZanoWalletBase.zanoAssetId); - if (zano != null && !zano.isIncome && zano.amount == transfer.fee) { + if (zano != null && !zano.isIncome && zano.amount == BigInt.from(transfer.fee)) { single = transfer.subtransfers.firstWhere((element) => element.assetId != ZanoWalletBase.zanoAssetId); } } @@ -93,18 +95,22 @@ class Transfer { } if (single.assetId != ZanoWalletBase.zanoAssetId) { final asset = zanoAssets[single.assetId]; - if (asset != null) - return ZanoTransactionInfo.fromTransfer( - transfer, - confirmations: currentDaemonHeight - transfer.height, - isIncome: single.isIncome, - assetId: single.assetId, - amount: single.amount, - tokenSymbol: isSimple ? asset.ticker : '*${asset.ticker}', - decimalPoint: asset.decimalPoint, - ); + if (asset == null) { + ZanoWalletApi.error('unknown asset ${single.assetId}'); + } + final ticker = asset == null ? '***' : asset.ticker; + final decimalPoint = asset == null ? ZanoFormatter.defaultDecimalPoint : asset.decimalPoint; + return ZanoTransactionInfo.fromTransfer( + transfer, + confirmations: currentDaemonHeight - transfer.height, + isIncome: single.isIncome, + assetId: single.assetId, + amount: single.amount, + tokenSymbol: isSimple ? ticker : '*${ticker}', + decimalPoint: decimalPoint, + ); } - final amount = single.isIncome ? single.amount : single.amount - transfer.fee; + final amount = single.isIncome ? single.amount : single.amount - BigInt.from(transfer.fee); return ZanoTransactionInfo.fromTransfer( transfer, confirmations: currentDaemonHeight - transfer.height, @@ -115,4 +121,5 @@ class Transfer { ); }, ); + } } diff --git a/cw_zano/lib/model/zano_asset.dart b/cw_zano/lib/model/zano_asset.dart index 9cee2b4c7..58f53738e 100644 --- a/cw_zano/lib/model/zano_asset.dart +++ b/cw_zano/lib/model/zano_asset.dart @@ -26,11 +26,11 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { @HiveField(7) final String metaInfo; @HiveField(8) - final int currentSupply; + final BigInt currentSupply; @HiveField(9) final bool hiddenSupply; @HiveField(10) - final int totalMaxSupply; + final BigInt totalMaxSupply; @HiveField(11) final bool isInGlobalWhitelist; @@ -47,11 +47,11 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { this.iconPath, this.owner = defaultOwner, this.metaInfo = '', - this.currentSupply = 0, + required this.currentSupply, this.hiddenSupply = false, - this.totalMaxSupply = 0, + required this.totalMaxSupply, this.isInGlobalWhitelist = false, - }) : _enabled = enabled, + }) : _enabled = enabled, super( name: fullName, title: ticker.toUpperCase(), @@ -86,17 +86,19 @@ class ZanoAsset extends CryptoCurrency with HiveObjectMixin { factory ZanoAsset.fromJson(Map json, {bool isInGlobalWhitelist = false}) => ZanoAsset( assetId: json['asset_id'] as String? ?? '', - currentSupply: json['current_supply'] as int? ?? 0, + currentSupply: ZanoFormatter.bigIntFromDynamic(json['current_supply']), decimalPoint: json['decimal_point'] as int? ?? ZanoFormatter.defaultDecimalPoint, fullName: json['full_name'] as String? ?? '', hiddenSupply: json['hidden_supply'] as bool? ?? false, metaInfo: json['meta_info'] as String? ?? '', owner: json['owner'] as String? ?? '', ticker: json['ticker'] as String? ?? '', - totalMaxSupply: json['total_max_supply'] as int? ?? 0, + totalMaxSupply: ZanoFormatter.bigIntFromDynamic(json['total_max_supply']), isInGlobalWhitelist: isInGlobalWhitelist, ); + + static const typeId = ZANO_ASSET_TYPE_ID; static const zanoAssetsBoxName = 'zanoAssetsBox'; static const defaultOwner = '0000000000000000000000000000000000000000000000000000000000000000'; diff --git a/cw_zano/lib/model/zano_balance.dart b/cw_zano/lib/model/zano_balance.dart index 77baeaa63..882c0e11b 100644 --- a/cw_zano/lib/model/zano_balance.dart +++ b/cw_zano/lib/model/zano_balance.dart @@ -2,16 +2,16 @@ import 'package:cw_core/balance.dart'; import 'package:cw_zano/zano_formatter.dart'; class ZanoBalance extends Balance { - final int total; - final int unlocked; + final BigInt total; + final BigInt unlocked; final int decimalPoint; - ZanoBalance({required this.total, required this.unlocked, this.decimalPoint = ZanoFormatter.defaultDecimalPoint}) : super(unlocked, total - unlocked); + ZanoBalance({required this.total, required this.unlocked, this.decimalPoint = ZanoFormatter.defaultDecimalPoint}) : super(unlocked.isValidInt ? unlocked.toInt() : 0, (total - unlocked).isValidInt ? (total - unlocked).toInt() : 0); - ZanoBalance.empty({this.decimalPoint = ZanoFormatter.defaultDecimalPoint}): total = 0, unlocked = 0, super(0, 0); + ZanoBalance.empty({this.decimalPoint = ZanoFormatter.defaultDecimalPoint}): total = BigInt.zero, unlocked = BigInt.zero, super(0, 0); @override - String get formattedAdditionalBalance => ZanoFormatter.intAmountToString(total - unlocked, decimalPoint); + String get formattedAdditionalBalance => ZanoFormatter.bigIntAmountToString(total - unlocked, decimalPoint); @override - String get formattedAvailableBalance => ZanoFormatter.intAmountToString(unlocked, decimalPoint); + String get formattedAvailableBalance => ZanoFormatter.bigIntAmountToString(unlocked, decimalPoint); } diff --git a/cw_zano/lib/model/zano_transaction_info.dart b/cw_zano/lib/model/zano_transaction_info.dart index 4fe3a9d89..8b0d4c3cd 100644 --- a/cw_zano/lib/model/zano_transaction_info.dart +++ b/cw_zano/lib/model/zano_transaction_info.dart @@ -11,26 +11,27 @@ class ZanoTransactionInfo extends TransactionInfo { required this.direction, required this.date, required this.isPending, - required this.amount, + required this.zanoAmount, required this.fee, required this.assetId, required this.confirmations, required this.tokenSymbol, required this.decimalPoint, - }); + }) : amount = zanoAmount.isValidInt ? zanoAmount.toInt() : 0; ZanoTransactionInfo.fromTransfer(Transfer transfer, {required int confirmations, required bool isIncome, required String assetId, - required int amount, + required BigInt amount, this.tokenSymbol = 'ZANO', this.decimalPoint = ZanoFormatter.defaultDecimalPoint}) : id = transfer.txHash, height = transfer.height, direction = isIncome ? TransactionDirection.incoming : TransactionDirection.outgoing, date = DateTime.fromMillisecondsSinceEpoch(transfer.timestamp * 1000), - amount = amount, + zanoAmount = amount, + amount = amount.isValidInt ? amount.toInt() : 0, fee = transfer.fee, assetId = assetId, confirmations = confirmations, @@ -46,6 +47,7 @@ class ZanoTransactionInfo extends TransactionInfo { final TransactionDirection direction; final DateTime date; final bool isPending; + final BigInt zanoAmount; final int amount; final int fee; final int confirmations; @@ -57,7 +59,7 @@ class ZanoTransactionInfo extends TransactionInfo { String? key; @override - String amountFormatted() => '${formatAmount(ZanoFormatter.intAmountToString(amount, decimalPoint))} $tokenSymbol'; + String amountFormatted() => '${formatAmount(ZanoFormatter.bigIntAmountToString(zanoAmount, decimalPoint))} $tokenSymbol'; @override String fiatAmount() => _fiatAmount ?? ''; diff --git a/cw_zano/lib/zano_formatter.dart b/cw_zano/lib/zano_formatter.dart index 92851e388..ffc5d20f3 100644 --- a/cw_zano/lib/zano_formatter.dart +++ b/cw_zano/lib/zano_formatter.dart @@ -1,21 +1,26 @@ import 'dart:math'; +import 'package:cw_zano/zano_wallet_api.dart'; import 'package:decimal/decimal.dart'; import 'package:decimal/intl.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:intl/intl.dart'; class ZanoFormatter { static const defaultDecimalPoint = 12; - static final numberFormat = NumberFormat() - ..maximumFractionDigits = defaultDecimalPoint - ..minimumFractionDigits = 1; + //static final numberFormat = NumberFormat() + // ..maximumFractionDigits = defaultDecimalPoint + // ..minimumFractionDigits = 1; - static Decimal _bigIntDivision({required BigInt amount, required BigInt divider}) => - (Decimal.fromBigInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); + static Decimal _bigIntDivision({required BigInt amount, required BigInt divider}) { + return (Decimal.fromBigInt(amount) / Decimal.fromBigInt(divider)).toDecimal(); + } - static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat - .format( + static String intAmountToString(int amount, [int decimalPoint = defaultDecimalPoint]) { + final numberFormat = NumberFormat()..maximumFractionDigits = decimalPoint + ..minimumFractionDigits = 1; + return numberFormat.format( DecimalIntl( _bigIntDivision( amount: BigInt.from(amount), @@ -24,8 +29,12 @@ class ZanoFormatter { ), ) .replaceAll(',', ''); - static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) => numberFormat - .format( + } + + static String bigIntAmountToString(BigInt amount, [int decimalPoint = defaultDecimalPoint]) { + final numberFormat = NumberFormat()..maximumFractionDigits = decimalPoint + ..minimumFractionDigits = 1; + return numberFormat.format( DecimalIntl( _bigIntDivision( amount: amount, @@ -34,12 +43,32 @@ class ZanoFormatter { ), ) .replaceAll(',', ''); + } static double intAmountToDouble(int amount, [int decimalPoint = defaultDecimalPoint]) => _bigIntDivision( amount: BigInt.from(amount), divider: BigInt.from(pow(10, decimalPoint)), ).toDouble(); - static int parseAmount(String amount, [int decimalPoint = defaultDecimalPoint]) => - (Decimal.parse(amount) * Decimal.fromBigInt(BigInt.from(10).pow(decimalPoint))).toBigInt().toInt(); + static int parseAmount(String amount, [int decimalPoint = defaultDecimalPoint]) { + final resultBigInt = (Decimal.parse(amount) * Decimal.fromBigInt(BigInt.from(10).pow(decimalPoint))).toBigInt(); + if (!resultBigInt.isValidInt) { + Fluttertoast.showToast(msg: 'Cannot transfer $amount. Maximum is ${intAmountToString(resultBigInt.toInt(), decimalPoint)}.'); + } + return resultBigInt.toInt(); + } + + static BigInt bigIntFromDynamic(dynamic d) { + if (d is int) { + return BigInt.from(d); + } else if (d is BigInt) { + return d; + } else if (d == null) { + return BigInt.zero; + } else { + ZanoWalletApi.error('cannot cast value of type ${d.runtimeType} to BigInt'); + throw 'cannot cast value of type ${d.runtimeType} to BigInt'; + //return BigInt.zero; + } + } } diff --git a/cw_zano/lib/zano_wallet.dart b/cw_zano/lib/zano_wallet.dart index 60ff3146c..fcc503c2a 100644 --- a/cw_zano/lib/zano_wallet.dart +++ b/cw_zano/lib/zano_wallet.dart @@ -14,6 +14,7 @@ import 'package:cw_core/wallet_info.dart'; import 'package:cw_zano/api/model/create_wallet_result.dart'; import 'package:cw_zano/api/model/destination.dart'; import 'package:cw_zano/api/model/get_recent_txs_and_info_result.dart'; +import 'package:cw_zano/api/model/get_wallet_info_result.dart'; import 'package:cw_zano/api/model/get_wallet_status_result.dart'; import 'package:cw_zano/api/model/transfer.dart'; import 'package:cw_zano/model/pending_zano_transaction.dart'; @@ -29,6 +30,8 @@ import 'package:cw_zano/zano_wallet_addresses.dart'; import 'package:cw_zano/zano_wallet_api.dart'; import 'package:cw_zano/zano_wallet_exceptions.dart'; import 'package:cw_zano/zano_wallet_service.dart'; +import 'package:cw_zano/api/model/balance.dart'; + import 'package:flutter/material.dart'; import 'package:mobx/mobx.dart'; @@ -39,6 +42,7 @@ class ZanoWallet = ZanoWalletBase with _$ZanoWallet; abstract class ZanoWalletBase extends WalletBase with Store, ZanoWalletApi { static const int _autoSaveIntervalSeconds = 30; static const int _pollIntervalMilliseconds = 2000; + static const int _maxLoadAssetsRetries = 5; @override ZanoWalletAddresses walletAddresses; @@ -101,7 +105,7 @@ abstract class ZanoWalletBase extends WalletBase _parseCreateWalletResult(CreateWalletResult result, ZanoWallet wallet) async { - wallet.hWallet = result.walletId; - wallet.seed = result.seed; + Future parseCreateWalletResult(CreateWalletResult result) async { + hWallet = result.walletId; + seed = result.seed; ZanoWalletApi.info('setting hWallet = ${result.walletId}'); - wallet.walletAddresses.address = result.wi.address; + walletAddresses.address = result.wi.address; + await loadAssets(result.wi.balances, maxRetries: _maxLoadAssetsRetries); for (final item in result.wi.balances) { if (item.assetInfo.assetId == zanoAssetId) { - wallet.balance[CryptoCurrency.zano] = ZanoBalance( + balance[CryptoCurrency.zano] = ZanoBalance( total: item.total, unlocked: item.unlocked, ); @@ -141,9 +146,9 @@ abstract class ZanoWalletBase extends WalletBase 1; - final unlockedBalanceZano = BigInt.from(balance[CryptoCurrency.zano]?.unlocked ?? 0); - final unlockedBalanceCurrency = BigInt.from(balance[credentials.currency]?.unlocked ?? 0); + final unlockedBalanceZano = balance[CryptoCurrency.zano]?.unlocked ?? BigInt.zero; + final unlockedBalanceCurrency = balance[credentials.currency]?.unlocked ?? BigInt.zero; final fee = BigInt.from(calculateEstimatedFee(credentials.priority)); late BigInt totalAmount; void checkForEnoughBalances() { @@ -184,7 +189,7 @@ abstract class ZanoWalletBase extends WalletBase unlockedBalanceCurrency) { throw ZanoTransactionCreationException( - "You don't have enough coins (required: ${ZanoFormatter.bigIntAmountToString(totalAmount)} ${credentials.currency.title}, unlocked ${ZanoFormatter.bigIntAmountToString(unlockedBalanceZano)} ${credentials.currency.title})."); + "You don't have enough coins (required: ${ZanoFormatter.bigIntAmountToString(totalAmount, credentials.currency.decimals)} ${credentials.currency.title}, unlocked ${ZanoFormatter.bigIntAmountToString(unlockedBalanceCurrency, credentials.currency.decimals)} ${credentials.currency.title})."); } } } @@ -241,18 +246,14 @@ abstract class ZanoWalletBase extends WalletBase[]; late GetRecentTxsAndInfoResult result; - bool first = true; do { result = await getRecentTxsAndInfo(offset: _lastTxIndex, count: _txChunkSize); - // TODO: that's for debug purposes - if (first && result.transfers.isEmpty) break; - first = false; _lastTxIndex += result.transfers.length; transfers.addAll(result.transfers); } while (result.lastItemIndex + 1 < result.totalTransfers); return Transfer.makeMap(transfers, zanoAssets, currentDaemonHeight); } catch (e) { - print(e); + ZanoWalletApi.error(e.toString()); return {}; } } @@ -297,7 +298,33 @@ abstract class ZanoWalletBase extends WalletBase loadAssets(List balances, {int maxRetries = 1}) async { + List assets = []; + int retryCount = 0; + + while (retryCount < maxRetries) { + try { + assets = await getAssetsWhitelist(); + break; + } on ZanoWalletBusyException { + if (retryCount < maxRetries - 1) { + retryCount++; + await Future.delayed(Duration(seconds: 1)); + } else { + ZanoWalletApi.error('failed to load assets after $retryCount retries'); + break; + } + } + } + zanoAssets = {}; + for (final asset in assets) { + final newAsset = ZanoAsset.copyWith(asset, + icon: _getIconPath(asset.title), enabled: balances.any((element) => element.assetId == asset.assetId)); + zanoAssets.putIfAbsent(asset.assetId, () => newAsset); } } @@ -308,7 +335,13 @@ abstract class ZanoWalletBase extends WalletBase element.assetId == asset.assetId)); - zanoAssets.putIfAbsent(asset.assetId, () => newAsset); - } + loadAssets(walletInfo.wi.balances); // matching balances and whitelists // 1. show only balances available in whitelists // 2. set whitelists available in balances as 'enabled' ('disabled' by default) @@ -358,8 +384,8 @@ abstract class ZanoWalletBase extends WalletBase ApiCalls.getCurrentTxFee(priority: priority.raw); + String getOpenedWallets() => ApiCalls.getOpenedWallets(); + String getConnectivityStatus() => ApiCalls.getConnectivityStatus(); + void setPassword(String password) => ApiCalls.setPassword(hWallet: hWallet, password: password); void closeWallet([int? walletToClose]) { @@ -65,7 +70,6 @@ mixin ZanoWalletApi { final json = ApiCalls.getWalletInfo(hWallet); final result = GetWalletInfoResult.fromJson(jsonDecode(json) as Map); _json('get_wallet_info', json); - //await _writeLog('get_wallet_info', 'get_wallet_info result $json'); info('get_wallet_info got ${result.wi.balances.length} balances: ${result.wi.balances} seed: ${_shorten(result.wiExtended.seed)}'); return result; } @@ -78,7 +82,6 @@ mixin ZanoWalletApi { } final status = GetWalletStatusResult.fromJson(jsonDecode(json) as Map); _json('get_wallet_status', json); - //await _writeLog('get_wallet_status', 'get_wallet_status result $json'); if (_logInfo) info( 'get_wallet_status connected: ${status.isDaemonConnected} in refresh: ${status.isInLongRefresh} progress: ${status.progress} wallet state: ${status.walletState}'); @@ -86,13 +89,13 @@ mixin ZanoWalletApi { } Future invokeMethod(String methodName, Object params) async { - //await _writeLog(methodName, 'invoke method $methodName params: ${jsonEncode(params)} hWallet: $hWallet'); var invokeResult = ApiCalls.asyncCall(methodName: 'invoke', hWallet: hWallet, params: '{"method": "$methodName","params": ${jsonEncode(params)}}'); Map map; try { map = jsonDecode(invokeResult) as Map; } catch (e) { + if (invokeResult.contains(Consts.errorWalletWrongId)) throw ZanoWalletException('Wrong wallet id'); error('exception in parsing json in invokeMethod: $invokeResult'); rethrow; } @@ -105,16 +108,15 @@ mixin ZanoWalletApi { try { map = jsonDecode(result) as Map; } catch (e) { + if (result.contains(Consts.errorWalletWrongId)) throw ZanoWalletException('Wrong wallet id'); error('exception in parsing json in invokeMethod: $result'); rethrow; } if (map['status'] != null && map['status'] == _statusDelivered && map['result'] != null) { - //await _writeLog(methodName, 'invoke method $methodName result $result'); return result; } } while (++attempts < _maxInvokeAttempts); } - //await _writeLog(methodName, 'invoke method $methodName result: $invokeResult'); return invokeResult; } @@ -139,7 +141,8 @@ mixin ZanoWalletApi { return [...globalWhitelist, ...localWhitelist, ...ownAssets]; } catch (e) { error('assets_whitelist_get $e'); - return []; + //return []; + rethrow; } } @@ -190,7 +193,7 @@ mixin ZanoWalletApi { final result = await _proxyToDaemon('/json_rpc', '{"method": "$methodName","params": ${jsonEncode(params)}}'); _json('$methodName $assetId', result?.body ?? ''); if (result == null) { - debugPrint('get_asset_info empty result'); + error('get_asset_info empty result'); return null; } final map = jsonDecode(result.body) as Map?; @@ -253,10 +256,8 @@ mixin ZanoWalletApi { Future createWallet(String path, String password) async { info('create_wallet path $path password ${_shorten(password)}'); - //await _writeLog('create_wallet', 'create_wallet path $path password ${_shorten(password)}'); final json = ApiCalls.createWallet(path: path, password: password); _json('create_wallet', json); - //await _writeLog('create_wallet', 'create_wallet result $json'); final map = jsonDecode(json) as Map?; if (map?['error'] != null) { final code = map!['error']!['code'] ?? ''; @@ -273,10 +274,8 @@ mixin ZanoWalletApi { Future restoreWalletFromSeed(String path, String password, String seed) async { info('restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); - //await _writeLog('restore_wallet', 'restore_wallet path $path password ${_shorten(password)} seed ${_shorten(seed)}'); final json = ApiCalls.restoreWalletFromSeed(path: path, password: password, seed: seed); _json('restore_wallet', json); - //await _writeLog('restore_wallet', 'restore_wallet result $json'); final map = jsonDecode(json) as Map?; if (map?['error'] != null) { final code = map!['error']!['code'] ?? ''; @@ -298,15 +297,19 @@ mixin ZanoWalletApi { Future loadWallet(String path, String password, [int attempt = 0]) async { info('load_wallet path $path password ${_shorten(password)}'); - //await _writeLog('load_wallet', 'load_wallet path $path password ${_shorten(password)}'); - final json = ApiCalls.loadWallet(path: path, password: password); + final String json; + try { + json = ApiCalls.loadWallet(path: path, password: password); + } catch (e) { + error('error in loadingWallet $e'); + rethrow; + } _json('load_wallet', json); - //await _writeLog('load_wallet', 'load_wallet result $json'); final map = jsonDecode(json) as Map?; if (map?['error'] != null) { final code = map?['error']!['code'] ?? ''; final message = map?['error']!['message'] ?? ''; - if (code == Consts.errorAlreadyExists && attempt <= 5) { + if (code == Consts.errorAlreadyExists && attempt <= _maxReopenAttempts) { // already connected to this wallet. closing and trying to reopen info('already connected. closing and reopen wallet (attempt $attempt)'); closeWallet(attempt); @@ -347,11 +350,11 @@ mixin ZanoWalletApi { final errorCode = resultMap['error']['code']; final code = errorCode is int ? errorCode.toString() : errorCode as String? ?? ''; final message = resultMap['error']['message'] as String? ?? ''; - debugPrint('transfer error $code $message'); + error('transfer error $code $message'); throw TransferException('Transfer error, $message ($code)'); } } - debugPrint('transfer error empty result'); + error('transfer error empty result'); throw TransferException('Transfer error, empty result'); } @@ -366,6 +369,9 @@ mixin ZanoWalletApi { if (result['error'] != null) { final code = result['error']!['code'] ?? ''; final message = result['error']!['message'] ?? ''; + if (code == -1 && message == Consts.errorBusy) { + throw ZanoWalletBusyException(); + } throw ZanoWalletException('Error, $message ($code)'); } } @@ -382,5 +388,18 @@ mixin ZanoWalletApi { static void info(String s) => _logInfo ? debugPrint('[info] $s') : null; static void error(String s) => _logError ? debugPrint('[error] $s') : null; - static void _json(String methodName, String json) => _logJson ? debugPrint('$methodName $json') : null; + static void printWrapped(String text) => RegExp('.{1,800}').allMatches(text).map((m) => m.group(0)).forEach(print); + static void _json(String methodName, String json) => _logJson ? printWrapped('$methodName $json') : null; + + Map jsonDecode(String json) { + try { + return decodeJson(json.replaceAll("\\/", "/")) as Map; + } catch (e) { + return convert.jsonDecode(json) as Map; + } + } + + String jsonEncode(Object? object) { + return convert.jsonEncode(object); + } } diff --git a/cw_zano/lib/zano_wallet_exceptions.dart b/cw_zano/lib/zano_wallet_exceptions.dart index 4e82cb2aa..57767ef90 100644 --- a/cw_zano/lib/zano_wallet_exceptions.dart +++ b/cw_zano/lib/zano_wallet_exceptions.dart @@ -12,4 +12,8 @@ class RestoreFromKeysException extends ZanoWalletException { class TransferException extends ZanoWalletException { TransferException(String message): super(message); +} + +class ZanoWalletBusyException extends ZanoWalletException { + ZanoWalletBusyException(): super(''); } \ No newline at end of file diff --git a/cw_zano/lib/zano_wallet_service.dart b/cw_zano/lib/zano_wallet_service.dart index cfe97e041..3c4f60685 100644 --- a/cw_zano/lib/zano_wallet_service.dart +++ b/cw_zano/lib/zano_wallet_service.dart @@ -9,6 +9,7 @@ import 'package:cw_core/wallet_service.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cw_zano/api/api_calls.dart'; import 'package:cw_zano/zano_wallet.dart'; +import 'package:cw_zano/zano_wallet_api.dart'; import 'package:hive/hive.dart'; class ZanoNewWalletCredentials extends WalletCredentials { @@ -54,7 +55,7 @@ class ZanoWalletService extends WalletService create(WalletCredentials credentials, {bool? isTestnet}) async { - print('zanowallet service create isTestnet $isTestnet'); + ZanoWalletApi.info('zanowallet service create isTestnet $isTestnet'); return await ZanoWalletBase.create(credentials: credentials); } diff --git a/cw_zano/pubspec.lock b/cw_zano/pubspec.lock index c30a35db6..e1c5eb2f3 100644 --- a/cw_zano/pubspec.lock +++ b/cw_zano/pubspec.lock @@ -250,6 +250,19 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + sha256: "4215b0085ebf737120ab6b06fefeadfae709c74f880a351a73d6d007f74e7631" + url: "https://pub.dev" + source: hosted + version: "8.1.4" frontend_server_client: dependency: transitive description: @@ -346,6 +359,14 @@ packages: url: "https://pub.dev" source: hosted version: "4.8.0" + json_bigint: + dependency: "direct main" + description: + name: json_bigint + sha256: "77f5cc47ec936b37ff5016394b0ed136fe2231e35dcbaed32fe749c221264cac" + url: "https://pub.dev" + source: hosted + version: "3.0.0" leak_tracker: dependency: transitive description: @@ -490,6 +511,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.5" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + url: "https://pub.dev" + source: hosted + version: "5.4.0" platform: dependency: transitive description: @@ -737,4 +766,4 @@ packages: version: "3.1.1" sdks: dart: ">=3.2.0-0 <4.0.0" - flutter: ">=3.0.0" + flutter: ">=3.7.0" diff --git a/cw_zano/pubspec.yaml b/cw_zano/pubspec.yaml index 604480d76..f8ecb3150 100644 --- a/cw_zano/pubspec.yaml +++ b/cw_zano/pubspec.yaml @@ -21,6 +21,8 @@ dependencies: decimal: ^2.3.3 cw_core: path: ../cw_core + json_bigint: ^3.0.0 + fluttertoast: 8.1.4 dev_dependencies: flutter_test: diff --git a/lib/core/amount_validator.dart b/lib/core/amount_validator.dart index 38983dfb2..f85df483f 100644 --- a/lib/core/amount_validator.dart +++ b/lib/core/amount_validator.dart @@ -76,6 +76,8 @@ class DecimalAmountValidator extends TextValidator { return '^([0-9]+([.\,][0-9]{1,12})?|[.\,][0-9]{1,12})\$'; case CryptoCurrency.btc: return '^([0-9]+([.\,][0-9]{1,8})?|[.\,][0-9]{1,8})\$'; + case CryptoCurrency.zano: + return '^([0-9]+([.\,][0-9]{1,12})?|[.\,][0-9]{1,18})\$'; default: return '^([0-9]+([.\,][0-9]{1,12})?|[.\,][0-9]{1,12})\$'; } diff --git a/lib/haven/cw_haven.dart b/lib/haven/cw_haven.dart deleted file mode 100644 index 57c4e49c3..000000000 --- a/lib/haven/cw_haven.dart +++ /dev/null @@ -1,331 +0,0 @@ -part of 'haven.dart'; - -class CWHavenAccountList extends HavenAccountList { - CWHavenAccountList(this._wallet); - - final Object _wallet; - - @override - @computed - ObservableList get accounts { - final havenWallet = _wallet as HavenWallet; - final accounts = havenWallet.walletAddresses.accountList.accounts - .map((acc) => Account(id: acc.id, label: acc.label)) - .toList(); - return ObservableList.of(accounts); - } - - @override - void update(Object wallet) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.accountList.update(); - } - - @override - void refresh(Object wallet) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.accountList.refresh(); - } - - @override - List getAll(Object wallet) { - final havenWallet = wallet as HavenWallet; - return havenWallet.walletAddresses.accountList - .getAll() - .map((acc) => Account(id: acc.id, label: acc.label)) - .toList(); - } - - @override - Future addAccount(Object wallet, {required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.accountList.addAccount(label: label); - } - - @override - Future setLabelAccount(Object wallet, - {required int accountIndex, required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.accountList - .setLabelAccount(accountIndex: accountIndex, label: label); - } -} - -class CWHavenSubaddressList extends MoneroSubaddressList { - CWHavenSubaddressList(this._wallet); - - final Object _wallet; - - @override - @computed - ObservableList get subaddresses { - final havenWallet = _wallet as HavenWallet; - final subAddresses = havenWallet.walletAddresses.subaddressList.subaddresses - .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) - .toList(); - return ObservableList.of(subAddresses); - } - - @override - void update(Object wallet, {required int accountIndex}) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); - } - - @override - void refresh(Object wallet, {required int accountIndex}) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); - } - - @override - List getAll(Object wallet) { - final havenWallet = wallet as HavenWallet; - return havenWallet.walletAddresses.subaddressList - .getAll() - .map((sub) => Subaddress(id: sub.id, label: sub.label, address: sub.address)) - .toList(); - } - - @override - Future addSubaddress(Object wallet, - {required int accountIndex, required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.subaddressList - .addSubaddress(accountIndex: accountIndex, label: label); - } - - @override - Future setLabelSubaddress(Object wallet, - {required int accountIndex, required int addressIndex, required String label}) async { - final havenWallet = wallet as HavenWallet; - await havenWallet.walletAddresses.subaddressList - .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); - } -} - -class CWHavenWalletDetails extends HavenWalletDetails { - CWHavenWalletDetails(this._wallet); - - final Object _wallet; - - @computed - @override - Account get account { - final havenWallet = _wallet as HavenWallet; - final acc = havenWallet.walletAddresses.account as monero_account.Account; - return Account(id: acc.id, label: acc.label); - } - - @computed - @override - HavenBalance get balance { - final havenWallet = _wallet as HavenWallet; - final balance = havenWallet.balance; - throw Exception('Unimplemented'); - //return HavenBalance( - // fullBalance: balance.fullBalance, - // unlockedBalance: balance.unlockedBalance); - } -} - -class CWHaven extends Haven { - @override - HavenAccountList getAccountList(Object wallet) { - return CWHavenAccountList(wallet); - } - - @override - MoneroSubaddressList getSubaddressList(Object wallet) { - return CWHavenSubaddressList(wallet); - } - - @override - TransactionHistoryBase getTransactionHistory(Object wallet) { - final havenWallet = wallet as HavenWallet; - return havenWallet.transactionHistory; - } - - @override - HavenWalletDetails getMoneroWalletDetails(Object wallet) { - return CWHavenWalletDetails(wallet); - } - - @override - int getHeightByDate({required DateTime date}) => getHavenHeightByDate(date: date); - - @override - Future getCurrentHeight() => getHavenCurrentHeight(); - - @override - TransactionPriority getDefaultTransactionPriority() { - return MoneroTransactionPriority.automatic; - } - - @override - TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { - return MoneroTransactionPriority.deserialize(raw: raw); - } - - @override - List getTransactionPriorities() { - return MoneroTransactionPriority.all; - } - - @override - List getMoneroWordList(String language) { - switch (language.toLowerCase()) { - case 'english': - return EnglishMnemonics.words; - case 'chinese (simplified)': - return ChineseSimplifiedMnemonics.words; - case 'dutch': - return DutchMnemonics.words; - case 'german': - return GermanMnemonics.words; - case 'japanese': - return JapaneseMnemonics.words; - case 'portuguese': - return PortugueseMnemonics.words; - case 'russian': - return RussianMnemonics.words; - case 'spanish': - return SpanishMnemonics.words; - case 'french': - return FrenchMnemonics.words; - case 'italian': - return ItalianMnemonics.words; - default: - return EnglishMnemonics.words; - } - } - - @override - WalletCredentials createHavenRestoreWalletFromKeysCredentials( - {required String name, - required String spendKey, - required String viewKey, - required String address, - required String password, - required String language, - required int height}) { - return HavenRestoreWalletFromKeysCredentials( - name: name, - spendKey: spendKey, - viewKey: viewKey, - address: address, - password: password, - language: language, - height: height); - } - - @override - WalletCredentials createHavenRestoreWalletFromSeedCredentials( - {required String name, - required String password, - required int height, - required String mnemonic}) { - return HavenRestoreWalletFromSeedCredentials( - name: name, password: password, height: height, mnemonic: mnemonic); - } - - @override - WalletCredentials createHavenNewWalletCredentials( - {required String name, required String language, String? password}) { - return HavenNewWalletCredentials(name: name, password: password, language: language); - } - - @override - Map getKeys(Object wallet) { - final havenWallet = wallet as HavenWallet; - final keys = havenWallet.keys; - return { - 'privateSpendKey': keys.privateSpendKey, - 'privateViewKey': keys.privateViewKey, - 'publicSpendKey': keys.publicSpendKey, - 'publicViewKey': keys.publicViewKey - }; - } - - @override - Object createHavenTransactionCreationCredentials( - {required List outputs, - required TransactionPriority priority, - required String assetType}) { - return HavenTransactionCreationCredentials( - outputs: outputs - .map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) - .toList(), - priority: priority as MoneroTransactionPriority, - assetType: assetType); - } - - @override - String formatterMoneroAmountToString({required int amount}) { - return moneroAmountToString(amount: amount); - } - - @override - double formatterMoneroAmountToDouble({required int amount}) { - return moneroAmountToDouble(amount: amount); - } - - @override - int formatterMoneroParseAmount({required String amount}) { - return moneroParseAmount(amount: amount); - } - - @override - Account getCurrentAccount(Object wallet) { - final havenWallet = wallet as HavenWallet; - final acc = havenWallet.walletAddresses.account as monero_account.Account; - return Account(id: acc.id, label: acc.label); - } - - @override - void setCurrentAccount(Object wallet, int id, String label) { - final havenWallet = wallet as HavenWallet; - havenWallet.walletAddresses.account = monero_account.Account(id: id, label: label); - } - - @override - void onStartup() { - monero_wallet_api.onStartup(); - } - - @override - int getTransactionInfoAccountId(TransactionInfo tx) { - final havenTransactionInfo = tx as HavenTransactionInfo; - return havenTransactionInfo.accountIndex; - } - - @override - WalletService createHavenWalletService(Box walletInfoSource) { - return HavenWalletService(walletInfoSource); - } - - @override - String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { - final havenWallet = wallet as HavenWallet; - return havenWallet.getTransactionAddress(accountIndex, addressIndex); - } - - @override - CryptoCurrency assetOfTransaction(TransactionInfo tx) { - final transaction = tx as HavenTransactionInfo; - final asset = CryptoCurrency.fromString(transaction.assetType); - return asset; - } - - @override - List getAssetRate() => - getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); -} diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index 738a75c1c..a0f04de49 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -88,9 +88,7 @@ abstract class HomeSettingsViewModelBase with Store { } if (_balanceViewModel.wallet.type == WalletType.zano) { - // TODO: assuming that token is Erc20Token - token as Erc20Token; - await zano!.addZanoAssetById(_balanceViewModel.wallet, token.contractAddress); + await zano!.addZanoAssetById(_balanceViewModel.wallet, contractAddress); } _updateTokensList(); diff --git a/lib/view_model/dashboard/transaction_list_item.dart b/lib/view_model/dashboard/transaction_list_item.dart index fc67a5853..d064a524b 100644 --- a/lib/view_model/dashboard/transaction_list_item.dart +++ b/lib/view_model/dashboard/transaction_list_item.dart @@ -177,7 +177,7 @@ class TransactionListItem extends ActionListItem with Keyable { final asset = zano!.assetOfTransaction(balanceViewModel.wallet, transaction); final price = balanceViewModel.fiatConvertationStore.prices[asset]; amount = calculateFiatAmountRaw( - cryptoAmount: zano!.formatterIntAmountToDouble(amount: transaction.amount, currency: asset), + cryptoAmount: zano!.formatterIntAmountToDouble(amount: transaction.amount, currency: asset, forFee: false), price: price); break; default: diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index fdc3015e0..062f3712e 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -183,7 +183,7 @@ abstract class OutputBase with Store { } if (_wallet.type == WalletType.zano) { - return zano!.formatterIntAmountToDouble(amount: fee, currency: cryptoCurrencyHandler()); + return zano!.formatterIntAmountToDouble(amount: fee, currency: cryptoCurrencyHandler(), forFee: true); } } catch (e) { print(e.toString()); diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index ae116e3c1..ac0d5aa3d 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -20,6 +20,7 @@ import 'package:cake_wallet/view_model/send/send_view_model.dart'; import 'package:collection/collection.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; import 'package:hive/hive.dart'; import 'package:intl/src/intl/date_format.dart'; import 'package:mobx/mobx.dart'; @@ -497,9 +498,11 @@ abstract class TransactionDetailsViewModelBase with Store { } void _addZanoListItems(TransactionInfo tx, DateFormat dateFormat) { + tx as ZanoTransactionInfo; final comment = tx.additionalInfo['comment'] as String?; items.addAll([ StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), + StandartListItem(title: 'Asset ID', value: tx.assetId), StandartListItem( title: S.current.transaction_details_date, value: dateFormat.format(tx.date)), StandartListItem(title: S.current.transaction_details_height, value: '${tx.height}'), diff --git a/lib/zano/cw_zano.dart b/lib/zano/cw_zano.dart index 09fbb0b8f..e6207ee45 100644 --- a/lib/zano/cw_zano.dart +++ b/lib/zano/cw_zano.dart @@ -102,7 +102,9 @@ class CWZano extends Zano { } @override - double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency}) { + double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}) { + // fee always counted in zano with default decimal points + if (forFee) return ZanoFormatter.intAmountToDouble(amount); if (currency is ZanoAsset) return ZanoFormatter.intAmountToDouble(amount, currency.decimalPoint); return ZanoFormatter.intAmountToDouble(amount); } diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart index 0c3adf126..69999cb3c 100644 --- a/lib/zano/zano.dart +++ b/lib/zano/zano.dart @@ -42,7 +42,7 @@ abstract class Zano { WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); WalletCredentials createZanoNewWalletCredentials({required String name, String password}); Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); - double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency}); + double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}); int formatterParseAmount({required String amount, required CryptoCurrency currency}); WalletService createZanoWalletService(Box walletInfoSource); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); diff --git a/tool/configure.dart b/tool/configure.dart index 611e416e0..49429a36c 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -1394,7 +1394,7 @@ abstract class Zano { WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); WalletCredentials createZanoNewWalletCredentials({required String name, String password}); Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); - double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency}); + double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}); int formatterParseAmount({required String amount, required CryptoCurrency currency}); WalletService createZanoWalletService(Box walletInfoSource); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); From 8c7d87b4ddb575a91de67943807343d66b784edb Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 7 Aug 2024 12:41:51 +0000 Subject: [PATCH 44/58] modified build scripts for android --- scripts/android/build_haven_all.sh | 1 + scripts/android/build_zano.sh | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/scripts/android/build_haven_all.sh b/scripts/android/build_haven_all.sh index daadadc6b..b4dcb802e 100755 --- a/scripts/android/build_haven_all.sh +++ b/scripts/android/build_haven_all.sh @@ -6,3 +6,4 @@ ./build_sodium.sh ./build_zmq.sh ./build_haven.sh +./build_zano.sh diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index 49fdb7484..9254cea3f 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -6,16 +6,16 @@ set -o xtrace ZANO_SRC_DIR=${WORKDIR}/zano ZANO_CHECKOUT_ID=master -#git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} -cd $ZANO_SRC_DIR -#git checkout ${ZANO_CHECKOUT_ID} -#git submodule init -#git submodule update -#git pull -r -#if [ $? -ne 0 ]; then -# echo "Failed to git pull -r" -# exit 1 -#fi +git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} +#cd $ZANO_SRC_DIR +git checkout ${ZANO_CHECKOUT_ID} +git submodule init +git submodule update +git pull -r +if [ $? -ne 0 ]; then + echo "Failed to git pull -r" + exit 1 +fi for arch in "aarch" "aarch64" "i686" "x86_64" do From 9c6ddbaefb7e39880ea4718909804eb694a3e448 Mon Sep 17 00:00:00 2001 From: leo Date: Sat, 10 Aug 2024 09:25:46 +0000 Subject: [PATCH 45/58] build scripts --- scripts/android/build_haven_all.sh | 1 + scripts/android/build_zano.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/android/build_haven_all.sh b/scripts/android/build_haven_all.sh index b4dcb802e..bdda7f9b1 100755 --- a/scripts/android/build_haven_all.sh +++ b/scripts/android/build_haven_all.sh @@ -7,3 +7,4 @@ ./build_zmq.sh ./build_haven.sh ./build_zano.sh +./copy_zano_libs.sh diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index 9254cea3f..b90d66688 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -4,10 +4,10 @@ set -o xtrace . ./config.sh #HAVEN_VERSION=tags/v3.0.7 ZANO_SRC_DIR=${WORKDIR}/zano -ZANO_CHECKOUT_ID=master +ZANO_CHECKOUT_ID=develop git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} -#cd $ZANO_SRC_DIR +cd $ZANO_SRC_DIR git checkout ${ZANO_CHECKOUT_ID} git submodule init git submodule update From 7474291d53ba1d02b69c55d9a5a156666cb1a2d8 Mon Sep 17 00:00:00 2001 From: leo1234 Date: Tue, 13 Aug 2024 21:00:33 +0800 Subject: [PATCH 46/58] restored accidently removed cw_haven.dart --- lib/haven/cw_haven.dart | 331 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 331 insertions(+) create mode 100644 lib/haven/cw_haven.dart diff --git a/lib/haven/cw_haven.dart b/lib/haven/cw_haven.dart new file mode 100644 index 000000000..57c4e49c3 --- /dev/null +++ b/lib/haven/cw_haven.dart @@ -0,0 +1,331 @@ +part of 'haven.dart'; + +class CWHavenAccountList extends HavenAccountList { + CWHavenAccountList(this._wallet); + + final Object _wallet; + + @override + @computed + ObservableList get accounts { + final havenWallet = _wallet as HavenWallet; + final accounts = havenWallet.walletAddresses.accountList.accounts + .map((acc) => Account(id: acc.id, label: acc.label)) + .toList(); + return ObservableList.of(accounts); + } + + @override + void update(Object wallet) { + final havenWallet = wallet as HavenWallet; + havenWallet.walletAddresses.accountList.update(); + } + + @override + void refresh(Object wallet) { + final havenWallet = wallet as HavenWallet; + havenWallet.walletAddresses.accountList.refresh(); + } + + @override + List getAll(Object wallet) { + final havenWallet = wallet as HavenWallet; + return havenWallet.walletAddresses.accountList + .getAll() + .map((acc) => Account(id: acc.id, label: acc.label)) + .toList(); + } + + @override + Future addAccount(Object wallet, {required String label}) async { + final havenWallet = wallet as HavenWallet; + await havenWallet.walletAddresses.accountList.addAccount(label: label); + } + + @override + Future setLabelAccount(Object wallet, + {required int accountIndex, required String label}) async { + final havenWallet = wallet as HavenWallet; + await havenWallet.walletAddresses.accountList + .setLabelAccount(accountIndex: accountIndex, label: label); + } +} + +class CWHavenSubaddressList extends MoneroSubaddressList { + CWHavenSubaddressList(this._wallet); + + final Object _wallet; + + @override + @computed + ObservableList get subaddresses { + final havenWallet = _wallet as HavenWallet; + final subAddresses = havenWallet.walletAddresses.subaddressList.subaddresses + .map((sub) => Subaddress(id: sub.id, address: sub.address, label: sub.label)) + .toList(); + return ObservableList.of(subAddresses); + } + + @override + void update(Object wallet, {required int accountIndex}) { + final havenWallet = wallet as HavenWallet; + havenWallet.walletAddresses.subaddressList.update(accountIndex: accountIndex); + } + + @override + void refresh(Object wallet, {required int accountIndex}) { + final havenWallet = wallet as HavenWallet; + havenWallet.walletAddresses.subaddressList.refresh(accountIndex: accountIndex); + } + + @override + List getAll(Object wallet) { + final havenWallet = wallet as HavenWallet; + return havenWallet.walletAddresses.subaddressList + .getAll() + .map((sub) => Subaddress(id: sub.id, label: sub.label, address: sub.address)) + .toList(); + } + + @override + Future addSubaddress(Object wallet, + {required int accountIndex, required String label}) async { + final havenWallet = wallet as HavenWallet; + await havenWallet.walletAddresses.subaddressList + .addSubaddress(accountIndex: accountIndex, label: label); + } + + @override + Future setLabelSubaddress(Object wallet, + {required int accountIndex, required int addressIndex, required String label}) async { + final havenWallet = wallet as HavenWallet; + await havenWallet.walletAddresses.subaddressList + .setLabelSubaddress(accountIndex: accountIndex, addressIndex: addressIndex, label: label); + } +} + +class CWHavenWalletDetails extends HavenWalletDetails { + CWHavenWalletDetails(this._wallet); + + final Object _wallet; + + @computed + @override + Account get account { + final havenWallet = _wallet as HavenWallet; + final acc = havenWallet.walletAddresses.account as monero_account.Account; + return Account(id: acc.id, label: acc.label); + } + + @computed + @override + HavenBalance get balance { + final havenWallet = _wallet as HavenWallet; + final balance = havenWallet.balance; + throw Exception('Unimplemented'); + //return HavenBalance( + // fullBalance: balance.fullBalance, + // unlockedBalance: balance.unlockedBalance); + } +} + +class CWHaven extends Haven { + @override + HavenAccountList getAccountList(Object wallet) { + return CWHavenAccountList(wallet); + } + + @override + MoneroSubaddressList getSubaddressList(Object wallet) { + return CWHavenSubaddressList(wallet); + } + + @override + TransactionHistoryBase getTransactionHistory(Object wallet) { + final havenWallet = wallet as HavenWallet; + return havenWallet.transactionHistory; + } + + @override + HavenWalletDetails getMoneroWalletDetails(Object wallet) { + return CWHavenWalletDetails(wallet); + } + + @override + int getHeightByDate({required DateTime date}) => getHavenHeightByDate(date: date); + + @override + Future getCurrentHeight() => getHavenCurrentHeight(); + + @override + TransactionPriority getDefaultTransactionPriority() { + return MoneroTransactionPriority.automatic; + } + + @override + TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { + return MoneroTransactionPriority.deserialize(raw: raw); + } + + @override + List getTransactionPriorities() { + return MoneroTransactionPriority.all; + } + + @override + List getMoneroWordList(String language) { + switch (language.toLowerCase()) { + case 'english': + return EnglishMnemonics.words; + case 'chinese (simplified)': + return ChineseSimplifiedMnemonics.words; + case 'dutch': + return DutchMnemonics.words; + case 'german': + return GermanMnemonics.words; + case 'japanese': + return JapaneseMnemonics.words; + case 'portuguese': + return PortugueseMnemonics.words; + case 'russian': + return RussianMnemonics.words; + case 'spanish': + return SpanishMnemonics.words; + case 'french': + return FrenchMnemonics.words; + case 'italian': + return ItalianMnemonics.words; + default: + return EnglishMnemonics.words; + } + } + + @override + WalletCredentials createHavenRestoreWalletFromKeysCredentials( + {required String name, + required String spendKey, + required String viewKey, + required String address, + required String password, + required String language, + required int height}) { + return HavenRestoreWalletFromKeysCredentials( + name: name, + spendKey: spendKey, + viewKey: viewKey, + address: address, + password: password, + language: language, + height: height); + } + + @override + WalletCredentials createHavenRestoreWalletFromSeedCredentials( + {required String name, + required String password, + required int height, + required String mnemonic}) { + return HavenRestoreWalletFromSeedCredentials( + name: name, password: password, height: height, mnemonic: mnemonic); + } + + @override + WalletCredentials createHavenNewWalletCredentials( + {required String name, required String language, String? password}) { + return HavenNewWalletCredentials(name: name, password: password, language: language); + } + + @override + Map getKeys(Object wallet) { + final havenWallet = wallet as HavenWallet; + final keys = havenWallet.keys; + return { + 'privateSpendKey': keys.privateSpendKey, + 'privateViewKey': keys.privateViewKey, + 'publicSpendKey': keys.publicSpendKey, + 'publicViewKey': keys.publicViewKey + }; + } + + @override + Object createHavenTransactionCreationCredentials( + {required List outputs, + required TransactionPriority priority, + required String assetType}) { + return HavenTransactionCreationCredentials( + outputs: outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)) + .toList(), + priority: priority as MoneroTransactionPriority, + assetType: assetType); + } + + @override + String formatterMoneroAmountToString({required int amount}) { + return moneroAmountToString(amount: amount); + } + + @override + double formatterMoneroAmountToDouble({required int amount}) { + return moneroAmountToDouble(amount: amount); + } + + @override + int formatterMoneroParseAmount({required String amount}) { + return moneroParseAmount(amount: amount); + } + + @override + Account getCurrentAccount(Object wallet) { + final havenWallet = wallet as HavenWallet; + final acc = havenWallet.walletAddresses.account as monero_account.Account; + return Account(id: acc.id, label: acc.label); + } + + @override + void setCurrentAccount(Object wallet, int id, String label) { + final havenWallet = wallet as HavenWallet; + havenWallet.walletAddresses.account = monero_account.Account(id: id, label: label); + } + + @override + void onStartup() { + monero_wallet_api.onStartup(); + } + + @override + int getTransactionInfoAccountId(TransactionInfo tx) { + final havenTransactionInfo = tx as HavenTransactionInfo; + return havenTransactionInfo.accountIndex; + } + + @override + WalletService createHavenWalletService(Box walletInfoSource) { + return HavenWalletService(walletInfoSource); + } + + @override + String getTransactionAddress(Object wallet, int accountIndex, int addressIndex) { + final havenWallet = wallet as HavenWallet; + return havenWallet.getTransactionAddress(accountIndex, addressIndex); + } + + @override + CryptoCurrency assetOfTransaction(TransactionInfo tx) { + final transaction = tx as HavenTransactionInfo; + final asset = CryptoCurrency.fromString(transaction.assetType); + return asset; + } + + @override + List getAssetRate() => + getRate().map((rate) => AssetRate(rate.getAssetType(), rate.getRate())).toList(); +} From b210dfeda48e822d1402f764015a12cc7e8b5d0b Mon Sep 17 00:00:00 2001 From: "cr.zoidberg" Date: Wed, 14 Aug 2024 21:20:26 +0400 Subject: [PATCH 47/58] inital ios integration(zano libs built) --- android/.project | 11 ++ .../org.eclipse.buildship.core.prefs | 13 +- cw_bitcoin/pubspec.lock | 16 ++ cw_wownero/pubspec.lock | 16 ++ .../{CwHavenPlugin.h => CwZanoPlugin.h} | 0 .../{CwHavenPlugin.m => CwZanoPlugin.m} | 0 ...enPlugin.swift => SwiftCwZanoPlugin.swift} | 0 cw_zano/ios/Classes/zano_api.cpp | 8 +- cw_zano/ios/External/CMakeLists.txt | 168 ++++++++++++++++++ .../{android => }/include/wallet2_api.h | 0 .../ios/{cw_haven.podspec => cw_zano.podspec} | 2 +- ios/Podfile.lock | 28 ++- ios/Runner.xcodeproj/project.pbxproj | 12 +- scripts/ios/build_boost.sh | 4 +- scripts/ios/build_zano.sh | 102 +++++++++++ scripts/ios/build_zano_all.sh | 8 + 16 files changed, 373 insertions(+), 15 deletions(-) rename cw_zano/ios/Classes/{CwHavenPlugin.h => CwZanoPlugin.h} (100%) rename cw_zano/ios/Classes/{CwHavenPlugin.m => CwZanoPlugin.m} (100%) rename cw_zano/ios/Classes/{SwiftCwHavenPlugin.swift => SwiftCwZanoPlugin.swift} (100%) create mode 100644 cw_zano/ios/External/CMakeLists.txt rename cw_zano/ios/External/{android => }/include/wallet2_api.h (100%) rename cw_zano/ios/{cw_haven.podspec => cw_zano.podspec} (98%) create mode 100755 scripts/ios/build_zano.sh create mode 100755 scripts/ios/build_zano_all.sh diff --git a/android/.project b/android/.project index 17c95d4b1..4f11206e8 100644 --- a/android/.project +++ b/android/.project @@ -14,4 +14,15 @@ org.eclipse.buildship.core.gradleprojectnature + + + 1723563577231 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs index 9d2efc8e7..590ce5e1d 100644 --- a/android/.settings/org.eclipse.buildship.core.prefs +++ b/android/.settings/org.eclipse.buildship.core.prefs @@ -1,2 +1,13 @@ +arguments=--init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) connection.project.dir= -eclipse.preferences.version=1 \ No newline at end of file +eclipse.preferences.version=1 +gradle.user.home= +java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 15f7cdb43..e27a5f7df 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -277,6 +277,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.3" + decimal: + dependency: transitive + description: + name: decimal + sha256: "24a261d5d5c87e86c7651c417a5dbdf8bcd7080dd592533910e8d0505a279f21" + url: "https://pub.dev" + source: hosted + version: "2.3.3" encrypt: dependency: transitive description: @@ -712,6 +720,14 @@ packages: url: "https://pub.dev" source: hosted version: "3.2.1" + rational: + dependency: transitive + description: + name: rational + sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 + url: "https://pub.dev" + source: hosted + version: "2.2.3" reactive_ble_mobile: dependency: transitive description: diff --git a/cw_wownero/pubspec.lock b/cw_wownero/pubspec.lock index 011fed169..910786ded 100644 --- a/cw_wownero/pubspec.lock +++ b/cw_wownero/pubspec.lock @@ -184,6 +184,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.2.4" + decimal: + dependency: transitive + description: + name: decimal + sha256: "24a261d5d5c87e86c7651c417a5dbdf8bcd7080dd592533910e8d0505a279f21" + url: "https://pub.dev" + source: hosted + version: "2.3.3" encrypt: dependency: "direct main" description: @@ -579,6 +587,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.2.1" + rational: + dependency: transitive + description: + name: rational + sha256: cb808fb6f1a839e6fc5f7d8cb3b0a10e1db48b3be102de73938c627f0b636336 + url: "https://pub.dev" + source: hosted + version: "2.2.3" shelf: dependency: transitive description: diff --git a/cw_zano/ios/Classes/CwHavenPlugin.h b/cw_zano/ios/Classes/CwZanoPlugin.h similarity index 100% rename from cw_zano/ios/Classes/CwHavenPlugin.h rename to cw_zano/ios/Classes/CwZanoPlugin.h diff --git a/cw_zano/ios/Classes/CwHavenPlugin.m b/cw_zano/ios/Classes/CwZanoPlugin.m similarity index 100% rename from cw_zano/ios/Classes/CwHavenPlugin.m rename to cw_zano/ios/Classes/CwZanoPlugin.m diff --git a/cw_zano/ios/Classes/SwiftCwHavenPlugin.swift b/cw_zano/ios/Classes/SwiftCwZanoPlugin.swift similarity index 100% rename from cw_zano/ios/Classes/SwiftCwHavenPlugin.swift rename to cw_zano/ios/Classes/SwiftCwZanoPlugin.swift diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index 8e15658fa..eab3f4584 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -6,14 +6,16 @@ #include #include #include "thread" + + #if __APPLE__ // Fix for randomx on ios void __clear_cache(void* start, void* end) { } -#include "../External/ios/include/wallet2_api.h" -#else -#include "../External/android/include/wallet2_api.h" +//#include "../External/ios/include/wallet2_api.h" #endif +#include "../External/include/wallet2_api.h" + #include "plain_wallet_api.h" //#include "plain_wallet_api_ex.h" diff --git a/cw_zano/ios/External/CMakeLists.txt b/cw_zano/ios/External/CMakeLists.txt new file mode 100644 index 000000000..420372308 --- /dev/null +++ b/cw_zano/ios/External/CMakeLists.txt @@ -0,0 +1,168 @@ +# Portions Copyright (c) 2017-2022, The Monero Project +# This file is based off of the https://code.google.com/archive/p/ios-cmake/ +# It has been altered for Monero iOS development +# +# +# Options: +# +# IOS_PLATFORM = OS (default) or SIMULATOR or SIMULATOR64 +# This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders +# OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch. +# SIMULATOR - used to build for the Simulator platforms, which have an x86 arch. +# +# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder +# By default this location is automatcially chosen based on the IOS_PLATFORM value above. +# If set manually, it will override the default location and force the user of a particular Developer Platform +# +# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder +# By default this location is automatcially chosen based on the CMAKE_IOS_DEVELOPER_ROOT value. +# In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path. +# If set manually, this will force the use of a specific SDK version + +message (STATUS "Running Zano IOS setup cmake file") + +# Standard settings +set (CMAKE_SYSTEM_NAME iOS) +set (CMAKE_SYSTEM_VERSION 15) +#set (UNIX True) +set (APPLE True) +set (IOS True) + +# Required as of cmake 2.8.10 +set (CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE) + +# Determine the cmake host system version so we know where to find the iOS SDKs +#find_program (CMAKE_UNAME uname /bin /usr/bin /usr/local/bin) +#if (CMAKE_UNAME) +# exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION) +# string (REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}") +#endif (CMAKE_UNAME) +# Force the compilers to gcc for iOS +# include (CMakeForceCompiler) +# set (MAKE_C_COMPILER "/usr/bin/gcc Apple") +# set (CMAKE_CXX_COMPILER "/usr/bin/g++ Apple") +#set(CMAKE_AR ar CACHE FILEPATH "" FORCE) + +# Skip the platform compiler checks for cross compiling +# set (CMAKE_CXX_COMPILER_WORKS TRUE) +# set (CMAKE_C_COMPILER_WORKS TRUE) + +# All iOS/Darwin specific settings - some may be redundant +set (CMAKE_SHARED_LIBRARY_PREFIX "lib") +set (CMAKE_SHARED_LIBRARY_SUFFIX ".dylib") +set (CMAKE_SHARED_MODULE_PREFIX "lib") +set (CMAKE_SHARED_MODULE_SUFFIX ".so") +# set (CMAKE_MODULE_EXISTS 1) +#set (CMAKE_DL_LIBS "") + +#set (CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") +#set (CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ") +#set (CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}") +#set (CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}") + +# Hidden visibilty is required for cxx on iOS +# set (CMAKE_C_FLAGS_INIT "") +# set (CMAKE_CXX_FLAGS_INIT "-fvisibility=hidden -fvisibility-inlines-hidden") + +#set (CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}") +#set (CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}") + +#set (CMAKE_PLATFORM_HAS_INSTALLNAME 1) +#set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names") +#set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names") +#set (CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,") +#set (CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,") +#set (CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a") + +# Setup iOS platform unless specified manually with IOS_PLATFORM +if (NOT DEFINED IOS_PLATFORM) + set (IOS_PLATFORM "OS") +endif (NOT DEFINED IOS_PLATFORM) +set (IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS Platform") + +# Setup building for arm64 or not +if (NOT DEFINED BUILD_ARM64) + set (BUILD_ARM64 true) +endif (NOT DEFINED BUILD_ARM64) +set (BUILD_ARM64 ${BUILD_ARM64} CACHE STRING "Build arm64 arch or not") + +# Check the platform selection and setup for developer root +if (${IOS_PLATFORM} STREQUAL "OS") + set (IOS_PLATFORM_LOCATION "iPhoneOS.platform") + + # This causes the installers to properly locate the output libraries + set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos") +elseif (${IOS_PLATFORM} STREQUAL "SIMULATOR") + set (SIMULATOR true) + set (IOS_PLATFORM_LOCATION "iPhoneSimulator.platform") + + # This causes the installers to properly locate the output libraries + set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator") +elseif (${IOS_PLATFORM} STREQUAL "SIMULATOR64") + set (SIMULATOR true) + set (IOS_PLATFORM_LOCATION "iPhoneSimulator.platform") + + # This causes the installers to properly locate the output libraries + set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator") +else (${IOS_PLATFORM} STREQUAL "OS") + message (FATAL_ERROR "Unsupported IOS_PLATFORM value selected. Please choose OS or SIMULATOR") +endif (${IOS_PLATFORM} STREQUAL "OS") + +# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT +# Note Xcode 4.3 changed the installation location, choose the most recent one available +# exec_program(/usr/bin/xcode-select ARGS -print-path OUTPUT_VARIABLE CMAKE_XCODE_DEVELOPER_DIR) +# set (XCODE_POST_43_ROOT "${CMAKE_XCODE_DEVELOPER_DIR}/Platforms/${IOS_PLATFORM_LOCATION}/Developer") +# set (XCODE_PRE_43_ROOT "/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer") +#if (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) +# if (EXISTS ${XCODE_POST_43_ROOT}) +# set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_POST_43_ROOT}) +# elseif(EXISTS ${XCODE_PRE_43_ROOT}) +# set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT}) +# endif (EXISTS ${XCODE_POST_43_ROOT}) +#endif (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT) +#set (CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform") + +# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT +#if (NOT DEFINED CMAKE_IOS_SDK_ROOT) +# file (GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*") +# if (_CMAKE_IOS_SDKS) +# list (SORT _CMAKE_IOS_SDKS) +# list (REVERSE _CMAKE_IOS_SDKS) +# list (GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT) +# else (_CMAKE_IOS_SDKS) +# message (FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.") +# endif (_CMAKE_IOS_SDKS) +# message (STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}") +#endif (NOT DEFINED CMAKE_IOS_SDK_ROOT) +#set (CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK") + +# Set the sysroot default to the most recent SDK +#set (CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support") +# set (CMAKE_OSX_SYSROOT ${CMAKE_OSX_SYSROOT}) +#set(CMAKE_OSX_SYSROOT "$(xcrun --sdk ${IOS_PLATFORM_LOCATION} --show-sdk-path)") + + +# set the architecture for iOS +#if (NOT DEFINED ARCH) +# set (ARCH armv7) +#endif() +set (IOS_ARCH ${ARCH}) + +#set (CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE STRING "Build architecture for iOS") +set(CMAKE_OSX_ARCHITECTURES arm64) +message(STATUS "ios arch: ${IOS_ARCH}") + +# Set the find root to the iOS developer roots and to user defined paths +#set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE STRING "iOS find search path root") + +# default to searching for frameworks first +# set (CMAKE_FIND_FRAMEWORK FIRST) + +# set up the default search directories for frameworks +# set (CMAKE_SYSTEM_FRAMEWORK_PATH +# ${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks +# ${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks +# ${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks +#) + +message(STATUS "IOS CMAKE conf finished") \ No newline at end of file diff --git a/cw_zano/ios/External/android/include/wallet2_api.h b/cw_zano/ios/External/include/wallet2_api.h similarity index 100% rename from cw_zano/ios/External/android/include/wallet2_api.h rename to cw_zano/ios/External/include/wallet2_api.h diff --git a/cw_zano/ios/cw_haven.podspec b/cw_zano/ios/cw_zano.podspec similarity index 98% rename from cw_zano/ios/cw_haven.podspec rename to cw_zano/ios/cw_zano.podspec index b95eef75d..801aa24ed 100644 --- a/cw_zano/ios/cw_haven.podspec +++ b/cw_zano/ios/cw_zano.podspec @@ -14,7 +14,7 @@ Pod::Spec.new do |s| s.source_files = 'Classes/**/*' s.public_header_files = 'Classes/**/*.h, Classes/*.h, ../shared_external/ios/libs/monero/include/src/**/*.h, ../shared_external/ios/libs/monero/include/contrib/**/*.h, ../shared_external/ios/libs/monero/include/../shared_external/ios/**/*.h' s.dependency 'Flutter' - s.dependency 'cw_shared_external' + # s.dependency 'cw_shared_external' s.platform = :ios, '10.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'VALID_ARCHS' => 'arm64', 'ENABLE_BITCODE' => 'NO' } s.swift_version = '5.0' diff --git a/ios/Podfile.lock b/ios/Podfile.lock index fddf6e24f..ec380c1c4 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -8,6 +8,20 @@ PODS: - Flutter - ReachabilitySwift - CryptoSwift (1.8.2) + - cw_zano (0.0.1): + - cw_zano/Boost (= 0.0.1) + - cw_zano/OpenSSL (= 0.0.1) + - cw_zano/Sodium (= 0.0.1) + - cw_zano/Zano (= 0.0.1) + - Flutter + - cw_zano/Boost (0.0.1): + - Flutter + - cw_zano/OpenSSL (0.0.1): + - Flutter + - cw_zano/Sodium (0.0.1): + - Flutter + - cw_zano/Zano (0.0.1): + - Flutter - device_display_brightness (0.0.1): - Flutter - device_info_plus (0.0.1): @@ -94,6 +108,8 @@ PODS: - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS + - sp_scanner (0.0.1): + - Flutter - SwiftProtobuf (1.26.0) - SwiftyGif (5.4.5) - Toast (4.1.1) @@ -113,6 +129,7 @@ DEPENDENCIES: - barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`) - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - CryptoSwift + - cw_zano (from `.symlinks/plugins/cw_zano/ios`) - device_display_brightness (from `.symlinks/plugins/device_display_brightness/ios`) - device_info_plus (from `.symlinks/plugins/device_info_plus/ios`) - devicelocale (from `.symlinks/plugins/devicelocale/ios`) @@ -132,6 +149,7 @@ DEPENDENCIES: - sensitive_clipboard (from `.symlinks/plugins/sensitive_clipboard/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - sp_scanner (from `.symlinks/plugins/sp_scanner/ios`) - uni_links (from `.symlinks/plugins/uni_links/ios`) - UnstoppableDomainsResolution (~> 4.0.0) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) @@ -159,6 +177,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/barcode_scan2/ios" connectivity_plus: :path: ".symlinks/plugins/connectivity_plus/ios" + cw_zano: + :path: ".symlinks/plugins/cw_zano/ios" device_display_brightness: :path: ".symlinks/plugins/device_display_brightness/ios" device_info_plus: @@ -197,6 +217,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/share_plus/ios" shared_preferences_foundation: :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + sp_scanner: + :path: ".symlinks/plugins/sp_scanner/ios" uni_links: :path: ".symlinks/plugins/uni_links/ios" url_launcher_ios: @@ -211,6 +233,7 @@ SPEC CHECKSUMS: BigInt: f668a80089607f521586bbe29513d708491ef2f7 connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d CryptoSwift: c63a805d8bb5e5538e88af4e44bb537776af11ea + cw_zano: 6f8036f4f70a7ae2f04cb33d6f88ad3c68884365 device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7 device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 devicelocale: b22617f40038496deffba44747101255cee005b0 @@ -227,7 +250,7 @@ SPEC CHECKSUMS: MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 - package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 + package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 Protobuf: fb2c13674723f76ff6eede14f78847a776455fa2 @@ -237,13 +260,14 @@ SPEC CHECKSUMS: sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sp_scanner: eaa617fa827396b967116b7f1f43549ca62e9a12 SwiftProtobuf: 5e8349171e7c2f88f5b9e683cb3cb79d1dc780b3 SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e uni_links: d97da20c7701486ba192624d99bffaaffcfc298a UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841 url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 + wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 PODFILE CHECKSUM: a2fe518be61cdbdc5b0e2da085ab543d556af2d3 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 417c522a6..28edf4628 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -464,7 +464,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 32J6BB6VUS; + DEVELOPMENT_TEAM = 562DC258Q6; DISABLED_ARCHS = x86_64; ENABLE_BITCODE = NO; EXCLUDED_SOURCE_FILE_NAMES = ""; @@ -483,7 +483,7 @@ "$(PROJECT_DIR)/Flutter", ); MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = "com.fotolockr.cakewallet"; + PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -610,7 +610,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 32J6BB6VUS; + DEVELOPMENT_TEAM = 562DC258Q6; DISABLED_ARCHS = x86_64; ENABLE_BITCODE = NO; EXCLUDED_SOURCE_FILE_NAMES = ""; @@ -629,7 +629,7 @@ "$(PROJECT_DIR)/Flutter", ); MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = "com.fotolockr.cakewallet"; + PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -648,7 +648,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 32J6BB6VUS; + DEVELOPMENT_TEAM = 562DC258Q6; DISABLED_ARCHS = x86_64; ENABLE_BITCODE = NO; EXCLUDED_SOURCE_FILE_NAMES = ""; @@ -667,7 +667,7 @@ "$(PROJECT_DIR)/Flutter", ); MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = "com.fotolockr.cakewallet"; + PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/scripts/ios/build_boost.sh b/scripts/ios/build_boost.sh index e2dc291ee..cb33b70d9 100755 --- a/scripts/ios/build_boost.sh +++ b/scripts/ios/build_boost.sh @@ -5,8 +5,8 @@ MIN_IOS_VERSION=10.0 BOOST_URL="https://github.com/cake-tech/Apple-Boost-BuildScript.git" BOOST_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/Apple-Boost-BuildScript" -BOOST_VERSION=1.72.0 -BOOST_LIBS="random regex graph random chrono thread filesystem system date_time locale serialization program_options" +BOOST_VERSION=1.76.0 +BOOST_LIBS="random regex graph random chrono thread filesystem system date_time locale serialization program_options thread timer atomic" echo "============================ Boost ============================" diff --git a/scripts/ios/build_zano.sh b/scripts/ios/build_zano.sh new file mode 100755 index 000000000..7510d29db --- /dev/null +++ b/scripts/ios/build_zano.sh @@ -0,0 +1,102 @@ +#!/bin/sh + +. ./config.sh + +ZANO_URL="https://github.com/hyle-team/zano.git" +ZANO_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/zano" +ZANO_VERSION=9f0fa8a390e10fc0525a01a9409e52765fb93e07 + + +IOS_TOOLCHAIN_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/ios_toolchain" +IOS_TOOLCHAIN_URL="https://github.com/leetal/ios-cmake.git" +IOS_TOOLCHAIN_VERSION=06465b27698424cf4a04a5ca4904d50a3c966c45 + +export NO_DEFAULT_PATH + +BUILD_TYPE=release +PREFIX=${EXTERNAL_IOS_DIR} +DEST_LIB_DIR=${EXTERNAL_IOS_LIB_DIR}/zano +DEST_INCLUDE_DIR=${EXTERNAL_IOS_INCLUDE_DIR}/zano + +ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64="${ZANO_DIR_PATH}/build" +ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64="${ZANO_DIR_PATH}/install" + +echo "ZANO_URL: $ZANO_URL" +echo "IOS_TOOLCHAIN_DIR_PATH: $IOS_TOOLCHAIN_DIR_PATH" +echo "ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64: $ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64" +echo "ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64: $ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64" +echo "PREFIX: $PREFIX" +echo "DEST_LIB_DIR: $DEST_LIB_DIR" +echo "DEST_INCLUDE_DIR: $DEST_INCLUDE_DIR" +echo "ZANO_DIR_PATH: $ZANO_DIR_PATH" + +echo "Cloning ios_toolchain from - $IOS_TOOLCHAIN_URL to - $IOS_TOOLCHAIN_DIR_PATH" +git clone $IOS_TOOLCHAIN_URL $IOS_TOOLCHAIN_DIR_PATH +cd $IOS_TOOLCHAIN_DIR_PATH +git checkout $IOS_TOOLCHAIN_VERSION +git submodule update --init --force +cd .. + +echo "Cloning zano from - $ZANO_URL to - $ZANO_DIR_PATH" +git clone $ZANO_URL $ZANO_DIR_PATH +cd $ZANO_DIR_PATH +git checkout $ZANO_VERSION +git submodule update --init --force +mkdir -p build +cd .. + + +ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +if [ -z $INSTALL_PREFIX ]; then + INSTALL_PREFIX=${ROOT_DIR}/haven +fi + +export CMAKE_INCLUDE_PATH="${PREFIX}/include" +export CMAKE_LIBRARY_PATH="${PREFIX}/lib" +-Wno-enum-constexpr-conversion + +rm -rf ${ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64} > /dev/null +rm -rf ${ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64} > /dev/null + +echo "CMAKE_INCLUDE_PATH: $CMAKE_INCLUDE_PATH" +echo "CMAKE_LIBRARY_PATH: $CMAKE_LIBRARY_PATH" +echo "ROOT_DIR: $ROOT_DIR" + + +cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ + -DCMAKE_TOOLCHAIN_FILE="${IOS_TOOLCHAIN_DIR_PATH}/ios.toolchain.cmake" \ + -DPLATFORM=OS64 \ + -S"${ZANO_DIR_PATH}" \ + -B"${ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64}" \ + -GXcode \ + -DCMAKE_SYSTEM_NAME=iOS \ + -DCMAKE_INSTALL_PREFIX="${ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64}" \ + -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO \ + -DCMAKE_CXX_FLAGS="-Wno-enum-constexpr-conversion" \ + -DDISABLE_TOR=TRUE + +# -DCMAKE_OSX_ARCHITECTURES="arm64" +# -DCMAKE_IOS_INSTALL_COMBINED=YES + +if [ $? -ne 0 ]; then + echo "Failed to perform command" + exit 1 +fi + +cmake --build "${ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64}" --config $BUILD_TYPE --target install -- -j 4 +if [ $? -ne 0 ]; then + echo "Failed to perform command" + exit 1 +fi + + + +#only for arm64 +#mkdir -p $DEST_LIB_DIR +#mkdir -p $DEST_INCLUDE_DIR + +#echo "DEST_INCLUDE_DIR: ${DEST_INCLUDE_DIR}" +#echo "DEST_LIB_DIR: ${DEST_LIB_DIR}" +#cp ${ZANO_DIR_PATH}/lib-armv8-a/* $DEST_LIB_DIR +#cp ${ZANO_DIR_PATH}/src/wallet/plain_wallet_api.h $DEST_INCLUDE_DIR + diff --git a/scripts/ios/build_zano_all.sh b/scripts/ios/build_zano_all.sh new file mode 100755 index 000000000..b9a4272ff --- /dev/null +++ b/scripts/ios/build_zano_all.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +. ./config.sh +./install_missing_headers.sh +./build_openssl.sh +./build_boost.sh +./build_sodium.sh +./build_zano.sh \ No newline at end of file From 18d05479f14004fb2d8ab885a4f493dfdbd08922 Mon Sep 17 00:00:00 2001 From: "cr.zoidberg" Date: Wed, 14 Aug 2024 22:03:50 +0400 Subject: [PATCH 48/58] update in script --- scripts/ios/build_zano.sh | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/scripts/ios/build_zano.sh b/scripts/ios/build_zano.sh index 7510d29db..096e6677d 100755 --- a/scripts/ios/build_zano.sh +++ b/scripts/ios/build_zano.sh @@ -46,14 +46,9 @@ mkdir -p build cd .. -ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -if [ -z $INSTALL_PREFIX ]; then - INSTALL_PREFIX=${ROOT_DIR}/haven -fi - export CMAKE_INCLUDE_PATH="${PREFIX}/include" export CMAKE_LIBRARY_PATH="${PREFIX}/lib" --Wno-enum-constexpr-conversion + rm -rf ${ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64} > /dev/null rm -rf ${ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64} > /dev/null @@ -89,14 +84,8 @@ if [ $? -ne 0 ]; then exit 1 fi +mkdir -p $DEST_LIB_DIR +mkdir -p $DEST_INCLUDE_DIR - -#only for arm64 -#mkdir -p $DEST_LIB_DIR -#mkdir -p $DEST_INCLUDE_DIR - -#echo "DEST_INCLUDE_DIR: ${DEST_INCLUDE_DIR}" -#echo "DEST_LIB_DIR: ${DEST_LIB_DIR}" -#cp ${ZANO_DIR_PATH}/lib-armv8-a/* $DEST_LIB_DIR -#cp ${ZANO_DIR_PATH}/src/wallet/plain_wallet_api.h $DEST_INCLUDE_DIR - +cp ${ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64}/lib/* $DEST_LIB_DIR +cp ${ZANO_DIR_PATH}/src/wallet/plain_wallet_api.h $DEST_INCLUDE_DIR From 2dbea9b055e081260cb9727ea3b3359aaf31a724 Mon Sep 17 00:00:00 2001 From: "cr.zoidberg" Date: Fri, 16 Aug 2024 18:56:39 +0400 Subject: [PATCH 49/58] latest changes --- cw_zano/ios/Classes/zano_api.cpp | 2 +- cw_zano/ios/cw_zano.podspec | 6 +++--- ios/Podfile.lock | 22 +++++++++++----------- scripts/ios/build_boost.sh | 8 ++++++-- scripts/ios/build_zano.sh | 17 ++++++++++++++++- 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/cw_zano/ios/Classes/zano_api.cpp b/cw_zano/ios/Classes/zano_api.cpp index eab3f4584..a62a114f8 100644 --- a/cw_zano/ios/Classes/zano_api.cpp +++ b/cw_zano/ios/Classes/zano_api.cpp @@ -16,7 +16,7 @@ void __clear_cache(void* start, void* end) { } #include "../External/include/wallet2_api.h" -#include "plain_wallet_api.h" +#include "../../../cw_shared_external/ios/External/ios/sources/zano/src/wallet/plain_wallet_api.h" //#include "plain_wallet_api_ex.h" diff --git a/cw_zano/ios/cw_zano.podspec b/cw_zano/ios/cw_zano.podspec index 801aa24ed..79fb8a8f2 100644 --- a/cw_zano/ios/cw_zano.podspec +++ b/cw_zano/ios/cw_zano.podspec @@ -37,14 +37,14 @@ Pod::Spec.new do |s| s.subspec 'Boost' do |boost| boost.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h', boost.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libboost.a', - boost.libraries = 'boost' + boost.libraries = '' boost.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } end s.subspec 'Zano' do |zano| zano.preserve_paths = 'External/ios/include/**/*.h' - zano.vendored_libraries = 'External/ios/lib/libzano.a' - zano.libraries = 'zano' + zano.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/zano/libcommon.a', '../../../../../cw_shared_external/ios/External/ios/lib/zano/libcrypto.a', '../../../../../cw_shared_external/ios/External/ios/lib/zano/libcurrency_core.a', '../../../../../cw_shared_external/ios/External/ios/lib/zano/libwallet.a' , '../../../../../cw_shared_external/ios/External/ios/lib/zano/libz.a' + zano.libraries = '' zano.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include" } end end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index ec380c1c4..9e99add34 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -7,7 +7,7 @@ PODS: - connectivity_plus (0.0.1): - Flutter - ReachabilitySwift - - CryptoSwift (1.8.2) + - CryptoSwift (1.8.3) - cw_zano (0.0.1): - cw_zano/Boost (= 0.0.1) - cw_zano/OpenSSL (= 0.0.1) @@ -92,15 +92,15 @@ PODS: - FlutterMacOS - permission_handler_apple (9.1.1): - Flutter - - Protobuf (3.27.2) + - Protobuf (3.27.3) - ReachabilitySwift (5.2.3) - reactive_ble_mobile (0.0.1): - Flutter - Protobuf (~> 3.5) - SwiftProtobuf (~> 1.0) - - SDWebImage (5.19.4): - - SDWebImage/Core (= 5.19.4) - - SDWebImage/Core (5.19.4) + - SDWebImage (5.19.6): + - SDWebImage/Core (= 5.19.6) + - SDWebImage/Core (5.19.6) - sensitive_clipboard (0.0.1): - Flutter - share_plus (0.0.1): @@ -110,7 +110,7 @@ PODS: - FlutterMacOS - sp_scanner (0.0.1): - Flutter - - SwiftProtobuf (1.26.0) + - SwiftProtobuf (1.27.1) - SwiftyGif (5.4.5) - Toast (4.1.1) - uni_links (0.0.1): @@ -232,8 +232,8 @@ SPEC CHECKSUMS: barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0 BigInt: f668a80089607f521586bbe29513d708491ef2f7 connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d - CryptoSwift: c63a805d8bb5e5538e88af4e44bb537776af11ea - cw_zano: 6f8036f4f70a7ae2f04cb33d6f88ad3c68884365 + CryptoSwift: 967f37cea5a3294d9cce358f78861652155be483 + cw_zano: 8fee0e1d14163be13c0ee6f08f3cfafa72905710 device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7 device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 devicelocale: b22617f40038496deffba44747101255cee005b0 @@ -253,15 +253,15 @@ SPEC CHECKSUMS: package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 - Protobuf: fb2c13674723f76ff6eede14f78847a776455fa2 + Protobuf: c1cbc880ea7c4e9b157e113515c720a22ee7cf50 ReachabilitySwift: 7f151ff156cea1481a8411701195ac6a984f4979 reactive_ble_mobile: 9ce6723d37ccf701dbffd202d487f23f5de03b4c - SDWebImage: 066c47b573f408f18caa467d71deace7c0f8280d + SDWebImage: a79252b60f4678812d94316c91da69ec83089c9f sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 sp_scanner: eaa617fa827396b967116b7f1f43549ca62e9a12 - SwiftProtobuf: 5e8349171e7c2f88f5b9e683cb3cb79d1dc780b3 + SwiftProtobuf: b109bd17979d7993a84da14b1e1fdd8b0ded934a SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e uni_links: d97da20c7701486ba192624d99bffaaffcfc298a diff --git a/scripts/ios/build_boost.sh b/scripts/ios/build_boost.sh index cb33b70d9..eccc4029a 100755 --- a/scripts/ios/build_boost.sh +++ b/scripts/ios/build_boost.sh @@ -17,7 +17,11 @@ cd $BOOST_DIR_PATH --min-ios-version ${MIN_IOS_VERSION} \ --boost-libs "${BOOST_LIBS}" \ --boost-version ${BOOST_VERSION} \ - --no-framework + -ios \ + --no-framework mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/include/* $EXTERNAL_IOS_INCLUDE_DIR -mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/lib/* $EXTERNAL_IOS_LIB_DIR \ No newline at end of file +#mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/lib/* $EXTERNAL_IOS_LIB_DIR +mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/build/iphonesimulator/arm64/* $EXTERNAL_IOS_LIB_DIR + + diff --git a/scripts/ios/build_zano.sh b/scripts/ios/build_zano.sh index 096e6677d..d37ed226d 100755 --- a/scripts/ios/build_zano.sh +++ b/scripts/ios/build_zano.sh @@ -4,7 +4,7 @@ ZANO_URL="https://github.com/hyle-team/zano.git" ZANO_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/zano" -ZANO_VERSION=9f0fa8a390e10fc0525a01a9409e52765fb93e07 +ZANO_VERSION=fde28efdc5d7efe8741dcb0e62ea0aebc805a373 IOS_TOOLCHAIN_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/ios_toolchain" @@ -40,8 +40,21 @@ cd .. echo "Cloning zano from - $ZANO_URL to - $ZANO_DIR_PATH" git clone $ZANO_URL $ZANO_DIR_PATH cd $ZANO_DIR_PATH +git fetch origin +if [ $? -ne 0 ]; then + echo "Failed to perform command" + exit 1 +fi git checkout $ZANO_VERSION +if [ $? -ne 0 ]; then + echo "Failed to perform command" + exit 1 +fi git submodule update --init --force +if [ $? -ne 0 ]; then + echo "Failed to perform command" + exit 1 +fi mkdir -p build cd .. @@ -64,6 +77,8 @@ cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -S"${ZANO_DIR_PATH}" \ -B"${ZANO_MOBILE_IOS_BUILD_FOLDER_ARM64}" \ -GXcode \ + -DCAKEWALLET=TRUE \ + -DSKIP_BOOST_FATLIB_LIB=TRUE \ -DCMAKE_SYSTEM_NAME=iOS \ -DCMAKE_INSTALL_PREFIX="${ZANO_MOBILE_IOS_INSTALL_FOLDER_ARM64}" \ -DCMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH=NO \ From f7474b9d8df33cdab017922f6e48891fc1c0283e Mon Sep 17 00:00:00 2001 From: leo1234 Date: Sun, 1 Sep 2024 18:53:09 +0800 Subject: [PATCH 50/58] Applied a patch for iOS build (Boost and Zano scripts) --- .gitignore | 2 +- cw_zano/ios/cw_zano.podspec | 17 +++++---------- ios/Podfile.lock | 5 +---- scripts/ios/build_boost.sh | 39 ++++++++++++++++++++++++----------- scripts/ios/build_zano_all.sh | 3 +-- scripts/ios/setup.sh | 13 +++++++++++- 6 files changed, 47 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index 09c0985ec..2e30ed6bc 100644 --- a/.gitignore +++ b/.gitignore @@ -126,7 +126,7 @@ cw_shared_external/ios/External/ cw_haven/ios/External/ cw_haven/android/.externalNativeBuild/ cw_haven/android/.cxx/ - +cw_zano/ios/External/ lib/bitcoin/bitcoin.dart lib/monero/monero.dart lib/haven/haven.dart diff --git a/cw_zano/ios/cw_zano.podspec b/cw_zano/ios/cw_zano.podspec index 79fb8a8f2..711e45a1e 100644 --- a/cw_zano/ios/cw_zano.podspec +++ b/cw_zano/ios/cw_zano.podspec @@ -21,29 +21,22 @@ Pod::Spec.new do |s| s.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/Classes/*.h" } s.subspec 'OpenSSL' do |openssl| - openssl.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h' - openssl.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libcrypto.a', '../../../../../cw_shared_external/ios/External/ios/lib/libssl.a' + openssl.preserve_paths = 'External/ios/include/**/*.h' + openssl.vendored_libraries = 'External/ios/lib/libcrypto.a', 'External/ios/lib/libssl.a' openssl.libraries = 'ssl', 'crypto' openssl.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } end - s.subspec 'Sodium' do |sodium| - sodium.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h' - sodium.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libsodium.a' - sodium.libraries = 'sodium' - sodium.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } - end - s.subspec 'Boost' do |boost| - boost.preserve_paths = '../../../../../cw_shared_external/ios/External/ios/include/**/*.h', - boost.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/libboost.a', + boost.preserve_paths = 'External/ios/include/**/*.h', + boost.vendored_libraries = 'External/ios/lib/libboost.a', boost.libraries = '' boost.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include/**" } end s.subspec 'Zano' do |zano| zano.preserve_paths = 'External/ios/include/**/*.h' - zano.vendored_libraries = '../../../../../cw_shared_external/ios/External/ios/lib/zano/libcommon.a', '../../../../../cw_shared_external/ios/External/ios/lib/zano/libcrypto.a', '../../../../../cw_shared_external/ios/External/ios/lib/zano/libcurrency_core.a', '../../../../../cw_shared_external/ios/External/ios/lib/zano/libwallet.a' , '../../../../../cw_shared_external/ios/External/ios/lib/zano/libz.a' + zano.vendored_libraries = 'External/ios/lib/libzano.a' zano.libraries = '' zano.xcconfig = { 'HEADER_SEARCH_PATHS' => "${PODS_ROOT}/#{s.name}/External/ios/include" } end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9e99add34..6a497bf80 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -11,15 +11,12 @@ PODS: - cw_zano (0.0.1): - cw_zano/Boost (= 0.0.1) - cw_zano/OpenSSL (= 0.0.1) - - cw_zano/Sodium (= 0.0.1) - cw_zano/Zano (= 0.0.1) - Flutter - cw_zano/Boost (0.0.1): - Flutter - cw_zano/OpenSSL (0.0.1): - Flutter - - cw_zano/Sodium (0.0.1): - - Flutter - cw_zano/Zano (0.0.1): - Flutter - device_display_brightness (0.0.1): @@ -233,7 +230,7 @@ SPEC CHECKSUMS: BigInt: f668a80089607f521586bbe29513d708491ef2f7 connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d CryptoSwift: 967f37cea5a3294d9cce358f78861652155be483 - cw_zano: 8fee0e1d14163be13c0ee6f08f3cfafa72905710 + cw_zano: e13e2987734da2e94770540121762c288cdcf5b3 device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7 device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 devicelocale: b22617f40038496deffba44747101255cee005b0 diff --git a/scripts/ios/build_boost.sh b/scripts/ios/build_boost.sh index eccc4029a..11dcead3e 100755 --- a/scripts/ios/build_boost.sh +++ b/scripts/ios/build_boost.sh @@ -1,27 +1,42 @@ -#!/bin/sh +#!/bin/bash + +set -e . ./config.sh MIN_IOS_VERSION=10.0 BOOST_URL="https://github.com/cake-tech/Apple-Boost-BuildScript.git" BOOST_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/Apple-Boost-BuildScript" -BOOST_VERSION=1.76.0 -BOOST_LIBS="random regex graph random chrono thread filesystem system date_time locale serialization program_options thread timer atomic" +BOOST_VERSION=1.84.0 +BOOST_LIBS="random regex graph random chrono thread filesystem system date_time locale serialization program_options" echo "============================ Boost ============================" echo "Cloning Apple-Boost-BuildScript from - $BOOST_URL" -git clone -b build $BOOST_URL $BOOST_DIR_PATH -cd $BOOST_DIR_PATH + +# Check if the directory already exists. +if [ -d "$BOOST_DIR_PATH" ]; then + echo "Boost directory already exists." +else + echo "Cloning Boost from $BOOST_URL" + git clone -b build $BOOST_URL $BOOST_DIR_PATH +fi + +# Verify if the repository was cloned successfully. +if [ -d "$BOOST_DIR_PATH/.git" ]; then + echo "Boost repository cloned successfully." + cd $BOOST_DIR_PATH + git checkout build +else + echo "Failed to clone Boost repository. Exiting." + exit 1 +fi + ./boost.sh -ios \ --min-ios-version ${MIN_IOS_VERSION} \ --boost-libs "${BOOST_LIBS}" \ --boost-version ${BOOST_VERSION} \ - -ios \ - --no-framework - -mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/include/* $EXTERNAL_IOS_INCLUDE_DIR -#mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/lib/* $EXTERNAL_IOS_LIB_DIR -mv ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/build/iphonesimulator/arm64/* $EXTERNAL_IOS_LIB_DIR - + --no-framework +mv -f ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/include/* $EXTERNAL_IOS_INCLUDE_DIR +mv -f ${BOOST_DIR_PATH}/build/boost/${BOOST_VERSION}/ios/release/prefix/lib/* $EXTERNAL_IOS_LIB_DIR \ No newline at end of file diff --git a/scripts/ios/build_zano_all.sh b/scripts/ios/build_zano_all.sh index b9a4272ff..2e5ef81d5 100755 --- a/scripts/ios/build_zano_all.sh +++ b/scripts/ios/build_zano_all.sh @@ -4,5 +4,4 @@ ./install_missing_headers.sh ./build_openssl.sh ./build_boost.sh -./build_sodium.sh -./build_zano.sh \ No newline at end of file +./build_zano.sh diff --git a/scripts/ios/setup.sh b/scripts/ios/setup.sh index abe8435ae..b17b3718b 100755 --- a/scripts/ios/setup.sh +++ b/scripts/ios/setup.sh @@ -13,16 +13,21 @@ fi libtool -static -o libboost.a ./libboost_*.a libtool -static -o libhaven.a ./haven/*.a libtool -static -o libmonero.a ./monero/*.a +libtool -static -o libzano.a ./zano/*.a CW_HAVEN_EXTERNAL_LIB=../../../../../cw_haven/ios/External/ios/lib CW_HAVEN_EXTERNAL_INCLUDE=../../../../../cw_haven/ios/External/ios/include CW_MONERO_EXTERNAL_LIB=../../../../../cw_monero/ios/External/ios/lib CW_MONERO_EXTERNAL_INCLUDE=../../../../../cw_monero/ios/External/ios/include +CW_ZANO_EXTERNAL_LIB=../../../../../cw_zano/ios/External/ios/lib +CW_ZANO_EXTERNAL_INCLUDE=../../../../../cw_zano/ios/External/ios/include mkdir -p $CW_HAVEN_EXTERNAL_INCLUDE mkdir -p $CW_MONERO_EXTERNAL_INCLUDE +mkdir -p $CW_ZANO_EXTERNAL_INCLUDE mkdir -p $CW_HAVEN_EXTERNAL_LIB mkdir -p $CW_MONERO_EXTERNAL_LIB +mkdir -p $CW_ZANO_EXTERNAL_LIB ln ./libboost.a ${CW_HAVEN_EXTERNAL_LIB}/libboost.a ln ./libcrypto.a ${CW_HAVEN_EXTERNAL_LIB}/libcrypto.a @@ -37,4 +42,10 @@ ln ./libssl.a ${CW_MONERO_EXTERNAL_LIB}/libssl.a ln ./libsodium.a ${CW_MONERO_EXTERNAL_LIB}/libsodium.a ln ./libunbound.a ${CW_MONERO_EXTERNAL_LIB}/libunbound.a cp ./libmonero.a $CW_MONERO_EXTERNAL_LIB -cp ../include/monero/* $CW_MONERO_EXTERNAL_INCLUDE \ No newline at end of file +cp ../include/monero/* $CW_MONERO_EXTERNAL_INCLUDE + +ln ./libboost.a ${CW_ZANO_EXTERNAL_LIB}/libboost.a +ln ./libcrypto.a ${CW_ZANO_EXTERNAL_LIB}/libcrypto.a +ln ./libssl.a ${CW_ZANO_EXTERNAL_LIB}/libssl.a +cp ./libzano.a $CW_ZANO_EXTERNAL_LIB +cp ../include/zano/* $CW_ZANO_EXTERNAL_INCLUDE From 367c86398ef2616006a2cbd2339ef2f30ed2800e Mon Sep 17 00:00:00 2001 From: leo1234 Date: Mon, 2 Sep 2024 14:19:44 +0800 Subject: [PATCH 51/58] Removed zano.dart (script-generated) and some unnecessary files --- android/.project | 28 - .../org.eclipse.buildship.core.prefs | 13 - ios/Podfile.lock | 272 ------- ios/Runner.xcodeproj/project.pbxproj | 706 ------------------ lib/zano/zano.dart | 56 -- scripts/android/build_haven_all.sh | 10 - windows/flutter/generated_plugins.cmake | 29 - 7 files changed, 1114 deletions(-) delete mode 100644 android/.project delete mode 100644 android/.settings/org.eclipse.buildship.core.prefs delete mode 100644 ios/Podfile.lock delete mode 100644 ios/Runner.xcodeproj/project.pbxproj delete mode 100644 lib/zano/zano.dart delete mode 100755 scripts/android/build_haven_all.sh delete mode 100644 windows/flutter/generated_plugins.cmake diff --git a/android/.project b/android/.project deleted file mode 100644 index 4f11206e8..000000000 --- a/android/.project +++ /dev/null @@ -1,28 +0,0 @@ - - - android - Project android_ created by Buildship. - - - - - org.eclipse.buildship.core.gradleprojectbuilder - - - - - - org.eclipse.buildship.core.gradleprojectnature - - - - 1723563577231 - - 30 - - org.eclipse.core.resources.regexFilterMatcher - node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ - - - - diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs deleted file mode 100644 index 590ce5e1d..000000000 --- a/android/.settings/org.eclipse.buildship.core.prefs +++ /dev/null @@ -1,13 +0,0 @@ -arguments=--init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle -auto.sync=false -build.scans.enabled=false -connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) -connection.project.dir= -eclipse.preferences.version=1 -gradle.user.home= -java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home -jvm.arguments= -offline.mode=false -override.workspace.settings=true -show.console.view=true -show.executions.view=true diff --git a/ios/Podfile.lock b/ios/Podfile.lock deleted file mode 100644 index 6a497bf80..000000000 --- a/ios/Podfile.lock +++ /dev/null @@ -1,272 +0,0 @@ -PODS: - - barcode_scan2 (0.0.1): - - Flutter - - MTBBarcodeScanner - - SwiftProtobuf - - BigInt (5.2.0) - - connectivity_plus (0.0.1): - - Flutter - - ReachabilitySwift - - CryptoSwift (1.8.3) - - cw_zano (0.0.1): - - cw_zano/Boost (= 0.0.1) - - cw_zano/OpenSSL (= 0.0.1) - - cw_zano/Zano (= 0.0.1) - - Flutter - - cw_zano/Boost (0.0.1): - - Flutter - - cw_zano/OpenSSL (0.0.1): - - Flutter - - cw_zano/Zano (0.0.1): - - Flutter - - device_display_brightness (0.0.1): - - Flutter - - device_info_plus (0.0.1): - - Flutter - - devicelocale (0.0.1): - - Flutter - - DKImagePickerController/Core (4.3.9): - - DKImagePickerController/ImageDataManager - - DKImagePickerController/Resource - - DKImagePickerController/ImageDataManager (4.3.9) - - DKImagePickerController/PhotoGallery (4.3.9): - - DKImagePickerController/Core - - DKPhotoGallery - - DKImagePickerController/Resource (4.3.9) - - DKPhotoGallery (0.0.19): - - DKPhotoGallery/Core (= 0.0.19) - - DKPhotoGallery/Model (= 0.0.19) - - DKPhotoGallery/Preview (= 0.0.19) - - DKPhotoGallery/Resource (= 0.0.19) - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Core (0.0.19): - - DKPhotoGallery/Model - - DKPhotoGallery/Preview - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Model (0.0.19): - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Preview (0.0.19): - - DKPhotoGallery/Model - - DKPhotoGallery/Resource - - SDWebImage - - SwiftyGif - - DKPhotoGallery/Resource (0.0.19): - - SDWebImage - - SwiftyGif - - file_picker (0.0.1): - - DKImagePickerController/PhotoGallery - - Flutter - - Flutter (1.0.0) - - flutter_inappwebview_ios (0.0.1): - - Flutter - - flutter_inappwebview_ios/Core (= 0.0.1) - - OrderedSet (~> 5.0) - - flutter_inappwebview_ios/Core (0.0.1): - - Flutter - - OrderedSet (~> 5.0) - - flutter_local_authentication (1.2.0): - - Flutter - - flutter_mailer (0.0.1): - - Flutter - - flutter_secure_storage (6.0.0): - - Flutter - - fluttertoast (0.0.2): - - Flutter - - Toast - - in_app_review (0.2.0): - - Flutter - - MTBBarcodeScanner (5.0.11) - - OrderedSet (5.0.0) - - package_info (0.0.1): - - Flutter - - package_info_plus (0.4.5): - - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - permission_handler_apple (9.1.1): - - Flutter - - Protobuf (3.27.3) - - ReachabilitySwift (5.2.3) - - reactive_ble_mobile (0.0.1): - - Flutter - - Protobuf (~> 3.5) - - SwiftProtobuf (~> 1.0) - - SDWebImage (5.19.6): - - SDWebImage/Core (= 5.19.6) - - SDWebImage/Core (5.19.6) - - sensitive_clipboard (0.0.1): - - Flutter - - share_plus (0.0.1): - - Flutter - - shared_preferences_foundation (0.0.1): - - Flutter - - FlutterMacOS - - sp_scanner (0.0.1): - - Flutter - - SwiftProtobuf (1.27.1) - - SwiftyGif (5.4.5) - - Toast (4.1.1) - - uni_links (0.0.1): - - Flutter - - UnstoppableDomainsResolution (4.0.0): - - BigInt - - CryptoSwift - - url_launcher_ios (0.0.1): - - Flutter - - wakelock_plus (0.0.1): - - Flutter - - workmanager (0.0.1): - - Flutter - -DEPENDENCIES: - - barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`) - - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) - - CryptoSwift - - cw_zano (from `.symlinks/plugins/cw_zano/ios`) - - device_display_brightness (from `.symlinks/plugins/device_display_brightness/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`) - - Flutter (from `Flutter`) - - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) - - flutter_local_authentication (from `.symlinks/plugins/flutter_local_authentication/ios`) - - flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`) - - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - - in_app_review (from `.symlinks/plugins/in_app_review/ios`) - - package_info (from `.symlinks/plugins/package_info/ios`) - - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) - - reactive_ble_mobile (from `.symlinks/plugins/reactive_ble_mobile/ios`) - - sensitive_clipboard (from `.symlinks/plugins/sensitive_clipboard/ios`) - - share_plus (from `.symlinks/plugins/share_plus/ios`) - - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - - sp_scanner (from `.symlinks/plugins/sp_scanner/ios`) - - uni_links (from `.symlinks/plugins/uni_links/ios`) - - UnstoppableDomainsResolution (~> 4.0.0) - - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) - - workmanager (from `.symlinks/plugins/workmanager/ios`) - -SPEC REPOS: - https://github.com/CocoaPods/Specs.git: - - BigInt - - CryptoSwift - - DKImagePickerController - - DKPhotoGallery - - MTBBarcodeScanner - - OrderedSet - - Protobuf - - ReachabilitySwift - - SDWebImage - - SwiftProtobuf - - SwiftyGif - - Toast - - UnstoppableDomainsResolution - -EXTERNAL SOURCES: - barcode_scan2: - :path: ".symlinks/plugins/barcode_scan2/ios" - connectivity_plus: - :path: ".symlinks/plugins/connectivity_plus/ios" - cw_zano: - :path: ".symlinks/plugins/cw_zano/ios" - device_display_brightness: - :path: ".symlinks/plugins/device_display_brightness/ios" - device_info_plus: - :path: ".symlinks/plugins/device_info_plus/ios" - devicelocale: - :path: ".symlinks/plugins/devicelocale/ios" - file_picker: - :path: ".symlinks/plugins/file_picker/ios" - Flutter: - :path: Flutter - flutter_inappwebview_ios: - :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" - flutter_local_authentication: - :path: ".symlinks/plugins/flutter_local_authentication/ios" - flutter_mailer: - :path: ".symlinks/plugins/flutter_mailer/ios" - flutter_secure_storage: - :path: ".symlinks/plugins/flutter_secure_storage/ios" - fluttertoast: - :path: ".symlinks/plugins/fluttertoast/ios" - in_app_review: - :path: ".symlinks/plugins/in_app_review/ios" - package_info: - :path: ".symlinks/plugins/package_info/ios" - package_info_plus: - :path: ".symlinks/plugins/package_info_plus/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" - permission_handler_apple: - :path: ".symlinks/plugins/permission_handler_apple/ios" - reactive_ble_mobile: - :path: ".symlinks/plugins/reactive_ble_mobile/ios" - sensitive_clipboard: - :path: ".symlinks/plugins/sensitive_clipboard/ios" - share_plus: - :path: ".symlinks/plugins/share_plus/ios" - shared_preferences_foundation: - :path: ".symlinks/plugins/shared_preferences_foundation/darwin" - sp_scanner: - :path: ".symlinks/plugins/sp_scanner/ios" - uni_links: - :path: ".symlinks/plugins/uni_links/ios" - url_launcher_ios: - :path: ".symlinks/plugins/url_launcher_ios/ios" - wakelock_plus: - :path: ".symlinks/plugins/wakelock_plus/ios" - workmanager: - :path: ".symlinks/plugins/workmanager/ios" - -SPEC CHECKSUMS: - barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0 - BigInt: f668a80089607f521586bbe29513d708491ef2f7 - connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d - CryptoSwift: 967f37cea5a3294d9cce358f78861652155be483 - cw_zano: e13e2987734da2e94770540121762c288cdcf5b3 - device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7 - device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 - devicelocale: b22617f40038496deffba44747101255cee005b0 - DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c - DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 - file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 - flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb - flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c - in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d - MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb - OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c - package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 - package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 - Protobuf: c1cbc880ea7c4e9b157e113515c720a22ee7cf50 - ReachabilitySwift: 7f151ff156cea1481a8411701195ac6a984f4979 - reactive_ble_mobile: 9ce6723d37ccf701dbffd202d487f23f5de03b4c - SDWebImage: a79252b60f4678812d94316c91da69ec83089c9f - sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 - share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sp_scanner: eaa617fa827396b967116b7f1f43549ca62e9a12 - SwiftProtobuf: b109bd17979d7993a84da14b1e1fdd8b0ded934a - SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 - Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841 - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 - workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 - -PODFILE CHECKSUM: a2fe518be61cdbdc5b0e2da085ab543d556af2d3 - -COCOAPODS: 1.15.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 28edf4628..000000000 --- a/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,706 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 0C44A71A2518EF8000B570ED /* decrypt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C44A7192518EF8000B570ED /* decrypt.swift */; }; - 0C50DFB92BF3CB56002B0EB3 /* MoneroWallet.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0C50DFB82BF3CB56002B0EB3 /* MoneroWallet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 0C9D68C9264854B60011B691 /* secRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C9D68C8264854B60011B691 /* secRandom.swift */; }; - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 2193F104374FA2746CE8945B /* ResourceHelper.swift in Resources */ = {isa = PBXBuildFile; fileRef = 78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 495FEFF9B395392FED3425DE /* TaskProtocol.swift in Resources */ = {isa = PBXBuildFile; fileRef = 0F42D8065219E0653321EE2B /* TaskProtocol.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - 4DFD1BB54A3A50573E19A583 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C663361C56EBB242598F609 /* Pods_Runner.framework */; }; - 525A2200C6C2A43EDC5C8FC5 /* BreezSDKConnector.swift in Resources */ = {isa = PBXBuildFile; fileRef = 1FB06A93B13D606F06B3924D /* BreezSDKConnector.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - 6909E1D79C9986ADF2DE41E9 /* LnurlPayInvoice.swift in Resources */ = {isa = PBXBuildFile; fileRef = DCEA540E3586164FB47AD13E /* LnurlPayInvoice.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - 724FDA327BF191BC29DCAA2E /* Constants.swift in Resources */ = {isa = PBXBuildFile; fileRef = 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - 73138617307FA4F838D21D62 /* ServiceLogger.swift in Resources */ = {isa = PBXBuildFile; fileRef = F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - 9F46EE5E2BC11178009318F5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */; }; - A1B4A70C9CFA13AB71662216 /* LnurlPay.swift in Resources */ = {isa = PBXBuildFile; fileRef = 7D3364C03978A8A74B6D586E /* LnurlPay.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - A3D5E17CC53DF13FA740DEFA /* RedeemSwap.swift in Resources */ = {isa = PBXBuildFile; fileRef = 9D2F2C9F2555316C95EE7EA3 /* RedeemSwap.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - B6C6E59403ACDE44724C12F4 /* ServiceConfig.swift in Resources */ = {isa = PBXBuildFile; fileRef = B3D5E78267F5F18D882FDC3B /* ServiceConfig.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - CE291CFE2C15DB9A00B9F709 /* WowneroWallet.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE291CFD2C15DB9A00B9F709 /* WowneroWallet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - CFEFC24F82F78FE747DF1D22 /* LnurlPayInfo.swift in Resources */ = {isa = PBXBuildFile; fileRef = 58C22CBD8C22B9D6023D59F8 /* LnurlPayInfo.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - D0D7A0D4E13F31C4E02E235B /* ReceivePayment.swift in Resources */ = {isa = PBXBuildFile; fileRef = 91C524F800843E0A3F17E004 /* ReceivePayment.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - D3AD73A327249AFE8F016A51 /* BreezSDK.swift in Resources */ = {isa = PBXBuildFile; fileRef = ABD6FCBB0F4244B090459128 /* BreezSDK.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; - F5EE19868D6F10D814BF73AD /* SDKNotificationService.swift in Resources */ = {isa = PBXBuildFile; fileRef = 41102141140E57B1DC27FBA1 /* SDKNotificationService.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CE5E8A222BEE19C700608EA1 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - CE291CFE2C15DB9A00B9F709 /* WowneroWallet.framework in CopyFiles */, - 0C50DFB92BF3CB56002B0EB3 /* MoneroWallet.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 0C400E0F25B21ABB0025E469 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; - 0C44A7192518EF8000B570ED /* decrypt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = decrypt.swift; sourceTree = ""; }; - 0C50DFB82BF3CB56002B0EB3 /* MoneroWallet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MoneroWallet.framework; sourceTree = ""; }; - 0C9986A3251A932F00D566FD /* CryptoSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CryptoSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0C9D68C8264854B60011B691 /* secRandom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = secRandom.swift; sourceTree = ""; }; - 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Constants.swift"; sourceTree = ""; }; - 0F42D8065219E0653321EE2B /* TaskProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskProtocol.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/TaskProtocol.swift"; sourceTree = ""; }; - 11F9FC13F9EE2A705B213FA9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 1F083F2041D1F553F2AF8B62 /* 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 = ""; }; - 1FB06A93B13D606F06B3924D /* BreezSDKConnector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDKConnector.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/BreezSDKConnector.swift"; sourceTree = ""; }; - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3C663361C56EBB242598F609 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 41102141140E57B1DC27FBA1 /* SDKNotificationService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDKNotificationService.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/SDKNotificationService.swift"; sourceTree = ""; }; - 58C22CBD8C22B9D6023D59F8 /* LnurlPayInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInfo.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPayInfo.swift"; sourceTree = ""; }; - 5AFFEBFC279AD49C00F906A4 /* wakeLock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = wakeLock.swift; sourceTree = ""; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceHelper.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ResourceHelper.swift"; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 7D3364C03978A8A74B6D586E /* LnurlPay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPay.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPay.swift"; sourceTree = ""; }; - 91C524F800843E0A3F17E004 /* ReceivePayment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReceivePayment.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/ReceivePayment.swift"; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9D2F2C9F2555316C95EE7EA3 /* RedeemSwap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedeemSwap.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/RedeemSwap.swift"; sourceTree = ""; }; - 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; - ABD6FCBB0F4244B090459128 /* BreezSDK.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDK.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/BreezSDK.swift"; sourceTree = ""; }; - AD0937B0140D5A4C24E73BEA /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - B3D5E78267F5F18D882FDC3B /* ServiceConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceConfig.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ServiceConfig.swift"; sourceTree = ""; }; - CE291CFD2C15DB9A00B9F709 /* WowneroWallet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WowneroWallet.framework; sourceTree = ""; }; - DCEA540E3586164FB47AD13E /* LnurlPayInvoice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInvoice.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPayInvoice.swift"; sourceTree = ""; }; - F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceLogger.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ServiceLogger.swift"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4DFD1BB54A3A50573E19A583 /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 06957875428D0F5AAE053765 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 0C9986A3251A932F00D566FD /* CryptoSwift.framework */, - 3C663361C56EBB242598F609 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 0B80439B9064C9708DDB0ADA /* breez_sdk-OnDemandResources */ = { - isa = PBXGroup; - children = ( - ADEC151FA90C8F1EBCDA8CA3 /* BreezSDK */, - ); - name = "breez_sdk-OnDemandResources"; - sourceTree = ""; - }; - 0C44A7182518EF4A00B570ED /* CakeWallet */ = { - isa = PBXGroup; - children = ( - 0C44A7192518EF8000B570ED /* decrypt.swift */, - 0C9D68C8264854B60011B691 /* secRandom.swift */, - 5AFFEBFC279AD49C00F906A4 /* wakeLock.swift */, - ); - path = CakeWallet; - sourceTree = ""; - }; - 84389F1A05D5860790D82820 /* Pods */ = { - isa = PBXGroup; - children = ( - 11F9FC13F9EE2A705B213FA9 /* Pods-Runner.debug.xcconfig */, - 1F083F2041D1F553F2AF8B62 /* Pods-Runner.release.xcconfig */, - AD0937B0140D5A4C24E73BEA /* Pods-Runner.profile.xcconfig */, - 0B80439B9064C9708DDB0ADA /* breez_sdk-OnDemandResources */, - ); - path = Pods; - sourceTree = ""; - }; - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = ""; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - CE291CFD2C15DB9A00B9F709 /* WowneroWallet.framework */, - 0C50DFB82BF3CB56002B0EB3 /* MoneroWallet.framework */, - 0C44A7182518EF4A00B570ED /* CakeWallet */, - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - 84389F1A05D5860790D82820 /* Pods */, - 06957875428D0F5AAE053765 /* Frameworks */, - ); - sourceTree = ""; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - ); - name = Products; - sourceTree = ""; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 0C400E0F25B21ABB0025E469 /* Runner.entitlements */, - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = ""; - }; - ADEC151FA90C8F1EBCDA8CA3 /* BreezSDK */ = { - isa = PBXGroup; - children = ( - ABD6FCBB0F4244B090459128 /* BreezSDK.swift */, - 1FB06A93B13D606F06B3924D /* BreezSDKConnector.swift */, - 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */, - 78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */, - 41102141140E57B1DC27FBA1 /* SDKNotificationService.swift */, - B3D5E78267F5F18D882FDC3B /* ServiceConfig.swift */, - F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */, - 0F42D8065219E0653321EE2B /* TaskProtocol.swift */, - 7D3364C03978A8A74B6D586E /* LnurlPay.swift */, - 58C22CBD8C22B9D6023D59F8 /* LnurlPayInfo.swift */, - DCEA540E3586164FB47AD13E /* LnurlPayInvoice.swift */, - 91C524F800843E0A3F17E004 /* ReceivePayment.swift */, - 9D2F2C9F2555316C95EE7EA3 /* RedeemSwap.swift */, - ); - name = BreezSDK; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - B91154210ADCED81FBF06A85 /* [CP] Check Pods Manifest.lock */, - CE5E8A222BEE19C700608EA1 /* CopyFiles */, - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - 32D0076A9969C0C38D68AF62 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - KnownAssetTags = ( - BreezSDK, - ); - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 9F46EE5E2BC11178009318F5 /* PrivacyInfo.xcprivacy in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - D3AD73A327249AFE8F016A51 /* BreezSDK.swift in Resources */, - 525A2200C6C2A43EDC5C8FC5 /* BreezSDKConnector.swift in Resources */, - 724FDA327BF191BC29DCAA2E /* Constants.swift in Resources */, - 2193F104374FA2746CE8945B /* ResourceHelper.swift in Resources */, - F5EE19868D6F10D814BF73AD /* SDKNotificationService.swift in Resources */, - B6C6E59403ACDE44724C12F4 /* ServiceConfig.swift in Resources */, - 73138617307FA4F838D21D62 /* ServiceLogger.swift in Resources */, - 495FEFF9B395392FED3425DE /* TaskProtocol.swift in Resources */, - A1B4A70C9CFA13AB71662216 /* LnurlPay.swift in Resources */, - CFEFC24F82F78FE747DF1D22 /* LnurlPayInfo.swift in Resources */, - 6909E1D79C9986ADF2DE41E9 /* LnurlPayInvoice.swift in Resources */, - D0D7A0D4E13F31C4E02E235B /* ReceivePayment.swift in Resources */, - A3D5E17CC53DF13FA740DEFA /* RedeemSwap.swift in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 32D0076A9969C0C38D68AF62 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; - }; - B91154210ADCED81FBF06A85 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - 0C9D68C9264854B60011B691 /* secRandom.swift in Sources */, - 0C44A71A2518EF8000B570ED /* decrypt.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C147001CF9000F007C117D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 249021D3217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 562DC258Q6; - DISABLED_ARCHS = x86_64; - ENABLE_BITCODE = NO; - EXCLUDED_SOURCE_FILE_NAMES = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); - INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); - MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = arm64; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97C147041CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 562DC258Q6; - DISABLED_ARCHS = x86_64; - ENABLE_BITCODE = NO; - EXCLUDED_SOURCE_FILE_NAMES = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); - INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); - MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = arm64; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 562DC258Q6; - DISABLED_ARCHS = x86_64; - ENABLE_BITCODE = NO; - EXCLUDED_SOURCE_FILE_NAMES = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); - INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); - MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALID_ARCHS = arm64; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart deleted file mode 100644 index 69999cb3c..000000000 --- a/lib/zano/zano.dart +++ /dev/null @@ -1,56 +0,0 @@ -import 'package:cake_wallet/utils/language_list.dart'; -import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:collection/collection.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_transaction_priority.dart'; -import 'package:cw_core/output_info.dart'; -import 'package:cw_core/transaction_history.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/wallet_service.dart'; -import 'package:hive/hive.dart'; - -import 'package:cw_zano/mnemonics/english.dart'; -import 'package:cw_zano/model/zano_asset.dart'; -import 'package:cw_zano/model/zano_transaction_credentials.dart'; -import 'package:cw_zano/model/zano_transaction_info.dart'; -import 'package:cw_zano/zano_formatter.dart'; -import 'package:cw_zano/zano_wallet.dart'; -import 'package:cw_zano/zano_wallet_service.dart'; - -part 'cw_zano.dart'; - -Zano? zano = CWZano(); - -abstract class Zano { - TransactionPriority getDefaultTransactionPriority(); - TransactionPriority deserializeMoneroTransactionPriority({required int raw}); - List getTransactionPriorities(); - List getWordList(String language); - - WalletCredentials createZanoRestoreWalletFromKeysCredentials({ - required String name, - required String spendKey, - required String viewKey, - required String address, - required String password, - required String language, - required int height}); - WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); - WalletCredentials createZanoNewWalletCredentials({required String name, String password}); - Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); - double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}); - int formatterParseAmount({required String amount, required CryptoCurrency currency}); - WalletService createZanoWalletService(Box walletInfoSource); - CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); - List getZanoAssets(WalletBase wallet); - String getZanoAssetAddress(CryptoCurrency asset); - Future changeZanoAssetAvailability(WalletBase wallet, CryptoCurrency token); - Future addZanoAssetById(WalletBase wallet, String assetId); - Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); - Future getZanoAsset(WalletBase wallet, String contractAddress); - String getAddress(WalletBase wallet); -} diff --git a/scripts/android/build_haven_all.sh b/scripts/android/build_haven_all.sh deleted file mode 100755 index bdda7f9b1..000000000 --- a/scripts/android/build_haven_all.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -./build_iconv.sh -./build_boost.sh -./build_openssl.sh -./build_sodium.sh -./build_zmq.sh -./build_haven.sh -./build_zano.sh -./copy_zano_libs.sh diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake deleted file mode 100644 index d6d9b0a49..000000000 --- a/windows/flutter/generated_plugins.cmake +++ /dev/null @@ -1,29 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - connectivity_plus - flutter_local_authentication - flutter_secure_storage_windows - permission_handler_windows - url_launcher_windows -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST - sp_scanner -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) From d5e95303f4c932a67cb52d81ee594309cb1acd50 Mon Sep 17 00:00:00 2001 From: leo1234 Date: Mon, 2 Sep 2024 14:44:17 +0800 Subject: [PATCH 52/58] Revert "Removed zano.dart (script-generated) and some unnecessary files" This reverts commit 367c86398ef2616006a2cbd2339ef2f30ed2800e. --- android/.project | 28 + .../org.eclipse.buildship.core.prefs | 13 + ios/Podfile.lock | 272 +++++++ ios/Runner.xcodeproj/project.pbxproj | 706 ++++++++++++++++++ lib/zano/zano.dart | 56 ++ scripts/android/build_haven_all.sh | 10 + windows/flutter/generated_plugins.cmake | 29 + 7 files changed, 1114 insertions(+) create mode 100644 android/.project create mode 100644 android/.settings/org.eclipse.buildship.core.prefs create mode 100644 ios/Podfile.lock create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 lib/zano/zano.dart create mode 100755 scripts/android/build_haven_all.sh create mode 100644 windows/flutter/generated_plugins.cmake diff --git a/android/.project b/android/.project new file mode 100644 index 000000000..4f11206e8 --- /dev/null +++ b/android/.project @@ -0,0 +1,28 @@ + + + android + Project android_ created by Buildship. + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + + org.eclipse.buildship.core.gradleprojectnature + + + + 1723563577231 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 000000000..590ce5e1d --- /dev/null +++ b/android/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments=--init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home +jvm.arguments= +offline.mode=false +override.workspace.settings=true +show.console.view=true +show.executions.view=true diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 000000000..6a497bf80 --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,272 @@ +PODS: + - barcode_scan2 (0.0.1): + - Flutter + - MTBBarcodeScanner + - SwiftProtobuf + - BigInt (5.2.0) + - connectivity_plus (0.0.1): + - Flutter + - ReachabilitySwift + - CryptoSwift (1.8.3) + - cw_zano (0.0.1): + - cw_zano/Boost (= 0.0.1) + - cw_zano/OpenSSL (= 0.0.1) + - cw_zano/Zano (= 0.0.1) + - Flutter + - cw_zano/Boost (0.0.1): + - Flutter + - cw_zano/OpenSSL (0.0.1): + - Flutter + - cw_zano/Zano (0.0.1): + - Flutter + - device_display_brightness (0.0.1): + - Flutter + - device_info_plus (0.0.1): + - Flutter + - devicelocale (0.0.1): + - Flutter + - DKImagePickerController/Core (4.3.9): + - DKImagePickerController/ImageDataManager + - DKImagePickerController/Resource + - DKImagePickerController/ImageDataManager (4.3.9) + - DKImagePickerController/PhotoGallery (4.3.9): + - DKImagePickerController/Core + - DKPhotoGallery + - DKImagePickerController/Resource (4.3.9) + - DKPhotoGallery (0.0.19): + - DKPhotoGallery/Core (= 0.0.19) + - DKPhotoGallery/Model (= 0.0.19) + - DKPhotoGallery/Preview (= 0.0.19) + - DKPhotoGallery/Resource (= 0.0.19) + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Core (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Preview + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Model (0.0.19): + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Preview (0.0.19): + - DKPhotoGallery/Model + - DKPhotoGallery/Resource + - SDWebImage + - SwiftyGif + - DKPhotoGallery/Resource (0.0.19): + - SDWebImage + - SwiftyGif + - file_picker (0.0.1): + - DKImagePickerController/PhotoGallery + - Flutter + - Flutter (1.0.0) + - flutter_inappwebview_ios (0.0.1): + - Flutter + - flutter_inappwebview_ios/Core (= 0.0.1) + - OrderedSet (~> 5.0) + - flutter_inappwebview_ios/Core (0.0.1): + - Flutter + - OrderedSet (~> 5.0) + - flutter_local_authentication (1.2.0): + - Flutter + - flutter_mailer (0.0.1): + - Flutter + - flutter_secure_storage (6.0.0): + - Flutter + - fluttertoast (0.0.2): + - Flutter + - Toast + - in_app_review (0.2.0): + - Flutter + - MTBBarcodeScanner (5.0.11) + - OrderedSet (5.0.0) + - package_info (0.0.1): + - Flutter + - package_info_plus (0.4.5): + - Flutter + - path_provider_foundation (0.0.1): + - Flutter + - FlutterMacOS + - permission_handler_apple (9.1.1): + - Flutter + - Protobuf (3.27.3) + - ReachabilitySwift (5.2.3) + - reactive_ble_mobile (0.0.1): + - Flutter + - Protobuf (~> 3.5) + - SwiftProtobuf (~> 1.0) + - SDWebImage (5.19.6): + - SDWebImage/Core (= 5.19.6) + - SDWebImage/Core (5.19.6) + - sensitive_clipboard (0.0.1): + - Flutter + - share_plus (0.0.1): + - Flutter + - shared_preferences_foundation (0.0.1): + - Flutter + - FlutterMacOS + - sp_scanner (0.0.1): + - Flutter + - SwiftProtobuf (1.27.1) + - SwiftyGif (5.4.5) + - Toast (4.1.1) + - uni_links (0.0.1): + - Flutter + - UnstoppableDomainsResolution (4.0.0): + - BigInt + - CryptoSwift + - url_launcher_ios (0.0.1): + - Flutter + - wakelock_plus (0.0.1): + - Flutter + - workmanager (0.0.1): + - Flutter + +DEPENDENCIES: + - barcode_scan2 (from `.symlinks/plugins/barcode_scan2/ios`) + - connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`) + - CryptoSwift + - cw_zano (from `.symlinks/plugins/cw_zano/ios`) + - device_display_brightness (from `.symlinks/plugins/device_display_brightness/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`) + - Flutter (from `Flutter`) + - flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`) + - flutter_local_authentication (from `.symlinks/plugins/flutter_local_authentication/ios`) + - flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`) + - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - in_app_review (from `.symlinks/plugins/in_app_review/ios`) + - package_info (from `.symlinks/plugins/package_info/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) + - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) + - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`) + - reactive_ble_mobile (from `.symlinks/plugins/reactive_ble_mobile/ios`) + - sensitive_clipboard (from `.symlinks/plugins/sensitive_clipboard/ios`) + - share_plus (from `.symlinks/plugins/share_plus/ios`) + - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) + - sp_scanner (from `.symlinks/plugins/sp_scanner/ios`) + - uni_links (from `.symlinks/plugins/uni_links/ios`) + - UnstoppableDomainsResolution (~> 4.0.0) + - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) + - wakelock_plus (from `.symlinks/plugins/wakelock_plus/ios`) + - workmanager (from `.symlinks/plugins/workmanager/ios`) + +SPEC REPOS: + https://github.com/CocoaPods/Specs.git: + - BigInt + - CryptoSwift + - DKImagePickerController + - DKPhotoGallery + - MTBBarcodeScanner + - OrderedSet + - Protobuf + - ReachabilitySwift + - SDWebImage + - SwiftProtobuf + - SwiftyGif + - Toast + - UnstoppableDomainsResolution + +EXTERNAL SOURCES: + barcode_scan2: + :path: ".symlinks/plugins/barcode_scan2/ios" + connectivity_plus: + :path: ".symlinks/plugins/connectivity_plus/ios" + cw_zano: + :path: ".symlinks/plugins/cw_zano/ios" + device_display_brightness: + :path: ".symlinks/plugins/device_display_brightness/ios" + device_info_plus: + :path: ".symlinks/plugins/device_info_plus/ios" + devicelocale: + :path: ".symlinks/plugins/devicelocale/ios" + file_picker: + :path: ".symlinks/plugins/file_picker/ios" + Flutter: + :path: Flutter + flutter_inappwebview_ios: + :path: ".symlinks/plugins/flutter_inappwebview_ios/ios" + flutter_local_authentication: + :path: ".symlinks/plugins/flutter_local_authentication/ios" + flutter_mailer: + :path: ".symlinks/plugins/flutter_mailer/ios" + flutter_secure_storage: + :path: ".symlinks/plugins/flutter_secure_storage/ios" + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" + in_app_review: + :path: ".symlinks/plugins/in_app_review/ios" + package_info: + :path: ".symlinks/plugins/package_info/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" + path_provider_foundation: + :path: ".symlinks/plugins/path_provider_foundation/darwin" + permission_handler_apple: + :path: ".symlinks/plugins/permission_handler_apple/ios" + reactive_ble_mobile: + :path: ".symlinks/plugins/reactive_ble_mobile/ios" + sensitive_clipboard: + :path: ".symlinks/plugins/sensitive_clipboard/ios" + share_plus: + :path: ".symlinks/plugins/share_plus/ios" + shared_preferences_foundation: + :path: ".symlinks/plugins/shared_preferences_foundation/darwin" + sp_scanner: + :path: ".symlinks/plugins/sp_scanner/ios" + uni_links: + :path: ".symlinks/plugins/uni_links/ios" + url_launcher_ios: + :path: ".symlinks/plugins/url_launcher_ios/ios" + wakelock_plus: + :path: ".symlinks/plugins/wakelock_plus/ios" + workmanager: + :path: ".symlinks/plugins/workmanager/ios" + +SPEC CHECKSUMS: + barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0 + BigInt: f668a80089607f521586bbe29513d708491ef2f7 + connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d + CryptoSwift: 967f37cea5a3294d9cce358f78861652155be483 + cw_zano: e13e2987734da2e94770540121762c288cdcf5b3 + device_display_brightness: 1510e72c567a1f6ce6ffe393dcd9afd1426034f7 + device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 + devicelocale: b22617f40038496deffba44747101255cee005b0 + DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c + DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 + file_picker: 15fd9539e4eb735dc54bae8c0534a7a9511a03de + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 + flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb + flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83 + flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c + in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d + MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb + OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 + package_info_plus: 58f0028419748fad15bf008b270aaa8e54380b1c + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 + Protobuf: c1cbc880ea7c4e9b157e113515c720a22ee7cf50 + ReachabilitySwift: 7f151ff156cea1481a8411701195ac6a984f4979 + reactive_ble_mobile: 9ce6723d37ccf701dbffd202d487f23f5de03b4c + SDWebImage: a79252b60f4678812d94316c91da69ec83089c9f + sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 + share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sp_scanner: eaa617fa827396b967116b7f1f43549ca62e9a12 + SwiftProtobuf: b109bd17979d7993a84da14b1e1fdd8b0ded934a + SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 + Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e + uni_links: d97da20c7701486ba192624d99bffaaffcfc298a + UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + wakelock_plus: 78ec7c5b202cab7761af8e2b2b3d0671be6c4ae1 + workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 + +PODFILE CHECKSUM: a2fe518be61cdbdc5b0e2da085ab543d556af2d3 + +COCOAPODS: 1.15.2 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 000000000..28edf4628 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,706 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 0C44A71A2518EF8000B570ED /* decrypt.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C44A7192518EF8000B570ED /* decrypt.swift */; }; + 0C50DFB92BF3CB56002B0EB3 /* MoneroWallet.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 0C50DFB82BF3CB56002B0EB3 /* MoneroWallet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 0C9D68C9264854B60011B691 /* secRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C9D68C8264854B60011B691 /* secRandom.swift */; }; + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 2193F104374FA2746CE8945B /* ResourceHelper.swift in Resources */ = {isa = PBXBuildFile; fileRef = 78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 495FEFF9B395392FED3425DE /* TaskProtocol.swift in Resources */ = {isa = PBXBuildFile; fileRef = 0F42D8065219E0653321EE2B /* TaskProtocol.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + 4DFD1BB54A3A50573E19A583 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C663361C56EBB242598F609 /* Pods_Runner.framework */; }; + 525A2200C6C2A43EDC5C8FC5 /* BreezSDKConnector.swift in Resources */ = {isa = PBXBuildFile; fileRef = 1FB06A93B13D606F06B3924D /* BreezSDKConnector.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + 6909E1D79C9986ADF2DE41E9 /* LnurlPayInvoice.swift in Resources */ = {isa = PBXBuildFile; fileRef = DCEA540E3586164FB47AD13E /* LnurlPayInvoice.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + 724FDA327BF191BC29DCAA2E /* Constants.swift in Resources */ = {isa = PBXBuildFile; fileRef = 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + 73138617307FA4F838D21D62 /* ServiceLogger.swift in Resources */ = {isa = PBXBuildFile; fileRef = F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; + 9F46EE5E2BC11178009318F5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */; }; + A1B4A70C9CFA13AB71662216 /* LnurlPay.swift in Resources */ = {isa = PBXBuildFile; fileRef = 7D3364C03978A8A74B6D586E /* LnurlPay.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + A3D5E17CC53DF13FA740DEFA /* RedeemSwap.swift in Resources */ = {isa = PBXBuildFile; fileRef = 9D2F2C9F2555316C95EE7EA3 /* RedeemSwap.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + B6C6E59403ACDE44724C12F4 /* ServiceConfig.swift in Resources */ = {isa = PBXBuildFile; fileRef = B3D5E78267F5F18D882FDC3B /* ServiceConfig.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + CE291CFE2C15DB9A00B9F709 /* WowneroWallet.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE291CFD2C15DB9A00B9F709 /* WowneroWallet.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CFEFC24F82F78FE747DF1D22 /* LnurlPayInfo.swift in Resources */ = {isa = PBXBuildFile; fileRef = 58C22CBD8C22B9D6023D59F8 /* LnurlPayInfo.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + D0D7A0D4E13F31C4E02E235B /* ReceivePayment.swift in Resources */ = {isa = PBXBuildFile; fileRef = 91C524F800843E0A3F17E004 /* ReceivePayment.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + D3AD73A327249AFE8F016A51 /* BreezSDK.swift in Resources */ = {isa = PBXBuildFile; fileRef = ABD6FCBB0F4244B090459128 /* BreezSDK.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; + F5EE19868D6F10D814BF73AD /* SDKNotificationService.swift in Resources */ = {isa = PBXBuildFile; fileRef = 41102141140E57B1DC27FBA1 /* SDKNotificationService.swift */; settings = {ASSET_TAGS = (BreezSDK, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + CE5E8A222BEE19C700608EA1 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + CE291CFE2C15DB9A00B9F709 /* WowneroWallet.framework in CopyFiles */, + 0C50DFB92BF3CB56002B0EB3 /* MoneroWallet.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0C400E0F25B21ABB0025E469 /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; }; + 0C44A7192518EF8000B570ED /* decrypt.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = decrypt.swift; sourceTree = ""; }; + 0C50DFB82BF3CB56002B0EB3 /* MoneroWallet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MoneroWallet.framework; sourceTree = ""; }; + 0C9986A3251A932F00D566FD /* CryptoSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CryptoSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0C9D68C8264854B60011B691 /* secRandom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = secRandom.swift; sourceTree = ""; }; + 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Constants.swift"; sourceTree = ""; }; + 0F42D8065219E0653321EE2B /* TaskProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TaskProtocol.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/TaskProtocol.swift"; sourceTree = ""; }; + 11F9FC13F9EE2A705B213FA9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 1F083F2041D1F553F2AF8B62 /* 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 = ""; }; + 1FB06A93B13D606F06B3924D /* BreezSDKConnector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDKConnector.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/BreezSDKConnector.swift"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3C663361C56EBB242598F609 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 41102141140E57B1DC27FBA1 /* SDKNotificationService.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SDKNotificationService.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/SDKNotificationService.swift"; sourceTree = ""; }; + 58C22CBD8C22B9D6023D59F8 /* LnurlPayInfo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInfo.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPayInfo.swift"; sourceTree = ""; }; + 5AFFEBFC279AD49C00F906A4 /* wakeLock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = wakeLock.swift; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ResourceHelper.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ResourceHelper.swift"; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 7D3364C03978A8A74B6D586E /* LnurlPay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPay.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPay.swift"; sourceTree = ""; }; + 91C524F800843E0A3F17E004 /* ReceivePayment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ReceivePayment.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/ReceivePayment.swift"; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 9D2F2C9F2555316C95EE7EA3 /* RedeemSwap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RedeemSwap.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/RedeemSwap.swift"; sourceTree = ""; }; + 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + ABD6FCBB0F4244B090459128 /* BreezSDK.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BreezSDK.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/BreezSDK.swift"; sourceTree = ""; }; + AD0937B0140D5A4C24E73BEA /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + B3D5E78267F5F18D882FDC3B /* ServiceConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceConfig.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ServiceConfig.swift"; sourceTree = ""; }; + CE291CFD2C15DB9A00B9F709 /* WowneroWallet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WowneroWallet.framework; sourceTree = ""; }; + DCEA540E3586164FB47AD13E /* LnurlPayInvoice.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LnurlPayInvoice.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/Task/LnurlPayInvoice.swift"; sourceTree = ""; }; + F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ServiceLogger.swift; path = "../.symlinks/plugins/breez_sdk/ios/bindings-swift/Sources/BreezSDK/ServiceLogger.swift"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 4DFD1BB54A3A50573E19A583 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 06957875428D0F5AAE053765 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 0C9986A3251A932F00D566FD /* CryptoSwift.framework */, + 3C663361C56EBB242598F609 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 0B80439B9064C9708DDB0ADA /* breez_sdk-OnDemandResources */ = { + isa = PBXGroup; + children = ( + ADEC151FA90C8F1EBCDA8CA3 /* BreezSDK */, + ); + name = "breez_sdk-OnDemandResources"; + sourceTree = ""; + }; + 0C44A7182518EF4A00B570ED /* CakeWallet */ = { + isa = PBXGroup; + children = ( + 0C44A7192518EF8000B570ED /* decrypt.swift */, + 0C9D68C8264854B60011B691 /* secRandom.swift */, + 5AFFEBFC279AD49C00F906A4 /* wakeLock.swift */, + ); + path = CakeWallet; + sourceTree = ""; + }; + 84389F1A05D5860790D82820 /* Pods */ = { + isa = PBXGroup; + children = ( + 11F9FC13F9EE2A705B213FA9 /* Pods-Runner.debug.xcconfig */, + 1F083F2041D1F553F2AF8B62 /* Pods-Runner.release.xcconfig */, + AD0937B0140D5A4C24E73BEA /* Pods-Runner.profile.xcconfig */, + 0B80439B9064C9708DDB0ADA /* breez_sdk-OnDemandResources */, + ); + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + CE291CFD2C15DB9A00B9F709 /* WowneroWallet.framework */, + 0C50DFB82BF3CB56002B0EB3 /* MoneroWallet.framework */, + 0C44A7182518EF4A00B570ED /* CakeWallet */, + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 84389F1A05D5860790D82820 /* Pods */, + 06957875428D0F5AAE053765 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 0C400E0F25B21ABB0025E469 /* Runner.entitlements */, + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 9F46EE5D2BC11178009318F5 /* PrivacyInfo.xcprivacy */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + ADEC151FA90C8F1EBCDA8CA3 /* BreezSDK */ = { + isa = PBXGroup; + children = ( + ABD6FCBB0F4244B090459128 /* BreezSDK.swift */, + 1FB06A93B13D606F06B3924D /* BreezSDKConnector.swift */, + 0CCA7ADAD6FF9185EBBB2BCA /* Constants.swift */, + 78D25C60B94E9D9E48D52E5E /* ResourceHelper.swift */, + 41102141140E57B1DC27FBA1 /* SDKNotificationService.swift */, + B3D5E78267F5F18D882FDC3B /* ServiceConfig.swift */, + F42258C3697CFE3C8C8D1933 /* ServiceLogger.swift */, + 0F42D8065219E0653321EE2B /* TaskProtocol.swift */, + 7D3364C03978A8A74B6D586E /* LnurlPay.swift */, + 58C22CBD8C22B9D6023D59F8 /* LnurlPayInfo.swift */, + DCEA540E3586164FB47AD13E /* LnurlPayInvoice.swift */, + 91C524F800843E0A3F17E004 /* ReceivePayment.swift */, + 9D2F2C9F2555316C95EE7EA3 /* RedeemSwap.swift */, + ); + name = BreezSDK; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + B91154210ADCED81FBF06A85 /* [CP] Check Pods Manifest.lock */, + CE5E8A222BEE19C700608EA1 /* CopyFiles */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 32D0076A9969C0C38D68AF62 /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + KnownAssetTags = ( + BreezSDK, + ); + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 9F46EE5E2BC11178009318F5 /* PrivacyInfo.xcprivacy in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + D3AD73A327249AFE8F016A51 /* BreezSDK.swift in Resources */, + 525A2200C6C2A43EDC5C8FC5 /* BreezSDKConnector.swift in Resources */, + 724FDA327BF191BC29DCAA2E /* Constants.swift in Resources */, + 2193F104374FA2746CE8945B /* ResourceHelper.swift in Resources */, + F5EE19868D6F10D814BF73AD /* SDKNotificationService.swift in Resources */, + B6C6E59403ACDE44724C12F4 /* ServiceConfig.swift in Resources */, + 73138617307FA4F838D21D62 /* ServiceLogger.swift in Resources */, + 495FEFF9B395392FED3425DE /* TaskProtocol.swift in Resources */, + A1B4A70C9CFA13AB71662216 /* LnurlPay.swift in Resources */, + CFEFC24F82F78FE747DF1D22 /* LnurlPayInfo.swift in Resources */, + 6909E1D79C9986ADF2DE41E9 /* LnurlPayInvoice.swift in Resources */, + D0D7A0D4E13F31C4E02E235B /* ReceivePayment.swift in Resources */, + A3D5E17CC53DF13FA740DEFA /* RedeemSwap.swift in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 32D0076A9969C0C38D68AF62 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin\n"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n"; + }; + B91154210ADCED81FBF06A85 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + 0C9D68C9264854B60011B691 /* secRandom.swift in Sources */, + 0C44A71A2518EF8000B570ED /* decrypt.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = 562DC258Q6; + DISABLED_ARCHS = x86_64; + ENABLE_BITCODE = NO; + EXCLUDED_SOURCE_FILE_NAMES = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + MARKETING_VERSION = 1.0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = 562DC258Q6; + DISABLED_ARCHS = x86_64; + ENABLE_BITCODE = NO; + EXCLUDED_SOURCE_FILE_NAMES = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + MARKETING_VERSION = 1.0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; + CURRENT_PROJECT_VERSION = 3; + DEVELOPMENT_TEAM = 562DC258Q6; + DISABLED_ARCHS = x86_64; + ENABLE_BITCODE = NO; + EXCLUDED_SOURCE_FILE_NAMES = ""; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + MARKETING_VERSION = 1.0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = arm64; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart new file mode 100644 index 000000000..69999cb3c --- /dev/null +++ b/lib/zano/zano.dart @@ -0,0 +1,56 @@ +import 'package:cake_wallet/utils/language_list.dart'; +import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:collection/collection.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/monero_transaction_priority.dart'; +import 'package:cw_core/output_info.dart'; +import 'package:cw_core/transaction_history.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:hive/hive.dart'; + +import 'package:cw_zano/mnemonics/english.dart'; +import 'package:cw_zano/model/zano_asset.dart'; +import 'package:cw_zano/model/zano_transaction_credentials.dart'; +import 'package:cw_zano/model/zano_transaction_info.dart'; +import 'package:cw_zano/zano_formatter.dart'; +import 'package:cw_zano/zano_wallet.dart'; +import 'package:cw_zano/zano_wallet_service.dart'; + +part 'cw_zano.dart'; + +Zano? zano = CWZano(); + +abstract class Zano { + TransactionPriority getDefaultTransactionPriority(); + TransactionPriority deserializeMoneroTransactionPriority({required int raw}); + List getTransactionPriorities(); + List getWordList(String language); + + WalletCredentials createZanoRestoreWalletFromKeysCredentials({ + required String name, + required String spendKey, + required String viewKey, + required String address, + required String password, + required String language, + required int height}); + WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); + WalletCredentials createZanoNewWalletCredentials({required String name, String password}); + Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); + double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}); + int formatterParseAmount({required String amount, required CryptoCurrency currency}); + WalletService createZanoWalletService(Box walletInfoSource); + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); + List getZanoAssets(WalletBase wallet); + String getZanoAssetAddress(CryptoCurrency asset); + Future changeZanoAssetAvailability(WalletBase wallet, CryptoCurrency token); + Future addZanoAssetById(WalletBase wallet, String assetId); + Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); + Future getZanoAsset(WalletBase wallet, String contractAddress); + String getAddress(WalletBase wallet); +} diff --git a/scripts/android/build_haven_all.sh b/scripts/android/build_haven_all.sh new file mode 100755 index 000000000..bdda7f9b1 --- /dev/null +++ b/scripts/android/build_haven_all.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +./build_iconv.sh +./build_boost.sh +./build_openssl.sh +./build_sodium.sh +./build_zmq.sh +./build_haven.sh +./build_zano.sh +./copy_zano_libs.sh diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 000000000..d6d9b0a49 --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,29 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + connectivity_plus + flutter_local_authentication + flutter_secure_storage_windows + permission_handler_windows + url_launcher_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + sp_scanner +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) From bf8e884aa34861f77d4c30728b3ef02f7bc22ca0 Mon Sep 17 00:00:00 2001 From: leo1234 Date: Mon, 2 Sep 2024 15:14:07 +0800 Subject: [PATCH 53/58] Removed zano.dart (generated by scripts), some files restored to initial versions --- android/.project | 11 ---- .../org.eclipse.buildship.core.prefs | 13 +---- ios/Runner.xcodeproj/project.pbxproj | 12 ++-- lib/zano/zano.dart | 56 ------------------- scripts/android/build_haven_all.sh | 2 - 5 files changed, 7 insertions(+), 87 deletions(-) delete mode 100644 lib/zano/zano.dart diff --git a/android/.project b/android/.project index 4f11206e8..17c95d4b1 100644 --- a/android/.project +++ b/android/.project @@ -14,15 +14,4 @@ org.eclipse.buildship.core.gradleprojectnature - - - 1723563577231 - - 30 - - org.eclipse.core.resources.regexFilterMatcher - node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ - - - diff --git a/android/.settings/org.eclipse.buildship.core.prefs b/android/.settings/org.eclipse.buildship.core.prefs index 590ce5e1d..9d2efc8e7 100644 --- a/android/.settings/org.eclipse.buildship.core.prefs +++ b/android/.settings/org.eclipse.buildship.core.prefs @@ -1,13 +1,2 @@ -arguments=--init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/db3b08fc4a9ef609cb16b96b200fa13e563f396e9bb1ed0905fdab7bc3bc513b.gradle --init-script /var/folders/4v/g721xt952ys396fxzwv8s5_c0000gn/T/52cde0cfcf3e28b8b7510e992210d9614505e0911af0c190bd590d7158574963.gradle -auto.sync=false -build.scans.enabled=false -connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) connection.project.dir= -eclipse.preferences.version=1 -gradle.user.home= -java.home=/Library/Java/JavaVirtualMachines/adoptopenjdk-13.0.1.jdk/Contents/Home -jvm.arguments= -offline.mode=false -override.workspace.settings=true -show.console.view=true -show.executions.view=true +eclipse.preferences.version=1 \ No newline at end of file diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 28edf4628..417c522a6 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -464,7 +464,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 562DC258Q6; + DEVELOPMENT_TEAM = 32J6BB6VUS; DISABLED_ARCHS = x86_64; ENABLE_BITCODE = NO; EXCLUDED_SOURCE_FILE_NAMES = ""; @@ -483,7 +483,7 @@ "$(PROJECT_DIR)/Flutter", ); MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; + PRODUCT_BUNDLE_IDENTIFIER = "com.fotolockr.cakewallet"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; @@ -610,7 +610,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 562DC258Q6; + DEVELOPMENT_TEAM = 32J6BB6VUS; DISABLED_ARCHS = x86_64; ENABLE_BITCODE = NO; EXCLUDED_SOURCE_FILE_NAMES = ""; @@ -629,7 +629,7 @@ "$(PROJECT_DIR)/Flutter", ); MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; + PRODUCT_BUNDLE_IDENTIFIER = "com.fotolockr.cakewallet"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -648,7 +648,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = 562DC258Q6; + DEVELOPMENT_TEAM = 32J6BB6VUS; DISABLED_ARCHS = x86_64; ENABLE_BITCODE = NO; EXCLUDED_SOURCE_FILE_NAMES = ""; @@ -667,7 +667,7 @@ "$(PROJECT_DIR)/Flutter", ); MARKETING_VERSION = 1.0.1; - PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; + PRODUCT_BUNDLE_IDENTIFIER = "com.fotolockr.cakewallet"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/lib/zano/zano.dart b/lib/zano/zano.dart deleted file mode 100644 index 69999cb3c..000000000 --- a/lib/zano/zano.dart +++ /dev/null @@ -1,56 +0,0 @@ -import 'package:cake_wallet/utils/language_list.dart'; -import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:collection/collection.dart'; -import 'package:cw_core/crypto_currency.dart'; -import 'package:cw_core/monero_transaction_priority.dart'; -import 'package:cw_core/output_info.dart'; -import 'package:cw_core/transaction_history.dart'; -import 'package:cw_core/transaction_info.dart'; -import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_base.dart'; -import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; -import 'package:cw_core/wallet_service.dart'; -import 'package:hive/hive.dart'; - -import 'package:cw_zano/mnemonics/english.dart'; -import 'package:cw_zano/model/zano_asset.dart'; -import 'package:cw_zano/model/zano_transaction_credentials.dart'; -import 'package:cw_zano/model/zano_transaction_info.dart'; -import 'package:cw_zano/zano_formatter.dart'; -import 'package:cw_zano/zano_wallet.dart'; -import 'package:cw_zano/zano_wallet_service.dart'; - -part 'cw_zano.dart'; - -Zano? zano = CWZano(); - -abstract class Zano { - TransactionPriority getDefaultTransactionPriority(); - TransactionPriority deserializeMoneroTransactionPriority({required int raw}); - List getTransactionPriorities(); - List getWordList(String language); - - WalletCredentials createZanoRestoreWalletFromKeysCredentials({ - required String name, - required String spendKey, - required String viewKey, - required String address, - required String password, - required String language, - required int height}); - WalletCredentials createZanoRestoreWalletFromSeedCredentials({required String name, required String password, required int height, required String mnemonic}); - WalletCredentials createZanoNewWalletCredentials({required String name, String password}); - Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}); - double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}); - int formatterParseAmount({required String amount, required CryptoCurrency currency}); - WalletService createZanoWalletService(Box walletInfoSource); - CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo tx); - List getZanoAssets(WalletBase wallet); - String getZanoAssetAddress(CryptoCurrency asset); - Future changeZanoAssetAvailability(WalletBase wallet, CryptoCurrency token); - Future addZanoAssetById(WalletBase wallet, String assetId); - Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token); - Future getZanoAsset(WalletBase wallet, String contractAddress); - String getAddress(WalletBase wallet); -} diff --git a/scripts/android/build_haven_all.sh b/scripts/android/build_haven_all.sh index bdda7f9b1..daadadc6b 100755 --- a/scripts/android/build_haven_all.sh +++ b/scripts/android/build_haven_all.sh @@ -6,5 +6,3 @@ ./build_sodium.sh ./build_zmq.sh ./build_haven.sh -./build_zano.sh -./copy_zano_libs.sh From 2c83de3a4d479bf3e0e37e53bf0167b1d110f3a5 Mon Sep 17 00:00:00 2001 From: leo Date: Tue, 22 Oct 2024 16:09:56 +0000 Subject: [PATCH 54/58] added timer library --- scripts/android/finish_boost.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/android/finish_boost.sh b/scripts/android/finish_boost.sh index 72f6f1e99..d96de2d72 100755 --- a/scripts/android/finish_boost.sh +++ b/scripts/android/finish_boost.sh @@ -5,5 +5,5 @@ PREFIX=$2 BOOST_SRC_DIR=$3 cd $BOOST_SRC_DIR - -./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --with-log --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} -j$THREADS install +echo "Building boost" +./b2 --build-type=minimal link=static runtime-link=static --with-chrono --with-date_time --with-timer --with-filesystem --with-program_options --with-regex --with-serialization --with-system --with-thread --with-locale --with-log --build-dir=android --stagedir=android toolset=clang threading=multi threadapi=pthread target-os=android -sICONV_PATH=${PREFIX} -j$THREADS install From 956c469036ae647c74f79c1fc5e744720397fe5e Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 23 Oct 2024 16:42:28 +0000 Subject: [PATCH 55/58] changed paths in build_zano.sh --- scripts/android/build_zano.sh | 7 +++++-- scripts/android/copy_zano_libs.sh | 11 ++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index b90d66688..eb6a4a5ee 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -6,9 +6,10 @@ set -o xtrace ZANO_SRC_DIR=${WORKDIR}/zano ZANO_CHECKOUT_ID=develop -git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} +git clone --recurse-submodules -b ${ZANO_CHECKOUT_ID} https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} +#git clone --recursive https://github.com/hyle-team/zano.git ${ZANO_SRC_DIR} cd $ZANO_SRC_DIR -git checkout ${ZANO_CHECKOUT_ID} +#git checkout ${ZANO_CHECKOUT_ID} git submodule init git submodule update git pull -r @@ -90,4 +91,6 @@ fi cp -r ./_install/$ARCH_ABI/lib/* $DEST_LIB_DIR #cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR +./copy_zano_libs.sh + done diff --git a/scripts/android/copy_zano_libs.sh b/scripts/android/copy_zano_libs.sh index aedd01404..2ca6f90aa 100755 --- a/scripts/android/copy_zano_libs.sh +++ b/scripts/android/copy_zano_libs.sh @@ -1,8 +1,10 @@ #!/bin/bash WORKDIR=/opt/android -CW_DIR=${WORKDIR}/cake_wallet -CW_EXRTERNAL_DIR=${CW_DIR}/cw_shared_external/ios/External/android +#CW_DIR=${WORKDIR}/zano_cake_wallet +CW_DIR=$(cd ../.. && pwd) +echo "CW_DIR: $CW_DIR" +CW_EXTERNAL_DIR=${CW_DIR}/cw_shared_external/ios/External/android for arch in "aarch" "aarch64" "i686" "x86_64" do @@ -20,10 +22,13 @@ case $arch in ABI="x86_64";; esac -LIB_DIR=${CW_EXRTERNAL_DIR}/${ABI}/lib +LIB_DIR=${CW_EXTERNAL_DIR}/${ABI}/lib mkdir -p $LIB_DIR cp -r ${PREFIX}/lib/* $LIB_DIR +mkdir -p ${CW_DIR}/cw_shared_external/ios/External/ios/sources/zano/src/wallet/ +cp ${WORKDIR}/zano/src/wallet/plain_wallet_api.h ${CW_DIR}/cw_shared_external/ios/External/ios/sources/zano/src/wallet/ + done From 91a063ad89f4b64ef00d1707c97cef06814dfcf9 Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 23 Oct 2024 18:03:11 +0000 Subject: [PATCH 56/58] build_zano.sh --- scripts/android/build_zano.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/android/build_zano.sh b/scripts/android/build_zano.sh index eb6a4a5ee..f2e22e029 100755 --- a/scripts/android/build_zano.sh +++ b/scripts/android/build_zano.sh @@ -1,6 +1,8 @@ #!/bin/sh set -o xtrace +ORIGINAL_DIR=$(pwd) + . ./config.sh #HAVEN_VERSION=tags/v3.0.7 ZANO_SRC_DIR=${WORKDIR}/zano @@ -65,7 +67,7 @@ case $arch in esac cd $ZANO_SRC_DIR - rm -rf ./build/release +rm -rf ./build/release mkdir -p ./build/release cd ./build/release CC=${CLANG} CXX=${CXXLANG} cmake -S../.. -DCMAKE_INSTALL_PREFIX=./_install -D CAKEWALLET=TRUE -D TESTNET=TRUE -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS @@ -91,6 +93,7 @@ fi cp -r ./_install/$ARCH_ABI/lib/* $DEST_LIB_DIR #cp ../../src/wallet/api/wallet2_api.h $DEST_INCLUDE_DIR +cd "$ORIGINAL_DIR" ./copy_zano_libs.sh done From cda4a38b59f21ed0cbf2c31c8552add49eae3f53 Mon Sep 17 00:00:00 2001 From: Leo Date: Sun, 27 Oct 2024 00:19:56 +0800 Subject: [PATCH 57/58] edit_token_page.dart - removed flag skipZanoAddressValidation Co-authored-by: Omar Hatem --- lib/src/screens/dashboard/edit_token_page.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/src/screens/dashboard/edit_token_page.dart b/lib/src/screens/dashboard/edit_token_page.dart index 28c742de3..f64b61daf 100644 --- a/lib/src/screens/dashboard/edit_token_page.dart +++ b/lib/src/screens/dashboard/edit_token_page.dart @@ -267,8 +267,7 @@ class _EditTokenPageBodyState extends State { placeholder: S.of(context).token_contract_address, options: [AddressTextFieldOption.paste], buttonColor: Theme.of(context).hintColor, - // we don't use zano addresses validations here, addresses and asset ids are difference entities - validator: AddressValidator(type: widget.homeSettingsViewModel.nativeToken, skipZanoAddressValidation: true), + validator: widget.homeSettingsViewModel.walletType == WalletType.zano ? null : AddressValidator(type: widget.homeSettingsViewModel.nativeToken), onPushPasteButton: (_) { _pasteText(); }, From 3caca5c91336d184864d102fe530303d52b0dac5 Mon Sep 17 00:00:00 2001 From: leo Date: Sun, 27 Oct 2024 06:04:46 +0000 Subject: [PATCH 58/58] lib/core/address_validator.dart - updated zano address regex lib/src/screens/dashboard/edit_token_page.dart - using AddressValidator().call --- lib/core/address_validator.dart | 12 ++++++------ lib/src/screens/dashboard/edit_token_page.dart | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index dc40bfd02..71db95af7 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -7,18 +7,18 @@ import 'package:cw_core/erc20_token.dart'; import 'package:cw_zano/zano_utils.dart'; class AddressValidator extends TextValidator { - AddressValidator({required CryptoCurrency type, bool skipZanoAddressValidation = false}) + AddressValidator({required CryptoCurrency type}) : super( errorMessage: S.current.error_text_address, useAdditionalValidation: type == CryptoCurrency.btc ? (String txt) => validateAddress(address: txt, network: BitcoinNetwork.mainnet) - : type == CryptoCurrency.zano && !skipZanoAddressValidation + : type == CryptoCurrency.zano ? ZanoUtils.validateAddress : null, - pattern: getPattern(type, skipZanoAddressValidation), + pattern: getPattern(type), length: getLength(type)); - static String getPattern(CryptoCurrency type, bool skipZanoAddressValidation) { + static String getPattern(CryptoCurrency type) { if (type is Erc20Token) { return '0x[0-9a-zA-Z]'; } @@ -127,7 +127,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.btcln: return '^(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)'; case CryptoCurrency.zano: - return skipZanoAddressValidation ? '[0-9a-zA-Z]' : r'$.^'; // always false, we use additional validation then + return '([1-9A-HJ-NP-Za-km-z]{90,200})|(@[\w\d-.]+)'; default: return '[0-9a-zA-Z]'; } @@ -308,7 +308,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.trx: return '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; case CryptoCurrency.zano: - return '[0-9a-zA-Z]{1,100}'; + return '([1-9A-HJ-NP-Za-km-z]{90,200})|(@[\w\d-.]+)'; default: if (type.tag == CryptoCurrency.eth.title) { return '0x[0-9a-zA-Z]{42}'; diff --git a/lib/src/screens/dashboard/edit_token_page.dart b/lib/src/screens/dashboard/edit_token_page.dart index f64b61daf..c330b6874 100644 --- a/lib/src/screens/dashboard/edit_token_page.dart +++ b/lib/src/screens/dashboard/edit_token_page.dart @@ -267,7 +267,7 @@ class _EditTokenPageBodyState extends State { placeholder: S.of(context).token_contract_address, options: [AddressTextFieldOption.paste], buttonColor: Theme.of(context).hintColor, - validator: widget.homeSettingsViewModel.walletType == WalletType.zano ? null : AddressValidator(type: widget.homeSettingsViewModel.nativeToken), + validator: widget.homeSettingsViewModel.walletType == WalletType.zano ? null : AddressValidator(type: widget.homeSettingsViewModel.nativeToken).call, onPushPasteButton: (_) { _pasteText(); },

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