From ba9d67720bb2b8e10a26896ad22196d9e8e66144 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Sun, 31 Aug 2025 09:20:16 -0400 Subject: [PATCH 1/4] chore: add esplora variant on default branch --- .../.editorconfig" | 0 .../.gitignore" | 0 .../app/build.gradle.kts" | 0 .../app/proguard-rules.pro" | 0 .../app/src/main/AndroidManifest.xml" | 0 .../app/src/main/assets/bip39-english.txt" | 0 .../app/src/main/ic_launcher_bdk-playstore.png" | Bin .../bitcoindevkit/devkitwallet/data/TxDetails.kt" | 0 .../devkitwallet/data/UserPreferencesSerializer.kt" | 0 .../devkitwallet/data/WalletConfigs.kt" | 0 .../devkitwallet/domain/BlockchainClient.kt" | 0 .../devkitwallet/domain/BlockchainClientsConfig.kt" | 0 .../bitcoindevkit/devkitwallet/domain/Constants.kt" | 0 .../devkitwallet/domain/CurrencyUnit.kt" | 0 .../bitcoindevkit/devkitwallet/domain/DwLogger.kt" | 0 .../domain/UserPreferencesRepository.kt" | 0 .../bitcoindevkit/devkitwallet/domain/Wallet.kt" | 0 .../devkitwallet/domain/utils/FormatInBtc.kt" | 0 .../domain/utils/ProtobufExtensions.kt" | 0 .../devkitwallet/domain/utils/Timestamps.kt" | 0 .../presentation/DevkitWalletActivity.kt" | 0 .../navigation/CreateWalletNavigation.kt" | 0 .../presentation/navigation/Destinations.kt" | 0 .../presentation/navigation/HomeNavigation.kt" | 0 .../presentation/navigation/WalletNavigation.kt" | 0 .../presentation/theme/DevkitWalletColors.kt" | 0 .../devkitwallet/presentation/theme/Fonts.kt" | 0 .../devkitwallet/presentation/theme/Theme.kt" | 0 .../devkitwallet/presentation/theme/Type.kt" | 0 .../presentation/ui/components/CustomSnackbar.kt" | 0 .../presentation/ui/components/LoadingAnimation.kt" | 0 .../presentation/ui/components/NeutralButton.kt" | 0 .../ui/components/RadioButtonWithLabel.kt" | 0 .../ui/components/SecondaryScreensAppBar.kt" | 0 .../presentation/ui/components/TransactionCards.kt" | 0 .../ui/components/WalletOptionsCard.kt" | 0 .../presentation/ui/screens/WalletRoot.kt" | 0 .../presentation/ui/screens/drawer/AboutScreen.kt" | 0 .../ui/screens/drawer/BlockchainClientScreen.kt" | 0 .../presentation/ui/screens/drawer/LogsScreen.kt" | 0 .../ui/screens/drawer/RecoveryDataScreen.kt" | 0 .../ui/screens/intro/ActiveWalletsScreen.kt" | 0 .../ui/screens/intro/CreateNewWallet.kt" | 0 .../ui/screens/intro/OnboardingScreen.kt" | 0 .../ui/screens/intro/RecoverWalletScreen.kt" | 0 .../ui/screens/intro/WalletChoiceScreen.kt" | 0 .../presentation/ui/screens/wallet/RBFScreen.kt" | 0 .../ui/screens/wallet/ReceiveScreen.kt" | 0 .../presentation/ui/screens/wallet/SendScreen.kt" | 0 .../ui/screens/wallet/TransactionHistoryScreen.kt" | 0 .../ui/screens/wallet/TransactionScreen.kt" | 0 .../ui/screens/wallet/WalletHomeScreen.kt" | 0 .../presentation/viewmodels/AddressViewModel.kt" | 0 .../presentation/viewmodels/SendViewModel.kt" | 0 .../presentation/viewmodels/WalletViewModel.kt" | 0 .../viewmodels/mvi/MviReceiveScreen.kt" | 0 .../presentation/viewmodels/mvi/MviSendScreen.kt" | 0 .../presentation/viewmodels/mvi/MviWalletScreen.kt" | 0 .../app/src/main/proto/wallets.proto" | 0 .../res/drawable-v24/ic_launcher_foreground.xml" | 0 .../app/src/main/res/drawable/bdk_logo.xml" | 0 .../app/src/main/res/drawable/ic_bitcoin_logo.xml" | 0 .../res/drawable/ic_launcher_bdk_background.xml" | 0 .../res/drawable/ic_launcher_bdk_foreground.xml" | 0 .../app/src/main/res/drawable/ic_testnet_logo.xml" | 0 .../app/src/main/res/drawable/launch_screen.xml" | 0 .../app/src/main/res/font/ia_writer_mono_bold.ttf" | Bin .../main/res/font/ia_writer_mono_bold_italic.ttf" | Bin .../src/main/res/font/ia_writer_mono_regular.ttf" | Bin .../res/font/ia_writer_mono_regular_italic.ttf" | Bin .../src/main/res/font/ia_writer_quattro_bold.ttf" | Bin .../res/font/ia_writer_quattro_bold_italic.ttf" | Bin .../main/res/font/ia_writer_quattro_regular.ttf" | Bin .../res/font/ia_writer_quattro_regular_italic.ttf" | Bin .../src/main/res/mipmap-anydpi-v26/ic_launcher.xml" | 0 .../main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" | 0 .../mipmap-anydpi-v26/ic_launcher_bdk_round.xml" | 0 .../res/mipmap-anydpi-v26/ic_launcher_round.xml" | 0 .../app/src/main/res/mipmap-hdpi/ic_launcher.png" | Bin .../src/main/res/mipmap-hdpi/ic_launcher_bdk.png" | Bin .../main/res/mipmap-hdpi/ic_launcher_bdk_round.png" | Bin .../src/main/res/mipmap-hdpi/ic_launcher_round.png" | Bin .../app/src/main/res/mipmap-mdpi/ic_launcher.png" | Bin .../src/main/res/mipmap-mdpi/ic_launcher_bdk.png" | Bin .../main/res/mipmap-mdpi/ic_launcher_bdk_round.png" | Bin .../src/main/res/mipmap-mdpi/ic_launcher_round.png" | Bin .../app/src/main/res/mipmap-xhdpi/ic_launcher.png" | Bin .../src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" | Bin .../res/mipmap-xhdpi/ic_launcher_bdk_round.png" | Bin .../main/res/mipmap-xhdpi/ic_launcher_round.png" | Bin .../app/src/main/res/mipmap-xxhdpi/ic_launcher.png" | Bin .../src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" | Bin .../res/mipmap-xxhdpi/ic_launcher_bdk_round.png" | Bin .../main/res/mipmap-xxhdpi/ic_launcher_round.png" | Bin .../src/main/res/mipmap-xxxhdpi/ic_launcher.png" | Bin .../main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" | Bin .../res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" | Bin .../main/res/mipmap-xxxhdpi/ic_launcher_round.png" | Bin .../app/src/main/res/values/colors.xml" | 0 .../app/src/main/res/values/splash.xml" | 0 .../app/src/main/res/values/strings.xml" | 0 .../app/src/main/res/values/themes.xml" | 0 .../bitcoindevkit/devkitwallet/ExampleUnitTest.kt" | 0 .../gradle.properties" | 0 .../gradle/wrapper/gradle-wrapper.jar" | Bin .../gradle/wrapper/gradle-wrapper.properties" | 0 gradlew => "Variant \342\200\224 Esplora/gradlew" | 0 .../gradlew.bat" | 0 justfile => "Variant \342\200\224 Esplora/justfile" | 0 .../settings.gradle.kts" | 0 {images => assets}/screenshots.png | Bin 111 files changed, 0 insertions(+), 0 deletions(-) rename .editorconfig => "Variant \342\200\224 Esplora/.editorconfig" (100%) rename .gitignore => "Variant \342\200\224 Esplora/.gitignore" (100%) rename app/build.gradle.kts => "Variant \342\200\224 Esplora/app/build.gradle.kts" (100%) rename app/proguard-rules.pro => "Variant \342\200\224 Esplora/app/proguard-rules.pro" (100%) rename app/src/main/AndroidManifest.xml => "Variant \342\200\224 Esplora/app/src/main/AndroidManifest.xml" (100%) rename app/src/main/assets/bip39-english.txt => "Variant \342\200\224 Esplora/app/src/main/assets/bip39-english.txt" (100%) rename app/src/main/ic_launcher_bdk-playstore.png => "Variant \342\200\224 Esplora/app/src/main/ic_launcher_bdk-playstore.png" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" (100%) rename app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt => "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" (100%) rename app/src/main/proto/wallets.proto => "Variant \342\200\224 Esplora/app/src/main/proto/wallets.proto" (100%) rename app/src/main/res/drawable-v24/ic_launcher_foreground.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" (100%) rename app/src/main/res/drawable/bdk_logo.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable/bdk_logo.xml" (100%) rename app/src/main/res/drawable/ic_bitcoin_logo.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_bitcoin_logo.xml" (100%) rename app/src/main/res/drawable/ic_launcher_bdk_background.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_launcher_bdk_background.xml" (100%) rename app/src/main/res/drawable/ic_launcher_bdk_foreground.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" (100%) rename app/src/main/res/drawable/ic_testnet_logo.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_testnet_logo.xml" (100%) rename app/src/main/res/drawable/launch_screen.xml => "Variant \342\200\224 Esplora/app/src/main/res/drawable/launch_screen.xml" (100%) rename app/src/main/res/font/ia_writer_mono_bold.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_bold.ttf" (100%) rename app/src/main/res/font/ia_writer_mono_bold_italic.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_bold_italic.ttf" (100%) rename app/src/main/res/font/ia_writer_mono_regular.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_regular.ttf" (100%) rename app/src/main/res/font/ia_writer_mono_regular_italic.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" (100%) rename app/src/main/res/font/ia_writer_quattro_bold.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_bold.ttf" (100%) rename app/src/main/res/font/ia_writer_quattro_bold_italic.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" (100%) rename app/src/main/res/font/ia_writer_quattro_regular.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_regular.ttf" (100%) rename app/src/main/res/font/ia_writer_quattro_regular_italic.ttf => "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" (100%) rename app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" (100%) rename app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" (100%) rename app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" (100%) rename app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" (100%) rename app/src/main/res/mipmap-hdpi/ic_launcher.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher.png" (100%) rename app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" (100%) rename app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" (100%) rename app/src/main/res/mipmap-hdpi/ic_launcher_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" (100%) rename app/src/main/res/mipmap-mdpi/ic_launcher.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher.png" (100%) rename app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png" (100%) rename app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" (100%) rename app/src/main/res/mipmap-mdpi/ic_launcher_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" (100%) rename app/src/main/res/mipmap-xhdpi/ic_launcher.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher.png" (100%) rename app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" (100%) rename app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" (100%) rename app/src/main/res/mipmap-xhdpi/ic_launcher_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" (100%) rename app/src/main/res/mipmap-xxhdpi/ic_launcher.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" (100%) rename app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" (100%) rename app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" (100%) rename app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" (100%) rename app/src/main/res/mipmap-xxxhdpi/ic_launcher.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" (100%) rename app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" (100%) rename app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" (100%) rename app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png => "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" (100%) rename app/src/main/res/values/colors.xml => "Variant \342\200\224 Esplora/app/src/main/res/values/colors.xml" (100%) rename app/src/main/res/values/splash.xml => "Variant \342\200\224 Esplora/app/src/main/res/values/splash.xml" (100%) rename app/src/main/res/values/strings.xml => "Variant \342\200\224 Esplora/app/src/main/res/values/strings.xml" (100%) rename app/src/main/res/values/themes.xml => "Variant \342\200\224 Esplora/app/src/main/res/values/themes.xml" (100%) rename app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt => "Variant \342\200\224 Esplora/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" (100%) rename gradle.properties => "Variant \342\200\224 Esplora/gradle.properties" (100%) rename gradle/wrapper/gradle-wrapper.jar => "Variant \342\200\224 Esplora/gradle/wrapper/gradle-wrapper.jar" (100%) rename gradle/wrapper/gradle-wrapper.properties => "Variant \342\200\224 Esplora/gradle/wrapper/gradle-wrapper.properties" (100%) rename gradlew => "Variant \342\200\224 Esplora/gradlew" (100%) rename gradlew.bat => "Variant \342\200\224 Esplora/gradlew.bat" (100%) rename justfile => "Variant \342\200\224 Esplora/justfile" (100%) rename settings.gradle.kts => "Variant \342\200\224 Esplora/settings.gradle.kts" (100%) rename {images => assets}/screenshots.png (100%) diff --git a/.editorconfig "b/Variant \342\200\224 Esplora/.editorconfig" similarity index 100% rename from .editorconfig rename to "Variant \342\200\224 Esplora/.editorconfig" diff --git a/.gitignore "b/Variant \342\200\224 Esplora/.gitignore" similarity index 100% rename from .gitignore rename to "Variant \342\200\224 Esplora/.gitignore" diff --git a/app/build.gradle.kts "b/Variant \342\200\224 Esplora/app/build.gradle.kts" similarity index 100% rename from app/build.gradle.kts rename to "Variant \342\200\224 Esplora/app/build.gradle.kts" diff --git a/app/proguard-rules.pro "b/Variant \342\200\224 Esplora/app/proguard-rules.pro" similarity index 100% rename from app/proguard-rules.pro rename to "Variant \342\200\224 Esplora/app/proguard-rules.pro" diff --git a/app/src/main/AndroidManifest.xml "b/Variant \342\200\224 Esplora/app/src/main/AndroidManifest.xml" similarity index 100% rename from app/src/main/AndroidManifest.xml rename to "Variant \342\200\224 Esplora/app/src/main/AndroidManifest.xml" diff --git a/app/src/main/assets/bip39-english.txt "b/Variant \342\200\224 Esplora/app/src/main/assets/bip39-english.txt" similarity index 100% rename from app/src/main/assets/bip39-english.txt rename to "Variant \342\200\224 Esplora/app/src/main/assets/bip39-english.txt" diff --git a/app/src/main/ic_launcher_bdk-playstore.png "b/Variant \342\200\224 Esplora/app/src/main/ic_launcher_bdk-playstore.png" similarity index 100% rename from app/src/main/ic_launcher_bdk-playstore.png rename to "Variant \342\200\224 Esplora/app/src/main/ic_launcher_bdk-playstore.png" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" diff --git a/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt "b/Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" similarity index 100% rename from app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt rename to "Variant \342\200\224 Esplora/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" diff --git a/app/src/main/proto/wallets.proto "b/Variant \342\200\224 Esplora/app/src/main/proto/wallets.proto" similarity index 100% rename from app/src/main/proto/wallets.proto rename to "Variant \342\200\224 Esplora/app/src/main/proto/wallets.proto" diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" similarity index 100% rename from app/src/main/res/drawable-v24/ic_launcher_foreground.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" diff --git a/app/src/main/res/drawable/bdk_logo.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable/bdk_logo.xml" similarity index 100% rename from app/src/main/res/drawable/bdk_logo.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable/bdk_logo.xml" diff --git a/app/src/main/res/drawable/ic_bitcoin_logo.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_bitcoin_logo.xml" similarity index 100% rename from app/src/main/res/drawable/ic_bitcoin_logo.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_bitcoin_logo.xml" diff --git a/app/src/main/res/drawable/ic_launcher_bdk_background.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_launcher_bdk_background.xml" similarity index 100% rename from app/src/main/res/drawable/ic_launcher_bdk_background.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_launcher_bdk_background.xml" diff --git a/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" similarity index 100% rename from app/src/main/res/drawable/ic_launcher_bdk_foreground.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" diff --git a/app/src/main/res/drawable/ic_testnet_logo.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_testnet_logo.xml" similarity index 100% rename from app/src/main/res/drawable/ic_testnet_logo.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable/ic_testnet_logo.xml" diff --git a/app/src/main/res/drawable/launch_screen.xml "b/Variant \342\200\224 Esplora/app/src/main/res/drawable/launch_screen.xml" similarity index 100% rename from app/src/main/res/drawable/launch_screen.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/drawable/launch_screen.xml" diff --git a/app/src/main/res/font/ia_writer_mono_bold.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_bold.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_mono_bold.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_bold.ttf" diff --git a/app/src/main/res/font/ia_writer_mono_bold_italic.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_bold_italic.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_mono_bold_italic.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_bold_italic.ttf" diff --git a/app/src/main/res/font/ia_writer_mono_regular.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_regular.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_mono_regular.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_regular.ttf" diff --git a/app/src/main/res/font/ia_writer_mono_regular_italic.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_mono_regular_italic.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" diff --git a/app/src/main/res/font/ia_writer_quattro_bold.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_bold.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_quattro_bold.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_bold.ttf" diff --git a/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_quattro_bold_italic.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" diff --git a/app/src/main/res/font/ia_writer_quattro_regular.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_regular.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_quattro_regular.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_regular.ttf" diff --git a/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf "b/Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" similarity index 100% rename from app/src/main/res/font/ia_writer_quattro_regular_italic.ttf rename to "Variant \342\200\224 Esplora/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher.png" similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher.png" diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher.png" similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher.png" diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png" similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png" diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher.png" similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher.png" diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png "b/Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to "Variant \342\200\224 Esplora/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" diff --git a/app/src/main/res/values/colors.xml "b/Variant \342\200\224 Esplora/app/src/main/res/values/colors.xml" similarity index 100% rename from app/src/main/res/values/colors.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/values/colors.xml" diff --git a/app/src/main/res/values/splash.xml "b/Variant \342\200\224 Esplora/app/src/main/res/values/splash.xml" similarity index 100% rename from app/src/main/res/values/splash.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/values/splash.xml" diff --git a/app/src/main/res/values/strings.xml "b/Variant \342\200\224 Esplora/app/src/main/res/values/strings.xml" similarity index 100% rename from app/src/main/res/values/strings.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/values/strings.xml" diff --git a/app/src/main/res/values/themes.xml "b/Variant \342\200\224 Esplora/app/src/main/res/values/themes.xml" similarity index 100% rename from app/src/main/res/values/themes.xml rename to "Variant \342\200\224 Esplora/app/src/main/res/values/themes.xml" diff --git a/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt "b/Variant \342\200\224 Esplora/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" similarity index 100% rename from app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt rename to "Variant \342\200\224 Esplora/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" diff --git a/gradle.properties "b/Variant \342\200\224 Esplora/gradle.properties" similarity index 100% rename from gradle.properties rename to "Variant \342\200\224 Esplora/gradle.properties" diff --git a/gradle/wrapper/gradle-wrapper.jar "b/Variant \342\200\224 Esplora/gradle/wrapper/gradle-wrapper.jar" similarity index 100% rename from gradle/wrapper/gradle-wrapper.jar rename to "Variant \342\200\224 Esplora/gradle/wrapper/gradle-wrapper.jar" diff --git a/gradle/wrapper/gradle-wrapper.properties "b/Variant \342\200\224 Esplora/gradle/wrapper/gradle-wrapper.properties" similarity index 100% rename from gradle/wrapper/gradle-wrapper.properties rename to "Variant \342\200\224 Esplora/gradle/wrapper/gradle-wrapper.properties" diff --git a/gradlew "b/Variant \342\200\224 Esplora/gradlew" similarity index 100% rename from gradlew rename to "Variant \342\200\224 Esplora/gradlew" diff --git a/gradlew.bat "b/Variant \342\200\224 Esplora/gradlew.bat" similarity index 100% rename from gradlew.bat rename to "Variant \342\200\224 Esplora/gradlew.bat" diff --git a/justfile "b/Variant \342\200\224 Esplora/justfile" similarity index 100% rename from justfile rename to "Variant \342\200\224 Esplora/justfile" diff --git a/settings.gradle.kts "b/Variant \342\200\224 Esplora/settings.gradle.kts" similarity index 100% rename from settings.gradle.kts rename to "Variant \342\200\224 Esplora/settings.gradle.kts" diff --git a/images/screenshots.png b/assets/screenshots.png similarity index 100% rename from images/screenshots.png rename to assets/screenshots.png From a661a6fc8b6a33f827fc92bcd21ad832a28761e9 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Sun, 31 Aug 2025 09:24:29 -0400 Subject: [PATCH 2/4] chore: add kyoto variant to default branch --- "Variant \342\200\224 Kyoto/.editorconfig" | 13 + "Variant \342\200\224 Kyoto/.gitignore" | 20 + "Variant \342\200\224 Kyoto/LICENSE" | 202 ++ .../app/build.gradle.kts" | 116 + .../app/proguard-rules.pro" | 21 + .../app/src/main/AndroidManifest.xml" | 30 + .../app/src/main/assets/bip39-english.txt" | 2048 ++++++++++++++++ .../src/main/ic_launcher_bdk-playstore.png" | Bin 0 -> 17223 bytes .../devkitwallet/data/TxDetails.kt" | 22 + .../data/UserPreferencesSerializer.kt" | 28 + .../devkitwallet/data/WalletConfigs.kt" | 24 + .../domain/ActiveWalletsRepository.kt" | 53 + .../devkitwallet/domain/BlockchainClient.kt" | 63 + .../domain/BlockchainClientsConfig.kt" | 58 + .../devkitwallet/domain/Constants.kt" | 2062 +++++++++++++++++ .../devkitwallet/domain/CurrencyUnit.kt" | 11 + .../devkitwallet/domain/DwLogger.kt" | 49 + .../devkitwallet/domain/ElectrumServer.kt" | 74 + .../devkitwallet/domain/Wallet.kt" | 400 ++++ .../devkitwallet/domain/utils/FormatInBtc.kt" | 18 + .../domain/utils/ProtobufExtensions.kt" | 28 + .../devkitwallet/domain/utils/Timestamps.kt" | 17 + .../presentation/DevkitWalletActivity.kt" | 122 + .../navigation/CreateWalletNavigation.kt" | 133 ++ .../presentation/navigation/Destinations.kt" | 56 + .../navigation/HomeNavigation.kt" | 189 ++ .../navigation/WalletNavigation.kt" | 210 ++ .../presentation/theme/DevkitWalletColors.kt" | 20 + .../devkitwallet/presentation/theme/Fonts.kt" | 48 + .../devkitwallet/presentation/theme/Theme.kt" | 22 + .../devkitwallet/presentation/theme/Type.kt" | 42 + .../ui/components/CustomSnackbar.kt" | 41 + .../ui/components/LoadingAnimation.kt" | 77 + .../ui/components/NeutralButton.kt" | 43 + .../ui/components/RadioButtonWithLabel.kt" | 57 + .../ui/components/SecondaryScreensAppBar.kt" | 47 + .../ui/components/TransactionCards.kt" | 136 ++ .../ui/components/WalletOptionsCard.kt" | 133 ++ .../presentation/ui/screens/WalletRoot.kt" | 190 ++ .../ui/screens/drawer/AboutScreen.kt" | 112 + .../screens/drawer/BlockchainClientScreen.kt" | 134 ++ .../screens/drawer/CustomBlockchainClient.kt" | 115 + .../ui/screens/drawer/LogsScreen.kt" | 63 + .../ui/screens/drawer/RecoveryDataScreen.kt" | 231 ++ .../screens/drawer/RecoveryPhraseScreen.kt" | 0 .../ui/screens/intro/ActiveWalletsScreen.kt" | 95 + .../ui/screens/intro/CreateNewWallet.kt" | 296 +++ .../ui/screens/intro/OnboardingScreen.kt" | 198 ++ .../ui/screens/intro/RecoverWalletScreen.kt" | 402 ++++ .../ui/screens/intro/WalletChoiceScreen.kt" | 154 ++ .../ui/screens/wallet/RBFScreen.kt" | 260 +++ .../ui/screens/wallet/ReceiveScreen.kt" | 239 ++ .../ui/screens/wallet/SendScreen.kt" | 568 +++++ .../wallet/TransactionHistoryScreen.kt" | 72 + .../ui/screens/wallet/TransactionScreen.kt" | 203 ++ .../ui/screens/wallet/WalletHomeScreen.kt" | 305 +++ .../viewmodels/AddressViewModel.kt" | 39 + .../presentation/viewmodels/SendViewModel.kt" | 51 + .../viewmodels/WalletViewModel.kt" | 157 ++ .../viewmodels/mvi/MviReceiveScreen.kt" | 15 + .../viewmodels/mvi/MviSendScreen.kt" | 29 + .../viewmodels/mvi/MviWalletScreen.kt" | 35 + .../app/src/main/proto/wallets.proto" | 32 + .../drawable-v24/ic_launcher_foreground.xml" | 30 + .../app/src/main/res/drawable/bdk_logo.xml" | 24 + .../main/res/drawable/ic_bitcoin_logo.xml" | 12 + .../drawable/ic_launcher_bdk_background.xml" | 9 + .../drawable/ic_launcher_bdk_foreground.xml" | 29 + .../main/res/drawable/ic_testnet_logo.xml" | 12 + .../src/main/res/drawable/launch_screen.xml" | 11 + .../main/res/font/ia_writer_mono_bold.ttf" | Bin 0 -> 96168 bytes .../res/font/ia_writer_mono_bold_italic.ttf" | Bin 0 -> 103400 bytes .../main/res/font/ia_writer_mono_regular.ttf" | Bin 0 -> 97044 bytes .../font/ia_writer_mono_regular_italic.ttf" | Bin 0 -> 104120 bytes .../main/res/font/ia_writer_quattro_bold.ttf" | Bin 0 -> 120404 bytes .../font/ia_writer_quattro_bold_italic.ttf" | Bin 0 -> 104520 bytes .../res/font/ia_writer_quattro_regular.ttf" | Bin 0 -> 119772 bytes .../ia_writer_quattro_regular_italic.ttf" | Bin 0 -> 105028 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml" | 5 + .../mipmap-anydpi-v26/ic_launcher_bdk.xml" | 5 + .../ic_launcher_bdk_round.xml" | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml" | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png" | Bin 0 -> 3593 bytes .../main/res/mipmap-hdpi/ic_launcher_bdk.png" | Bin 0 -> 1971 bytes .../mipmap-hdpi/ic_launcher_bdk_round.png" | Bin 0 -> 4051 bytes .../res/mipmap-hdpi/ic_launcher_round.png" | Bin 0 -> 5339 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png" | Bin 0 -> 2636 bytes .../main/res/mipmap-mdpi/ic_launcher_bdk.png" | Bin 0 -> 1277 bytes .../mipmap-mdpi/ic_launcher_bdk_round.png" | Bin 0 -> 2556 bytes .../res/mipmap-mdpi/ic_launcher_round.png" | Bin 0 -> 3388 bytes .../main/res/mipmap-xhdpi/ic_launcher.png" | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_bdk.png" | Bin 0 -> 2675 bytes .../mipmap-xhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 5820 bytes .../res/mipmap-xhdpi/ic_launcher_round.png" | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png" | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_bdk.png" | Bin 0 -> 4335 bytes .../mipmap-xxhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 9177 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png" | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png" | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_bdk.png" | Bin 0 -> 5772 bytes .../mipmap-xxxhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 13086 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png" | Bin 0 -> 16570 bytes .../app/src/main/res/values/colors.xml" | 4 + .../app/src/main/res/values/splash.xml" | 8 + .../app/src/main/res/values/strings.xml" | 3 + .../app/src/main/res/values/themes.xml" | 7 + .../devkitwallet/ExampleUnitTest.kt" | 11 + .../gradle.properties" | 7 + .../gradle/wrapper/gradle-wrapper.jar" | Bin 0 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties" | 5 + "Variant \342\200\224 Kyoto/gradlew" | 185 ++ "Variant \342\200\224 Kyoto/gradlew.bat" | 89 + "Variant \342\200\224 Kyoto/justfile" | 8 + .../settings.gradle.kts" | 23 + 114 files changed, 11225 insertions(+) create mode 100644 "Variant \342\200\224 Kyoto/.editorconfig" create mode 100644 "Variant \342\200\224 Kyoto/.gitignore" create mode 100644 "Variant \342\200\224 Kyoto/LICENSE" create mode 100644 "Variant \342\200\224 Kyoto/app/build.gradle.kts" create mode 100644 "Variant \342\200\224 Kyoto/app/proguard-rules.pro" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/AndroidManifest.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/assets/bip39-english.txt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/ic_launcher_bdk-playstore.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ActiveWalletsRepository.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ElectrumServer.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/CustomBlockchainClient.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryPhraseScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/proto/wallets.proto" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable/bdk_logo.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_bitcoin_logo.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_background.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_testnet_logo.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/drawable/launch_screen.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_bold.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_bold_italic.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_regular.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_bold.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_regular.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-mdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/values/colors.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/values/splash.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/values/strings.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/main/res/values/themes.xml" create mode 100644 "Variant \342\200\224 Kyoto/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" create mode 100644 "Variant \342\200\224 Kyoto/gradle.properties" create mode 100644 "Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.jar" create mode 100644 "Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.properties" create mode 100755 "Variant \342\200\224 Kyoto/gradlew" create mode 100644 "Variant \342\200\224 Kyoto/gradlew.bat" create mode 100644 "Variant \342\200\224 Kyoto/justfile" create mode 100644 "Variant \342\200\224 Kyoto/settings.gradle.kts" diff --git "a/Variant \342\200\224 Kyoto/.editorconfig" "b/Variant \342\200\224 Kyoto/.editorconfig" new file mode 100644 index 0000000..65f9d3c --- /dev/null +++ "b/Variant \342\200\224 Kyoto/.editorconfig" @@ -0,0 +1,13 @@ +# Root .editorconfig file +root = true + +[*.{kt,kts}] +indent_style = space +max_line_length = 120 +ktlint_standard_trailing-comma-on-call-site = disabled +ktlint_standard_multiline-expression-wrapping = disabled +ktlint_standard_string-template-indent = disabled +ktlint_function_signature_rule_force_multiline_when_parameter_count_greater_or_equal_than = 5 +ktlint_function_naming_ignore_when_annotated_with=Composable +ktlint_standard_function-expression-body = disabled +ktlint_standard_class-signature = disabled diff --git "a/Variant \342\200\224 Kyoto/.gitignore" "b/Variant \342\200\224 Kyoto/.gitignore" new file mode 100644 index 0000000..9e65d19 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/.gitignore" @@ -0,0 +1,20 @@ +*.iml +.gradle +/.idea/ +.DS_Store +/build +/app/build/ +/captures +.externalNativeBuild +.cxx +app-simple-wallet/local.properties +app-advanced-features/local.properties +app-ui-only/local.properties +app-simple-wallet/app/build/ +app/build/ +app-ui-only/app/build/ +app-clean/ +.idea/ +local.properties +app.run.xml +release/ diff --git "a/Variant \342\200\224 Kyoto/LICENSE" "b/Variant \342\200\224 Kyoto/LICENSE" new file mode 100644 index 0000000..8061725 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/LICENSE" @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2021 thunderbiscuit and contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git "a/Variant \342\200\224 Kyoto/app/build.gradle.kts" "b/Variant \342\200\224 Kyoto/app/build.gradle.kts" new file mode 100644 index 0000000..4ba3830 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/build.gradle.kts" @@ -0,0 +1,116 @@ +import org.jlleitschuh.gradle.ktlint.reporter.ReporterType + +plugins { + id("com.android.application") version "8.7.1" + id("org.jetbrains.kotlin.android") version "2.1.10" + id("org.jetbrains.kotlin.plugin.compose") version "2.1.10" + id("org.jetbrains.kotlin.plugin.serialization") version "2.1.10" + id("com.google.protobuf") version "0.9.4" + id("org.jlleitschuh.gradle.ktlint") version "12.1.2" +} + +// This is the version of the app that is displayed in the UI on the drawer. +val variantName = "Version 0.1.0/Kyoto" + +android { + namespace = "org.bitcoindevkit.devkitwallet" + compileSdk = 35 + + buildFeatures { + viewBinding = true + compose = true + } + + defaultConfig { + applicationId = "org.bitcoindevkit.devkitwallet" + minSdk = 26 + targetSdk = 35 + versionCode = 1 + versionName = "v0.1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + + buildConfigField("String", "VARIANT_NAME", "\"$variantName\"") + } + + buildTypes { + getByName("debug") { + isDebuggable = true + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = "17" + } +} + +dependencies { + // Basic android dependencies + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.23") + implementation("androidx.core:core-ktx:1.13.1") + implementation("com.google.android.material:material:1.12.0") + implementation("androidx.datastore:datastore:1.1.1") + implementation("com.google.protobuf:protobuf-javalite:3.18.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") + implementation("androidx.core:core-splashscreen:1.0.1") + + // Jetpack Compose + // Adding the Bill of Materials synchronizes dependencies in the androidx.compose namespace + // You can remove the library version in your dependency declarations + implementation(platform("androidx.compose:compose-bom:2025.02.00")) + implementation("androidx.compose.animation:animation") + implementation("androidx.compose.ui:ui-tooling") + implementation("androidx.compose.ui:ui") + implementation("androidx.compose.material3:material3") + implementation("androidx.activity:activity-compose") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5") + implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1") + implementation("androidx.navigation:navigation-compose:2.8.0") + implementation("com.google.accompanist:accompanist-systemuicontroller:0.23.1") + + // Icons + implementation("androidx.compose.material:material-icons-extended:1.7.8") + implementation("com.composables:icons-lucide:1.0.0") + + // Toolbar + implementation("androidx.appcompat:appcompat:1.7.0") + + // Bitcoin Development Kit + implementation("org.bitcoindevkit:bdk-android:1.2.0") + + // QR codes + implementation("com.google.zxing:core:3.5.3") + + // Tests + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.2.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") +} + +protobuf { + protoc { + artifact = "com.google.protobuf:protoc:3.25.0" + } + + generateProtoTasks { + all().forEach { task -> + task.builtins { + create("java") { + option("lite") + } + } + } + } +} + +ktlint { + version = "1.5.0" + ignoreFailures = false + reporters { + reporter(ReporterType.PLAIN).apply { outputToConsole = true } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/proguard-rules.pro" "b/Variant \342\200\224 Kyoto/app/proguard-rules.pro" new file mode 100644 index 0000000..ff59496 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/proguard-rules.pro" @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle.kts. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git "a/Variant \342\200\224 Kyoto/app/src/main/AndroidManifest.xml" "b/Variant \342\200\224 Kyoto/app/src/main/AndroidManifest.xml" new file mode 100644 index 0000000..cbe7c27 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/AndroidManifest.xml" @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/assets/bip39-english.txt" "b/Variant \342\200\224 Kyoto/app/src/main/assets/bip39-english.txt" new file mode 100644 index 0000000..f78ccaf --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/assets/bip39-english.txt" @@ -0,0 +1,2048 @@ +abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo \ No newline at end of file diff --git "a/Variant \342\200\224 Kyoto/app/src/main/ic_launcher_bdk-playstore.png" "b/Variant \342\200\224 Kyoto/app/src/main/ic_launcher_bdk-playstore.png" new file mode 100644 index 0000000000000000000000000000000000000000..b834711c58d5564e384fb80fd17efb3b737b1608 GIT binary patch literal 17223 zcmeIZcRbZ?{6BsfrN}5s2)Tv237J`k5EU{*S(Ux_$iX=!D;W)0*;{7zJSver4vu|9 z_MXQ)=l6C~_x<_v_xL^@-+#WJzdDb+-`D%PuGfA(U#}pw`-+t0jN||S%DZ>uH2@%n zeiDOIC!v2fJbHEkkfXXQe@n~5aB*ZBPN$fRKfoI8_QTpoT@8ok4FZHknoMYI1RCUN zIbPDp61}{l2Hw-Wx|+npZ=HbK+!*;d5b-JPbgq{0ruS;a)>?9&Wr$h!QrUlhyXx>|NZ&@_&p>B?svG;w>4JfMcY$hqS_kgTiel;X4oCh zb@Xj;_4OQ8FI%=!t(cZEZ15oq=7w7h3F0h}#93|l?b~#?I+v&R_7qdawBzrh4?G4p z&U8f8zIiCfFG2>gGO5%JlEu^5v-Ps|PPQez{gBz7b@>b(5iv5u5bH6JBmKy_*-lzu z(VN!H!KPig9Y551u!RBze`z&dy;ywPwLKzpX=m$B?lbRilkx|o(lkJFeQ;OFY~&}S zrUr&tdQm#sCw}`aaos(pSWgxlc_wdn!Ne!^5fhA#0~1jl`?8l2V^~{>n{-gE7mA}c z925*{(U-V{MYHk=eRq9tVE@H{6sYbm23SwIn8GD5h^{Y$)ko5RzUEf6bnCZFJMo8I zX0Xu*@tLSGPGTe(tlz8eV~rc;3@lp7YZcU;C_39lebad}^ceyjEiZKvM*}Y5@S&fk zdU`q0(n9guUx|>`yDZW{b2(L0zL`s(=LO6Cz!-l>1~VUmhVOeJ%49&f?ZA$OQYCgz zY9hVRxW1>1l0@c~miy7wea|!htR9zE87xL*#|~~T1QfX|W5%?`TS~%bXDG5aDm;cI;_WzuXH$yUDQySHXk4J4A(t!cz1SDLzOHNNk~)w|x$Yx?1N zHOrFWH5dQTl@{#VL5lflJVyC`Ynam`v%>cqJF6 z6Uli3@3je|<_P@@+?;7Sc#xju+|z1yw_mde6+4x8qv*iJ_n9pTlLOF|%68Vm6-!=f zVI+=-0|HC9h}!p_A^*T^^DmxaP7e*5H$>Ye%~v z<tij2?3q*A{mTkF%&9Q?<$vd8kW^F&awM$1y3(|XN z9ey>}eB_SM%BW%LwcXm()q_4YGo!MYZ;N;?AaqTw$kBBn-}^eqDMcNqJ+TwoG&f-G z92K<`!FzE#UjJw57=FQXk;uTd+_0OZ(Q}~=BE2Vjs z=rYmBD|sZyl4NE=F@2DMk!j}rPd0O^`T-@kfkU8KQ(qZhe6nzZ+ngu-@Y~knxh{om z&t25QJ^73b8}9)~moKfgf6zep2*+%%nPf68>M~4NfZ>!Kr2&7w5>`+XX~za`$_wu4 zRV7@hy~z-kASq17TlUXK(?^I{!=zPu^cb#>7%%9~T_i@z6`Q-wr|1(Q&jVlG`nqeRAbYcc;uN4_17PJmQJwVvF8jZi@PAbkTISPSr`rf# z?p=`M@vBD>1wXSK@uN?Ob@j3%zjdtA$TZE#gF%0#sl{cbwg8EiwyBA-w&}gU+a$UW zsES#ECxAjjx7EuIHtKqPcep3IV@qEYG2ryQ`pYyY-)~*ljnPTI_h|X&Y_l6$P;xy1 zXS+4PYUVK>4Y^u=$dQL8EG<}{S;k18tega5&?O z+=&Ousp}mp+hu)wn`)a~MKjujU>i;|ysgj8p^E|ctExMX%>0MdNhG_@QuLc9b2F9F1*J4Ng(sTTgQg(i8A@ zoaRQPzFkdN<+}#%`}KJPyIWFetF!U1ZkqJt!l_3RI1x7rxh3swd2hH^DV$3P^0Ig_ zo1S3L(R_ya$lmCbzz;L0t=lx^1H1kEuJaKbqP1A&Twxr%fj0kL{$`_Hj81Kugs4zV zYledrf@Lk~0kQPHCzra}%#mBW@)Cq6{d^JNt7$gWw{A?!cta zcs4kHO977&7sv}^K{#~5ht87i1n4TS@yT!vu-3?LBVdxOoXd({ zqS_TS;O+4@ia~hSfV5@p_N+qnn=tQ$3a`qluUbOsu_XLA4u-2gJqbL~eA^N3tQl1C zY}s*K@D25*zU@sn!GCwz0}^laLea_NJ`#G};u_}XTWvvMz3pYElq~6ZO1sF4aMW^* zom;#mKfD9mHUy;_Q}(SF+~0bBbW5mux2^nZqPs0%%9mM(*3>`r$ob1s0s(>5Rxjtw z^f5z_%eifZh{!_lzrQLN8x%b~6`YX023wiT2v(W$>7Yf63dEMdyRc5v(GBtsb>T5y zyGx~?Gu0WDyhJ{CnQ0EXyn2#ydp%-kM;M$%~qQ9lXGlNHcX9=J&rsfYC)T6AJ(G~;^`AhWZ7N^r2uZk`lLrD1VGrByv`?S3q!vGC<^-gvyeZqChZu(AN zTk7B*=Xgg5@to7*6Lp(oX>5Q*DdIlX-pYNK^EsZxLeVQ~T4!f}NuMB}y%Z(nF0Rm; z{~*qBCkB`q#ZnL@dRVds^5L-jWW2($dN|g`gveHN#e`VF2s{rFw0CXXTb;))T9YRQJscdx)MCA|Ui8)1b>IxbxNX%_2))n$ULP&} z8bB{_3Vc^3T1$`~4TSNP5Ox-3oKu>zEafck9PPP203<4?G$vvhMH+QudhZBlSq z;z&@}{K4h97dqd}jbf>Z!5G)^|9$|8j@uo$2N#APlM{gz+CQci9_AL&$TZ!LnU)2* zm96r3m|Z0kIB(4n$`C%n7T-9SzwF&|VI6#+t|&W%-$93L+vh)EY%Rq>CUcY_;4vTX z-Z-shUEx|8%UCYU(|6J8VU$5UCl}Ru50BS)L(haoOk93=Ti}HhG@bO|L%UijeQU^B zS%khXjd^!|acZq?NxDL7kAIgi)cPeedDL^QbjJzt!0T$L!KjlONuK{ctF(55#PqdO zaalH^X=N*g2&P(~Ai z9V*6+cg9_(HT|MK-FO(dq{nufo3AG^vQJ8&&A|8}_txzt8<`VwBPy20R`$ob1_ zBNxP&PB7-4+JRYBtI9t~NjK$(Nt)Ya7fdD%(#m2Uh*C$~P-hlM>-cr7V8E6x_PU4vBMaAx3hBA&lTNXeYiN{n2L^ zeo3u_DP81S_p=k^27~m*g^5+eN6M9|OI$b4#M>B=04+5rH&(@7aw5N?&(qd+@M&aZ z%k0cu=OnI`j+BhPEy=R;hS|%>aHFd)O;Y@gP(|@mCAhEhuTT?SR?1p^)=b@^dAqS$ z7;~Ksx<^o@C_1_|&*O)$)tQ5jvxJ7Z8|bYpYhRU8AIg6hrimG9GjiI{$eM;Kp39E5 zyeia+6A?nuduUqkXFW5Y3KM)Px9|H=FhuWPAMKxMym|^M7+<|W>G&PxwBb)r0ncm= z_B<}5y+M7(LB;Xr5njPaHDV;Ag)mQJ3d%rlS$@CAJTg+-8D}A>V2^@IN_?#lo+*?5 zFFlfiOD7wrlpoTO_OK@=B@5MXG4PUs13Rnok`t>N!`=9HxrvU}h#@IQd-d9c5}{)| zYy^oXwe(VJt4es5wlL+X@!|{fPSLOb7IS@A`*4iq;G8V@AxSw}En5C-PLtV}^vf^z|Z*Ip5R~1@%ppp>?T}pXE?TsypQ&l@fnI%+A9gASjX`f&JaPr8s zwrPM+yT_^-22px%gh6<_F>g4m@vU&W{*3a@nUF$6<+NuuSLIV`U=<~t>Vz_{9M# z7o+*7FbJe3dd#sA)*7>zF{c@Ji{2S@!aw7NM@(5Y%g&zz8}XI{@n(yBC2-HI^khuF z6-%IbE#F32Yr}Vth?IgI47c*G*tgtTj?~sq6?2oIKMou>fJN>;K3GL5CQCnuNCual zVl}jx<|Ge2Lw@U{7XNVK0o>Z{u>sMWF4=Nfuu@TFUbYHpTu=0TUih zjBF5rE1I>c(#L2>@0inBgY8|J63b^d&CIkjhY+=1B*?yOquQO$*Y|T($_P*C6q=bl zTj4|Nh|iS5V5TZVjIL#b;!m(ga;cMiUbiu>PPI)^D5v>;5%jQYJS($rQrcgOPz9Y0 z0*{{a-~3<~-*`_Gx6@?3!)Ja*7zApcv@i_v#ws0$hg&C*v(u}EUk0BnSEZD!q67b4 z`tEkCCB2^*Sy_mSLowwalp?ux< zKRmGXMQXpxyj8jkzjkB`SAKzTbu8?Xy{^WO5BV+30AIW8Scx8(MQteFzsYZ(ft9fO9Z2-+ zQ-NKk(J;869pBB=q{{K}wt&^?E4CKhb4+_hWyd!t3p|pzJjd023)Cj6!zZZ##lu`Q z=)KuUOVH4s(^OZ>sv_JR)%?N>zfqOk@cDC=eV0m<;VTPVO`7BZwW?$=?$wWyK{|DFpnK3J%w%vtQV)ay`?%0UHpW7tt!4*sAzXqx`J7Do~^ z$}&FG&GOUjjoN;v0~@JQ{EzzQO)~fPcH?SKBwUP?tvVQ4yrfcXSleAqEk2UhiKd^f zLW`YaO*W2{NccpQh_K(fCwY9T;{Jcz(kbj=$T(MSXEn(-?H6T zDndFhR9P}gs6$8@RzXDvDZSJHCU?ZmAEO zMYV_7RO~%spm7=8JPfN|R_}$9X6?*>8oXzqx2kO28=_|&;{5WjH5Qdm5l_8-h@s=nFe|HVyU7nSV2p( z-#^lSbpr%4KFl>QZE24DTjN2dTLnWB8InwjuP=CL@_GPDak(m#t<*@6bxy3HMQLKo zH%V(96n|VRstM)`;DM6DlKtsy30l)h2>*dP^hp5(9%-}^$*dD~vse!ucr@GK(|Fa*6lREI z%un)QroX07T7+CPiwfSN>J)daYL&H6ytCMB0Ud0ltg>-YK=2eGMM5>}KZ|@KIoU{V zKYZmqNX+OJA_E~El3`2$lJr}*bC2QJmpeKvdpAu|*xyKyb=%&`@jffW(90|63n}d> zsCYcwzR=l~34_V321gEPjaSlb{=9<}hAnk2;cpG5oUYn02-6n%A+%k7gpC?kRm*3sV$ zT9v-GQxdeoJp=6|SJOcvmy!3$?lUBTvdGY-2jAm6mea`}Cin%5R$Y+F*7+iH%g*HU zN}-23JM5hB)UI--=*&niMaP5AsIcF%g^>c4ygBCh zkVdy@v|Db>7Z}~hghqQv*)^H{mHD`wMq+wR5RO(SNjZt;L~ObCCh-dqT7@T&s_r`V5vGHN zpsN{KcvUj%MvfiBYbFD!@74;0ko4ys9nXY8bb|d-I}0dgt=lQ5e>^KC?)e!bNydEP zeG(zwV9cB%O^i(ZVi$|zC z6Pd-QQFC(NeSUY3kT3lxwjAe215SY?h_`qNR?NlQt`9K)1}MQ99dYAep}=rTyH#+r zC4fXjB)dBQtlrmGp%Fb0!bPPJ62644{U2`|)u^)QfUEW&~SH zp|To;;AS8uKMlt3ow_r$P4U|nWU0Vl)BTpyVfq!3u5AR_S7IQrZ+ck*OQ-6fR3&K0 z>vs~UpDKTZeOJ8a}!*S5grO4YX0 zo%J${C5fg!Tl3d%$AHVbtyWm#8p69GZj9WG1Wtv9Cxykrqu9FI46n1t7k}u%6cGHo z212E|BR{vGL{NIun&QbGZ2c@$AZ-5%c$N9ZHke7q_Cm4#t;9m(n|3sdn3jONAqZFL zDW!^mcn!e=7ts6fCyz1DAynn41e)s0K0 zhu0E1GvL~|Dv_xQR&T=%SjK7R7)}0*25^Y&@ftU(ZJEB1@{DQMYt)YE)##^L!ce=r zCDCo%O(A@%3zc#MB>}=dH8-_*+`jU#78l`pj z&T59L9DSFK4f;JaWdhI3BghImh|Nt;w0`EI0Ea8J&dX+)ZuiqI1yx+Kznbdpe0yCF z)J|IGPtn19eYFAlBCPp(8{kqbl}NYd2LlBWbGu@5sqYS1bfhpWeB{z=7;Q{=1~P5( zov*R;>MilX^Y*X@yW|w&(dv4lm{F$JzKM)Wk$oI3s`G7`&-=8i2g6Vm);%tYPh=7d zYJ5t)DSP_oVZB93b(yrMdM{@??(NFBW^+y02o0MM+SZba_%29@vdJxHd6q6%JB#TL z#<*XNTi!F8J7+rSRGQ5W^JwDbzJ65sK=>$fJcZr8m*!G=&pFW;)6Fovd_=7_oy{x8 zY1y!8mHExgr2Q!emFkpVA-zbY3+7avsVeq^Sf7VnZRl#cy){&<(PqfMAm={_5E0US4G4+f~?Xa3>REt zV1^lJ*dAlqGX&dVe?+|Rwds@1Zi4Q-W-or)&cTKk#;~NINeDJJ5RKrOzvcq^sE#2i zYfzvfpa03&I<`__0z1v8mnVPgGRpWFQF+iY#(5erKp;CmNs9B-{l>rnI6m*0v*wmy zA5l5P_Z?DTvJ`-UoOteRxd!fsS8aZG^%}Ez9Z4?ZqrWBsav)(j2Zzf@Ob)q7QDe1(im(6B-05$?xuuusBl1(tR) zH3@69PBhy8Lk)~E9&LVA4DkFqMExOJMR{ORF}=qAFLiCk5N39W{Ew-(COTwm4++D= zK;$x*;CZq%Av=tk@X*R0Np)^_Qz76P-1+W!3CLkSTJTx}1je(yIHX($`@VQcVtLDG z+Nc{_{f$Lw^9%Kby3|^zHgSig{LYp`?tsg__NAw8AMLiopniyP#2$oS?|5KJwqpoC zFOiTQQ=E`<|Dp7T+WmcORUEq+MBM~^UQZJwxvvj@Y-oV04p}rRGrU3Q*Rh1sR#DV@ z=|C>#?Cv?nC;_<%)s(TdX*f%?#|46(GbZZVr{x=sDb|M=yOF~4u@PI-6ZyIx-V>(l zU3qKU&T3Z|qssNCxiT9$7rm=d2Ue0B#*sneibn#?mI)RECSK>I9!OvM_(_{4kEcv%LHL$JH^ltREm#D-bV~Lx#`%S{T)U#l`o;2$@4RJdRqY}%+-0mBhU}5Ae!S`KyLu;rqgj6S7z}~Z?*%b; z^ShL`9V@MGm*to!yjRhb|FmZO!9t=-M{}rncL*R(B-GINO%4uKYsZw3i-vysOx~n3PEJe(R&&Aa-gj z?SqHKH(m+)6D-V=Iq`H=$}gWETPQjByu3f+Va&ECy!K#3Qf=kdt(bsByJw5)i3%;e z&S@4Fi5puf9(G7?)%EW+0LL1eMfZt=)0|+N*N2n;`S-}hYQsIBX0AxH<2>=fwM@M_!iFG4+{| z_%3JbheHoOCCAO|uPJ%(iEMJJrg3WBJ0eKnEY*=3pS}(iTJlmAgAi~z`i22&I?zmR z^_yujni#U~-8R2U`Z0e=i15zz#5Zdu-q_}JycUABCK7^hC|DS~IvUrhH8v#A+)ny= zRh97NSco(vb)(Mi<4wj}^S>rm-&IsIv22QD1`qP4(9AJnhJ9Zb%bkiTz#Rk)IflLT zPGG>$~8} zBBm*_VQo>sHs1^WWqF)HMwC6^0!x( zTw&Kgp@)eeSd}hQ=#~JM<2m1LX&tP{M=RfSh)|sR5z!|fed?G3czF@HR2r4uV~_MA zMv81#U~0DaDldlEQp2Ky%UBF8J||VSZT`~p{3JnjstCeu+Gd-#Zhq{aG_zoR9*TFV z0gs-nhOw^0|HdqT`1{grD?N|h-_+{4r+`L&jIrTK;VwItsFylVlc zRccXK2KOlo>&G>s5KWZXVo(EO5*|lJJ1*YOkG^w5QMLxqTeEUD>jk>qP(}wQiCug& zY7rU0|GN(&(V>DE`C&x3l$tBA<#y3Zi7^BlJT(lGt^4q9Q$0nue>vF@X+yi!$C@R) zSTlQHqsJdMcTmvsQMKxFdh|Be;B__3km+B_ziHsB`lS%1w}QaCu=grRGh*6H^gFh+ zH`W#N=|s8;M9CQk+)npwSI2jvH;8A}ovQbJl3RC*?PX$`UX$N}4Blk1Mn?A-TdM~v zO-tm0QEA;jIP`#rwdPOC&zX+s=P*AJyWO39NVKuD{ieJMKYtZToqx!+F#Ag`WOfKM zm3;bjW#o5HqS3(71R(=LvPuZ7zX>gk{~a060PYHMnGtl^kpDT%ujC1T_m5WmM$7rU z{aZ8Qwy%sMqeG}Vo7`T+`_uFGxJ4IcedU_Frl0k+w55mW_9IzKf)}jEI;ri|XTJ+C zp}vxTqU{*~_c8bi17f8K2PU`@t#1^Jv>2ala!$YQ`<{Mo80(36n{OalE_lf;lryjG zw(53FYi1GsRAh$A8yDR-2kSd(Gu=&oTT*{PrPX0UFx+FAQ4iW}mVzItjSsiv$;pXuz7DG6K zhVZ!MRyF;Dt4s*PZ63gElVWGJ$4IZzj*oZNyu9<25VCDKS_`A!w6I7?P!^lB?UW?j zn_hF=^@O|Rrv<@D{;X9nJshXS)M;`UgTvgf>nCNt8G_^O#u;@cX@Q{uqU&Rh8lTKh zvaQT2!q7M2RWt!A{IksPWjK|3+H(whjk3o}r9#_6OlQ|Uii23C5X zXXjKAn^|<5$i4EW6yp1-pox&|>0EQ*SzX?_d0zTpn(FUU$2rMMIv~VZ^FD(BvE1qm z!OODKdZ2$_X(aiH8I02QWBFDh#Q#zjoe7Z^60K=AngNu(Yb z=f7L(R+eqav}8DrUEj(;!Q`*S97WQOjL{dnbTz;eh0ZJQB(49xMGKCT_E%ECBIQzU zn-2Y!1|vf1U=Cl>fjVGhP&y5=GhOO)r!MAvfC$zf&!%J=AZjVvNMnOIHI0oVF8xO< z!bI-KM}5BpdR%i#78s$ng+2X-xc0L}OAadI!c%(pK&LJaqwb5_scn9+K9$}wmFC)n zHNNrati!y|6DF!O2zUv&_sEG?ll16HQ!kPr8B0V(BcgJ->|-0Y-t>@ln7mez4r7|p zr+gcqj*@`tVi>EmfmP`8056&&hQfhA+W~Di^)7!Zuj^*{tTOQ)3v%apu_%Z_dJWOQ zG1s~5Vp~L6(+698*dCD)R6;WduT^ncQAuVEFwjoRui%QqmmrOz>TboER;sNzvjU4>9bs5V)%un>M`Qpwda)gP8_VY?pE}|0;7#A=^pN|Ry8sfTy z&5+g@qh?mRp7ZwT{z}Fo_=unCNjh7doOc^^q(VRK=7WY-pWht1-xmvE&21Ig?d4CE z1iRFe^TpZRmVHXMvIP^-S|yWPe?s{we;bGE<7ady9CcCMW@4 zWK($NkI_SXA)WBv{vNHXqpvM?UBlwF!SnH{gT^eTACt*HU#vA4t`GW89x#{4jze|r zcoHoHNjsJ~_XJahANJxNb_kw^)caP?;NB-nsnrI-7=3f>vQwvxPg@`6?bnjskt>|MnntCq)cPUhHYC$z`jVJCDm zL`@0ow6^j(7;!(@8VFV>O|tFxDz={d`_?8gR5-6a@A|rRBGYQA10HbuG1TGsPrSGX zE+#x<5mg(s(pK8v5c+7Hd*Fno`BpL4UOxTAsdR;5-%qWR;WgfEZp$c(i?9P5cI?%! zjX>}rVPxV)Uks;C(Y-kGi4dSZ)1;%+(vTkCh$C27H0W2MtxMyo7v+6Zt|Nr`WHRPd z+7D`Tq=>DyOKzyavGV&qsM=Oze6TuSoxgEetJ;TVkJ=bG3D4fQw|_dZfcL`^6Xljc z?H5ZW(w@y2Cs?j3p(LB#P;Pl{$!Rb|)%=nLaa_AZr>=Jlf1-ks)TM6|9pnB4-GQ2( z*o)WwwqWJDLlN6mJim+rvMC0iGU%Q;Oap(>=D$w-QU!*yh8AtZDgbsK)c;_AQ{=`!T!p-g;kqAd=alX5*5ajvyp zSy*M2mdE>L1uaAcH-E3pgVIUnB0yBU$N_s%5YG7qtso)PeHU)eBt;}sdlVr|gh}e$ z6|Eo#aNoIb>&dPA`qsg?uri2YQM3G1p@xp|2$8kG9xP_ePw@IwdF`}((9j(1eCNUE zJj)avgk`5{B3e5(=T8g(;+&$McU5fD#L5=qRHImZY?a^ZWHM(kDR-ji6|PcS)WRpPhAZ&MBg?IH5D>++*VwP{Jy0d>)-KAK~6+hj^8ST*qRLMR)pv1 zxoV-FG(=Kqi&wee-fEQ+C4kU_DX52sv-w20{GZToxU-c!@GSj?p|5@9!@$DX=_xBY zRmoC&l)nls35K;M`YOAT>88{aq|5*P%t_>-cw7Ullobgk$(D-nCUzwf@c*6iG#@8ee2E!QrHym0l;bse%Z3tk6?WlK`` z-#^HNx_DMoYh_F4y`9mf&N&N)$vOHzMms6xx141{2H5`0&llO|L-U3I>3(6zih;m5h& zH#MwESnFW5kBYrU(*AUh9{h%;AXY!$zWUOE%{vB0qiT&G0aOcO`rVB7bH*qISkDiu z{zNu%qKX%HFk|n<9=YWwZW2fjsZ(epau6kJL5XiL7FF3h*LZNArCrM{irUR2VKpJR zau5Ymv*qn`i%!o|7nHOY7~gJnUWYOQ7|G*~3W;Y>HwDx`PK*pYB)%X{@U&;b@+YB9 zTe+ZliX__I!$}cnXyHz^!lM}JmBlwP9@NjfD-~}n?xAq|BijcUs}p-M5Hkpf>J$$t zFFDXzPS_jDZ)ltw#9VkfHOrbVVx=W~mM?*UU>yWaLjf;&;Be;#DH2MtqU1PoR|_k* zO8h!`z2?LEJiBDh{oc!}6qH4I&o>RFyL)gt8n6kmpi1f{eg0h|u!Bg(csj-e(+_)F zo=&s6?2#q5bhp6h+k-#X;zbD@<$3OuZ#sV;C zK%yQ4R<>|yP+bc*gTlp{0H--Z6e`{)PQTo$sSN$S=fE(cu|sSuuP6kXo8et8+Uf49 z+g$uMb!cFHU$$y^{j_N^6>qhiqeu&Ry|5<#jrLJY)K0~r_Z(^Os$Y%>xh4meiN+Af`#I^N-`1xmxRYq4g@9XDyM|q5R*&Mcy z#?Rm|dyfhGPMTq-GR}UbKXP#6nn2AsSD~spNpw}v?_yxHo_o33_js4npli_ z5pi9ZI?48E>1PkJnzYw@s`B~ya_-tr6|6)+m-%=Zi1qF&+v5}Fvm8e3&Mr@x+#Y%* zf|mtA8ya0X^f24!fZYhfhGip^3xD0Hr~@y`BHsD@)|U5mQDRUae&inOq1MI;m&oo# zK5@2{xa&HtN)*EwCw2fn9pl(ur-0I?2_%cD^xmP#FaUCnVHSvS;XmwOEkyn8$j1#S z%b!0?fy5+VG-fE$J0$^9w%^AJe@X>nwlSgt#-l^Em3#ZN0NHyC1VQD6$)WNkdG}Wr z{ zvcDFlTQl>F6lr~QLa4>~vMQ7!pc?Pl5+tzqNP!={?cgWw~K}0** zcp_YSJ|FD<2i4_gmiiKWK%lpRCa-KH9-_wC9&->QLne^Wbk?B-Lad^skAV4-%j>96 zd{aH@d^QBZ+DYm--9-Mof9N5Lwb;DgXTaBZwu6{Ph1_P2Q5Y&WjNYUmq1J%k*S5+5 zEH3Or#u!5(Y@ozK6%{IrG^-+*Dp`)RM3VeR@KEar?Vj}3gBT{2gP??KJrDyu6=_Y~ zIusizO-l3crNT~th@=K|lQa3(k$whq#7|L4hz;1>kEPC?ZKl=|t7PgA6wKM8@S4@>>u{O2UX zzyem60WnHz{-bHCOF`$_+KE`bDTvEVZgwTC-6%&rspCu1MrwlTRn=b(K1KZ=Y4m#rL1?sj%=kDtF) z%R<=}C8ea#AoK6$A#WG%o|3Ue0r4JBAv>{jsL&Y{IR_sQV(M;IZp5n^AZIJTsm!b*}s@)oVSlt6&CA0bYP2&)fQW z9{+!D6+-7%y2Vwb>2pqGN6Ye%;YTj~K#jVc=h#J$Day7#jywU>*wjRlZ^WzaHg)> ztc|QwL7t3Hn9B#oYP9dd?uer3!Y(SC!XcmYtLXjN6{0^W9Y9VVr%nGq2D;WDceWZ? zk00L`1I7Q0mAUbogNuT!i#&&8Y|tRsk3*J3#ULe!?|wsnkNxVd_ukO zc2nDbuGGEsJ!jsx!NXCt*soB_*Wsud+8GrK_3oa-5Y;`BFc^q;g)i@J{XF45Uw`=A zue3n7_p#3^w<9x)m)`tC20a40+|Wd*)uA%?=rEvF5u&}72%3YYmO!@c&< z_el{mOk6iVCtma{dXhCRkVDri zCUIZ1-eB)hybVT`A^V$FwR=;2!#o*ZT>+eIj~bqK&@>7ei2s#~_>R(ekYS{7>- zO&#N$QRb39G==kNJG+YJZC%_rUBdEJVq^+z#NdhDDEyM@ZV^gr{n``jUPzUBi|{il z&=H`)-?GE(!mvFGTTg z){md&UUyKa;fB*E%34JOtj2{af!e8F=4?5)k9lG9@11+&($nCruRHc7)CoMP+}Tw^ zs!e%AV^FC7hX1_zO3ZQb)^La!qT+(!-oovR9vdFwOUc#?7lRtdKq5`HgjRqHwMrv2 zNqeEH_TlR}o?NQO%ZM`Q5^z65ot!JHn>MIJxN1$nSWIoBYU}JL6~_@%jJX2@l##G{ z5k85*7w!7eo`ZrusM%&k}2o3(3|#wyC8#kjDb&PpRLwel_( zadzJ4dA>uQ`3=gZ;we-=ght|}nw*wIK+cE4tm*U;I8R=zmg2zXg<*)kZG{+#=)>j; z2nR_w_u!ls*9W?%v*8;(2xuxJM?#;rS7qVe9EAR4xZq1me^wtnz6!InHd%Yvw@v~c zXBC$sOxDUWec@8ZZ~G0*!{NJckW { + override val defaultValue: UserPreferences = UserPreferences.getDefaultInstance() + + override suspend fun readFrom(input: InputStream): UserPreferences { + try { + return UserPreferences.parseFrom(input) + } catch (exception: InvalidProtocolBufferException) { + throw CorruptionException("Cannot read proto.", exception) + } + } + + override suspend fun writeTo(t: UserPreferences, output: OutputStream) { + t.writeTo(output) + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" new file mode 100644 index 0000000..c0ebe5d --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" @@ -0,0 +1,24 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.data + +import org.bitcoindevkit.Descriptor +import org.bitcoindevkit.Network + +data class NewWalletConfig( + val name: String, + val network: Network, + val scriptType: ActiveWalletScriptType, +) + +data class RecoverWalletConfig( + val name: String, + val network: Network, + val scriptType: ActiveWalletScriptType?, + val recoveryPhrase: String?, + val descriptor: Descriptor, + val changeDescriptor: Descriptor, +) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ActiveWalletsRepository.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ActiveWalletsRepository.kt" new file mode 100644 index 0000000..4ba3964 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ActiveWalletsRepository.kt" @@ -0,0 +1,53 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import androidx.datastore.core.DataStore +import kotlinx.coroutines.flow.first +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.data.UserPreferences + +class UserPreferencesRepository( + private val userPreferencesStore: DataStore, +) { + suspend fun fetchIntroDone(): Boolean { + return userPreferencesStore.data.first().introDone + } + + suspend fun setIntroDone() { + userPreferencesStore.updateData { currentPreferences -> + currentPreferences.toBuilder().setIntroDone(true).build() + } + } + + suspend fun fetchActiveWallets(): List { + return userPreferencesStore.data.first().walletsList + } + + suspend fun updateActiveWallets(singleWallet: SingleWallet) { + userPreferencesStore.updateData { currentPreferences -> + currentPreferences.toBuilder().addWallets(singleWallet).build() + } + } + + suspend fun setFullScanCompleted(walletId: String) { + userPreferencesStore.updateData { currentPreferences -> + val updatedWalletsList = + currentPreferences.walletsList.map { wallet -> + if (wallet.id == walletId) { + wallet.toBuilder().setFullScanCompleted(true).build() + } else { + wallet + } + } + currentPreferences + .toBuilder() + .clearWallets() + .addAllWallets(updatedWalletsList) + .build() + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" new file mode 100644 index 0000000..ec4b798 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" @@ -0,0 +1,63 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import org.bitcoindevkit.FullScanRequest +import org.bitcoindevkit.SyncRequest +import org.bitcoindevkit.Transaction +import org.bitcoindevkit.Update +import org.bitcoindevkit.ElectrumClient as BdkElectrumClient +import org.bitcoindevkit.EsploraClient as BdkEsploraClient + +interface BlockchainClient { + fun clientId(): String + + fun fullScan(fullScanRequest: FullScanRequest, stopGap: ULong): Update + + fun sync(syncRequest: SyncRequest): Update + + fun broadcast(transaction: Transaction): Unit +} + +class EsploraClient(private val url: String) : BlockchainClient { + private val client = BdkEsploraClient(url) + + override fun clientId(): String { + return url + } + + override fun fullScan(fullScanRequest: FullScanRequest, stopGap: ULong): Update { + return client.fullScan(fullScanRequest, stopGap, parallelRequests = 2u) + } + + override fun sync(syncRequest: SyncRequest): Update { + return client.sync(syncRequest, parallelRequests = 2u) + } + + override fun broadcast(transaction: Transaction) { + client.broadcast(transaction) + } +} + +class ElectrumClient(private val url: String) : BlockchainClient { + private val client = BdkElectrumClient(url) + + override fun clientId(): String { + return url + } + + override fun fullScan(fullScanRequest: FullScanRequest, stopGap: ULong): Update { + return client.fullScan(fullScanRequest, stopGap, batchSize = 10uL, fetchPrevTxouts = true) + } + + override fun sync(syncRequest: SyncRequest): Update { + return client.sync(syncRequest, batchSize = 2uL, fetchPrevTxouts = true) + } + + override fun broadcast(transaction: Transaction) { + throw NotImplementedError("ElectrumClient.broadcast() is not implemented") + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" new file mode 100644 index 0000000..e2f6178 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" @@ -0,0 +1,58 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import org.bitcoindevkit.Network + +class BlockchainClientsConfig { + private var defaultClient: BlockchainClient? = null + private val allClients: MutableList = mutableListOf() + + fun getClient(): BlockchainClient? { + return defaultClient + } + + fun addClient(client: BlockchainClient, setDefault: Boolean) { + allClients.forEach { + if (it.clientId() == client.clientId()) { + throw IllegalArgumentException( + "Client with url ${client.clientId()} already exists" + ) + } + } + if (allClients.size >= 8) throw IllegalArgumentException("Maximum number of clients (8) reached") + allClients.add(client) + if (setDefault) { + defaultClient = client + } + } + + fun setDefaultClient(clientId: String) { + val client = allClients.find { it.clientId() == clientId } + if (client == null) throw IllegalArgumentException("Client with url $clientId not found") + defaultClient = client + } + + companion object { + fun createDefaultConfig(network: Network): BlockchainClientsConfig { + val config = BlockchainClientsConfig() + when (network) { + Network.REGTEST -> { + config.addClient(EsploraClient("http://10.0.2.2:3002"), true) + } + Network.TESTNET -> { + config.addClient(ElectrumClient("ssl://electrum.blockstream.info:60002"), true) + } + Network.TESTNET4 -> throw IllegalArgumentException("This app does not support testnet 4 yet") + Network.SIGNET -> { + config.addClient(ElectrumClient("ssl://mempool.space:60602"), true) + } + Network.BITCOIN -> throw IllegalArgumentException("This app does not support mainnet") + } + return config + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" new file mode 100644 index 0000000..154659c --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" @@ -0,0 +1,2062 @@ +package org.bitcoindevkit.devkitwallet.domain + +import org.bitcoindevkit.Network + +val supportedNetworks: List = + listOf( + Network.SIGNET, + Network.TESTNET, + Network.REGTEST, + ) + +val bip39WordList: List = + listOf( + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep", + "slender", + "slice", + "slide", + "slight", + "slim", + "slogan", + "slot", + "slow", + "slush", + "small", + "smart", + "smile", + "smoke", + "smooth", + "snack", + "snake", + "snap", + "sniff", + "snow", + "soap", + "soccer", + "social", + "sock", + "soda", + "soft", + "solar", + "soldier", + "solid", + "solution", + "solve", + "someone", + "song", + "soon", + "sorry", + "sort", + "soul", + "sound", + "soup", + "source", + "south", + "space", + "spare", + "spatial", + "spawn", + "speak", + "special", + "speed", + "spell", + "spend", + "sphere", + "spice", + "spider", + "spike", + "spin", + "spirit", + "split", + "spoil", + "sponsor", + "spoon", + "sport", + "spot", + "spray", + "spread", + "spring", + "spy", + "square", + "squeeze", + "squirrel", + "stable", + "stadium", + "staff", + "stage", + "stairs", + "stamp", + "stand", + "start", + "state", + "stay", + "steak", + "steel", + "stem", + "step", + "stereo", + "stick", + "still", + "sting", + "stock", + "stomach", + "stone", + "stool", + "story", + "stove", + "strategy", + "street", + "strike", + "strong", + "struggle", + "student", + "stuff", + "stumble", + "style", + "subject", + "submit", + "subway", + "success", + "such", + "sudden", + "suffer", + "sugar", + "suggest", + "suit", + "summer", + "sun", + "sunny", + "sunset", + "super", + "supply", + "supreme", + "sure", + "surface", + "surge", + "surprise", + "surround", + "survey", + "suspect", + "sustain", + "swallow", + "swamp", + "swap", + "swarm", + "swear", + "sweet", + "swift", + "swim", + "swing", + "switch", + "sword", + "symbol", + "symptom", + "syrup", + "system", + "table", + "tackle", + "tag", + "tail", + "talent", + "talk", + "tank", + "tape", + "target", + "task", + "taste", + "tattoo", + "taxi", + "teach", + "team", + "tell", + "ten", + "tenant", + "tennis", + "tent", + "term", + "test", + "text", + "thank", + "that", + "theme", + "then", + "theory", + "there", + "they", + "thing", + "this", + "thought", + "three", + "thrive", + "throw", + "thumb", + "thunder", + "ticket", + "tide", + "tiger", + "tilt", + "timber", + "time", + "tiny", + "tip", + "tired", + "tissue", + "title", + "toast", + "tobacco", + "today", + "toddler", + "toe", + "together", + "toilet", + "token", + "tomato", + "tomorrow", + "tone", + "tongue", + "tonight", + "tool", + "tooth", + "top", + "topic", + "topple", + "torch", + "tornado", + "tortoise", + "toss", + "total", + "tourist", + "toward", + "tower", + "town", + "toy", + "track", + "trade", + "traffic", + "tragic", + "train", + "transfer", + "trap", + "trash", + "travel", + "tray", + "treat", + "tree", + "trend", + "trial", + "tribe", + "trick", + "trigger", + "trim", + "trip", + "trophy", + "trouble", + "truck", + "true", + "truly", + "trumpet", + "trust", + "truth", + "try", + "tube", + "tuition", + "tumble", + "tuna", + "tunnel", + "turkey", + "turn", + "turtle", + "twelve", + "twenty", + "twice", + "twin", + "twist", + "two", + "type", + "typical", + "ugly", + "umbrella", + "unable", + "unaware", + "uncle", + "uncover", + "under", + "undo", + "unfair", + "unfold", + "unhappy", + "uniform", + "unique", + "unit", + "universe", + "unknown", + "unlock", + "until", + "unusual", + "unveil", + "update", + "upgrade", + "uphold", + "upon", + "upper", + "upset", + "urban", + "urge", + "usage", + "use", + "used", + "useful", + "useless", + "usual", + "utility", + "vacant", + "vacuum", + "vague", + "valid", + "valley", + "valve", + "van", + "vanish", + "vapor", + "various", + "vast", + "vault", + "vehicle", + "velvet", + "vendor", + "venture", + "venue", + "verb", + "verify", + "version", + "very", + "vessel", + "veteran", + "viable", + "vibrant", + "vicious", + "victory", + "video", + "view", + "village", + "vintage", + "violin", + "virtual", + "virus", + "visa", + "visit", + "visual", + "vital", + "vivid", + "vocal", + "voice", + "void", + "volcano", + "volume", + "vote", + "voyage", + "wage", + "wagon", + "wait", + "walk", + "wall", + "walnut", + "want", + "warfare", + "warm", + "warrior", + "wash", + "wasp", + "waste", + "water", + "wave", + "way", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "web", + "wedding", + "weekend", + "weird", + "welcome", + "west", + "wet", + "whale", + "what", + "wheat", + "wheel", + "when", + "where", + "whip", + "whisper", + "wide", + "width", + "wife", + "wild", + "will", + "win", + "window", + "wine", + "wing", + "wink", + "winner", + "winter", + "wire", + "wisdom", + "wise", + "wish", + "witness", + "wolf", + "woman", + "wonder", + "wood", + "wool", + "word", + "work", + "world", + "worry", + "worth", + "wrap", + "wreck", + "wrestle", + "wrist", + "write", + "wrong", + "yard", + "year", + "yellow", + "you", + "young", + "youth", + "zebra", + "zero", + "zone", + "zoo", + ) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" new file mode 100644 index 0000000..c1bc8d5 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" @@ -0,0 +1,11 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +enum class CurrencyUnit { + Bitcoin, + Satoshi, +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" new file mode 100644 index 0000000..55d072d --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" @@ -0,0 +1,49 @@ +package org.bitcoindevkit.devkitwallet.domain + +import java.time.Instant +import java.time.ZoneId +import java.time.temporal.ChronoUnit + +object DwLogger { + private const val MAX_LOGS = 5000 + private val logEntries = ArrayDeque(MAX_LOGS) + private val lock = Any() + + fun log(tag: LogLevel, message: String) { + synchronized(lock) { + if (logEntries.size >= MAX_LOGS) { + logEntries.removeLast() + } + val millis = System.currentTimeMillis() + val dateTime = + Instant + .ofEpochMilli(millis) + .atZone(ZoneId.systemDefault()) + .toLocalDateTime() + .truncatedTo(ChronoUnit.SECONDS) + + logEntries.addFirst("$dateTime $tag $message") + } + } + + fun getLogs(): List { + synchronized(lock) { + return logEntries.toList() + } + } + + enum class LogLevel { + INFO, + WARN, + ERROR, + ; + + override fun toString(): String { + return when (this) { + INFO -> "[INFO] " + WARN -> "[WARN] " + ERROR -> "[ERROR]" + } + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ElectrumServer.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ElectrumServer.kt" new file mode 100644 index 0000000..bfe7342 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/ElectrumServer.kt" @@ -0,0 +1,74 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +private const val TAG = "ElectrumServer" + +class ElectrumServer { + // private var useDefaultElectrum: Boolean = true + // private var default: Blockchain + // private val esploraClient: EsploraClient = EsploraClient("https://esplora.testnet.kuutamo.cloud/") + // private var custom: Blockchain? = null + // private var customElectrumURL: String + // private val defaultElectrumURL = "tcp://10.0.2.2:60401" + // private val defaultElectrumURL = "ssl://electrum.blockstream.info:60002" + // private val defaultElectrumURL = "tcp://127.0.0.1:60401" + + // init { + // val blockchainConfig = BlockchainConfig.Electrum(ElectrumConfig( + // url = defaultElectrumURL, + // socks5 = null, + // retry = 5u, + // timeout = null, + // stopGap = 10u, + // validateDomain = true + // )) + // customElectrumURL = "" + // default = Blockchain(blockchainConfig) + // } + // + // val server: Blockchain + // get() = if (useDefaultElectrum) this.default else this.custom!! + + // if you're looking to test different public Electrum servers we recommend these 3: + // ssl://electrum.blockstream.info:60002 + // tcp://electrum.blockstream.info:60001 + // tcp://testnet.aranguren.org:51001 + // fun createCustomElectrum(electrumURL: String) { + // customElectrumURL = electrumURL + // val blockchainConfig = BlockchainConfig.Electrum(ElectrumConfig( + // url = customElectrumURL, + // socks5 = null, + // retry = 5u, + // timeout = null, + // stopGap = 10u, + // validateDomain = true + // )) + // custom = Blockchain(blockchainConfig) + // useCustomElectrum() + // Log.i(TAG, "New Electrum Server URL : $customElectrumURL") + // } + + // fun useCustomElectrum() { + // useDefaultElectrum = false + // } + // + // fun useDefaultElectrum() { + // useDefaultElectrum = true + // } + // + // fun isElectrumServerDefault(): Boolean { + // return useDefaultElectrum + // } + // + // fun getElectrumURL(): String { + // return if (useDefaultElectrum) { + // defaultElectrumURL + // } else { + // customElectrumURL + // } + // } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" new file mode 100644 index 0000000..8df4428 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" @@ -0,0 +1,400 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import android.util.Log +import kotlinx.coroutines.runBlocking +import org.bitcoindevkit.Address +import org.bitcoindevkit.AddressInfo +import org.bitcoindevkit.Amount +import org.bitcoindevkit.CanonicalTx +import org.bitcoindevkit.ChainPosition +import org.bitcoindevkit.Connection +import org.bitcoindevkit.Descriptor +import org.bitcoindevkit.DescriptorSecretKey +import org.bitcoindevkit.FeeRate +import org.bitcoindevkit.IpAddress +import org.bitcoindevkit.KeychainKind +import org.bitcoindevkit.CbfBuilder +import org.bitcoindevkit.Mnemonic +import org.bitcoindevkit.Network +import org.bitcoindevkit.Peer +import org.bitcoindevkit.Psbt +import org.bitcoindevkit.ScanType +import org.bitcoindevkit.Script +import org.bitcoindevkit.TxBuilder +import org.bitcoindevkit.Update +import org.bitcoindevkit.WordCount +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.data.ConfirmationBlock +import org.bitcoindevkit.devkitwallet.data.NewWalletConfig +import org.bitcoindevkit.devkitwallet.data.RecoverWalletConfig +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.data.Timestamp +import org.bitcoindevkit.devkitwallet.data.TxDetails +import org.bitcoindevkit.devkitwallet.domain.utils.intoDomain +import org.bitcoindevkit.devkitwallet.domain.utils.intoProto +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.Recipient +import org.bitcoindevkit.CbfClient +import java.util.UUID +import org.bitcoindevkit.Wallet as BdkWallet + +private const val TAG = "Wallet" + +class Wallet private constructor( + private val wallet: BdkWallet, + private val walletSecrets: WalletSecrets, + private val connection: Connection, + private var fullScanCompleted: Boolean, + private val walletId: String, + private val userPreferencesRepository: UserPreferencesRepository, + private val internalAppFilesPath: String, + blockchainClientsConfig: BlockchainClientsConfig, +) { + private var currentBlockchainClient: BlockchainClient? = blockchainClientsConfig.getClient() + public var kyotoClient: CbfClient? = null + + fun getWalletSecrets(): WalletSecrets { + return walletSecrets + } + + fun createTransaction(recipientList: List, feeRate: FeeRate, opReturnMsg: String?): Psbt { + // technique 1 for adding a list of recipients to the TxBuilder + // var txBuilder = TxBuilder() + // for (recipient in recipientList) { + // txBuilder = txBuilder.addRecipient(address = recipient.first, amount = recipient.second) + // } + // txBuilder = txBuilder.feeRate(satPerVbyte = fee_rate) + + // technique 2 for adding a list of recipients to the TxBuilder + var txBuilder = + recipientList.fold(TxBuilder()) { builder, recipient -> + // val address = Address(recipient.address) + val scriptPubKey: Script = Address(recipient.address, Network.TESTNET).scriptPubkey() + builder.addRecipient(scriptPubKey, Amount.fromSat(recipient.amount)) + } + // if (!opReturnMsg.isNullOrEmpty()) { + // txBuilder = txBuilder.addData(opReturnMsg.toByteArray(charset = Charsets.UTF_8).asUByteArray().toList()) + // } + return txBuilder.feeRate(feeRate).finish(wallet) + } + + // @OptIn(ExperimentalUnsignedTypes::class) + // fun createSendAllTransaction( + // recipient: String, + // feeRate: Float, + // enableRBF: Boolean, + // opReturnMsg: String? + // ): PartiallySignedTransaction { + // val scriptPubkey: Script = Address(recipient).scriptPubkey() + // var txBuilder = TxBuilder() + // .drainWallet() + // .drainTo(scriptPubkey) + // .feeRate(satPerVbyte = feeRate) + // + // if (enableRBF) { + // txBuilder = txBuilder.enableRbf() + // } + // if (!opReturnMsg.isNullOrEmpty()) { + // txBuilder = txBuilder.addData(opReturnMsg.toByteArray(charset = Charsets.UTF_8).asUByteArray().toList()) + // } + // return txBuilder.finish(wallet).psbt + // } + + // fun createBumpFeeTransaction(txid: String, feeRate: Float): PartiallySignedTransaction { + // return BumpFeeTxBuilder(txid = txid, newFeeRate = feeRate) + // .enableRbf() + // .finish(wallet = wallet) + // } + + fun sign(psbt: Psbt): Boolean { + return wallet.sign(psbt) + } + + fun broadcast(signedPsbt: Psbt): String { + currentBlockchainClient?.broadcast(signedPsbt.extractTx()) + ?: throw IllegalStateException("Blockchain client not initialized") + return signedPsbt.extractTx().computeTxid() + } + + private fun getAllTransactions(): List = wallet.transactions() + + fun getAllTxDetails(): List { + val transactions = getAllTransactions() + return transactions.map { tx -> + val txid = tx.transaction.computeTxid() + val (sent, received) = wallet.sentAndReceived(tx.transaction) + var feeRate: FeeRate? = null + var fee: Amount? = null + // TODO: I don't know why we're getting negative fees here, but it looks like a bug + try { + fee = wallet.calculateFee(tx.transaction) + } catch (e: Exception) { + Log.e(TAG, "Error calculating fee rate for tx $txid: $e") + } + try { + feeRate = wallet.calculateFeeRate(tx.transaction) + } catch (e: Exception) { + Log.e(TAG, "Error calculating fee for tx $txid: $e") + } + + val (confirmationBlock, confirmationTimestamp, pending) = + when (val position = tx.chainPosition) { + is ChainPosition.Unconfirmed -> Triple(null, null, true) + is ChainPosition.Confirmed -> + Triple( + ConfirmationBlock(position.confirmationBlockTime.blockId.height), + Timestamp(position.confirmationBlockTime.confirmationTime), + false, + ) + } + TxDetails( + tx.transaction, + txid, + sent.toSat(), + received.toSat(), + fee?.toSat() ?: 0uL, + feeRate, + pending, + confirmationBlock, + confirmationTimestamp + ) + } + } + + // fun getTransaction(txid: String): TransactionDetails? { + // val allTransactions = getAllTransactions() + // allTransactions.forEach { + // if (it.txid == txid) { + // return it + // } + // } + // return null + // } + + fun getBalance(): ULong = wallet.balance().total.toSat() + + fun getNewAddress(): AddressInfo = wallet.revealNextAddress(KeychainKind.EXTERNAL) + + fun startKyotoNode() { + Log.i(TAG, "Starting Kyoto node") + // val ip: IpAddress = IpAddress.fromIpv4(68u, 47u, 229u, 218u) // Signet + val ip: IpAddress = IpAddress.fromIpv4(10u, 0u, 2u, 2u) // Regtest + val peer1: Peer = Peer(ip, 18444u, false) // Regtest + // val peer1: Peer = Peer(ip, null, false) + val peers: List = listOf(peer1) + + val (client, node) = + CbfBuilder() + .dataDir(this.internalAppFilesPath) + .peers(peers) + .connections(1u) + .scanType(ScanType.New) + .build(this.wallet) + + node.run() + kyotoClient = client + Log.i(TAG, "Kyoto node started") + } + + suspend fun stopKyotoNode() { + kyotoClient?.shutdown() + } + + fun applyUpdate(update: Update) { + wallet.applyUpdate(update) + wallet.persist(connection) + } + + companion object { + fun createWallet( + newWalletConfig: NewWalletConfig, + internalAppFilesPath: String, + userPreferencesRepository: UserPreferencesRepository, + ): Wallet { + val mnemonic = Mnemonic(WordCount.WORDS12) + val bip32ExtendedRootKey = DescriptorSecretKey(newWalletConfig.network, mnemonic, null) + val descriptor: Descriptor = + createScriptAppropriateDescriptor( + newWalletConfig.scriptType, + bip32ExtendedRootKey, + newWalletConfig.network, + KeychainKind.EXTERNAL, + ) + val changeDescriptor: Descriptor = + createScriptAppropriateDescriptor( + newWalletConfig.scriptType, + bip32ExtendedRootKey, + newWalletConfig.network, + KeychainKind.INTERNAL, + ) + val walletId = UUID.randomUUID().toString() + val connection = Connection("$internalAppFilesPath/wallet-${walletId.take(8)}.sqlite3") + + // Create SingleWallet object for saving to datastore + val newWalletForDatastore: SingleWallet = + SingleWallet + .newBuilder() + .setId(walletId) + .setName(newWalletConfig.name) + .setNetwork(newWalletConfig.network.intoProto()) + .setScriptType(ActiveWalletScriptType.P2WPKH) + .setDescriptor(descriptor.toStringWithSecret()) + .setChangeDescriptor(changeDescriptor.toStringWithSecret()) + .setRecoveryPhrase(mnemonic.toString()) + .build() + + // TODO: launch this correctly, not on the main thread + // Save the new wallet to the datastore + runBlocking { userPreferencesRepository.updateActiveWallets(newWalletForDatastore) } + + val bdkWallet = + BdkWallet( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + network = newWalletConfig.network, + connection = connection, + ) + + val walletSecrets = WalletSecrets(descriptor, changeDescriptor, mnemonic.toString()) + + return Wallet( + wallet = bdkWallet, + walletSecrets = walletSecrets, + connection = connection, + fullScanCompleted = false, + walletId = walletId, + userPreferencesRepository = userPreferencesRepository, + internalAppFilesPath = internalAppFilesPath, + blockchainClientsConfig = BlockchainClientsConfig.createDefaultConfig(newWalletConfig.network), + ) + } + + fun loadActiveWallet( + activeWallet: SingleWallet, + internalAppFilesPath: String, + userPreferencesRepository: UserPreferencesRepository, + ): Wallet { + val descriptor = Descriptor(activeWallet.descriptor, activeWallet.network.intoDomain()) + val changeDescriptor = Descriptor(activeWallet.changeDescriptor, activeWallet.network.intoDomain()) + val connection = Connection("$internalAppFilesPath/wallet-${activeWallet.id.take(8)}.sqlite3") + val bdkWallet = + BdkWallet.load( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + connection = connection, + ) + + val walletSecrets = WalletSecrets(descriptor, changeDescriptor, activeWallet.recoveryPhrase) + return Wallet( + wallet = bdkWallet, + walletSecrets = walletSecrets, + connection = connection, + fullScanCompleted = activeWallet.fullScanCompleted, + walletId = activeWallet.id, + userPreferencesRepository = userPreferencesRepository, + internalAppFilesPath = internalAppFilesPath, + blockchainClientsConfig = BlockchainClientsConfig.createDefaultConfig( + activeWallet.network.intoDomain() + ), + ) + } + + fun recoverWallet( + recoverWalletConfig: RecoverWalletConfig, + internalAppFilesPath: String, + userPreferencesRepository: UserPreferencesRepository, + ): Wallet { + Log.i(TAG, "Recovering wallet with config: $recoverWalletConfig") + var descriptor: Descriptor? = null + var changeDescriptor: Descriptor? = null + var mnemonicString: String = "" + + // If there is a recovery phrase, we use it to recover the wallet + if (recoverWalletConfig.recoveryPhrase != null && recoverWalletConfig.scriptType != null) { + val mnemonic: Mnemonic = Mnemonic.fromString(recoverWalletConfig.recoveryPhrase) + mnemonicString = mnemonic.toString() + val bip32ExtendedRootKey = DescriptorSecretKey(recoverWalletConfig.network, mnemonic, null) + descriptor = + createScriptAppropriateDescriptor( + recoverWalletConfig.scriptType, + bip32ExtendedRootKey, + recoverWalletConfig.network, + KeychainKind.EXTERNAL, + ) + changeDescriptor = + createScriptAppropriateDescriptor( + recoverWalletConfig.scriptType, + bip32ExtendedRootKey, + recoverWalletConfig.network, + KeychainKind.INTERNAL, + ) + } else { + descriptor = recoverWalletConfig.descriptor + changeDescriptor = recoverWalletConfig.changeDescriptor + } + val walletId = UUID.randomUUID().toString() + val connection = Connection("$internalAppFilesPath/wallet-${walletId.take(8)}.sqlite3") + + // Create SingleWallet object for saving to datastore + val newWalletForDatastore: SingleWallet = + SingleWallet + .newBuilder() + .setId(walletId) + .setName(recoverWalletConfig.name) + .setNetwork(recoverWalletConfig.network.intoProto()) + .setScriptType(recoverWalletConfig.scriptType ?: ActiveWalletScriptType.UNKNOWN) + .setDescriptor(descriptor.toStringWithSecret()) + .setChangeDescriptor(changeDescriptor.toStringWithSecret()) + .setRecoveryPhrase(mnemonicString) + .build() + + // TODO: launch this correctly, not on the main thread + // Save the new wallet to the datastore + runBlocking { userPreferencesRepository.updateActiveWallets(newWalletForDatastore) } + + val bdkWallet = + BdkWallet( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + connection = connection, + network = recoverWalletConfig.network, + ) + + val walletSecrets = WalletSecrets(descriptor, changeDescriptor, mnemonicString) + return Wallet( + wallet = bdkWallet, + walletSecrets = walletSecrets, + connection = connection, + fullScanCompleted = false, + walletId = walletId, + userPreferencesRepository = userPreferencesRepository, + internalAppFilesPath = internalAppFilesPath, + blockchainClientsConfig = BlockchainClientsConfig.createDefaultConfig(recoverWalletConfig.network), + ) + } + } +} + +fun createScriptAppropriateDescriptor( + scriptType: ActiveWalletScriptType, + bip32ExtendedRootKey: DescriptorSecretKey, + network: Network, + keychain: KeychainKind, +): Descriptor { + return when (scriptType) { + ActiveWalletScriptType.P2WPKH -> Descriptor.newBip84(bip32ExtendedRootKey, keychain, network) + ActiveWalletScriptType.P2TR -> Descriptor.newBip86(bip32ExtendedRootKey, keychain, network) + ActiveWalletScriptType.UNKNOWN -> TODO() + ActiveWalletScriptType.UNRECOGNIZED -> TODO() + } +} + +data class WalletSecrets( + val descriptor: Descriptor, + val changeDescriptor: Descriptor, + val recoveryPhrase: String, +) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" new file mode 100644 index 0000000..3ce6bc7 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" @@ -0,0 +1,18 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain.utils + +import java.text.DecimalFormat + +fun ULong?.formatInBtc(): String { + val balanceInSats = + if (this == 0UL || this == null) { + 0F + } else { + this.toDouble().div(100_000_000) + } + return DecimalFormat("0.00000000").format(balanceInSats) +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" new file mode 100644 index 0000000..6d2d5a9 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" @@ -0,0 +1,28 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain.utils + +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletNetwork + +fun Network.intoProto(): ActiveWalletNetwork { + return when (this) { + Network.TESTNET -> ActiveWalletNetwork.TESTNET + Network.TESTNET4 -> throw IllegalArgumentException("Bitcoin testnet 4 network is not supported") + Network.SIGNET -> ActiveWalletNetwork.SIGNET + Network.REGTEST -> ActiveWalletNetwork.REGTEST + Network.BITCOIN -> throw IllegalArgumentException("Bitcoin mainnet network is not supported") + } +} + +fun ActiveWalletNetwork.intoDomain(): Network { + return when (this) { + ActiveWalletNetwork.TESTNET -> Network.TESTNET + ActiveWalletNetwork.SIGNET -> Network.SIGNET + ActiveWalletNetwork.REGTEST -> Network.REGTEST + ActiveWalletNetwork.UNRECOGNIZED -> throw IllegalArgumentException("Unrecognized network") + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" new file mode 100644 index 0000000..349331b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" @@ -0,0 +1,17 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain.utils + +import android.text.format.DateFormat +import java.util.Calendar +import java.util.Locale + +// extension function on the ULong timestamp provided in the Transaction.Confirmed type +fun ULong.timestampToString(): String { + val calendar = Calendar.getInstance(Locale.ENGLISH) + calendar.timeInMillis = (this * 1000u).toLong() + return DateFormat.format("MMMM d yyyy HH:mm", calendar).toString() +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" new file mode 100644 index 0000000..d639dbd --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" @@ -0,0 +1,122 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation + +import android.content.Context +import android.os.Bundle +import android.util.Log +import androidx.activity.compose.setContent +import androidx.appcompat.app.AppCompatActivity +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import androidx.datastore.core.DataStore +import androidx.datastore.dataStore +import androidx.lifecycle.lifecycleScope +import kotlinx.coroutines.async +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.data.NewWalletConfig +import org.bitcoindevkit.devkitwallet.data.RecoverWalletConfig +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.data.UserPreferences +import org.bitcoindevkit.devkitwallet.data.UserPreferencesSerializer +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.UserPreferencesRepository +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.navigation.CreateWalletNavigation +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeNavigation +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitTheme +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.OnboardingScreen + +private const val TAG = "DevkitWalletActivity" +private val Context.userPreferencesStore: DataStore by dataStore( + fileName = "user_preferences.pb", + serializer = UserPreferencesSerializer, +) + +class DevkitWalletActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + installSplashScreen() + + super.onCreate(savedInstanceState) + + // Initialize Devkit Wallet Logger (used in the LogsScreen) + DwLogger.log(INFO, "Devkit Wallet app started") + + val userPreferencesRepository = UserPreferencesRepository(userPreferencesStore) + val onBuildWalletButtonClicked: (WalletCreateType) -> Unit = { walletCreateType -> + try { + val activeWallet = + when (walletCreateType) { + is WalletCreateType.FROMSCRATCH -> + Wallet.createWallet( + newWalletConfig = walletCreateType.newWalletConfig, + internalAppFilesPath = filesDir.absolutePath, + userPreferencesRepository = userPreferencesRepository, + ) + is WalletCreateType.LOADEXISTING -> + Wallet.loadActiveWallet( + activeWallet = walletCreateType.activeWallet, + internalAppFilesPath = filesDir.absolutePath, + userPreferencesRepository = userPreferencesRepository, + ) + is WalletCreateType.RECOVER -> + Wallet.recoverWallet( + recoverWalletConfig = walletCreateType.recoverWalletConfig, + internalAppFilesPath = filesDir.absolutePath, + userPreferencesRepository = userPreferencesRepository, + ) + } + setContent { + DevkitTheme { + HomeNavigation(activeWallet) + } + } + } catch (e: Throwable) { + Log.i(TAG, "Could not build wallet: $e") + } + } + + lifecycleScope.launch { + val activeWallets = + async { + userPreferencesRepository.fetchActiveWallets() + }.await() + + val onboardingDone = + async { + userPreferencesRepository.fetchIntroDone() + }.await() + + val onFinishOnboarding: () -> Unit = { + lifecycleScope.launch { userPreferencesRepository.setIntroDone() } + setContent { + DevkitTheme { + CreateWalletNavigation(onBuildWalletButtonClicked, activeWallets) + } + } + } + + setContent { + if (!onboardingDone) { + DwLogger.log(INFO, "First time opening the app, triggering onboarding screen") + OnboardingScreen(onFinishOnboarding) + } else { + DevkitTheme { + CreateWalletNavigation(onBuildWalletButtonClicked, activeWallets) + } + } + } + } + } +} + +sealed class WalletCreateType { + data class FROMSCRATCH(val newWalletConfig: NewWalletConfig) : WalletCreateType() + + data class LOADEXISTING(val activeWallet: SingleWallet) : WalletCreateType() + + data class RECOVER(val recoverWalletConfig: RecoverWalletConfig) : WalletCreateType() +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" new file mode 100644 index 0000000..3e5a24b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" @@ -0,0 +1,133 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.core.tween +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.ActiveWalletsScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.CreateNewWalletScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.RecoverWalletScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.WalletChoiceScreen + +@Composable +fun CreateWalletNavigation(onBuildWalletButtonClicked: (WalletCreateType) -> Unit, activeWallets: List) { + val navController: NavHostController = rememberNavController() + val animationDuration = 400 + + NavHost( + navController = navController, + startDestination = WalletChoiceScreen, + ) { + composable( + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + ) { WalletChoiceScreen(navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + ) { + ActiveWalletsScreen( + activeWallets = activeWallets, + navController = navController, + onBuildWalletButtonClicked + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + ) { CreateNewWalletScreen(navController = navController, onBuildWalletButtonClicked) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + ) { RecoverWalletScreen(onAction = onBuildWalletButtonClicked, navController = navController) } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" new file mode 100644 index 0000000..195c3e0 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" @@ -0,0 +1,56 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import kotlinx.serialization.Serializable + +// Create wallet navigation destinations +@Serializable +object WalletChoiceScreen + +@Serializable +object ActiveWalletsScreen + +@Serializable +object CreateNewWalletScreen + +@Serializable +object WalletRecoveryScreen + +// Home navigation destinations +@Serializable +object WalletScreen + +@Serializable +object AboutScreen + +@Serializable +object RecoveryPhraseScreen + +@Serializable +object BlockchainClientScreen + +@Serializable +object LogsScreen + +// Wallet navigation destinations +@Serializable +object HomeScreen + +@Serializable +object ReceiveScreen + +@Serializable +object SendScreen + +@Serializable +object TransactionHistoryScreen + +@Serializable +data class TransactionScreen(val txid: String) + +@Serializable +data class RbfScreen(val txid: String) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" new file mode 100644 index 0000000..0c49997 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" @@ -0,0 +1,189 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.core.tween +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.WalletRoot +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.AboutScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.BlockchainClientScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.LogsScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.RecoveryDataScreen +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel + +@Composable +fun HomeNavigation(activeWallet: Wallet) { + val navController: NavHostController = rememberNavController() + val animationDuration = 400 + val walletViewModel = WalletViewModel(activeWallet) + + NavHost( + navController = navController, + startDestination = WalletScreen, + ) { + composable( + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + ) { WalletRoot(activeWallet = activeWallet, walletViewModel = walletViewModel, navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + ) { AboutScreen(navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + ) { RecoveryDataScreen(activeWallet.getWalletSecrets(), navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + ) { + BlockchainClientScreen( + state = walletViewModel.state, + onAction = walletViewModel::onAction, + navController = navController, + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + ) { LogsScreen(navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + ) { LogsScreen(navController = navController) } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" new file mode 100644 index 0000000..990e15c --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" @@ -0,0 +1,210 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.core.tween +import androidx.compose.material3.DrawerState +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.toRoute +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.RBFScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.ReceiveScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.SendScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.TransactionHistoryScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.TransactionScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.WalletHomeScreen +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.AddressViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.SendViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel + +private const val ANIMATION_DURATION: Int = 400 + +@Composable +internal fun WalletNavigation(drawerState: DrawerState, walletViewModel: WalletViewModel, activeWallet: Wallet) { + val navController: NavHostController = rememberNavController() + // val walletViewModel = WalletViewModel(activeWallet) + val addressViewModel = AddressViewModel(activeWallet) + val sendViewModel = SendViewModel(activeWallet) + + NavHost( + navController = navController, + startDestination = HomeScreen, + ) { + composable( + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { + WalletHomeScreen( + state = walletViewModel.state, + onAction = walletViewModel::onAction, + drawerState = drawerState, + navController = navController, + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { + ReceiveScreen( + state = addressViewModel.state, + onAction = addressViewModel::onAction, + navController = navController, + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { SendScreen(navController, sendViewModel) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { + val args = it.toRoute() + RBFScreen(args.txid, navController) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { TransactionHistoryScreen(navController, activeWallet) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { + val args = it.toRoute() + TransactionScreen(args.txid, navController) + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" new file mode 100644 index 0000000..69c6819 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" @@ -0,0 +1,20 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.ui.graphics.Color + +object DevkitWalletColors { + val primaryDark: Color = Color(0xFF203B46) // App bar + val primary: Color = Color(0xFF264653) // Background + val primaryLight: Color = Color(0xFF335F70) // Behind balance primary light + val white: Color = Color(0xffffffff) // Most text + val secondary: Color = Color(0xFF2A9D8F) // Buttons + val accent1: Color = Color(0xFFE9C46A) // Receive button + val accent2: Color = Color(0xFFE76F51) // Send button +} + +internal val TestPink = Color(0xffff1493) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" new file mode 100644 index 0000000..ff1e557 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" @@ -0,0 +1,48 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import org.bitcoindevkit.devkitwallet.R + +val quattroRegular = + FontFamily( + Font( + resId = R.font.ia_writer_quattro_regular, + weight = FontWeight.Normal, + style = FontStyle.Normal, + ), + ) + +val quattroBold = + FontFamily( + Font( + resId = R.font.ia_writer_quattro_bold, + weight = FontWeight.Bold, + style = FontStyle.Normal, + ), + ) + +val monoRegular = + FontFamily( + Font( + resId = R.font.ia_writer_mono_regular, + weight = FontWeight.Normal, + style = FontStyle.Normal, + ), + ) + +val monoBold = + FontFamily( + Font( + resId = R.font.ia_writer_mono_bold, + weight = FontWeight.Bold, + style = FontStyle.Normal, + ), + ) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" new file mode 100644 index 0000000..25f305d --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" @@ -0,0 +1,22 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable + +@Composable +fun DevkitTheme(content: @Composable () -> Unit) { + MaterialTheme( + // colorScheme = devkitColors, + // shapes = devkitShapes, + typography = devkitTypography, + content = content, + ) +} + +// NOTES ON THE UI +// - The standard padding is 32dp for start/end, 16dp for top/bottom diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" new file mode 100644 index 0000000..2d794f3 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" @@ -0,0 +1,42 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +internal val devkitTypography = + Typography( + labelLarge = + TextStyle( + fontFamily = quattroRegular, + fontWeight = FontWeight.Normal, + color = DevkitWalletColors.white, + fontSize = 16.sp, + lineHeight = 28.sp, + ), + ) + +val introText = + TextStyle( + fontFamily = quattroRegular, + fontWeight = FontWeight.Normal, + fontSize = 18.sp, + lineHeight = 28.sp, + ) + +// These are the default text styles used by Material3 components: +// Buttons: labelLarge + +internal val standardText = + TextStyle( + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + fontSize = 14.sp, + fontWeight = FontWeight.Normal, + ) diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" new file mode 100644 index 0000000..69c4529 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" @@ -0,0 +1,41 @@ +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Snackbar +import androidx.compose.material3.SnackbarData +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.X +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular + +@Composable +fun CustomSnackbar(data: SnackbarData) { + Snackbar( + modifier = Modifier.padding(12.dp), + action = { + IconButton( + onClick = { data.performAction() }, + ) { + Icon( + imageVector = Lucide.X, + contentDescription = "Ok", + tint = DevkitWalletColors.white, + ) + } + }, + containerColor = DevkitWalletColors.primaryLight, + ) { + Text( + text = data.visuals.message, + fontFamily = quattroRegular, + fontSize = 14.sp, + ) + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" new file mode 100644 index 0000000..7b3c5c0 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" @@ -0,0 +1,77 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.RepeatMode +import androidx.compose.animation.core.infiniteRepeatable +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.delay + +@Composable +fun LoadingAnimation( + circleColor: Color = Color(0xffE9C46A), + circleSize: Dp = 21.dp, + animationDelay: Int = 800, + initialAlpha: Float = 0.3f, +) { + val circles = + listOf( + remember { Animatable(initialValue = initialAlpha) }, + remember { Animatable(initialValue = initialAlpha) }, + remember { Animatable(initialValue = initialAlpha) }, + ) + + circles.forEachIndexed { index, animatable -> + LaunchedEffect(Unit) { + // Use coroutine delay to sync animations + delay(timeMillis = (animationDelay / circles.size).toLong() * index) + + animatable.animateTo( + targetValue = 1f, + animationSpec = + infiniteRepeatable( + animation = + tween( + durationMillis = animationDelay, + ), + repeatMode = RepeatMode.Reverse, + ), + ) + } + } + + // container for circles + Row { + circles.forEachIndexed { index, animatable -> + // gap between the circles + if (index != 0) Spacer(modifier = Modifier.width(width = 6.dp)) + + Box( + modifier = + Modifier + .size(size = circleSize) + .clip(shape = CircleShape) + .background(circleColor.copy(alpha = animatable.value)), + ) + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" new file mode 100644 index 0000000..f798c57 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" @@ -0,0 +1,43 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.unit.dp +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors + +@Composable +fun NeutralButton(text: String, enabled: Boolean, modifier: Modifier? = null, onClick: () -> Unit) { + Button( + onClick = onClick, + colors = + ButtonDefaults.buttonColors( + containerColor = DevkitWalletColors.secondary, + disabledContainerColor = DevkitWalletColors.secondary, + ), + shape = RoundedCornerShape(16.dp), + enabled = enabled, + modifier = + modifier ?: Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + ) { + Text( + text = text, + ) + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" new file mode 100644 index 0000000..c5ead51 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" @@ -0,0 +1,57 @@ +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.selection.selectable +import androidx.compose.material3.RadioButton +import androidx.compose.material3.RadioButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular + +@Composable +fun RadioButtonWithLabel(label: String, isSelected: Boolean, onSelect: () -> Unit) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(4.dp), + modifier = + Modifier + .padding(0.dp) + .selectable( + selected = isSelected, + onClick = onSelect, + ), + ) { + RadioButton( + selected = isSelected, + onClick = onSelect, + colors = + RadioButtonDefaults.colors( + selectedColor = DevkitWalletColors.accent1, + unselectedColor = DevkitWalletColors.accent2, + ), + modifier = + Modifier + .padding(start = 8.dp) + .size(40.dp), + ) + Text( + text = label, + color = DevkitWalletColors.white, + fontFamily = monoRegular, + fontSize = 12.sp, + modifier = + Modifier + .clickable(onClick = onSelect) + .padding(0.dp), + ) + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" new file mode 100644 index 0000000..8475df4 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" @@ -0,0 +1,47 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.rounded.ArrowBack +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.unit.sp +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun SecondaryScreensAppBar(title: String, navigation: () -> Unit) { + TopAppBar( + title = { + Text( + text = title, + color = DevkitWalletColors.white, + fontSize = 18.sp, + fontFamily = quattroRegular, + ) + }, + navigationIcon = { + IconButton(onClick = navigation) { + Icon( + imageVector = Icons.AutoMirrored.Rounded.ArrowBack, + contentDescription = "Back", + tint = DevkitWalletColors.white, + ) + } + }, + colors = + TopAppBarDefaults.topAppBarColors( + containerColor = DevkitWalletColors.primaryDark, + ), + ) +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" new file mode 100644 index 0000000..cb1db1a --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" @@ -0,0 +1,136 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import android.util.Log +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.data.TxDetails +import org.bitcoindevkit.devkitwallet.domain.utils.timestampToString +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.viewTransaction + +private const val TAG = "TransactionCards" + +@Composable +fun ConfirmedTransactionCard(details: TxDetails, navController: NavController) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).clickable { viewTransaction(navController = navController, txid = details.txid) }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween, + ) { + Text( + confirmedTransactionsItem(details), + fontFamily = monoRegular, + fontSize = 12.sp, + lineHeight = 20.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp), + ) + Box( + modifier = + Modifier + .padding(top = 16.dp, end = 16.dp) + .size(size = 24.dp) + .clip(shape = CircleShape) + .background(DevkitWalletColors.secondary) + .align(Alignment.Top), + ) + } +} + +@Composable +fun PendingTransactionCard(details: TxDetails, navController: NavController) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).border( + width = 2.dp, + color = DevkitWalletColors.accent1, + shape = RoundedCornerShape(16.dp), + ).clickable { + viewTransaction( + navController = navController, + txid = details.txid, + ) + }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween, + ) { + Text( + pendingTransactionsItem(details), + fontFamily = monoRegular, + fontSize = 12.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp), + ) + Box( + modifier = + Modifier + .padding(top = 16.dp, end = 16.dp) + .size(size = 24.dp) + .clip(shape = CircleShape) + .background(Color(0xffE9C46A)) + .align(Alignment.Top), + ) + } +} + +fun pendingTransactionsItem(txDetails: TxDetails): String { + return buildString { + Log.i(TAG, "Pending transaction list item: $txDetails") + + appendLine("Confirmation time: Pending") + appendLine("Received: ${txDetails.received}") + appendLine("Sent: ${txDetails.sent}") + appendLine("Total fee: ${txDetails.fee} sat") + appendLine("Fee rate: ${txDetails.feeRate?.toSatPerVbCeil() ?: 0} sat/vbyte") + append("Txid: ${txDetails.txid.take(n = 8)}...${txDetails.txid.takeLast(n = 8)}") + } +} + +fun confirmedTransactionsItem(txDetails: TxDetails): String { + return buildString { + Log.i(TAG, "Transaction list item: $txDetails") + + appendLine("Confirmation time: ${txDetails.confirmationTimestamp?.timestamp?.timestampToString()}") + appendLine("Received: ${txDetails.received} sat") + appendLine("Sent: ${txDetails.sent} sat") + appendLine("Total fee: ${txDetails.fee} sat") + appendLine("Fee rate: ${txDetails.feeRate?.toSatPerVbCeil() ?: 0} sat/vbyte") + appendLine("Block: ${txDetails.confirmationBlock?.height}") + append("Txid: ${txDetails.txid.take(n = 8)}...${txDetails.txid.takeLast(n = 8)}") + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" new file mode 100644 index 0000000..82e1699 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" @@ -0,0 +1,133 @@ +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.domain.supportedNetworks +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.displayString + +@Composable +fun WalletOptionsCard( + scriptTypes: List, + selectedNetwork: MutableState, + selectedScriptType: MutableState, +) { + Column( + Modifier + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start, + ) { + Text( + text = "Network", + fontFamily = monoRegular, + fontSize = 14.sp, + color = DevkitWalletColors.white, + modifier = + Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 8.dp, bottom = 8.dp), + ) + + HorizontalDivider( + color = DevkitWalletColors.primaryDark, + thickness = 4.dp, + modifier = Modifier.padding(bottom = 8.dp), + ) + + supportedNetworks.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedNetwork.value == it, + onSelect = { selectedNetwork.value = it }, + ) + if (index == 2) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + + Text( + text = "Script Type", + fontFamily = monoRegular, + fontSize = 14.sp, + color = DevkitWalletColors.white, + modifier = + Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 16.dp, bottom = 8.dp), + ) + + HorizontalDivider( + color = DevkitWalletColors.primaryDark, + thickness = 4.dp, + modifier = Modifier.padding(bottom = 8.dp), + ) + + scriptTypes.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedScriptType.value == it, + onSelect = { selectedScriptType.value = it }, + ) + if (index == 1) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + } +} + +@Composable +fun NetworkOptionsCard(selectedNetwork: MutableState) { + Column( + Modifier + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start, + ) { + Text( + text = "Network", + fontFamily = monoRegular, + fontSize = 14.sp, + color = DevkitWalletColors.white, + modifier = + Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 8.dp, bottom = 8.dp), + ) + + HorizontalDivider( + color = DevkitWalletColors.primaryDark, + thickness = 4.dp, + modifier = Modifier.padding(bottom = 8.dp), + ) + + supportedNetworks.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedNetwork.value == it, + onSelect = { selectedNetwork.value = it }, + ) + if (index == 2) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" new file mode 100644 index 0000000..73193b9 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" @@ -0,0 +1,190 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Email +import androidx.compose.material.icons.filled.Face +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material3.DrawerValue +import androidx.compose.material3.Icon +import androidx.compose.material3.ModalDrawerSheet +import androidx.compose.material3.ModalNavigationDrawer +import androidx.compose.material3.NavigationDrawerItem +import androidx.compose.material3.NavigationDrawerItemDefaults +import androidx.compose.material3.NavigationDrawerItemDefaults.colors +import androidx.compose.material3.Text +import androidx.compose.material3.rememberDrawerState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import com.composables.icons.lucide.History +import com.composables.icons.lucide.Info +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.SatelliteDish +import com.composables.icons.lucide.ScrollText +import org.bitcoindevkit.devkitwallet.BuildConfig +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.navigation.AboutScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.BlockchainClientScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.LogsScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.RecoveryPhraseScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletNavigation +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel + +@OptIn(androidx.compose.animation.ExperimentalAnimationApi::class) +@Composable +internal fun WalletRoot(activeWallet: Wallet, walletViewModel: WalletViewModel, navController: NavController) { + val drawerState = rememberDrawerState(DrawerValue.Closed) + + val items = listOf(Icons.Default.Favorite, Icons.Default.Face, Icons.Default.Email, Icons.Default.Face) + val selectedItem = remember { mutableStateOf(items[0]) } + + val navigationItemColors = + colors( + selectedContainerColor = DevkitWalletColors.primary, + unselectedContainerColor = DevkitWalletColors.primary, + selectedTextColor = DevkitWalletColors.white, + unselectedTextColor = DevkitWalletColors.white, + ) + + ModalNavigationDrawer( + drawerState = drawerState, + drawerContent = { + ModalDrawerSheet( + drawerContainerColor = DevkitWalletColors.primary, + ) { + Column( + Modifier + .background(color = DevkitWalletColors.secondary) + .height(300.dp) + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Image( + painter = painterResource(id = R.drawable.ic_testnet_logo), + contentDescription = "Bitcoin testnet logo", + Modifier + .size(90.dp) + .padding(bottom = 16.dp), + ) + Text( + text = "Devkit Wallet", + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + ) + Spacer(modifier = Modifier.padding(4.dp)) + Text( + text = "The sample wallet on Android for BDK.", + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + fontSize = 12.sp, + fontStyle = androidx.compose.ui.text.font.FontStyle.Italic, + ) + Spacer(modifier = Modifier.padding(16.dp)) + Text( + text = BuildConfig.VARIANT_NAME, + style = standardText, + ) + } + Column( + Modifier + .fillMaxHeight() + .background(color = DevkitWalletColors.primary), + ) { + Spacer(modifier = Modifier.height(16.dp)) + NavigationDrawerItem( + icon = { Icon(Lucide.Info, contentDescription = "About", tint = DevkitWalletColors.white) }, + label = { DrawerItemLabel("About") }, + selected = items[0] == selectedItem.value, + onClick = { navController.navigate(AboutScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + NavigationDrawerItem( + icon = { + Icon( + Lucide.History, + contentDescription = "Wallet Recovery Data", + tint = DevkitWalletColors.white + ) + }, + label = { DrawerItemLabel("Wallet Recovery Data") }, + selected = items[1] == selectedItem.value, + onClick = { navController.navigate(RecoveryPhraseScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + NavigationDrawerItem( + icon = { + Icon( + Lucide.SatelliteDish, + contentDescription = "Esplora Client", + tint = DevkitWalletColors.white + ) + }, + label = { DrawerItemLabel("Compact Block Filters Node") }, + selected = items[2] == selectedItem.value, + onClick = { navController.navigate(BlockchainClientScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + NavigationDrawerItem( + icon = { + Icon( + Lucide.ScrollText, + contentDescription = "Logs", + tint = DevkitWalletColors.white + ) + }, + label = { DrawerItemLabel("Logs") }, + selected = items[3] == selectedItem.value, + onClick = { navController.navigate(LogsScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + } + } + }, + content = { + WalletNavigation( + drawerState = drawerState, + activeWallet = activeWallet, + walletViewModel = walletViewModel, + ) + }, + ) +} + +@Composable +fun DrawerItemLabel(text: String) { + Text( + text = text, + fontFamily = quattroRegular, + ) +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" new file mode 100644 index 0000000..4e21a2b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" @@ -0,0 +1,112 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import androidx.navigation.compose.rememberNavController +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.devkitTypography +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private val message: String = + """ + This wallet is build for: + + 1. Developers interested in learning how to leverage the Bitcoin Development Kit on Android. + + 2. Any bitcoiner looking for a Signet/Testnet/Regtest wallet! + """.trimIndent() + +@Composable +internal fun AboutScreen(navController: NavController) { + val mUriHandler = LocalUriHandler.current + val openSourceRepository = + remember { { mUriHandler.openUri("https://github.com/bitcoindevkit/bdk-kotlin-example-wallet") } } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "About", + navigation = { navController.navigate(WalletScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + Column( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(start = 16.dp, end = 16.dp, top = 16.dp, bottom = 100.dp), + verticalArrangement = Arrangement.Top, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(modifier = Modifier.padding(24.dp)) + Image( + painter = painterResource(id = R.drawable.bdk_logo), + contentDescription = "Old School BDK Logo", + Modifier.size(180.dp), + ) + Spacer(modifier = Modifier.padding(24.dp)) + Text( + text = "This wallet is build for:\n\n1. Developers interested in learning how to leverage the Bitcoin Development Kit on Android.\n\n2. Any bitcoiner looking for a Signet/Testnet/Regtest wallet!", + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge, + lineHeight = 26.sp, + modifier = Modifier.padding(all = 8.dp), + ) + Spacer(modifier = Modifier.padding(8.dp)) + Text( + text = "You are using the Compact Block Filters (CBF) version of the wallet.", + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge, + lineHeight = 26.sp, + modifier = Modifier.padding(all = 8.dp), + ) + Spacer(modifier = Modifier.padding(8.dp)) + Text( + text = "Check out the source code for the wallet on GitHub.", + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge, + textDecoration = TextDecoration.Underline, + lineHeight = 26.sp, + modifier = + Modifier + .padding(all = 8.dp) + .clickable(onClick = openSourceRepository), + ) + } + } +} + +@Preview(device = Devices.PIXEL_4, showBackground = true) +@Composable +internal fun PreviewAboutScreen() { + AboutScreen(rememberNavController()) +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" new file mode 100644 index 0000000..ca0a9c6 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" @@ -0,0 +1,134 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.KyotoNodeStatus +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenState + +@Composable +internal fun BlockchainClientScreen( + state: WalletScreenState, + onAction: (WalletScreenAction) -> Unit, + navController: NavController, +) { + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Compact Block Filters Node", + navigation = { navController.navigate(WalletScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + Column( + verticalArrangement = Arrangement.Top, + horizontalAlignment = Alignment.CenterHorizontally, + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(vertical = 32.dp, horizontal = 16.dp), + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth(), + ) { + val status = if (state.kyotoNodeStatus == KyotoNodeStatus.Running) "Online" else "Offline" + Text( + text = "CBF Node Status: $status", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Start, + ) + Box( + modifier = + Modifier + .padding(horizontal = 8.dp) + .size(size = 21.dp) + .clip(shape = CircleShape) + .background( + if (state.kyotoNodeStatus == KyotoNodeStatus.Running) { + Color( + 0xFF2A9D8F + ) + } else { + Color(0xFFE76F51) + } + ), + ) + } + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth().padding(top = 16.dp), + ) { + Text( + text = "Latest known block:", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Start, + ) + Text( + text = "${state.latestBlock}", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Start, + ) + } + + Spacer(modifier = Modifier.padding(16.dp)) + + NeutralButton( + text = "Start Node", + enabled = state.kyotoNodeStatus == KyotoNodeStatus.Stopped, + onClick = { onAction(WalletScreenAction.StartKyotoNode) }, + ) + NeutralButton( + text = "Start Sync", + enabled = state.kyotoNodeStatus == KyotoNodeStatus.Running, + onClick = { onAction(WalletScreenAction.StartKyotoSync) }, + ) + NeutralButton( + text = "Stop Node", + enabled = state.kyotoNodeStatus == KyotoNodeStatus.Running, + onClick = { onAction(WalletScreenAction.StopKyotoNode) }, + ) + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/CustomBlockchainClient.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/CustomBlockchainClient.kt" new file mode 100644 index 0000000..bb6cdc4 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/CustomBlockchainClient.kt" @@ -0,0 +1,115 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +@Composable +internal fun CustomBlockchainClient(navController: NavController) { + val focusManager = LocalFocusManager.current + // val isBlockChainCreated = Wallet.isBlockChainCreated() + val electrumServer: MutableState = remember { mutableStateOf("") } + val isChecked: MutableState = remember { mutableStateOf(false) } + // if (isBlockChainCreated) { + // electrumServer.value = Wallet.getElectrumURL() + // isChecked.value = Wallet.isElectrumServerDefault() + // } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Custom Blockchain Client", + navigation = { navController.navigate(WalletScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + Column( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(all = 16.dp), + ) { + // Row(verticalAlignment = Alignment.CenterVertically) { + // Text( + // text = "Use default electrum URL", + // color = DevkitWalletColors.white, + // fontSize = 14.sp, + // textAlign = TextAlign.Center, + // ) + // Switch( + // checked = isChecked.value, + // onCheckedChange = { + // isChecked.value = it + // if (it) { + // Wallet.setElectrumSettings(ElectrumSettings.DEFAULT) + // } else { + // Wallet.setElectrumSettings(ElectrumSettings.CUSTOM) + // } + // }, + // enabled = isBlockChainCreated + // ) + // } + + // OutlinedTextField( + // value = electrumServer.value, + // onValueChange = { electrumServer.value = it }, + // label = { + // Text( + // text = "Electrum Server", + // color = DevkitWalletColors.white, + // ) + // }, + // singleLine = true, + // textStyle = TextStyle(color = DevkitWalletColors.white), + // colors = TextFieldDefaults.outlinedTextFieldColors( + // focusedBorderColor = DevkitWalletColors.accent1, + // unfocusedBorderColor = DevkitWalletColors.white, + // cursorColor = DevkitWalletColors.accent1, + // ), + // keyboardActions = KeyboardActions(onDone = { + // focusManager.clearFocus() + // }), + // modifier = Modifier.fillMaxWidth(), + // enabled = isBlockChainCreated && !isChecked.value + // ) + + // Button( + // onClick = { + // Wallet.changeElectrumServer(electrumServer.value) + // focusManager.clearFocus() + // }, + // modifier = Modifier + // .align(alignment = Alignment.End) + // .padding(all = 8.dp), + // colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + // enabled = isBlockChainCreated && !isChecked.value + // ) { + // Text( + // text = "Save", + // color = DevkitWalletColors.white, + // fontSize = 12.sp, + // textAlign = TextAlign.Center, + // ) + // } + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" new file mode 100644 index 0000000..d930a00 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" @@ -0,0 +1,63 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.rememberScrollState +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +@Composable +fun LogsScreen(navController: NavController) { + val logs: List = remember { DwLogger.getLogs() } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Logs", + navigation = { navController.navigate(WalletScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + LazyColumn( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(16.dp), + ) { + items(logs) { logLine -> + Text( + text = logLine, + style = standardText, + maxLines = 1, + overflow = TextOverflow.Visible, + modifier = + Modifier + .fillMaxWidth() + .horizontalScroll(rememberScrollState()), + ) + } + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" new file mode 100644 index 0000000..55bccce --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" @@ -0,0 +1,231 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import com.composables.icons.lucide.ClipboardCopy +import com.composables.icons.lucide.Lucide +import org.bitcoindevkit.devkitwallet.domain.WalletSecrets +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private val MESSAGE: String = + """ + The next screen will show your recovery phrase and descriptors. Make sure no one else is looking at your screen. + """.trimIndent() + +@Composable +internal fun RecoveryDataScreen(walletSecrets: WalletSecrets, navController: NavController) { + val (currentIndex, setCurrentIndex) = remember { mutableIntStateOf(0) } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Your Wallet Recovery Data", + navigation = { navController.navigate(WalletScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + Crossfade( + modifier = Modifier.padding(paddingValues), + targetState = currentIndex, + label = "", + animationSpec = + tween( + durationMillis = 1000, + delayMillis = 200, + ), + ) { screen -> + when (screen) { + 0 -> WarningText(setCurrentIndex = setCurrentIndex) + 1 -> RecoveryPhrase(walletSecrets = walletSecrets) + } + } + } +} + +@Composable +fun WarningText(setCurrentIndex: (Int) -> Unit) { + Column( + modifier = + Modifier + .fillMaxSize() + .padding(horizontal = 32.dp, vertical = 16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text( + text = MESSAGE, + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + ) + Spacer(modifier = Modifier.padding(16.dp)) + NeutralButton( + text = "See my recovery data", + enabled = true, + ) { setCurrentIndex(1) } + } +} + +@Composable +fun RecoveryPhrase(walletSecrets: WalletSecrets) { + val context = LocalContext.current + Column( + modifier = + Modifier + .fillMaxSize() + .padding(all = 32.dp), + ) { + Text( + text = "Write down your recovery phrase and keep it in a safe place.", + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + ) + Spacer(modifier = Modifier.padding(8.dp)) + Box { + SelectionContainer { + Text( + modifier = + Modifier + .clickable { + simpleCopyClipboard( + walletSecrets.recoveryPhrase, + context, + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).padding(12.dp), + text = walletSecrets.recoveryPhrase, + fontFamily = monoRegular, + color = DevkitWalletColors.white, + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = + Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd), + ) + } + Spacer(modifier = Modifier.padding(16.dp)) + Text( + text = "These are your descriptors.", + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + ) + Spacer(modifier = Modifier.padding(8.dp)) + Box { + SelectionContainer { + Text( + modifier = + Modifier + .clickable { + simpleCopyClipboard( + walletSecrets.descriptor.toStringWithSecret(), + context, + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).padding(12.dp), + text = walletSecrets.descriptor.toStringWithSecret(), + fontFamily = monoRegular, + color = DevkitWalletColors.white, + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = + Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd), + ) + } + Spacer(modifier = Modifier.padding(4.dp)) + Box { + SelectionContainer { + Text( + modifier = + Modifier + .clickable { + simpleCopyClipboard( + walletSecrets.changeDescriptor.toStringWithSecret(), + context, + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).padding(12.dp), + text = walletSecrets.changeDescriptor.toStringWithSecret(), + fontFamily = monoRegular, + color = DevkitWalletColors.white, + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = + Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd), + ) + } + } +} + +fun simpleCopyClipboard(content: String, context: Context) { + val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip: ClipData = ClipData.newPlainText("", content) + clipboard.setPrimaryClip(clip) +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewRecoveryPhraseScreen() { +// RecoveryPhraseScreen() +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryPhraseScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryPhraseScreen.kt" new file mode 100644 index 0000000..e69de29 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" new file mode 100644 index 0000000..65257b3 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" @@ -0,0 +1,95 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private const val TAG = "ActiveWalletsScreen" + +@Composable +internal fun ActiveWalletsScreen( + activeWallets: List, + navController: NavController, + onBuildWalletButtonClicked: (WalletCreateType) -> Unit, +) { + Scaffold( + topBar = { + SecondaryScreensAppBar(title = "Choose a Wallet", navigation = { navController.navigateUp() }) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + Column( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues), + ) { + activeWallets.forEach { + ActiveWalletCard(wallet = it, onBuildWalletButtonClicked) + } + } + if (activeWallets.isEmpty()) { + Text( + text = "No active wallets.", + fontSize = 16.sp, + fontFamily = quattroRegular, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp), + ) + } + } +} + +@Composable +fun ActiveWalletCard(wallet: SingleWallet, onBuildWalletButtonClicked: (WalletCreateType) -> Unit) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).clickable { + DwLogger.log(INFO, "Activating existing wallet: ${wallet.name}") + onBuildWalletButtonClicked(WalletCreateType.LOADEXISTING(wallet)) + }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween, + ) { + Text( + "Name: ${wallet.name}\nNetwork: ${wallet.network}\nScript Type: ${wallet.scriptType}", + fontFamily = monoRegular, + fontSize = 12.sp, + lineHeight = 20.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp), + ) + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" new file mode 100644 index 0000000..7bb611e --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" @@ -0,0 +1,296 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.RadioButton +import androidx.compose.material3.RadioButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.navigation.NavController +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.data.NewWalletConfig +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.WalletOptionsCard + +@Composable +internal fun CreateNewWalletScreen( + navController: NavController, + onBuildWalletButtonClicked: (WalletCreateType) -> Unit, +) { + Scaffold( + topBar = { + SecondaryScreensAppBar(title = "Create a New Wallet", navigation = { navController.navigateUp() }) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + + ConstraintLayout( + modifier = + Modifier + .padding(paddingValues) + .fillMaxSize() + .padding(vertical = 16.dp), + ) { + val (choices, button) = createRefs() + + val walletName: MutableState = remember { mutableStateOf("") } + val selectedNetwork: MutableState = remember { mutableStateOf(Network.SIGNET) } + val selectedScriptType: MutableState = + remember { mutableStateOf(ActiveWalletScriptType.P2TR) } + val scriptTypes = listOf(ActiveWalletScriptType.P2TR, ActiveWalletScriptType.P2WPKH) + + Column( + modifier = + Modifier + .constrainAs(choices) { + top.linkTo(parent.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.fillMaxSize() + .background(color = DevkitWalletColors.primary) + .padding(horizontal = 32.dp), + ) { + OutlinedTextField( + modifier = + Modifier + .padding(bottom = 8.dp) + .fillMaxWidth() + .align(Alignment.CenterHorizontally), + value = walletName.value, + onValueChange = { walletName.value = it }, + label = { + Text( + text = "Give your wallet a name", + style = standardText, + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = monoRegular, color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + + Spacer(modifier = Modifier.padding(12.dp)) + WalletOptionsCard(scriptTypes, selectedNetwork, selectedScriptType) + Spacer(modifier = Modifier.padding(16.dp)) + } + + Column( + modifier = + Modifier + .constrainAs(button) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.fillMaxWidth() + .padding(horizontal = 32.dp), + ) { + NeutralButton( + text = "Create Wallet", + enabled = true, + modifier = + Modifier + .height(80.dp) + .fillMaxWidth() + .padding(vertical = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + onClick = { + val newWalletConfig = + NewWalletConfig( + name = walletName.value, + network = selectedNetwork.value, + scriptType = selectedScriptType.value, + ) + DwLogger.log(INFO, "Creating new wallet named ${newWalletConfig.name}") + onBuildWalletButtonClicked(WalletCreateType.FROMSCRATCH(newWalletConfig)) + }, + ) + } + } + } +} + +@Composable +fun NetworkOptionCard(networks: List, selectedNetwork: MutableState) { + Column( + Modifier + .fillMaxWidth() + .border( + width = 2.dp, + color = DevkitWalletColors.secondary, + shape = RoundedCornerShape(16.dp), + ).background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start, + ) { + Text( + text = "Network", + fontFamily = monoRegular, + fontSize = 18.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(top = 8.dp, start = 8.dp, bottom = 8.dp), + ) + + HorizontalDivider( + color = DevkitWalletColors.secondary, + thickness = 2.dp, + modifier = Modifier.padding(bottom = 8.dp) + ) + + networks.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedNetwork.value == it, + onSelect = { selectedNetwork.value = it }, + ) + if (index == 2) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + } +} + +@Composable +fun ScriptTypeOptionCard( + scriptTypes: List, + selectedScriptType: MutableState, +) { + Column( + Modifier + .fillMaxWidth() + .border( + width = 2.dp, + color = DevkitWalletColors.secondary, + shape = RoundedCornerShape(16.dp), + ).background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start, + ) { + Text( + text = "Script Type", + fontFamily = monoRegular, + fontSize = 18.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(top = 8.dp, start = 8.dp, bottom = 8.dp), + ) + + HorizontalDivider( + color = DevkitWalletColors.secondary, + thickness = 2.dp, + modifier = Modifier.padding(bottom = 8.dp) + ) + + scriptTypes.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedScriptType.value == it, + onSelect = { selectedScriptType.value = it }, + ) + if (index == 1) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + } +} + +@Composable +fun RadioButtonWithLabel(label: String, isSelected: Boolean, onSelect: () -> Unit) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(2.dp), + modifier = + Modifier + .padding(0.dp) + .selectable( + selected = isSelected, + onClick = onSelect, + ), + ) { + RadioButton( + selected = isSelected, + onClick = onSelect, + colors = + RadioButtonDefaults.colors( + selectedColor = DevkitWalletColors.accent1, + unselectedColor = DevkitWalletColors.accent2, + ), + modifier = + Modifier + .padding(0.dp), + ) + Text( + text = label, + color = DevkitWalletColors.white, + fontFamily = monoRegular, + fontSize = 14.sp, + modifier = + Modifier + .clickable(onClick = onSelect) + .padding(0.dp), + ) + } +} + +fun ActiveWalletScriptType.displayString(): String { + return when (this) { + ActiveWalletScriptType.P2TR -> "P2TR (Taproot, BIP-86)" + ActiveWalletScriptType.P2WPKH -> "P2WPKH (Native Segwit, BIP-84)" + ActiveWalletScriptType.UNKNOWN -> TODO() + ActiveWalletScriptType.UNRECOGNIZED -> TODO() + } +} + +fun Network.displayString(): String { + return when (this) { + Network.TESTNET -> "Testnet 3" + Network.TESTNET4 -> "Testnet 4" + Network.REGTEST -> "Regtest" + Network.SIGNET -> "Signet" + Network.BITCOIN -> TODO() + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" new file mode 100644 index 0000000..30ded03 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" @@ -0,0 +1,198 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.constraintlayout.compose.ConstraintLayout +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.devkitTypography +import org.bitcoindevkit.devkitwallet.presentation.theme.introText + +@Composable +fun OnboardingScreen(onFinishOnboarding: () -> Unit) { + val (currentIndex, setCurrentIndex) = remember { mutableIntStateOf(1) } + val messages = + listOf( + "Easter egg #1: \uD83E\uDD5A", + "Welcome to the Devkit Wallet! This app is a playground for developers and bitcoin enthusiasts to experiment with bitcoin's test networks.", + "It is developed with the Bitcoin Dev Kit, a powerful set of libraries produced and maintained by the Bitcoin Dev Kit Foundation.", + "This version of the app is using Compact Block Filters to sync its wallets.", + "The Foundation maintains this app as a way to showcase the capabilities of the Bitcoin Dev Kit and to provide a starting point for developers to build their own apps.\n\nIt is not a production application, and only works for testnet, signet, and regtest. Have fun!", + ) + + ConstraintLayout( + modifier = + Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary), + ) { + val (logo, intro, progress, buttons) = createRefs() + + Image( + painter = painterResource(id = R.drawable.bdk_logo), + contentDescription = "Bitcoin Dev Kit logo", + Modifier + .size(180.dp) + .constrainAs(logo) { + top.linkTo(parent.top, margin = 90.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + ) + + Crossfade( + modifier = + Modifier.constrainAs(intro) { + top.linkTo(logo.bottom, margin = 90.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + targetState = currentIndex, + label = "", + animationSpec = + tween( + durationMillis = 1000, + delayMillis = 200, + ), + ) { screen -> + when (screen) { + 0 -> IntroTextPart(messages[0]) + 1 -> IntroTextPart(messages[1]) + 2 -> IntroTextPart(messages[2]) + 3 -> IntroTextPart(messages[3]) + 4 -> IntroTextPart(messages[4]) + } + } + + Row( + modifier = + Modifier.constrainAs(progress) { + bottom.linkTo(buttons.top, margin = 32.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + horizontalArrangement = Arrangement.Center, + ) { + Box( + modifier = + Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 1) Color(0xffE9C46A) else Color(0xffE9C46A).copy(alpha = 0.3f), + ), + ) + Box( + modifier = + Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 2) Color(0xffE9C46A) else Color(0xffE9C46A).copy(alpha = 0.3f), + ), + ) + Box( + modifier = + Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 3) Color(0xffE9C46A) else Color(0xffE9C46A).copy(alpha = 0.3f), + ), + ) + Box( + modifier = + Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 4) Color(0xffE9C46A) else Color(0xffE9C46A).copy(alpha = 0.3f), + ), + ) + } + + Row( + modifier = + Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) + .constrainAs(buttons) { + bottom.linkTo(parent.bottom, margin = 32.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Text( + text = "Previous", + modifier = + Modifier + .clickable( + indication = null, + interactionSource = remember { MutableInteractionSource() }, + ) { setCurrentIndex((currentIndex - 1).coerceIn(0, 3)) }, + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge, + ) + Text( + text = if (currentIndex < 4) "Next" else "Awesome!", + modifier = + Modifier + .clickable( + indication = null, + interactionSource = remember { MutableInteractionSource() }, + ) { + if (currentIndex < 4) { + setCurrentIndex( + (currentIndex + 1).coerceIn(0, 4) + ) + } else { + onFinishOnboarding() + } + }, + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge, + ) + } + } +} + +@Composable +fun IntroTextPart(message: String) { + Text( + text = message, + modifier = Modifier.padding(horizontal = 32.dp), + color = DevkitWalletColors.white, + style = introText, + ) +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" new file mode 100644 index 0000000..c401dbd --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" @@ -0,0 +1,402 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import android.util.Log +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SegmentedButton +import androidx.compose.material3.SegmentedButtonDefaults +import androidx.compose.material3.SingleChoiceSegmentedButtonRow +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import androidx.navigation.compose.rememberNavController +import kotlinx.coroutines.launch +import org.bitcoindevkit.Descriptor +import org.bitcoindevkit.DescriptorSecretKey +import org.bitcoindevkit.KeychainKind +import org.bitcoindevkit.Mnemonic +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.data.RecoverWalletConfig +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.bip39WordList +import org.bitcoindevkit.devkitwallet.domain.createScriptAppropriateDescriptor +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.CustomSnackbar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NetworkOptionsCard +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.WalletOptionsCard + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun RecoverWalletScreen(onAction: (WalletCreateType) -> Unit, navController: NavController) { + val scope = rememberCoroutineScope() + val snackbarHostState = remember { SnackbarHostState() } + + Scaffold( + topBar = { SecondaryScreensAppBar(title = "Recover a Wallet", navigation = { navController.navigateUp() }) }, + snackbarHost = { + SnackbarHost(hostState = snackbarHostState) { data -> + CustomSnackbar(data) + } + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + var selectedIndex by remember { mutableIntStateOf(0) } + val options = listOf("Descriptor", "Recovery Phrase") + + var descriptorString by remember { mutableStateOf("") } + var changeDescriptorString by remember { mutableStateOf("") } + var recoveryPhrase by remember { mutableStateOf("") } + + var walletName by remember { mutableStateOf("") } + val selectedNetwork: MutableState = remember { mutableStateOf(Network.SIGNET) } + val selectedScriptType: MutableState = + remember { mutableStateOf(ActiveWalletScriptType.P2TR) } + val scriptTypes = listOf(ActiveWalletScriptType.P2TR, ActiveWalletScriptType.P2WPKH) + + Column( + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues), + ) { + SingleChoiceSegmentedButtonRow { + options.forEachIndexed { index, label -> + SegmentedButton( + shape = + SegmentedButtonDefaults.itemShape( + index = index, + count = options.size, + ), + onClick = { selectedIndex = index }, + selected = index == selectedIndex, + label = { Text(text = label, fontSize = 12.sp, color = Color.White) }, + colors = + SegmentedButtonDefaults.colors( + activeContainerColor = DevkitWalletColors.primaryLight, + activeContentColor = DevkitWalletColors.primaryLight, + activeBorderColor = DevkitWalletColors.primaryLight, + inactiveContainerColor = DevkitWalletColors.primaryDark, + inactiveContentColor = DevkitWalletColors.primaryDark, + inactiveBorderColor = DevkitWalletColors.primaryDark, + ), + border = BorderStroke(4.dp, DevkitWalletColors.primaryDark), + icon = { }, + modifier = Modifier.width(180.dp).padding(top = 8.dp), + ) + } + } + Spacer(modifier = Modifier.padding(12.dp)) + + if (selectedIndex == 0) { + DescriptorInput( + walletName, + descriptorString, + changeDescriptorString, + selectedNetwork, + walletNameOnValueChange = { walletName = it }, + descriptorOnValueChange = { descriptorString = it }, + changeDescriptorOnValueChange = { changeDescriptorString = it }, + ) + Spacer(modifier = Modifier.weight(1f)) + } else { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.padding(horizontal = 32.dp), + ) { + WalletOptionsCard(scriptTypes, selectedNetwork, selectedScriptType) + Spacer(modifier = Modifier.padding(12.dp)) + OutlinedTextField( + modifier = + Modifier + .padding(bottom = 8.dp) + .fillMaxWidth() + .align(Alignment.CenterHorizontally), + value = walletName, + onValueChange = { walletName = it }, + label = { + Text( + text = "Give your wallet a name", + style = standardText, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = monoRegular, color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + RecoveryPhraseInput(recoveryPhrase, onValueChange = { recoveryPhrase = it }) + } + Spacer(modifier = Modifier.weight(1f)) + } + NeutralButton( + text = "Recover Wallet", + enabled = true, + onClick = { + if (descriptorString.isNotEmpty() && recoveryPhrase.isNotEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You cannot recover using both a descriptor and a recovery phrase at the same time.", + ) + } + } + if (descriptorString.isEmpty() && recoveryPhrase.isEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You must provide either a descriptor or a recovery phrase to recover a wallet.", + ) + } + } + if (descriptorString.isNotEmpty() && changeDescriptorString.isEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You must provide two descriptors for recovery.", + ) + } + } + if (descriptorString.isEmpty() && changeDescriptorString.isNotEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You must provide two descriptors for recovery.", + ) + } + } + if (recoveryPhrase.isNotEmpty()) { + Log.i("RecoverWalletScreen", "Recovering wallet with recovery phrase") + val parsingResult = parseRecoveryPhrase(recoveryPhrase) + + if (parsingResult is RecoveryPhraseValidationResult.Invalid) { + scope.launch { + snackbarHostState.showSnackbar(parsingResult.reason) + } + } else if (parsingResult is RecoveryPhraseValidationResult.ProbablyValid) { + val mnemonic = Mnemonic.fromString(parsingResult.recoveryPhrase) + val bip32ExtendedRootKey = DescriptorSecretKey(selectedNetwork.value, mnemonic, null) + val descriptor = + createScriptAppropriateDescriptor( + scriptType = selectedScriptType.value, + bip32ExtendedRootKey = bip32ExtendedRootKey, + network = selectedNetwork.value, + keychain = KeychainKind.EXTERNAL, + ) + val changeDescriptor = + createScriptAppropriateDescriptor( + scriptType = selectedScriptType.value, + bip32ExtendedRootKey = bip32ExtendedRootKey, + network = selectedNetwork.value, + keychain = KeychainKind.INTERNAL, + ) + val recoverWalletConfig = + RecoverWalletConfig( + name = walletName, + network = selectedNetwork.value, + scriptType = selectedScriptType.value, + descriptor = descriptor, + changeDescriptor = changeDescriptor, + recoveryPhrase = parsingResult.recoveryPhrase, + ) + DwLogger.log(INFO, "Recovering wallet with recovery phrase (name: $walletName)") + onAction(WalletCreateType.RECOVER(recoverWalletConfig)) + } + } + if (descriptorString.isNotEmpty() && changeDescriptorString.isNotEmpty()) { + Log.i("RecoverWalletScreen", "Recovering wallet with descriptors") + + val descriptor = Descriptor(descriptorString, selectedNetwork.value) + val changeDescriptor = Descriptor(changeDescriptorString, selectedNetwork.value) + val recoverWalletConfig = + RecoverWalletConfig( + name = walletName, + network = selectedNetwork.value, + scriptType = null, + descriptor = descriptor, + changeDescriptor = changeDescriptor, + recoveryPhrase = null, + ) + DwLogger.log(INFO, "Recovering wallet with descriptors (name: $walletName)") + onAction(WalletCreateType.RECOVER(recoverWalletConfig)) + } + }, + ) + } + } +} + +@Composable +fun DescriptorInput( + walletName: String, + descriptor: String, + changeDescriptor: String, + selectedNetwork: MutableState, + walletNameOnValueChange: (String) -> Unit, + descriptorOnValueChange: (String) -> Unit, + changeDescriptorOnValueChange: (String) -> Unit, +) { + Column( + Modifier.padding(horizontal = 32.dp), + ) { + NetworkOptionsCard( + selectedNetwork, + ) + OutlinedTextField( + modifier = + Modifier + .fillMaxWidth() + .align(Alignment.CenterHorizontally) + .padding(top = 16.dp), + value = walletName, + onValueChange = { walletNameOnValueChange(it) }, + label = { + Text( + text = "Give your wallet a name", + style = standardText, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = monoRegular, color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + OutlinedTextField( + modifier = Modifier.fillMaxWidth().padding(top = 16.dp), + value = descriptor, + onValueChange = { descriptorOnValueChange(it) }, + label = { + Text( + text = "Input your descriptor here", + style = standardText, + ) + }, + singleLine = false, + minLines = 5, + textStyle = TextStyle(fontFamily = quattroRegular, fontSize = 12.sp, color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + OutlinedTextField( + modifier = Modifier.fillMaxWidth().padding(top = 16.dp), + value = changeDescriptor, + onValueChange = { changeDescriptorOnValueChange(it) }, + label = { + Text( + text = "Input your change descriptor here", + style = standardText, + ) + }, + singleLine = false, + minLines = 5, + textStyle = TextStyle(fontFamily = quattroRegular, fontSize = 12.sp, color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } +} + +@Composable +fun RecoveryPhraseInput(recoveryPhrase: String, onValueChange: (String) -> Unit) { + Column { + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = recoveryPhrase, + onValueChange = { onValueChange(it) }, + label = { + Text( + text = "Input 12-word recovery phrase here", + style = standardText, + ) + }, + singleLine = false, + minLines = 5, + textStyle = TextStyle(fontFamily = quattroRegular, fontSize = 12.sp, color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } +} + +private fun parseRecoveryPhrase(recoveryPhrase: String): RecoveryPhraseValidationResult { + val words = recoveryPhrase.trim().split(" ") + if (words.size != 12) { + return RecoveryPhraseValidationResult.Invalid("Recovery phrase must have 12 words") + } + if (words.any { it !in bip39WordList }) { + return RecoveryPhraseValidationResult.Invalid("Invalid word in recovery phrase") + } + return RecoveryPhraseValidationResult.ProbablyValid(recoveryPhrase) +} + +sealed class RecoveryPhraseValidationResult { + data class ProbablyValid(val recoveryPhrase: String) : RecoveryPhraseValidationResult() + + data class Invalid(val reason: String) : RecoveryPhraseValidationResult() +} + +@Preview(device = Devices.PIXEL_4, showBackground = true) +@Composable +internal fun PreviewWalletRecoveryScreen() { + RecoverWalletScreen( + onAction = {}, + navController = rememberNavController(), + ) +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" new file mode 100644 index 0000000..9185d6b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" @@ -0,0 +1,154 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.presentation.navigation.ActiveWalletsScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.CreateNewWalletScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletRecoveryScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoBold + +@Composable +internal fun WalletChoiceScreen(navController: NavController) { + Scaffold( + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + ConstraintLayout( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues), + ) { + val (logo, active, create, recover) = createRefs() + + Row( + modifier = + Modifier + .fillMaxWidth() + .padding(top = 90.dp) + .constrainAs(logo) { + top.linkTo(parent.top) + }, + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + Image( + painter = painterResource(id = R.drawable.ic_testnet_logo), + contentDescription = "Bitcoin testnet logo", + Modifier.size(90.dp), + ) + Spacer(modifier = Modifier.padding(8.dp)) + Text( + text = "Devkit\nWallet", + color = DevkitWalletColors.white, + fontSize = 28.sp, + lineHeight = 38.sp, + fontFamily = monoBold, + ) + } + + Button( + onClick = { navController.navigate(ActiveWalletsScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + enabled = true, + modifier = + Modifier + .size(width = 300.dp, height = 150.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(active) { + bottom.linkTo(create.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + ) { + Text( + text = "Use an\nActive Wallet", + // fontSize = 18.sp, + textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + + Button( + onClick = { navController.navigate(CreateNewWalletScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = + Modifier + .size(width = 300.dp, height = 150.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(create) { + bottom.linkTo(recover.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + ) { + Text( + text = "Create a\nNew Wallet", + // fontSize = 18.sp, + textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + + Button( + onClick = { navController.navigate(WalletRecoveryScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = + Modifier + .size(width = 300.dp, height = 150.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(recover) { + bottom.linkTo(parent.bottom, margin = 70.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + ) { + Text( + text = "Recover an\nExisting Wallet", + // fontSize = 18.sp, + textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + } + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewWalletChoiceScreen() { +// WalletChoiceScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" new file mode 100644 index 0000000..7d64939 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" @@ -0,0 +1,260 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.runtime.Composable +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController + +private const val TAG = "RBFScreen" + +@Composable +internal fun RBFScreen( + txid: String?, + navController: NavController, + paddingValues: PaddingValues = PaddingValues(0.dp), +) { +// if (txid.isNullOrEmpty()) { +// navController.popBackStack() +// } +// var transaction: TransactionDetails? = getTransaction(txid = txid) +// if (transaction == null) { +// navController.popBackStack() +// } +// transaction = transaction as TransactionDetails +// val context = LocalContext.current +// +// val amount = (transaction.sent - transaction.received - (transaction.fee ?: 0UL)).toString() +// val feeRate: MutableState = rememberSaveable { mutableStateOf("") } +// val (showDialog, setShowDialog) = rememberSaveable { mutableStateOf(false) } +// +// ConstraintLayout( +// modifier = Modifier +// .fillMaxSize() +// .padding(paddingValues) +// .background(DevkitWalletColors.primary) +// ) { +// val (screenTitle, transactionInputs, bottomButtons) = createRefs() +// +// Text( +// text = "Send Bitcoin", +// color = DevkitWalletColors.white, +// fontSize = 28.sp, +// textAlign = TextAlign.Center, +// modifier = Modifier +// .constrainAs(screenTitle) { +// top.linkTo(parent.top) +// start.linkTo(parent.start) +// end.linkTo(parent.end) +// } +// .padding(top = 70.dp) +// ) +// +// Column( +// horizontalAlignment = Alignment.CenterHorizontally, +// verticalArrangement = Arrangement.Center, +// modifier = Modifier.constrainAs(transactionInputs) { +// top.linkTo(screenTitle.bottom) +// bottom.linkTo(bottomButtons.top) +// start.linkTo(parent.start) +// end.linkTo(parent.end) +// height = Dimension.fillToConstraints +// } +// ) { +// ShowTxnDetail(name = "Transaction Id",content = txid!!) +// ShowTxnDetail(name = "Amount", content = amount) +// TransactionFeeInput(feeRate = feeRate) +// BumpFeeDialog( +// txid = txid, +// amount = amount, +// feeRate = feeRate, +// showDialog = showDialog, +// setShowDialog = setShowDialog, +// context = context +// ) +// } +// Column( +// Modifier +// .constrainAs(bottomButtons) { +// bottom.linkTo(parent.bottom) +// start.linkTo(parent.start) +// end.linkTo(parent.end) +// } +// .padding(bottom = 32.dp) +// ) { +// Button( +// onClick = { setShowDialog(true) }, +// colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), +// shape = RoundedCornerShape(16.dp), +// modifier = Modifier +// .height(80.dp) +// .fillMaxWidth(0.9f) +// .padding(vertical = 8.dp, horizontal = 8.dp) +// .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) +// ) { +// Text( +// text = "broadcast transaction", +// fontSize = 14.sp, +// textAlign = TextAlign.Center, +// lineHeight = 28.sp, +// ) +// } +// Button( +// onClick = { navController.navigate(Screen.HomeScreen.route) }, +// colors = ButtonDefaults.buttonColors(DevkitWalletColors.primaryLight), +// shape = RoundedCornerShape(16.dp), +// modifier = Modifier +// .height(80.dp) +// .fillMaxWidth(0.9f) +// .padding(vertical = 8.dp, horizontal = 8.dp) +// .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) +// ) { +// Text( +// text = "back to wallet", +// fontSize = 14.sp, +// textAlign = TextAlign.Center, +// lineHeight = 28.sp, +// ) +// } +// } +// } +} +// +// @OptIn(ExperimentalMaterial3Api::class) +// @Composable +// private fun ShowTxnDetail(name: String, content: String) { +// Row( +// verticalAlignment = Alignment.CenterVertically, +// modifier = Modifier.fillMaxWidth(fraction = 0.9f) +// ) { +// OutlinedTextField( +// modifier = Modifier +// .padding(vertical = 8.dp) +// .weight(0.5f), +// value = content, +// onValueChange = { }, +// label = { +// Text( +// text = name, +// color = DevkitWalletColors.white, +// ) +// }, +// singleLine = true, +// textStyle = TextStyle(color = DevkitWalletColors.white), +// colors = TextFieldDefaults.outlinedTextFieldColors( +// focusedBorderColor = DevkitWalletColors.accent1, +// unfocusedBorderColor = DevkitWalletColors.white, +// cursorColor = DevkitWalletColors.accent1, +// ), +// enabled = false, +// ) +// } +// } +// +// @OptIn(ExperimentalMaterial3Api::class) +// @Composable +// private fun TransactionFeeInput(feeRate: MutableState) { +// Column(horizontalAlignment = Alignment.CenterHorizontally) { +// OutlinedTextField( +// modifier = Modifier +// .padding(vertical = 8.dp) +// .fillMaxWidth(0.9f), +// value = feeRate.value, +// onValueChange = { newValue: String -> +// feeRate.value = newValue.filter { it.isDigit() } +// }, +// singleLine = true, +// textStyle = TextStyle(color = DevkitWalletColors.white), +// label = { +// Text( +// text = "New fee rate", +// color = DevkitWalletColors.white, +// ) +// }, +// colors = TextFieldDefaults.outlinedTextFieldColors( +// focusedBorderColor = DevkitWalletColors.accent1, +// unfocusedBorderColor = DevkitWalletColors.white, +// cursorColor = DevkitWalletColors.accent1, +// ), +// ) +// } +// } +// +// @Composable +// fun BumpFeeDialog( +// txid: String, +// amount: String, +// showDialog: Boolean, +// setShowDialog: (Boolean) -> Unit, +// context: Context, +// feeRate: MutableState, +// ) { +// if (showDialog) { +// var confirmationText = "Confirm Transaction : \nTxid : $txid\nAmount : $amount" +// if (feeRate.value.isNotEmpty()) { +// confirmationText += "Fee Rate : ${feeRate.value.toULong()}" +// } +// AlertDialog( +// containerColor = DevkitWalletColors.primaryLight, +// onDismissRequest = {}, +// title = { +// Text( +// text = "Confirm transaction", +// color = DevkitWalletColors.white +// ) +// }, +// text = { +// Text( +// text = confirmationText, +// color = DevkitWalletColors.white +// ) +// }, +// confirmButton = { +// TextButton( +// onClick = { +// if (feeRate.value.isNotEmpty()) { +// broadcastTransaction(txid = txid, feeRate = feeRate.value.toFloat()) +// } else { +// Toast.makeText(context, "Fee is empty!", Toast.LENGTH_SHORT).show() +// } +// setShowDialog(false) +// }, +// ) { +// Text( +// text = "Confirm", +// color = DevkitWalletColors.white +// ) +// } +// }, +// dismissButton = { +// TextButton( +// onClick = { +// setShowDialog(false) +// }, +// ) { +// Text( +// text = "Cancel", +// color = DevkitWalletColors.white +// ) +// } +// }, +// ) +// } +// } +// +// private fun broadcastTransaction(txid: String, feeRate: Float = 1F) { +// Log.i(TAG, "Attempting to broadcast transaction with inputs: txid $txid, fee rate: $feeRate") +// try { +// // create, sign, and broadcast +// val psbt: PartiallySignedTransaction = Wallet.createBumpFeeTransaction(txid = txid, feeRate = feeRate) +// Wallet.sign(psbt) +// val newTxid: String = Wallet.broadcast(psbt) +// Log.i(TAG, "Transaction was broadcast! txid: $newTxid") +// } catch (e: Throwable) { +// Log.i(TAG, "Broadcast error: ${e.message}") +// } +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" new file mode 100644 index 0000000..145c023 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" @@ -0,0 +1,239 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import android.util.Log +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.core.graphics.createBitmap +import androidx.navigation.NavController +import com.composables.icons.lucide.ClipboardCopy +import com.composables.icons.lucide.Lucide +import com.google.zxing.BarcodeFormat +import com.google.zxing.common.BitMatrix +import com.google.zxing.qrcode.QRCodeWriter +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenState + +private const val TAG = "ReceiveScreen" + +@Composable +internal fun ReceiveScreen( + state: ReceiveScreenState, + onAction: (ReceiveScreenAction) -> Unit, + navController: NavController, +) { + Log.i(TAG, "We are recomposing the ReceiveScreen") + val snackbarHostState = + remember { + SnackbarHostState() + } + Scaffold( + snackbarHost = { SnackbarHost(snackbarHostState) }, + topBar = { + SecondaryScreensAppBar( + title = "Receive Address", + navigation = { navController.navigate(HomeScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + ConstraintLayout( + modifier = + Modifier + .padding(paddingValues) + .fillMaxSize(), + ) { + val (QRCode, bottomButtons) = createRefs() + val context = LocalContext.current + val scope = rememberCoroutineScope() + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = + Modifier + .constrainAs(QRCode) { + top.linkTo(parent.top) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + }.padding(horizontal = 32.dp), + ) { + val QR: ImageBitmap? = state.address?.let { addressToQR(it) } + Log.i("ReceiveScreen", "New receive address is ${state.address}") + if (QR != null) { + Image( + bitmap = QR, + contentDescription = "Bitcoindevkit website QR code", + Modifier.size(250.dp).clip(RoundedCornerShape(16.dp)), + ) + Spacer(modifier = Modifier.padding(vertical = 16.dp)) + Box { + SelectionContainer { + Text( + modifier = + Modifier + .clickable { + copyToClipboard( + state.address, + context, + scope, + snackbarHostState, + null, + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).padding(12.dp), + text = state.address.chunked(4).joinToString(" "), + fontFamily = monoRegular, + color = DevkitWalletColors.white, + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = + Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd), + ) + } + Spacer(modifier = Modifier.padding(vertical = 16.dp)) + Text( + text = "Wallet address index: ${state.addressIndex}", + fontFamily = monoRegular, + color = DevkitWalletColors.white, + modifier = Modifier.align(Alignment.Start), + ) + } + } + + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.padding(bottom = 24.dp), + ) { + Button( + onClick = { onAction(ReceiveScreenAction.UpdateAddress) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = + Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + ) { + Text( + text = "Generate address", + style = standardText, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } + } + } +} + +private fun addressToQR(address: String): ImageBitmap? { + Log.i(TAG, "We are generating the QR code for address $address") + try { + val qrCodeWriter: QRCodeWriter = QRCodeWriter() + val bitMatrix: BitMatrix = qrCodeWriter.encode(address, BarcodeFormat.QR_CODE, 1000, 1000) + val bitMap = createBitmap(1000, 1000) + for (x in 0 until 1000) { + for (y in 0 until 1000) { + // DevkitWalletColors.primaryDark for dark and DevkitWalletColors.white for light + bitMap.setPixel(x, y, if (bitMatrix[x, y]) 0xff203b46.toInt() else 0xffffffff.toInt()) + } + } + return bitMap.asImageBitmap() + } catch (e: Throwable) { + Log.i("ReceiveScreen", "Error with QRCode generation, $e") + } + return null +} + +fun copyToClipboard( + content: String, + context: Context, + scope: CoroutineScope, + snackbarHostState: SnackbarHostState, + setCopyClicked: ( + (Boolean) -> Unit + )?, +) { + val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip: ClipData = ClipData.newPlainText("", content) + clipboard.setPrimaryClip(clip) + scope.launch { + snackbarHostState.showSnackbar("Copied address to clipboard!") + delay(1000) + if (setCopyClicked != null) { + setCopyClicked(false) + } + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewReceiveScreen() { +// ReceiveScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" new file mode 100644 index 0000000..32b0128 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" @@ -0,0 +1,568 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import android.content.Context +import android.widget.Toast +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.BottomSheetScaffold +import androidx.compose.material3.BottomSheetScaffoldState +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Switch +import androidx.compose.material3.SwitchDefaults +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.rememberBottomSheetScaffoldState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.SendViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.Recipient +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.SendScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TransactionType +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TxDataBundle + +private const val TAG = "SendScreen" + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun SendScreen(navController: NavController, sendViewModel: SendViewModel) { + val onAction = sendViewModel::onAction + + val context = LocalContext.current + val coroutineScope = rememberCoroutineScope() + + val recipientList: MutableList = remember { mutableStateListOf(Recipient(address = "", amount = 0u)) } + val feeRate: MutableState = rememberSaveable { mutableStateOf("") } + val (showDialog, setShowDialog) = rememberSaveable { mutableStateOf(false) } + + val sendAll: MutableState = remember { mutableStateOf(false) } + val opReturnMsg: MutableState = remember { mutableStateOf(null) } + + val bottomSheetScaffoldState: BottomSheetScaffoldState = rememberBottomSheetScaffoldState() + + BottomSheetScaffold( + topBar = { + SecondaryScreensAppBar( + title = "Send Bitcoin", + navigation = { navController.navigate(HomeScreen) }, + ) + }, + sheetShape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp), + sheetContent = { AdvancedOptions(sendAll, opReturnMsg, recipientList) }, + sheetContainerColor = DevkitWalletColors.primaryDark, + scaffoldState = bottomSheetScaffoldState, + sheetPeekHeight = 0.dp, + ) { paddingValues -> + ConstraintLayout( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues) + .background(DevkitWalletColors.primary), + ) { + val (transactionInputs, bottomButtons) = createRefs() + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = + Modifier.constrainAs(transactionInputs) { + top.linkTo(parent.top) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + }, + ) { + TransactionRecipientInput(recipientList = recipientList) + TransactionAmountInput( + recipientList = recipientList, + transactionType = if (sendAll.value) TransactionType.SEND_ALL else TransactionType.STANDARD, + ) + TransactionFeeInput(feeRate = feeRate) + MoreOptions(coroutineScope = coroutineScope, bottomSheetScaffoldState = bottomSheetScaffoldState) + Dialog( + recipientList = recipientList, + feeRate = feeRate, + showDialog = showDialog, + setShowDialog = setShowDialog, + transactionType = if (sendAll.value) TransactionType.SEND_ALL else TransactionType.STANDARD, + opReturnMsg = opReturnMsg.value, + context = context, + onAction = onAction, + ) + } + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.padding(bottom = 32.dp), + ) { + Button( + onClick = { setShowDialog(true) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + shape = RoundedCornerShape(16.dp), + modifier = + Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + ) { + Text( + text = "broadcast transaction", + fontSize = 14.sp, + fontFamily = quattroRegular, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } + } + } +} + +@Composable +internal fun AdvancedOptions( + sendAll: MutableState, + opReturnMsg: MutableState, + recipientList: MutableList, +) { + Column( + modifier = + Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 8.dp), + ) { + Row( + Modifier + .fillMaxWidth() + .padding(bottom = 8.dp), + horizontalArrangement = Arrangement.Center, + ) { + Text( + text = "Advanced Options", + color = DevkitWalletColors.white, + fontSize = 18.sp, + ) + } + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth(), + ) { + Text( + text = "Send All", + style = standardText, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + Spacer(modifier = Modifier.width(8.dp)) + Switch( + checked = sendAll.value, + onCheckedChange = { + sendAll.value = !sendAll.value + while (recipientList.size > 1) { + recipientList.removeLast() + } + }, + colors = + SwitchDefaults.colors( + uncheckedBorderColor = DevkitWalletColors.primaryDark, + uncheckedThumbColor = DevkitWalletColors.primaryDark, + uncheckedTrackColor = DevkitWalletColors.white, + checkedThumbColor = DevkitWalletColors.white, + checkedTrackColor = DevkitWalletColors.accent1, + ), + ) + } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = + Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = opReturnMsg.value ?: "", + onValueChange = { + opReturnMsg.value = it + }, + label = { + Text( + text = "Optional OP_RETURN message", + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } + + Row( + Modifier + .fillMaxWidth() + .padding(vertical = 4.dp), + horizontalArrangement = Arrangement.Center, + ) { + Text( + text = "Number of Recipients", + style = standardText, + ) + } + + Row( + Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + ) { + Button( + onClick = { + if (recipientList.size > 1) { + recipientList.removeLast() + } + }, + enabled = !sendAll.value, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + shape = RoundedCornerShape(16.dp), + modifier = Modifier.width(70.dp), + ) { + Text(text = "-") + } + + Text( + text = "${recipientList.size}", + color = DevkitWalletColors.white, + fontSize = 18.sp, + ) + + Button( + onClick = { recipientList.add(Recipient("", 0u)) }, + enabled = !sendAll.value, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent1), + shape = RoundedCornerShape(16.dp), + modifier = Modifier.width(70.dp), + ) { + Text(text = "+") + } + } + + Spacer(modifier = Modifier.height(32.dp)) + } +} + +@Composable +private fun TransactionRecipientInput(recipientList: MutableList) { + LazyColumn( + modifier = + Modifier + .fillMaxWidth(0.9f) + .heightIn(max = 100.dp), + ) { + itemsIndexed(recipientList) { index, _ -> + val recipientAddress: MutableState = rememberSaveable { mutableStateOf("") } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = + Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = recipientAddress.value, + onValueChange = { + recipientAddress.value = it + recipientList[index].address = it + }, + label = { + Text( + text = "Recipient address ${index + 1}", + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } + } + } +} + +fun checkRecipientList( + recipientList: MutableList, + feeRate: MutableState, + context: Context, +): Boolean { + if (recipientList.size > 4) { + Toast.makeText(context, "Too many recipients", Toast.LENGTH_SHORT).show() + return false + } + for (recipient in recipientList) { + if (recipient.address == "") { + Toast.makeText(context, "Address is empty", Toast.LENGTH_SHORT).show() + return false + } + } + if (feeRate.value.isBlank()) { + Toast.makeText(context, "Fee rate is empty", Toast.LENGTH_SHORT).show() + return false + } + return true +} + +@Composable +private fun TransactionAmountInput(recipientList: MutableList, transactionType: TransactionType) { + LazyColumn( + modifier = + Modifier + .fillMaxWidth(0.9f) + .heightIn(max = 100.dp), + ) { + itemsIndexed(recipientList) { index, _ -> + val amount: MutableState = rememberSaveable { mutableStateOf("") } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = + Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = amount.value, + onValueChange = { + amount.value = it + recipientList[index].amount = it.toULong() + }, + label = { + when (transactionType) { + TransactionType.SEND_ALL -> { + Text( + text = "Amount (Send All)", + color = DevkitWalletColors.white, + ) + } + else -> { + Text( + text = "Amount ${index + 1}", + color = DevkitWalletColors.white, + ) + } + } + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + enabled = ( + when (transactionType) { + TransactionType.SEND_ALL -> false + else -> true + } + ), + ) + } + } + } +} + +@Composable +private fun TransactionFeeInput(feeRate: MutableState) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + OutlinedTextField( + modifier = + Modifier + .padding(vertical = 8.dp) + .fillMaxWidth(0.9f), + value = feeRate.value, + onValueChange = { newValue: String -> + feeRate.value = newValue.filter { it.isDigit() } + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + label = { + Text( + text = "Fee rate", + color = DevkitWalletColors.white, + ) + }, + colors = + OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun MoreOptions(coroutineScope: CoroutineScope, bottomSheetScaffoldState: BottomSheetScaffoldState) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = + Modifier + .padding(vertical = 8.dp) + .background(DevkitWalletColors.secondary), + ) { + Button( + onClick = { + coroutineScope.launch { + bottomSheetScaffoldState.bottomSheetState.expand() + } + }, + colors = ButtonDefaults.buttonColors(Color.Transparent), + modifier = + Modifier + .height(60.dp) + .fillMaxWidth(fraction = 0.9f) + .padding(vertical = 8.dp), + ) { + Text( + text = "advanced options", + style = standardText, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } +} + +@Composable +private fun Dialog( + recipientList: MutableList, + feeRate: MutableState, + showDialog: Boolean, + setShowDialog: (Boolean) -> Unit, + transactionType: TransactionType, + opReturnMsg: String?, + context: Context, + onAction: (SendScreenAction) -> Unit, +) { + if (showDialog) { + var confirmationText = "Confirm Transaction : \n" + recipientList.forEach { confirmationText += "${it.address}, ${it.amount}\n" } + if (feeRate.value.isNotEmpty()) { + confirmationText += "Fee Rate : ${feeRate.value.toULong()}" + } + if (!opReturnMsg.isNullOrEmpty()) { + confirmationText += "OP_RETURN Message : $opReturnMsg" + } + AlertDialog( + containerColor = DevkitWalletColors.primaryLight, + onDismissRequest = {}, + title = { + Text( + text = "Confirm transaction", + color = DevkitWalletColors.white, + ) + }, + text = { + Text( + text = confirmationText, + color = DevkitWalletColors.white, + ) + }, + confirmButton = { + TextButton( + onClick = { + if (checkRecipientList(recipientList = recipientList, feeRate = feeRate, context = context)) { + val txDataBundle = + TxDataBundle( + recipients = recipientList, + feeRate = feeRate.value.toULong(), + transactionType = transactionType, + opReturnMsg = opReturnMsg, + ) + onAction(SendScreenAction.Broadcast(txDataBundle)) + setShowDialog(false) + } + }, + ) { + Text( + text = "Confirm", + color = DevkitWalletColors.white, + ) + } + }, + dismissButton = { + TextButton( + onClick = { + setShowDialog(false) + }, + ) { + Text( + text = "Cancel", + color = DevkitWalletColors.white, + ) + } + }, + ) + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewSendScreen() { +// SendScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" new file mode 100644 index 0000000..c4aa255 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" @@ -0,0 +1,72 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.TransactionScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.ui.components.ConfirmedTransactionCard +import org.bitcoindevkit.devkitwallet.presentation.ui.components.PendingTransactionCard +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private const val TAG = "TransactionHistoryScreen" + +@Composable +internal fun TransactionHistoryScreen(navController: NavController, activeWallet: Wallet) { + val (pendingTransactions, confirmedTransactions) = activeWallet.getAllTxDetails().partition { it.pending } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Transaction History", + navigation = { navController.navigate(HomeScreen) }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + val scrollState = rememberScrollState() + Column( + modifier = + Modifier + .padding(paddingValues) + .fillMaxSize() + .padding(top = 6.dp) + .verticalScroll(state = scrollState), + ) { + if (pendingTransactions.isNotEmpty()) { + pendingTransactions.forEach { + PendingTransactionCard(details = it, navController = navController) + } + } + if (confirmedTransactions.isNotEmpty()) { + confirmedTransactions.sortedBy { it.confirmationBlock?.height }.forEach { + ConfirmedTransactionCard(it, navController) + } + } + } + } +} + +fun viewTransaction(navController: NavController, txid: String) { + navController.navigate(TransactionScreen(txid)) +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewTransactionsScreen() { +// TransactionsScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" new file mode 100644 index 0000000..149e9dd --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" @@ -0,0 +1,203 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.presentation.navigation.RbfScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +@Composable +internal fun TransactionScreen(txid: String?, navController: NavController) { + // val transaction = getTransaction(txid = txid) + // if (transaction == null) { + // navController.popBackStack() + // } + // val transactionDetail = getTransactionDetails(transaction = transaction!!) + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Transaction Details", + navigation = { navController.navigateUp() }, + ) + }, + containerColor = DevkitWalletColors.primary, + ) { paddingValues -> + ConstraintLayout( + modifier = + Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(paddingValues), + ) { + val (screenTitle, transactions, bottomButton) = createRefs() + + Column( + modifier = + Modifier + .constrainAs(screenTitle) { + top.linkTo(parent.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.padding(top = 70.dp), + ) { + Text( + text = "Transaction", + color = DevkitWalletColors.white, + fontSize = 28.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth(), + ) + // Text( + // text = transactionTitle(transaction = transaction), + // color = DevkitWalletColors.white, + // fontSize = 14.sp, + // textAlign = TextAlign.Center, + // modifier = Modifier.padding(horizontal = 16.dp) + // ) + } + + LazyColumn( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = + Modifier.constrainAs(transactions) { + top.linkTo(screenTitle.bottom) + bottom.linkTo(bottomButton.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + }, + ) { + // items(transactionDetail) { + // Row( + // modifier = Modifier + // .fillMaxWidth() + // .padding(all = 16.dp) + // ) { + // Text( + // text = "${it.first} :", + // fontSize = 16.sp, + // color = DevkitWalletColors.white, + // ) + // Text( + // text = it.second, + // fontSize = 16.sp, + // textAlign = TextAlign.End, + // color = DevkitWalletColors.white, + // modifier = Modifier.fillMaxWidth() + // ) + // } + // } + } + + Column( + modifier = + Modifier + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(bottomButton) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + ) { + TransactionDetailButton( + content = "increase fees", + navController = navController, + txid = txid, + ) + } + } + } +} + +@Composable +fun TransactionDetailButton(content: String, navController: NavController, txid: String?) { + Button( + onClick = { + when (content) { + "increase fees" -> { + navController.navigate(RbfScreen(txid!!)) + } + "back to transaction list" -> { + navController.navigateUp() + } + } + }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = + Modifier + .height(60.dp) + .fillMaxWidth(), + ) { + Text( + text = content, + fontSize = 14.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } +} + +// fun getTransactionDetails(transaction: TransactionDetails): List> { +// val transactionDetails = mutableListOf>() +// +// if (transaction.confirmationTime != null) { +// transactionDetails.add(Pair("Status", "Confirmed")) +// transactionDetails.add(Pair("Timestamp", transaction.confirmationTime!!.timestamp.timestampToString())) +// transactionDetails.add(Pair("Received", (if (transaction.received < transaction.sent) 0 else transaction.received).toString())) +// transactionDetails.add(Pair("Sent", (if (transaction.sent < transaction.received) 0 else transaction.sent - transaction.received - transaction.fee!!).toString())) +// transactionDetails.add(Pair("Fees", transaction.fee.toString())) +// transactionDetails.add(Pair("Block", transaction.confirmationTime!!.height.toString())) +// } else { +// transactionDetails.add(Pair("Status", "Pending")) +// transactionDetails.add(Pair("Timestamp", "Pending")) +// transactionDetails.add(Pair("Received", (if (transaction.received < transaction.sent) 0 else transaction.received).toString())) +// transactionDetails.add(Pair("Sent", (if (transaction.sent < transaction.received) 0 else transaction.sent - transaction.received - transaction.fee!!).toString())) +// transactionDetails.add(Pair("Fees", transaction.fee.toString())) +// } +// return transactionDetails +// } +// +// fun transactionTitle(transaction: TransactionDetails): String { +// return transaction.txid +// } +// +// fun getTransaction(txid: String?): TransactionDetails? { +// if (txid.isNullOrEmpty()) { +// return null +// } +// return Wallet.getTransaction(txid = txid) +// } diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" new file mode 100644 index 0000000..0321d4d --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" @@ -0,0 +1,305 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.util.Log +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.CurrencyBitcoin +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CenterAlignedTopAppBar +import androidx.compose.material3.DrawerState +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavHostController +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.Menu +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit +import org.bitcoindevkit.devkitwallet.domain.utils.formatInBtc +import org.bitcoindevkit.devkitwallet.presentation.navigation.ReceiveScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.SendScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.TransactionHistoryScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroBold +import org.bitcoindevkit.devkitwallet.presentation.ui.components.CustomSnackbar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenState + +private const val TAG = "WalletHomeScreen" + +@Composable +internal fun WalletHomeScreen( + state: WalletScreenState, + onAction: (WalletScreenAction) -> Unit, + drawerState: DrawerState, + navController: NavHostController, +) { + val snackbarHostState = remember { SnackbarHostState() } + val networkAvailable: Boolean = isOnline(LocalContext.current) + val interactionSource = remember { MutableInteractionSource() } + val scope: CoroutineScope = rememberCoroutineScope() + + LaunchedEffect(Unit) { + onAction(WalletScreenAction.UpdateBalance) + } + + Scaffold( + topBar = { WalletAppBar(scope = scope, drawerState = drawerState) }, + containerColor = DevkitWalletColors.primary, + // snackbarHost = { SnackbarHost(snackbarHostState) }, + snackbarHost = { + SnackbarHost(hostState = snackbarHostState) { data -> + CustomSnackbar(data) + } + }, + ) { paddingValues -> + + // If a new snackbar has be triggered, show it + state.snackbarMessage?.let { message -> + Log.i("WalletHomeScreen", "Showing snackbar: $message") + LaunchedEffect(message) { + scope.launch { + snackbarHostState.showSnackbar(message) + onAction(WalletScreenAction.ClearSnackbar) + } + } + } + + Column( + modifier = + Modifier + .fillMaxSize() + .padding(paddingValues), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(Modifier.padding(24.dp)) + Row( + Modifier + .clickable( + interactionSource, + indication = null, + onClick = { onAction(WalletScreenAction.SwitchUnit) }, + ).fillMaxWidth(0.9f) + .padding(horizontal = 8.dp) + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp), + ).height(100.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceEvenly, + ) { + when (state.unit) { + CurrencyUnit.Bitcoin -> { + Icon( + imageVector = Icons.Rounded.CurrencyBitcoin, + tint = DevkitWalletColors.white, + contentDescription = "Bitcoin testnet logo", + modifier = + Modifier + .align(Alignment.CenterVertically) + .size(48.dp), + ) + Text( + text = state.balance.formatInBtc(), + fontFamily = monoRegular, + fontSize = 32.sp, + color = DevkitWalletColors.white, + ) + } + CurrencyUnit.Satoshi -> { + Text( + text = "${state.balance} sat", + fontFamily = monoRegular, + fontSize = 32.sp, + color = DevkitWalletColors.white, + ) + } + } + } + Spacer(modifier = Modifier.padding(4.dp)) + if (networkAvailable) { + Row( + modifier = Modifier.height(40.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + // if (state.syncing) LoadingAnimation() + } + } + + if (!networkAvailable) { + Row( + Modifier + .fillMaxWidth() + .background(color = DevkitWalletColors.accent2) + .height(50.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center, + ) { + Text( + text = "Network unavailable", + fontFamily = monoRegular, + fontSize = 16.sp, + color = DevkitWalletColors.white, + ) + } + } + + NeutralButton( + text = "transaction history", + enabled = networkAvailable, + onClick = { navController.navigate(TransactionHistoryScreen) }, + ) + + Row( + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + modifier = + Modifier + .height(140.dp) + .fillMaxWidth(0.9f), + ) { + Button( + onClick = { navController.navigate(ReceiveScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent1), + shape = RoundedCornerShape(16.dp), + modifier = + Modifier + .height(160.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + ) { + Text( + text = "receive", + fontSize = 16.sp, + textAlign = TextAlign.End, + lineHeight = 28.sp, + modifier = + Modifier + .fillMaxWidth(0.4f) + .align(Alignment.Bottom), + ) + } + + Button( + onClick = { navController.navigate(SendScreen) }, + colors = + ButtonDefaults.buttonColors( + containerColor = DevkitWalletColors.accent2, + disabledContainerColor = DevkitWalletColors.accent2, + ), + shape = RoundedCornerShape(16.dp), + enabled = networkAvailable, + modifier = + Modifier + .height(160.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + ) { + Text( + text = "send", + fontSize = 16.sp, + textAlign = TextAlign.End, + lineHeight = 28.sp, + modifier = + Modifier + .fillMaxWidth() + .align(Alignment.Bottom), + ) + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun WalletAppBar(scope: CoroutineScope, drawerState: DrawerState) { + CenterAlignedTopAppBar( + title = { + Text( + text = "Devkit Wallet", + color = DevkitWalletColors.white, + // fontFamily = quattroRegular, + fontFamily = quattroBold, + fontSize = 20.sp, + ) + }, + navigationIcon = { + IconButton(onClick = { scope.launch { drawerState.open() } }) { + Icon( + imageVector = Lucide.Menu, + contentDescription = "Open drawer", + tint = DevkitWalletColors.white, + ) + } + }, + colors = + TopAppBarDefaults.topAppBarColors( + containerColor = DevkitWalletColors.primaryDark, + ), + ) +} + +fun isOnline(context: Context): Boolean { + val connectivityManager = + context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val capabilities = + connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork) + if (capabilities != null) { + when { + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_CELLULAR") + return true + } + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_WIFI") + return true + } + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_ETHERNET") + return true + } + } + } + return false +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" new file mode 100644 index 0000000..dff1dd0 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" @@ -0,0 +1,39 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.lifecycle.ViewModel +import org.bitcoindevkit.AddressInfo +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenState + +internal class AddressViewModel(private val wallet: Wallet) : ViewModel() { + var state: ReceiveScreenState by mutableStateOf(ReceiveScreenState()) + private set + + fun onAction(action: ReceiveScreenAction) { + when (action) { + is ReceiveScreenAction.UpdateAddress -> updateAddress() + } + } + + private fun updateAddress() { + val newAddress: AddressInfo = wallet.getNewAddress() + DwLogger.log(INFO, "Revealing new address at index ${newAddress.index}") + + state = + ReceiveScreenState( + address = newAddress.address.toString(), + addressIndex = newAddress.index, + ) + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" new file mode 100644 index 0000000..4cc7ca5 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" @@ -0,0 +1,51 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels + +import android.util.Log +import androidx.lifecycle.ViewModel +import org.bitcoindevkit.FeeRate +import org.bitcoindevkit.Psbt +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.SendScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TransactionType +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TxDataBundle + +private const val TAG = "SendViewModel" + +internal class SendViewModel(private val wallet: Wallet) : ViewModel() { + fun onAction(action: SendScreenAction) { + when (action) { + is SendScreenAction.Broadcast -> broadcast(action.txDataBundle) + } + } + + private fun broadcast(txInfo: TxDataBundle) { + try { + // Create, sign, and broadcast + val psbt: Psbt = + when (txInfo.transactionType) { + TransactionType.STANDARD -> + wallet.createTransaction( + recipientList = txInfo.recipients, + feeRate = FeeRate.fromSatPerVb(txInfo.feeRate), + opReturnMsg = txInfo.opReturnMsg, + ) + // TransactionType.SEND_ALL -> Wallet.createSendAllTransaction(recipientList[0].address, FeeRate.fromSatPerVb(feeRate), rbfEnabled, opReturnMsg) + TransactionType.SEND_ALL -> throw NotImplementedError("Send all not implemented") + } + val isSigned = wallet.sign(psbt) + if (isSigned) { + val txid: String = wallet.broadcast(psbt) + Log.i(TAG, "Transaction was broadcast! txid: $txid") + } else { + Log.i(TAG, "Transaction not signed.") + } + } catch (e: Throwable) { + Log.i(TAG, "Broadcast error: ${e.message}") + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" new file mode 100644 index 0000000..29e0056 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" @@ -0,0 +1,157 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels + +import android.util.Log +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.cancelChildren +import kotlinx.coroutines.launch +import org.bitcoindevkit.Warning +import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.KyotoNodeStatus +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenState + +private const val TAG = "WalletViewModel" + +internal class WalletViewModel( + private val wallet: Wallet, +) : ViewModel() { + var state: WalletScreenState by mutableStateOf(WalletScreenState()) + private set + + private val kyotoCoroutineScope: CoroutineScope = CoroutineScope(Dispatchers.IO) + private var latestBlock: Int = 0 + + fun onAction(action: WalletScreenAction) { + when (action) { + WalletScreenAction.SwitchUnit -> switchUnit() + WalletScreenAction.UpdateBalance -> updateBalance() + WalletScreenAction.StartKyotoNode -> startKyotoNode() + WalletScreenAction.StopKyotoNode -> stopKyotoNode() + WalletScreenAction.StartKyotoSync -> startKyotoSync() + WalletScreenAction.ClearSnackbar -> clearSnackbar() + } + } + + private fun showSnackbar(message: String) { + state = state.copy(snackbarMessage = message) + } + + private fun clearSnackbar() { + state = state.copy(snackbarMessage = null) + } + + private fun switchUnit() { + state = + when (state.unit) { + CurrencyUnit.Bitcoin -> state.copy(unit = CurrencyUnit.Satoshi) + CurrencyUnit.Satoshi -> state.copy(unit = CurrencyUnit.Bitcoin) + } + } + + private fun updateLatestBlock(blockHeight: UInt) { + state = state.copy(latestBlock = blockHeight) + } + + private fun updateBalance() { + viewModelScope.launch(Dispatchers.IO) { + val newBalance = wallet.getBalance() + Log.i("Kyoto", "New balance: $newBalance") + DwLogger.log(INFO, "New balance: $newBalance") + + state = state.copy(balance = newBalance) + Log.i("Kyoto", "New state object: $state") + DwLogger.log(INFO, "New state object: $state") + } + } + + private fun startKyotoNode() { + Log.i("Kyoto", "Starting Kyoto node") + DwLogger.log(INFO, "Starting Kyoto node") + wallet.startKyotoNode() + state = state.copy(kyotoNodeStatus = KyotoNodeStatus.Running) + } + + private fun startKyotoSync() { + Log.i("Kyoto", "Starting Kyoto sync") + DwLogger.log(INFO, "Starting Kyoto sync") + kyotoCoroutineScope.launch { + while (wallet.kyotoClient != null) { + val update = wallet.kyotoClient?.update() + if (update == null) { + Log.i("Kyoto", "UPDATE: Update is null") + } else { + Log.i("Kyoto", "UPDATE: Applying an update to the wallet") + wallet.applyUpdate(update) + } + updateBalance() + } + } + + kyotoCoroutineScope.launch { + while (wallet.kyotoClient != null) { + val nextLog: org.bitcoindevkit.Log = wallet.kyotoClient!!.nextLog() + Log.i("Kyoto", "LOG: $nextLog") + val logString = nextLog.toString() + if (logString.contains("Compact Filter Headers")) { + val regex = Regex("""\d+/\d+""") + + val lastNumber = regex.findAll(logString) + .lastOrNull() + ?.value + ?.split("/") + ?.getOrNull(1) + ?.toIntOrNull() + + if (lastNumber != null) { + if (lastNumber > latestBlock) { + latestBlock = lastNumber + // Log.i("Kyoto", "New block: $latestBlock") + updateLatestBlock(latestBlock.toUInt()) + showSnackbar("New block mined! $latestBlock \uD83C\uDF89\uD83C\uDF89") + } + } + } + } + } + + kyotoCoroutineScope.launch { + while (wallet.kyotoClient != null) { + val nextWarning: Warning = wallet.kyotoClient!!.nextWarning() + Log.i("Kyoto", "WARNING: $nextWarning") + } + } + } + + private fun stopKyotoNode() { + Log.i("Kyoto", "Stopping Kyoto node") + DwLogger.log(INFO, "Stopping Kyoto node") + viewModelScope.launch { + try { + Log.i("Kyoto", "Calling wallet.stopKyotoNode() on thread: ${Thread.currentThread().name}") + wallet.stopKyotoNode() + + // Cancel all coroutines started by startKyotoSync + kyotoCoroutineScope.coroutineContext.cancelChildren() + + Log.i("Kyoto", "Kyoto node stopped successfully.") + state = state.copy(kyotoNodeStatus = KyotoNodeStatus.Stopped) + }catch (e : Exception){ + Log.e("Kyoto", "Error stopping Kyoto node: ${e.message}", e) + } + } + } +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" new file mode 100644 index 0000000..c79ba1f --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" @@ -0,0 +1,15 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi + +data class ReceiveScreenState( + val address: String? = null, + val addressIndex: UInt? = null, +) + +sealed interface ReceiveScreenAction { + data object UpdateAddress : ReceiveScreenAction +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" new file mode 100644 index 0000000..431bd4e --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" @@ -0,0 +1,29 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi + +// data class SendScreenState( +// val address: String? = null, +// ) + +sealed class SendScreenAction { + data class Broadcast(val txDataBundle: TxDataBundle) : SendScreenAction() +} + +data class TxDataBundle( + val recipients: List, + val feeRate: ULong, + val transactionType: TransactionType, + val rbfDisabled: Boolean = false, + val opReturnMsg: String? = null, +) + +data class Recipient(var address: String, var amount: ULong) + +enum class TransactionType { + STANDARD, + SEND_ALL, +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" new file mode 100644 index 0000000..c996c49 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" @@ -0,0 +1,35 @@ +/* + * Copyright 2021-2024 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi + +import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit + +data class WalletScreenState( + val balance: ULong = 0u, + val unit: CurrencyUnit = CurrencyUnit.Bitcoin, + val latestBlock: UInt = 0u, + val snackbarMessage: String? = null, + val kyotoNodeStatus: KyotoNodeStatus = KyotoNodeStatus.Stopped, +) + +sealed interface WalletScreenAction { + data object UpdateBalance : WalletScreenAction + + data object SwitchUnit : WalletScreenAction + + data object StartKyotoNode : WalletScreenAction + + data object StopKyotoNode : WalletScreenAction + + data object StartKyotoSync : WalletScreenAction + + data object ClearSnackbar : WalletScreenAction +} + +enum class KyotoNodeStatus { + Running, + Stopped, +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/proto/wallets.proto" "b/Variant \342\200\224 Kyoto/app/src/main/proto/wallets.proto" new file mode 100644 index 0000000..2f1f8a8 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/proto/wallets.proto" @@ -0,0 +1,32 @@ +syntax = "proto3"; + +option java_package = "org.bitcoindevkit.devkitwallet.data"; +option java_multiple_files = true; + +message UserPreferences { + bool introDone = 1; + repeated SingleWallet wallets = 2; +} + +message SingleWallet { + string id = 1; + string name = 2; + ActiveWalletNetwork network = 3; + ActiveWalletScriptType scriptType = 4; + string descriptor = 5; + string changeDescriptor = 6; + string recoveryPhrase = 7; + bool fullScanCompleted = 8; +} + +enum ActiveWalletNetwork { + TESTNET = 0; + SIGNET = 1; + REGTEST = 2; +} + +enum ActiveWalletScriptType { + P2WPKH = 0; + P2TR = 1; + UNKNOWN = 2; +} diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable/bdk_logo.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/bdk_logo.xml" new file mode 100644 index 0000000..a28d65b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/bdk_logo.xml" @@ -0,0 +1,24 @@ + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_bitcoin_logo.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_bitcoin_logo.xml" new file mode 100644 index 0000000..d57d1bb --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_bitcoin_logo.xml" @@ -0,0 +1,12 @@ + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_background.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_background.xml" new file mode 100644 index 0000000..6884ff0 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_background.xml" @@ -0,0 +1,9 @@ + + + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" new file mode 100644 index 0000000..227c9e3 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" @@ -0,0 +1,29 @@ + + + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_testnet_logo.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_testnet_logo.xml" new file mode 100644 index 0000000..d57d1bb --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/ic_testnet_logo.xml" @@ -0,0 +1,12 @@ + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/drawable/launch_screen.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/launch_screen.xml" new file mode 100644 index 0000000..52e7de9 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/drawable/launch_screen.xml" @@ -0,0 +1,11 @@ + + + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_bold.ttf" "b/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_bold.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..c9c06a2a38255e3361314d65042dfece0e0c33e7 GIT binary patch literal 96168 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ⅇ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 t}JZcqZ`G!1F;@ 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 S@d=+sJkU@~I-*w4&;J0ovcHJ{ literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_regular.ttf" "b/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_regular.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..1308a4c30d2a5da6518e15bfafe1ff015bea0ccc GIT binary patch literal 97044 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%0AgIH^@40z%2MZP4Nh% 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 wD3QSbHCJrGhQ5_nH?{>{SYWMKcACCvH$=8 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" "b/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..433395291a78067922f05fb38888c21483b31f84 GIT binary patch literal 104120 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%0As^C{;bK|do7 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ͩpc)_O82K3pY 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 Ht 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" "b/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..0ae7e61c3d6586c6df9795774c7b15d7b32526a4 GIT binary patch literal 104520 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�A&}L8Kvpobf`G<( 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%0DQMx5neH64 z^71Q$&qa1TD$<<`nhKLUAI>}~MJI~eP>RvmQ(E&)WYF$;DCPyGbQ*s=&3X&s~IwYc#YNXcrYak-6>g zbz`grN;EwhN;JJH4Mh;mIwYPsl5xBP)e~uLy3GN@|me+xk*EbV6%o2!L^_* z9Ln!H)u-lny@nEbzlIX|4Moi&u-O{!1LZ<~e^`OO+i_>g zCEtzVPJ8@YJHUMHPcT-Josq0(Y2+&kS)?!1=lfZ7Q+4sa`T!YNi|us9`fO~>OY%_z zgY8d8vxxqX{-FMVeqZ|BLLf*Z?N4KW;4`d9{!!@nnF0<2$$Wbi9wD~ZkiW5HU<&z9 z`Y|nlmDI)$Os1eye*HKSQMA2bu}X;u`d1XP6r1{{>$9*uaDtCMB<&<0yveQGg<-wq Rgij+r@=!uLqE*n({{vs=q6Po} literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_regular.ttf" "b/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_regular.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..f8eb282aa721dc9a02ff2e192cabfc46d38bf4b7 GIT binary patch literal 119772 zcmbq+2Vh*q@%Qe&cXukMa*|HPD%YfwWXV?Vl69(9w=A7|k>rXi#+YUdm~M)JnBHq> zp_opbgg_up0tpb35R#AtW0H_S2qY$<>HPg>_r23eHemiAMti!^zTMf`*=akwk8#FW z5(=HU+lRYn;~QuESHH$*)a>?-&a<0#UJp<)V?xXxoHJbi(uV&rrj;^g8JImhul0kc zD$YRFos31#pEF!izWb+pHZ$gU1J94H+%&dj)19v-po3b*Vg^^9yv^-6spuTWUr5K_ zpINhI?WS9*Q-6)`s2}fKJ9gq0z!UL35uZ_OH=efU&u9MZ3dXW_F}~#9<5rKYO5EJ` zU&c>G|E&5r0BoAA7~hY>_uS()Z98?>`3KkH`=#h}bmQ?W$1Yh{c^BgszYqLoZ5lgu zi|s#&Coz5%#>3p3$2P5wI`z_0eD7n-x@^nwCvLkT&g*6Th6flcT)AcI>Mf`L=D`-m zU;7aC4}da^+3`dF2{w$M6u?qh4oWw}b1WDCIP}Ly5E@I12 zj<8cuo`!#%oz6fLb{;z)|%Bk%3IivQT~Lzg7TN_S15nW{)+Nl{NwB&>_e3Q zW}l-R=N87fjmM&l;|VAoJPBnAW{&fjd?w0LUW2lZ*Q0FYjVNdFL6k!rIPlXsaNy_h z^H848FJOXS#4p0{m+;*vui$%7Ud69Rc_Y6W<*ocql;7requk5)qI`@$f%3;3IP;hI zODKQAUq<;Ve--6x{B@LX@IRpZBmX1Hw>T)u-{BY$f0zFggy}Q2v+y59O!) zGscB3bd)v`jWS1o+QK71XOS<8Q0co;3e&2?PJFEnR*M;Fz>_zF|3ts zXIgt_Uy!A&JZl=<8{fc`_$0Am6N zQrRHON?AH(Swg&gNPodHA*gRd7y9e+4P8d)Vd8V#$n!)F>@K12Nz~94{Nh1qMl$D7R6#&Jaa&cr$JI?GdJ^r zhJ}#hGsea?ZsUovOqZp5<;qQ4c!4ZSWm&sw^YNQ_K$e}d>|3*SY$YF(5U zQEK<&ud&))vb;r>ur!!mBdKH8UX&&55EiHXRF*%I<$jd$+Ox7G=@PF!gEB#TT9zcw ziRU(2^HG#$E#p?rvz#C(#aC(H@r+;<}-^ zvHoe~7WNtBW)9X3G&j}b?P~nIQ+*e(t_Ut3GCm(LK566xzjw;_w~X&^8=sI@vK}lg z`DuLD;~_grfs-90ScpDjl&sS)g0L>tFGN|U??PFrUxu<4n37yf$GXeaFO_vJmUS*c zSq1qb^csCP%DRZQ&cpXo{aln~I;=|6IA7M#K#ynfBXu>fasUqn*-tnc5d5ZLcH}&% zIs|zEKZ+LWDa@I!c!=rRe40ELravHXc=@p8Tthuxrki)q>w+H!4={2bA)lAoj6HS%*zyFq@g&~B2SE47>D=PK=X`MFv? z|FH4=!S4L@=bg*Kc27U zTlfilD?gEM9;x}kp5s)o{Yhd}u z0;c1)A=ZT+hM4D@^#JX37T?Lw=I8KpRd3o_v{TM%zF|94TG8wEL48;c>htvZ`T~8S zzDQrJUjZ$=N54|PO21maM!#0SPQPBiLBCPI3A!1+4m6h=GNlwUr4d}(1-TNGRs%^E zA@!)Pt$}Z{L)*%Pc7}E$$}_cXD9_SPLb+2r8Rgm9DJaj;PDOdHb{fj_wCyO**G`8` zFr+Wlm*I1czC@pkR`16ufhN}*fpNoE;V12h3Z4Ah2`x@GNF^W~76JX7XTd+8*2Ev7YcptRfBc5;8tkQ?;Vb#1Y49t(kZ-7kk^D>5 z;tlw2Rkb8EjW+<6C7;NaPvoG@rIs>GaugLwm(CmkE zd9luUGP=5z{w{Rb)C?n4njXF2TM9}bgHJsM79Drviw$*3VELZO?gYnP&iC-!5hXY* zGGR9_65kg;5r5Ql&8{VBPAyaOX$9Iz+IDd9#oDEizPD@lYJ0VxX)o*3be~?LgWo{8 zdQf6SKT*F~|F-@e{W1M}`j7PA>3`P$u79k58sD6Ae$Fj9pSo7p|)LrjxcW-f@=Dx^%yZbKp-R_6nkGh|5?{oja{X@{W2}=e?MpoZnaEc<*nY3)r+o z$5Lpb+t{}yg>K^y^Up-Oq|o=oe({FJG;5ebe)#l6q4PkY%d~H4cWU=*k7zIIOwZJF zpxRA2E!B@bsgv0;@auj<+{Rko$EH&y{^5kCtdqpuex4${n7Pr*MHr~?sRvS+btbez0;u3z3xZckGr3qLZLy=uxFlUiRTK>eV)CZCq4TjDCCHs&?75^O!s!#lOxBBhi&V#==cnO|QJ(&9Ty9Y}SRvfGd*U32;e=zxA z^4o{se&y}Y2>N!*+pQ=^-d_CnQv3|PJ@>#T2R7s%gt$(3{swEdL-V81Zf%J`2;?IG<+l;}nK z!ua_Nyi~6DL0>J@SLhq{E&6%-#n4e0mHc^VN`sTWTH5KWB@hX;3|Qt{wgP&NMFzax3h5J< zvTnqkI}qRUA=|^#n_6hqn;>d2E%F}r<&(Z$Ir}NpomACT_zLb|hqog2Ct+OYf&G*BLei?G@ zm+;JAgP-sU{PW*H)4z_G$Y0@s|BjU*I#kX620izC*1-M=`S(6+g0^f#JSl)^b~F13 zaq`1h$>Xe@{TH#h5SxuiQ!D#|4RVbQaSOMyAdh16c?_G!quByPy%%yjTY|XvGQ^*j zBKDogmP2c8Lo9IxPh%(Y0(L5&!Or02>?~f%&g2#BY+lXI<8|y@UdzrwWc*SdU>EaQ z>>}R8Zso)5Cd9@s=WXm3KE!V1bJ)#%E_B%fb{}8H?q_=uC3=*vVUO_DY!mmgt9dtK z2tP#>;U#u5FJkBOdUgqK)@SI&(D3chTwT!debC}PSYKt(Xf=8*v|0(-N08j*kl)Mo zQPHdYRP>2{F(3xTT=9k&62sz8;?LqO@w)hf_^tT8cvJjN{E>eP8uhz;H-7|L^)dc9 ze}X>*?eQePo?pxFx!LLNz{%U>=zmDI9c>O*6ZhkMnk3Ya4Fq=5EwN=ClJO2y+tBB(Vgaz8)CZa^N5JD3%{Ga?i z{y!e#`$RmyjK9slCldJgMI!%!aPVhD691t{=Ff^0{+w{~ABj}{yh!6Oh;;sAk-_(i zY5XT5lmAp?@t=uo{-Vgip25$BTe$cygonQ@y!;j6%zr0l@ZXD>{12jpzbQ(gO&75{_2q1u`N80oxuHUE6-=g^IWzE zzWi0Zi(SKe*mb;*UC;a34SaxI%X`@ae3X5MkFW>%7<-7X5I2dxi+@1(b1g=T)jXP4 zE73}|2CY%+)%wKy;-BJQ;sf!acu#yPmWvUwR4fyt`burFKBn)`PuAkKI4uFTRk}D{ zY!Ro4?c#KOt-fC0Om>#IOk6H56}$E0NVaRUv}P@!wPjy9kTYW>pf=d|x@&uBl?exT>+`Pu{8o7&sjpS0Js zm$cWl1KRJkUu(b7Ue?~y{;0j7-2{tnk9MW5Ya!SxLbvKR-J%`VxvpuSXn)cEsl5;B z>xO+!JTfulU7Jej@gbcZ#vl!$1*MitIys z0v?PYob^GJ6Y%@P@S#Y!UShyC{aYMX4z+W5SkyzBt9HCP)z|b{^w){@BA(l0K1XBJ zbHnXjISHN_hF=v4*X}XkLYJ0{IS#!dT>m<=zQoI{@0InB#B1WY8_eej(F=_rv@WV_=~!F#wK9%k?MPVzP_C zFjlKGCAFfwCe3Q~dHq$DHTgbbCE}xxkAJsVnW-5>my;fw2Do*c1{?+WTL({gmDV~iut@YB?aM8Kqg$Mmk4c^%bEi9Hf|BT&&m-p*M(&*LOli{Y+ToAP0|9&%1m49thY;OQ}pt%o>JTY-7#(grdE1ymD(qn%$@bx|MzO_Z~;;@n)HGcPJ8 zt0*aQFJKbti*(b6sz8z@Z{|VMS)eAUL@Za-499pnoXoJ|d z_rVAEc5hq1as9UOH-J;B(T9KyOE}6tHJVc|kQVyz-|+z%V%DP__v%1}mG;D#&Y@{6 z7DLlSVLG)DVA-w>#K&c%r=>cR90vI(@N-r;eU3GQgWo4C zzyCC0xoY=rJ{aKBCr~{Q2z^R;aKs52EVO;lb|ryg;030F8&jFsH zlm1cd-53Fn(n3c zj8DQzFRAtyQGJ?A=%sA5pUv6=ff#Pnleoo}%&iu!@2E3t8(}sZ6qChb#pZyu%Q}#o z>!;~WjEc#DofMwlBQ=yKV#X(HsL<602TWE@6Z1}bM&Z50#2e#D0^ZTmiaUY_Em#Nb z2xcN9i$xQ9Rxp2<`y7k;)1jMqXK0`7mx4J&i(1I}7|3}Kdnync9|vCqmY^;mD`Oxl zb70r$nnhm=aW5q#WF?f;n3XeF>;sufqI!=~%W4I|s499SL&?#p}9SCTL-Q@FtDt&?x_bK z-#4!v+GqQwja$x|+uGF@x(B=_=^|}LM5Vy9Lsoo*;k3pSJQ#*sBpnqTF=N9vQtc3r ztNQb)KIjfx){rM2P+0>=W3b4{a<*XOA9|l=(2;0`F5w=B&w+`=kB>hd`Y;&eiTG&> zJumi!e$Fe$JE=`UyEgD|_rWhqV-0~?n?-0bQ9{IOVyzvnJj2ggE10CMKU#H>l9G~^ zLgF$>c1Hch#kf>|pj=gj(}N!pls-q5$0_^n?4;gNhCY-SSOeSeUts(*e!4A$(6noTD@_BRY!IZJ%@@Gz)xT7=(ts0S-bK z9B86$VqUHl8izZ`?2+nJ>Qje@s1vGL5g6K>7>uoJXl@Jb4F*9WOViTwp zKXjbJaUIBElQOpj0N7}U*AwoCKL)%;&bxvSO@h+v*{0z04EPvYeM!nT z1)p!gR~{Z_ut~%1%wpF`n&qMX^AY$gFzUAg{;{N`YNsB1-$Y}~HTP;H+Z22e)dyb% zA=@(0em2>ckZnjoHDw#TJ#MH>C{Xs*QmqEm#FT^YoJWyr!G|8=dmnmeibT7zO;onE zjsLuDibx~6egNcVN!wZByTrh^2R!f=@J(XHfkNT{7{p{-j*x9Rg#l10DOp*WN6fyj zioaF4ym8LD#KG9Q>iSt-@zOGAGa>JJb}0x_yV zGPDaq&B81WhmHk+u3%Z58sxng>gC;N^CWs!j*Sdx;^~uRU#iV_FgAh|z&&?q<=CaA=Ub_f{1Vo&^S;abzKqhi}m}2sGs*0BIrED0%^X zoX$jz+Yn(QxN2GpqQ8#Av(16W9LkT7Dya8k{yl|GPJOswR{p)6>t{8z7BDB!##I5WDK42Q~hV> z42iyzLa*}DZR1a1E_U%#5ozc{cj#|I7Uu*qtq@F8rx;zxDNZ(8CqaCtt?!f%@FV7o zKY|H(N_3BRf~HFLQOtt8$%&YSf|Jdr;4~972ZNXcW$O^!&>Mu);aUlIl4MNQ1oq(j zAPm6|poDajHBByNxXF0X$(+d^U$S9v((o%FAAJzwWRLqapJR})t*`y`^8{zn2R4QA z7l*0??aqWz8bcU&vO5%x(!T{cNQb#$BiPUlW`yQ;41IP(Qz3K&FA$y+ABc)VX1Oye zB_R$KtzK(PT2ZPav7+3O=&M$)so@RQ9y)Yru(x-Re(Xp`SQolBbZz%(o40O0O%{?a zvQNp&qv&dajtWjTv4Wei9|foNtKg>2A$X~@VF^yQFQPseYb|U{x0I^{KQi`GKx2-0 z&Wydtex&WI+B0J>3Qo4Kf}61yg%`zM2oBp9Ww?LP)T}R~Q4%lo8!>J(_M+M`$7jS| zjJe6vrekJ&?60QLrVF8Ov4C5|7%iCYesW-?{f2omjJAA=7oM*wVMb{(K_7CX+NM?~ z%Pl*i`cd0Vm#+0Owi(Ei&4Cm~kL1l!&}TBLF!kVCr>3U*Qoa5Zhd0+tt~DpdM%W|K z=OzA1lPq2#Ch?fa%kpK-CmKii+!v+&}oODWFB`)avWl60#k&w*%!-M4`g!pmn_-L zOvW;Oncg%f+DXipOE%wzutXKnwIu{l&7!;cI`tX4_T8EM_L(5@-|*8lGc+<2G?uta8bf0pv9?M6j7qpE zf3glA(w1SZq%b!x3dE!#x}6Gd&2&;IP2XbGEo-BsI3nfT-5(PztX4LLU_peVQZu6W+_Qb(D&Q@PFJVJsurx`c`t4 zBsrZ^~4jm+V?&D@IHIbKYIS%)0`yIlTO>PZNq6aFEU<1am*OZND-oBlqsfhiv1hW z5Q}N8q$I_~qFPL@hfMZ~D2xN~7`0w~i$kMp*N)zQZ&gD>)xBch`jL_Kp*Q#mRb`cB zl?XpZ2gVzRF>kO9AE9>--|QAZ+4c$x&j@J_*l&Xmn^%T7;COdxE$kXq?QmV9_CQXi(+(sFC^ zE7B$ltfaXOiy^McFAx1K@8S(zPNg6H{S`_>-m&g!t5y__TyHN2&)Qb%X|BDXAcGG7N-?z}-VZOv$3* zN0;A!{KTxxTN4#}jZdE~=jAX4igiqLqh#L>qMJSl3t$3HwvK`in{e1Vgs*~=twZ$Y zYzAav4(OdnvF21K89T}gFc$y>UPP=pkLBhT<*8URf~nzXsu4^z1J5a`X>e_!D}K3s zdQ;)jS-o=`I|oLCJ2u_g+u$B^2)N#=E_=oT;l5P<*PPSOfPO~ zD66-}xo;iYOyiOGNqMzXjWeXiso*qD1s^8398Z}XPZK*YkeustBtk1z+7S$~3OHnD z9J+u}6veugLe67QyE3NE$H@Cf92)-FiYRWgb=eSzE~Kj5if+EH?xH{<9&KWczGI$)^D)pYB4EuEBVy148}q-El-t(FXer4QwSHwH7Ts!TuKsfJF5P4)SJ7+9 zH;SHQ#q8 zOpx^mUJ217OgqSnhNjjsf>+WaQ8iWY>d2ar?FEjZDHXg*%FE65s%Jv3^7VVq>H?gFoqrB2yUaKv?nqq6P1;~*1(2h-#51~z?6%x2OV9D9Harw3`j81XK+is4WM{tDTIQtc4avgYvJDEPqV2mdbo;)LACvci};3oT$GHN#f6aJEdlfR_kroW`%wAK{d^p_Nz{1pW^{guIROrGEq z_V3hwP5XCp`=-C5XtEG?v`bnJh+#vIuY)be5l}(H`WU9LM+UKxPMPaVNy#PGK9V|Q zI8=~a_Zbnu2|5kH($Dfaj-(b0{WaO%(A`JUY@wvt)l+CTEC@$rA008)$oi3ET_|mR zRo}Gri3SU$t*_cQZGA->vh@{>O7B9ob zU?dmLTRq@QaLr72sQvXkZ{0NA(thri$$UwB>}pIDS(xBgvh@{Q+4^+On+ZCJDCGpa zm~hyGoK6)1gP=%O5im_gdbIz%vgjepL-SujP~%3inxf%S-e?=mwdaV|pnWNBhaeJ# zkEFfmbRaZkA?`wYz{LMZ=8^wrEb6TnEel8IwP=lV=0CPC6j&~wi4|#Q=yA0W(ZInE9I|fR7|9h0|z?Y4ZM-)6b2~O)x!RJkaQyfXb7Z4od zng;ri4014cAlqS&(xk0K#A)k?iAu86ndD5QfTYKlkNgPa+GrJNX)-J+nn#A0>LUx6 zzVq9WxeN69!KH6pa@}>8@Kt>Ng}ZlO82S!P4oBNe%tjwE%olJ+L$V%i7GTwvZsoBNLhJAK`4q}61srD9@@rl?iK#--tpfP&azE8_J=2pUBStIRB%(z zC^+pIDfoOEJ9K+1|^Ie;FF9;<2a(7rT;f|U|Uq#*61Jxeymqrmp< z*z~d4%rD`+J319{v}dA-m*gYT2v>0jtT!pTJTyJ(}YD!{! zY_wHpIXovOCbh`p&G(Uvs;aE0kcNqAmykhH;q*f<_`EXTg#T-9tR?r9xubvD9B5cx zT%M45?&XD>t7tM54^(ly*ky8#4C+>Oq+P_((rQxC!Qp_X!`C+a9XDd zet9HZycWi5b{H?}pH2&^`jR4H`cBZjJ6xZ5-W;E%*G+2wxp4cvR9~)2w{?Jq zLil96@;j{w`i{A8#eFJ7>k;ru7S8FDM0)7SI3W<4F?=uDy6T{8Dk(ks5Tc;~FR7^s z&&xff4y0DQQIW_mJv5RyU)@&VYnvg#5)Vfp$C2&F{K4-cmG7vKJ`LNE0wtQcCEk*&I z83ZkK&@4m6Fs9_ofvYCx%Vn_iugaH`>2j~`*s-Z=G%XO{TGBBvFnh)Hy7W~&_B}gx z>;eIKQSv&XMe2%B^1jAECF#;REYR!7Z3$1#c&~#J5c1TgJ{0q$MUG z=E7MKg2vN5DF}ACIl^4wd^t_PSKNxntca&ttr(2qMq-IrEcyyebC)jj^gW@4&jj4Dd8;uSXEWSU;NX3gUAzBGMsP*3YC=ap;A zn*P+&Qx#}$57ef=?V*JJXY&h#&>EtB@tBL;7&wREiQ2fjhmM9rj(j0`_G zQ^uUI#%K#>(i)>|G&7&-%h%fV*AKR|OkHn#XLWYY8ow=a$qCj5o#TYgNrzNItk0Q( z5GdtOVLL|WYvq=N;y$ocIM$be=vIa|!;_PR=hA#Bei`eNv2#+0sZOU1@Rh5SZET_e zKvLoT%?*tkI@^z{3!O8+tD?`@kiMy>w6lO0%n8_Ax6hq>dRxoZZhv~m!jhtb>K6X{ z!meUlZ2LTtsS;1An|_OlfNp|2G65$WS;5;T!AWN+czYyV%4P-cjDVL*o0Z_2eleeE zv_A~`knKot*t)1swr&-^QUBA4ei6@I8h#FPOxn7tz1il6JBHkt9B$tN1;=9xIWFZIS#Uc&G8YOY+%)XFV)A|YD2t;+Aqd=z@2v6Q14m+wuTD1Mc4aa^djzN!vZt%0-)33+DaKrR+|N)$71QS49u9p*o^8KRpq5< zt*8j>;*Wvq&>QV5PXa!g8M(X_`ML zP}EuQ%5;Bwl@{H$eePf+XJyrU3JZ|0NQXK2r{FJQvoJ47TUOCxAWVyiHBuX>Lb#X$ zL6pZu`*>?XFT+B`sFm3-5Ipm`vooe4Pp(64 z9FQy_(jz<5ON&%yX+Ct^aTOzTQq$_{axS`PkU!gA(b<>T9y_D7vON@#ywP~L81@R; zsrl?sz@8c_tQHC+BA%$SM?BCUYPYRV=7C6Lkju-tWDne$VQ4R;aOgmcY6Iu5s7&_D zF||sz!7;WP@PcmmfAyClAqF6mVQ5a9HZ6aeABKOfPiBwgNsFJ(U?5x&VE|Q4$spmM zp1NUMM@jX(JurioZ``>$>$ zq_On<-y@pqZ8%XwJgR6<>sY}%BjH+97(U}ak@d;uRQ0eP1PHAT(`;vV|gwt?$u(P5pJcn<^pkBCsXl!s+V^!~8`(i0uM1tdT#INWK2N2!+$4Sw8ub;5AmB#?>xL5r%a=eleqUunUVEx%?f;KcqEK>K9opPV7$^wd5NZ!d*LfW1B z@p^vy`p|C&2l)k%HS5+x)(ncjtjB)`#=pokL)dhUK$7VQ}p2y_ABT` z4XiR0h|YAx+p(`r=AR1^01Jyno~ zopu?{2dX$MD19585hTwB-lRG^_|p3IQR;}Gun(dOd1z3qU;o8<>Tn=(E62YOD(XUW zq4JicUQuHhP;+tk_lIlQs|K%aAzp)goWg6e&a>dPIF=De#Rw#?nNl>xn@nl3X_ILC zEGTNR5=AEniDrQZ`r}c=i?Sc$#SLM2E%Af_?<6>g1l|?1fL|QT4R~T>Y;g9;Hk4w5 zd@f@W;~vxsgblXXHx5r$DN7CQ^ZQ9!(vNFZ{O9 zX@BLl(95#TK2|VeFr#8- zp7_@I=^2!li*{fEy$76a_{|3Ttz>U0`SF%1Kd8<%a$Kkbxm`@`if88>#!YfzIL6Cv zm2lJ-)h1l#NxvT2W8_KiG4iAbQ6~y@926Idv&Y8BJZTJs&Qi)S}+pysex!wTG_3=YQIPCx$nQ$;gFn&t;cC ziMs?S8%XJNC!P9WV{-eev!Bj|P`;F*$KemKPQ=|PRtFy8(Bu;pNOyn9({R+k>_Jkz zv7~&Et*_2VArVXF5TvOO=Y$HFP)MVLdP<W#!7Gg#@PP3Tj(MKrA>o27z2kpTN4I1Oyqbom!3P^OY?HzOE6X zPIR6RN7vkRtV<>?hs`m{RaDGEsSS@Fh>e$qnKIJqYu`98K9=9BY%_y#R#pcLdPv?t z9N(bRfWb4gmz4^7Bp^d7B5%JBK{aA}BX2)35jVqUCuSiDIDy3@u7>4P&Ez|IsASvoz3RX6q(C!dekb6E0cpK#~MXebE>~E%y&h(y|$=T zX5@C;swUrtwlM$6y#60YFrh*7EXjjjqICoh4r32%8|H}Mljkn7e&pO`$+=VY<=mO= zQ>;g}BlJ0FZGy*R!aUFu2`Agw;Ei5_!y+y@{08#+ixCURfrmaj&>jm-&hm1zGVL6B z{V9-ST3-y(`khE#CpS;pljf3!puQ4SK%Yiyoj{&LA+!h3mv4p~}*T^m8DJU0ZEdS-Lc51M%etMl)7EyJ+dHde zm}iHY1_#^P@M8~DR0I&Yn!CLX_{<8Nh`4C`!kI;d)dAkp9$eUN``7TCo;ky^z`7s7 zS+6XN{iyq>G)QH>s6AAyYizrz8!FWCYc~ieeIdh+Ia)oX+`p`>2N2 zQv0Y5ADcwHFWE?=c%8AS4AfxVOxaD2paenOVF-Owunlu8rawF=Qb7XS(k!@j)zNVSTIXdb- zADxGvELp#DpD#FG$+gM*e4K58y>XB9YvGg8J`J215=4qk!JBX{a2nBYEQvv6kP>F_ zmO+buS7m?qT$uFdoHIDo9Qq?_xOps9-z=960jjDRu(SLB|G(OjI`fhti3f zAZ)l|#4}M*a46_Oh%qEM<2hRI$JPS{#=m(Fftiq7HoV@4jI(1vN!n@lWM5`(5pt_> zb&gA3og-HRbfvi(%q@3JKiO%O#)_#iQU@HqH9b8WM@QC{%$k*3nBEguJXAC2swnE8 zIkP>ZtUiD7K*Ox&ra9P~u&h60$A+f-Vvj36D!sL-w?DUFW_^BPyE7^=t7c|LuZSA# zADA=#p`0T~0Dc+rGSwalrTJrv7}o@lD}xy!Lc{nmuFXjC$eTfGD5ai652ZDSgU}!4 z)YZk==ZsWr*)n+JjSrO0h;7g8>*UGpPd;hHQSu>#;?Y+os|!>|aY`A()n#;ygpS72 zIRo;V(Q8Z$8%5X12F=WXm#_XymS^ug6n?CtPQxA37L80*6!xFg)^FPMzypKtz4zdQ z&V(Nas?VNv3H5);tjiN%7lDUqydUB1Ctlu&-)wp@ZURkF@v0OvUR4G;xR-KasSYfp zW`2r#_Goa(lcmU2`7h*VGCT7L#wi}C*gOeAVq$BO;fU_bGz?{0q#A#b2hI&!bK*SY z(Vh!@$s=H{ryPh3cqu|_?21#YPVx|iX!+d}+W@#30Fe>i8+x7`UcP4h3pp-{zm%UX z7%%jMv45iAjnj+XInnU5Gwi2JH`5G0-4 z$&@C@K!{0^AsQqB;ZzJo8?ZRkR#?Q0$YU0wH_MkAu}?Gy2P{N9PEwRjo*>aL^#-wVH|OG z;?wWWy+OZW&UX=YZ|2X@LZi3oF|7veq|p9iLKLzGz{1Gw)W|_FHV)8M3QI}B5eiDg zN>&F9jAI5kO^Ra&+Kp9hqQ7bOtU02!s`tv3XNij5v8#mslh3~R@sGdweE;|t{OWIi zh;HN>lYL6wnFj#nm|i;pm%O0hos;0Sh828vBs`*>Zh~V>O`uH{I!j>wfG;ivX=OAh zWwFA=lyPBH#F4QiXA&Jkt4PKXU3qK*TNF4)(e&*1Mh9l;jr~i1@T1W^$bYtmHqD>E zX*~4lOL)5-tAY>bL;DWq4Y(3wAuDOKRC-j%${B@jLKd-U6!Qw0V{%8WrbZpk;J+F? z%#!PB`(sdy(l=vzryup zyh_2%c$JB(s!!|j=M(iK+NV`E(T>@^5w9}wk-ofYU-|Ot&K#^KoS{I}k<>J3ftKW^ zo>VjHb{~0U8mulRsFXe@TcNybpq?}F4vFEhGqv_{!mmDYH!bW*N27LDf9KIioU)8T8xbz7r z_fz?VcT*1AME-NSbXF-+ktrRb-cDR4)hvLMlz8qnAd=qr+4%a9Cq8OoSr3kr?=LfZZE!e&+Bgj^XmW@Bi;N8F~vCDe6K zc!$WZ7?P?(R((}%<+gl%yMbeDlGxPg^8v3?U&(a3RnmiOox*6_G$YN-G)}@y8>x7w z#4^st-M?`WdCL>ZH)y2pAh8U002=`)uyj}n^O#9-j_|yY{#EqvkDM1ePhr5%iG)je zsOk^M`O@I`7vtSWJ+SGUar^#t0f#G1Shf5(q2myWh{Cm#DlfVebE{c#uPEKyrdw?K zIx{^F0>Wa68bKy(PCqkl{_s$;^o%1PiKhD>S0ClcsDVX+Y31eJovnfL=JHu}H6_LV z+??#JX{jlmSX)|=ZkRDu6f3T&GWUSe$N?nR#f%#(^3%TNWa6j#d@{>|yh2fS&NRQ;vX>hg>gm59Y+LU4HIDy0@Gu!`;U!qh-f@NqL@JTo>nyu~Ax-A}d{rg-ZaGR}Ej0 z>~2J&eRKi9n)=#{Zn8!31rM$}@lx!rEncu}P2%3rzs2V2Ku47A(m4lgE0?Z4zP+V0 zqqV;Molt-VVe%X0f7Y{3K0jc0#QIeTZC{E5wOH9j>#gpypadlmkZ8yA#XBFSeF~T3GyvQ{9P67l&M-cy#r%1^Bqz&&* zsRv~)EwX9R-K01d1&hpFS`O=IBO!45WwxlBZyp2=lu>K+i+oz~&UhB6AnG}m<~EQ#$6BLjI^Z0czcvp9+-_zE#f#fHE}sED2>5|&&*ah^J%Cl zQsD3h-PuBqt1GIiAL#Dx_mtYFJ31=@-Tu9}3#YJwug;t{%~w66vNCHRE8Ux2*w%P| z?bYdNF=e^gg&+ZFa4Bf;bI^eD4b1It&h zUXGLg6?JtLxHzi&l})QwZR)P6sjR69QJ50A;4TMwUlqOci2P1y5yTqkK2OR43}XOM zn?vt6NYrffrVS@9dpVC^82Sb7cIh6!9PP;G=*&33l*XhFQgdc|+8`Wxx*wD?em+TU zH7s%>G&G6}hvYzT)KfCr9<5#?O%{6Zc|3#rco@Bwe7Gp4UmxWxd=688E9uf-UoP4J@owZPKd1pAr z3l*=Ojpv)$aA44H6*0*4Lb%3`R~Bh8IP-#}x-l!|d1d!U#e*H9$Kql|baYPi0B5rr z>uPHdu`Vl_iJ)^%mb@xH#gPziXU)7h0Ybf|yat0K+b2JtbTIe;F#trxDgc(DWV$(n zZtTI`QYy5JI~GW20gU?oZ2O4Ao$hqU581Q5m7cPs&8G)X-;z|~sq|*sgYmAEbYJ4K zxGY~Fdq&C*{OL^R^z1-S#?$T`q~YgeKQgVy>;EUO3cd8td{57`N3tc@{d7i;r{GZN zdERuWz|$l7fO1-*vEGUp-mEbVmmg_93>|?C#x?B5fl?H)HtqrNBD%sX*uAh=eDZ$! zA~roQ*OQlL!)&I~^-wYltL%;nB*x3Fa8p!7yk+92rxZ5%7gl%9?Vi12>4hDEn!b$Y zybZk@wstqR4%ct&vA5QhSCqFkI;)zyw>rz}3jBrDH7n_TAJsh{aD5m4`jnNm! zUq`dxCD|_B-OR5BK;S)`k#Jf|3ci5gpb*v12QN({Z4r$-Jz&xyxn0Bkasr|@Tlq;O zEOL;Tne3U4m1VQhyGZDYS?y?yFc>`jszv8JvXj%YlX?^KvYK;dIyRn8w@~Ar?$G<* zEX`tZ72fOZ&h;M({m8&MU#|1(fD_jFzZGt{@*VR_cX?CZE0~^^BQQcR32K_-t;Uop z>QA&_206ABtcn3EW(iuFKK{fDC1uXaTvwah@8Ii$;)F9_{&|@*x!W~*&&AKt6)EWZ zR5VNX>2{sB0INctM^SyL83ngNQ#SVmpL?%N2x#a9V3E4kK#KLO6A=qLf)^$VRJFOpO)?cMoi60tgWtI z1{r`kojQSh%5~x%4)97%1wv`b2-sm};)Tz5$#K4aEWV^r__xo0C&5!v(Ad2gmkvL@ z<#^sbes@7(0{WBfOMbZn4I2Cc2{Ul`pjIt@1AOw}vmqA+Ye}3>H!oj+u_6ftyQ%At ze_}&CbrF3+ee1Yr%f{yV{ZPkc{?d{edA_V^Wd6h>=QrBMGI$1Ajd`>eC6DdUK|nfg zC-c7{Nt2zT}yLKlFTh3=AzBAA_h0Yx%LJMGyku?S& zLv(Z<%_~T4aDOhgZX~ZsFA>NR@J5b#aRaSJNk_opSd6{Vjc7 zyPYosx6vI&>ya}~@6YfB+}OOf1Xc4gg=rM%oH%7PO8GS}3+6QlqC)vd1UWf=)0{)3~L8TOSMZnBb!(EjrPj zU`tWtpgp>eb9x{jqrhnjT=pi>h8ZtL(K5uUJvP}9n_^GN^?=AQJAkROyCUqIrNQq= zBZrTZk#ipe*Sk}U96{$gkVbu^eTA{nxs9)}ub@@Uej_fOy#KaC=TgVN{SEbdHZFXd z+OftERnao#IOB0R4|_Klp~cE@@hcoz()ci&t$dUi3*s>$AvPAXl%9Y^7#ojwTiAg( zZX%7b;hc|&0p4*2X=NlWfzZ#qx@^swWuZ64Bf-$8H8th0zDg9>ymIAcDaSCCHPr}? zgdnBG;kSU#UBHLl=2VY6Upa2l;nK)AEU9Q)6y&{tz?SsSgbkOOo9Xk)6iB}#*W-)< zYt|^4ZO#Se*_7sPBNpJODDe1`_!S0n?@Q61tKq~35bS|Szvwvw$t`ER{8E`Sr6-If z;feGI?E>JL1UWk^KyO{P;e~_5A9@ti*GA)7N=#Y|ViwvcZGAziCMP46Ju5kLS~{M> z+aX{bJ7Tdg)iMgBI+=Jwygz857K?Mh~{(Zwd}K2JrH!6^nM_zeOwXN~%EPaPV)uDZ_XHRm3}~60r@!Sp)1XX9QmG z@JJy^Y5CQ*Ru0RSIp0%kE$R9aLK9||?*}VQO#WtIxN;$3XvgcZsvAz|EjoPn-^Q=H%~DsoVsWsdHmlwVtE0R7<>d8i{`%L> zme}afJ-~7%?v_~qIwmnUdr<|cJ%qFkuRnncqSgwnWSfnTMIp(Fma?%sUKp-OiygIP zG7b0umE;rZ*fLC9BfI7pT86i6_WpH^QdlTeE(~|FOD+tD7YZwh)-Y0|$PIvGlgC_+ zbY}SzSK6)*25+=pefC9HUwzS%b?cVUkNw`;Xi0>Ae&e^Fdi2q!dgUd{>ZWCZ{9mv+ z<|q}k!YpBF;+6?)?<3r(Q8tPpZNULy5tHY^!OQ8=N`*nBTp1Z*0dmSm;WENOH)iDr zh7#QAiilWXXR z6J5wDg8=fS1)JfXBed(0;~wb}v$P zXtRP+w;(7S4#pfAj&vssGx=Idt2YX>zLo`4ZRrg z$^yP8k=|Gky63db85#1LQ_!XYlR@v6iX;2M2BQ^ZhA00t-cKrNzYw&~Li^eDHnb$pEwPIBNLoWzM0+cAaPsWQBv3QaEO#YpeJm`yV23Mpfp7s6v&I-ebBMhWfw_yGmOA5Cxl*U}>mxxb% z0^@Gs$(zv?un;X<>^43#wBE%;P=^7F+;z0!3_z;&}HEJf$&dCujG^VKQJX ziv+AXm^qvUnrAhVLta>r?}twcx11dEXxz?a(OC;`NrctxK_DyA&BjY0znPm}rIkiF z+%1)HmNm*vUu3aYOmfpJ?3N|UOgcFcY`4pSc5+4tp+`G#fv zG4UI|!Z8nSiMbRAbph`Z%w;A;g|M!1evno&t~qDiiW@~}MN7HMR*-%mD-|v=*0fyG z;YorJoa!C(w>>k+503DT=jm}B{l0v7!Bd>$AIAO}xR7ts09@P*H=87KocX0NPc(!N zDGD6gGHp*aBVwv16!YVR$1Dh zw&<)(e_Ceppe3%dd6sKUNh_bFP`lvp*mYCyA%TDYk zd~#+cjjSeZDx(M=`Eo2krr?M6?);+nLqC!{XZlwO(gQFi46?vxRgzdaN2X%|;t(28 z76y4pbCIhx^m$PFS`jZ7Q~nkrH`-i`SIRZ?h}~w$SVSX6AmnJM#2hkQc!XRd8AFl= zKf8E8-w}EvNampoiS&$Lp^QSJDbCBw_jhK~7!X~K#+hZ@6$L|!7K|pemC*EZ=f=wi z((>~1bol)i=}<@7cVW{H>w;%(*bshgruov*tig`{=(wlunDW}uS#zRyOB)I*Lf$bd z*gcZA=J!N~JEvjGBb{YJvL6SOC{!ffWK>5w2r*xZlOi``s(1- z6St%WUVAMd`$_=~aLFtpvxuV0`&~hVJ|p%Zxn0-UDD_EmiCiV8a+r^}>opl&ip1(5 z?t5Jjao_8sbNhE+cirxZD_=wJNPoHt{gQv4&hRFIB;@pCQt9LkZc9NxY#k6lfN~`{ zG8n7s9Onz5%}J*aA6aF>Yh+kJF_fh$cjAmdg#5rvJ;$Zo#*6PY&&@!X8b=-Q&_Wk=8&avHlua-hV z4W68&Un1vhA^3%KvW%nPJOri{OiQsu#0;>*O8jBCfRbbsM+1o#s>PjyJmNGw6`3gmJ{bV=AfH+e-i8^ z28CRM5I7WZ8bu!YH`T~fG&;YmH6^9fm!6fC?(0lRX{`vIbc{N>Vp1qwgbMtA*O1jZ z>e#8o~$3&l0U%vY}0g+ln;xQjO?qpue zqL9O3iL!y-BqJfWz^<@-u&pW=54>x*6e;eJaIj4%#k4C@M@C* zTo~6!9sK#ie1ERm^UXlKC2Dr`?1&3RoZuJ^Mu(kW_5aN&*RSWf>qGtj zC-%^G&^;wzy!_4Bf@mrCTQth`x{BsqpZB4nG3_BlX&V4ndkcu9OWG?q)mL!IFXo(3 zJ8Tpc4L&mAuo(qM91`DEY?|7=L)J6fRd8xo!OeCR{P8dxGD)^0W4sb?ius~HxxZjh zu{7;WDCOmQ1a!LPDU7zRE2ITd5xaH5CgU8bHJb6)wq{`b8t84IP!+2qnVqL}cC+}xJ zx1)C3$Srp_bmT`_W^8I*Rok$>y>)1?wYv{TMsL04y6-Nw#>|P;OV%!1*L>7 zl=}d#xN9t}vFduDyk!wD^14!8zU$vB@TK|kAAr__v_ak?Udk1@=Z(amBlo;7<3G%Br5vi8XsOs4nM!qB{s|3CKLJ3h|h z+8=)AdA3Qbva8i<)urv~eYNUZNvmGGwu+lv&N*}D%sFSyln?WY zZ+uk^QC(8b{2`fq+S9R03tft&kjSU&;rAn==HD>RIxjSm@hOwJAO2Ou+tsC@_Xz9lIHB0v=GjxIM$})SMF1@a{v#5VI zGTUF&SzDK`tFxC?W(V}?wXH>!mN3%8mdc{mfwW8OjJmYiJ?4S#Pn|gNsqO*up4v2> zvF_5effE0HZ@+z?zl7{Wo$$5&3*c2ot7%>??Ap$y?b>kQ!Uj6Qu3aYiY5(kr>00CN zbmCj0zBNkwFYR)*H|*{2YplEB^16nL+D08Mp6%mXw{K_+p0^{dvA%9ul`q3z-sf|t zjrbrgHV^l%&D9x0^`qR7%$-U&y)U$9mz>_7y&+=4nTk<-swYQr{^IXfu^ZsdWV}i} zPtXqLvgQ~4JECFT?1zczpdlvGhbbMfBmR&FS}9oEp3NtVZd2TzU5QyE?AbthW8AR; zx+VXw2&HFHCPn>u@-;QWTIeAwYQ^JL%55G@ed$qphql14!->lr84RalFC-ewij+#fj*fnu`Hf9^2ZrD}8vxFQg@CvO{0BM3=6rK%$!L; z5diUeOw{ zzo}Ni+xTYPJ;y#C`5P+KJl_EGX#4<~)$sbGvB+iVdmJ{f_T%1ot$ylr6!=NJlX3YB z#$4Sq?7Pp9s~fm7uP=IDM5gm4XiuC&kwAa=O>~J*TAz;2x4?b*KP9JB4Ssbrlx9hT zKG<0VdlR|BiSUlJffR8ZXndY=b4sdWBm+A7E~x+g0Q!69E zj?R%tkgG_Y6O~iv>)XnXjCP%nB9GIc174p$=;esJ*Yb!+z~(L(g1k|PJ85QwSIkPwirL)B>w~M> zgXCxBcH7U1+%qw|X4!lHvvK3cWZgGbkBzSkk5!C5NBx$;ZzQ=I?WBQH5`7tg3&BB? zeHm@mbVx2SUq%=iPigPokN@_g)ZlM^ym8|-nB|ErD$>np@2`AZ8L$nWVq+)Q_ET-_ zj?5gp?Gzh(tYxnHgI^N4wc8ti`B`fH19@BI<+|F>d`25GkGlxGja2yDPh;GJU?^Sa z2iuCpu{^A zT~`97(O&KFW!P+N_&Vy_Paheibw<9ouJ-8BfnxvVTW{k)V$Up7|1p?l84#W1_}Pd) zc+t-+th!6t)=L(#trytx^BfCo>$Gab`bdk1Rf=}+`1=vjwf7_PIn*s#_v0V)PQCRO zk-O*-_)IhghRkD0#P6jjB3vR!tIS}K;4yWeJBk{n<}ehdVJ z5quE?gDfL9xH5B%nV)OWV7CHC4?-CQslojU+HdT!bv1o-AMVc>*_zv4IoCh&E9Nr| ztgNVTUP$+6^aRS+tQ<%uzDz@>7_2hIV8w6H)MBw(WAQ$TYfw2S%25nnS$Yo%;@-vQ zAh%{if?v|EO|$0=c5N_z&905XWBor%yY?wHC)u@6Un#e1+wE}lb=jST`51yN$*v7L z1X=RcbFpnLyX3I(yh!AN)C)F*x3#ov3-=8V_t87;@^jyY+_U>|=*ZO6k$&txr z`~&a`1Aesrp;9k~c7H9jyhee%N>uyV6!$4dB)Uvl!;fpoqn6za@n(0)VduG3!)_KJ`XCb~}- zu77hlfd#x^BTJHN$_AXpa;8l1j$!dYT)$M9oEF6OBS#OwFWJQX*pD*pJicE%05Zk+ zvuCn9wHSZ#NXR12A1E^_H)aBACA9ws9J#HVf>LlwrgM7<#%_m$g8Mm29K{8BmK+P> zrgH^u3Y0PnL;T4GyAzWtX7)}F^2aJD%%A$B1%dw9k0+NepQO-V2E%gFQ3#(+I$NJE z;p{ln?g&OlYDG-psH)yzD5gl}^y0gZAOVP*p~*(_sl9tiC-B^JkzaPb6~4dgm#A|e z&R&^NXA$uW*d?Lhh9o2G-I}2rl%gTUFoy}`G)#DL6}AofCy0W2Ve;m(9$CD}*?@Bn zz7Dg#DQBPy@)H~Q8;MiXGm*iXtIAf+^);84d>p!oUzZlI+Hk>o(!fy+jYCQq`qEDJ z?t1$f?A;}&+Pm9YTbipYE6QN(#wnQ+9KTDjcek_lxV<~R+2;1{v)iTzXboW`#0Q6>r#?AkGAO#(q+$&ERT zF#p@Vx_GI*`P|CkR6WiYF10%kPaCfQ%Fyr4kbxb*nP%4}TQVjy8zpA1Cv!44Zfzlv z7<42yUEHvp&5c`h7=RXIOya~{GHsICD-O2>yWxaQ@&pXF!%AV%!^HbyTjXm~Aw5%H zpfcd{9KW%{dK$YndXiw*c0spJ{^xwwkX<{d^@v!@!d_`x_y2B=M4G$GuAaQml5fi{ zN*^|))wJc8+18eIy-l4v|NIl*&d=dH_-oAJBKPOcL;pzLBt032)e?4XbPb|Hf?b;o z?lHS|yg$jBBgmZ_FP}Uwqu5rK*H2w3D6>y(qL(gv|Fh-yg$#G_ggvS3iK6uY}Q@)f54O5`iNUTl;09JBFw9k)ymzx*=O;&ptRCL)tY zwS93eNgrhE22X(J)G_b`Zt&Ka0ZeuqQJ!y-;Q{I4<8y)nPTh@D%kRzViw2wdhP-PS zTj#_bIc=ch`+n|sX@O0Sw~R*dZ5M1Va3PW4XrsZER!SJFv#gvGK?eYy7;tfeHMdto z;1y~BPoV43$oj6z#z^E373s4xcR%sPRr*_Q(U;_tCIIs4CJb80tMBshM?n7+mt5$x zWawg`g4j+<7#iH}K@Sb|^^#?={gkEBGHe~@BFvID=(AfTH4Yh7X0w|YTAzP(#&t7Uy)92A z*`42CdMQoNb`xH>O$zIfxDOM$v_Atq(R6-i#N$YS!G+R6oYA`(8z6xUN-ILk+(m`( zj7fo`0en($v5$=NZU#hzK(JJ@^dr!X&NH5x#t*3g$q;ZSIy!KUbg*Nfucy5=7?2vI z`fS+kJbq6Gge4E((&3nj-;HB5LW36HZ;{yKz#$|2iH1)N^1T=ivFn5?jqk$bS1Mcc zcJww*HX022`pM>rb^G^h>ujs*cGTr;=$jZe8w`z+`p{f}!l+&);-{YcZBMYSZG2bT zsdAj**7&Xy1Xvf=JQomwGLM01-$%@sqm_Q@+hhu6@I&~qPc7p;Kl7M9FDNF zkWNy@pJ+Pxu`H3UT+wLt=lEundL-Du%hS)!241qb4LsD<4v7v1llrHMx--(~M#`EO=B+m5}@aL|=Z#wfV)7fR@ z!zv+H&~N2${5LeJ&>y~(wHs|6HLMYAYjuC1y!+i*aW>7cF7LBjd+LHi)u?5yHLHh zjJ|0OL3kGJ$Nhdb^558*^YdmhyNmxO_{Yv+0tT>9u#@PISwh@g+);_xX#6OwI4+OQ zzzU1t35rrh$H7qySC41wO^A^euqm{4w<%8hz?(m3UsS*H+ArA3F_z6T#zxfl)wf5e zKY3`6?yTqMI`KQ|PbvH>7oN9#X!Lk4=B0-lE7EYfl8#pDjo{p}Ts>~W>SkbbWIL)v zJloOZPLy@=vPh#`I-I%iF}gaa61Yt`#hFkN=M`4d6Y*o5IO*Z``3mx*hdDj2d~bm_ z`8a2~>2$|AmH25+YnJc>!Dbi7Igf4n$nfw-Hf2p^#lG}y2?n?HWq(%u$u61t=(=?u zovN!7e>*zlP}|n-uI{aE>>sK@`>GlQuJdEC{SPEC>3k5F4zPBRT?s-glrK0xwUb*? zfJvjV$_P(n8+0S^+BOx_fmGrDNQM+zy5YfTAc_69D?dH8cXn!a@6@NSoO=1{tA6|2 z?X&Fj>dM*ezy0l1SHDbn<$OR%lUy>qgTZSzyv+MF|84v*@$?oX;1I|>I0Wu6dMcLQ zrln&JBK;BkdX|^((9(N(`gh=;Q_9ovo7V%%MS1v%$b&qcRs*WPP?SfyOUaR3%3lEr zBhuHvKEv+_OO3`%g=-uuCx0kev^6~s?h&O)o=$bf{j$UuOJif)B*v(Xy&#spO&j~C z@Nk>r)zTH+QT0yVH!n{wkEQQa@8;=G^7On|`fl|Oo{pJ{dJ1FddsRMn=l_eRKc=P2 zx^uL4-{9#l#nKOG{mkL%nX&Z4FJX8w+#y<_hP#VUaXcMo=(TiQ)|!wGe>5$fv|(C# zDF<0CgcOI$dAI+t>bV_$Okl$ABC@5$Kjih4{#tq3TGFGb7KDhZ{$be?a~pv6Z5|c zxSRO+#T?kA&4DL)I*nVTZ=-aa(e&|jFE%%&(oATw06XoXJlQ1WXUd96;g=_aO__|6 z=`!$9W|ZNf2VYaYg7cd=xM|#gsg3y!mrc6et;#TAu~{P1=zw=mAFn)r+NZ+lN@$^cbPH-3LdsU>M z{QW$g=v1U1o}c0A$9X!@sYt(Q9vU>17wJS_f|qQX7rX=#1llF|iu7%i4*1eMHi4c9 zz7wI*Jir$gLqo13Q!&ELJfF!U*n7ifXuOQzi!%)f=Y>-aM!=U`U@N(s2Npm9S1SO! zBwV$_4jig>6G+#ViRx-2@4uQ~kDlq5W?6U5#|cgU>DXA>L<# ztr*Kr6;zM0ck^_Dtw`UkI(fQ>rxR>N`d$?&D9`07PRkJLdtU+|yDVZd_*`(i2 zHW5sS)YO{sG-fvIHsYAGPFJOya5|k;&dM^s$3;lA=3sWDn@Ucd9poWIXI7$Ugab3y zO01GNUlPOU$EFfc%6_l~*Up(UPlHZM1kbf^~dzRx+te2bSdpRxK z!_x_OB7K{dZsF;~w?+C<6;7Ps6QC*7L*o?bJ5{Vq7+)Pvr}2sO-D(z3xASxwmq_2M zA_e7pcslWAk$#TW?if#}aftK-TKY$LI?=L7KRh4e^?aJA6D^DMi>PMQ5BF%+qseYNK6Rbq~P8B;S)HB4>305L~w_3r|=?s0TLa-9)d(~>5{vc1M zv5WM>+8Xp2Pp7eq^o!=Pnxp1ZBK-)`2YI@Xx3&p+OFf^bQ$I!e zPKwnJT>qJ;Q-4JI-jhf{J+#IRa#|DV2Q;~DJ5Q&6iuA+t`Mmrgo=*J~=@-q5{UzT& z(0K=*F6&mv=x$7gBfL;~S+`oG&qEe~Tv!p43kfd^_aEGR=Z6|4jQDas`95Fv|c z@R$62UZjFOb6GK2J|{eYA8B|%S&oM#$^suKtKkD>IX)80#^FGCL0JtiD9iD(cv->^ z%4+yQS&pA2$^uU)tKkV{Ii8j%3w)uhhA))m_*$YY@P@J)-cXj~ZSk@~*8cxx@MIZW zlBEXlxeDmHuosrzdLl~)AEW4140({0WoQv(xoI4FbDU<{M9Og}e6&~-WuV_0lBeZ4 z=pAB(z*nlo18ftNObt9X1qC)eZH1)IIQt6ev}01+PzI6xhFT`)I||T@hT*n@J9=_+ zbG^A9pEcX(DK$YymUCQj* z?rm)zkNTl}v?GvP-!dFgkGLyF!nxrQ=tppmms|=vqeXIuN;6UbX}F1_w+wn;#(;4} zsZ%Dh98PHb@?jw*|Ad?pxiN^t+R%z*e=-zwm79BO^??oJPes@>1NqMXeDFcW$XZJ9 z5$8SL1blo1A38)!clH(FFug)2*o7NRHEAf(n1`ESy`#*&(GIN1+rt{L43( zz#hkA6JeC&79GaXCok^60Lgg?d4VR_Gh!qc4YdOd!Yr!!ST_Wj+I{cVotFkX>(_OS z>?v%^o(Q(L1*(r6X%2RGonN*2oJjvphtAMiTiNGtuC4KuRTQN;%lpdxY5q#u#-YD+ z^K;PezX_fPKYySM*u$9?g$)Cs{P0sX?msMq;ulw#BdoH36&w-Zxn_hUFK+h=1_MU- zL3Zf*uIkq<0K!A#}d1qd0#uRjPjk4b&>YArV&s+ z7{!itC;uqx#eK|#9|d;xzaY-=yHFBm!(S^o9*YRV(#Q|gMahW!9TwRUixb(+xR z-re{{bTf^Q4DJ&l;;>@!X%6t<`EFaOf=S1Dr`X^%vJA18TNc}{!A~97!&(8aUFcRV zbiX-y4d5(`#ybdUs4dIt!-W=sQ~~3wg6M(MQ3a$k`iQ1Dbf8l;E0phtuY?P%{)v0&E_q zPB0H^Ww#Lqif4Ch@RX&z5DMb6r&iy#b=fQOT?2(hC-1<=OOHLKsu%}{3uu|{Eh%6% zA{vu9H%n&loJJ^%F^z6xNeB>yBqGpQk|;$q8B3y4{Fg%2;1|)Es5}o>-;Kx<8eld#t8tJXP>a zG^ZehbTz9sz`(&Y-W}uOV5Lc%R51M@oUNR8wmKMU4Xj)_HqhBW)<;ZrY@Gg8@r zQvh(X(A?8wT8Q%xe8JYiYn`ih5Tg|u9SavQq8=+;X#>e(|E%nsoo#Drdr2H^x+)xM zW+Q3{YxV@@Kq~k--R%i)pmY)WMsulcg5nQ{4!F>z$uVeyZX3<^xDAjIAj)uOQsIV< zmXfbPooL)TwEMt;%?%R}vRKjZaBuJML^CVv+0}W&rI+98b*U$rZgOH|d}?a^E;lyx z0%z}|KZR0$$Wd5;U=Ct=n*&Ch*o41US!zRyn%rbHUTk9;mOvd1uHemmgxO z>fc7ENJc4fv1g2qH6s%j_V!*larowe$w(L7i`x|#byJ^&zZ9J%&X6iYWn}e}>4pW- zA6)*&87`C3L9;wyR0hi+vPCQ+y77;^_23R}XX9nnpJSi@Qr;SH^PK|&>b-e%)^sCe zpAYzW5zm(DMzw$gEzk`z1-x^S42W9WoMt5yJ2v2pt`x?oP9v|_Pg$iM9$xz-`-GLm)3Ls zvYj`$S_(Es{HrE^eC0(KT=S7zpJGa6ZGT6&co?f8#yC5|0&)_oU2sofY(Y1Hv4Rx z0cB&wMP@}e0v8h9)r3qT31D+(tMXR4XmR#(>LHx@{d|gGhQxyMM=>n+IgRX{y4qlO z!4Cb-HM`DjA57P!54NAX>sH{mpgUMw7x~HbaB;Y!>648urPo|=?80z+d-%d*Kj|kV zH*u_9g>Hg(a#=?qyX<$6py<}mV|xMp8$5F$1Hm^&OCJ>a`+1aN{iGk$(l-h{p_m_v z2kAdR34?AuLLP8yYAzI^Xh+PScVhX2GS8QfC*~`?vHXpxJYR|Ca~{w8`7-(`>(;BH z{~XRd{SDE7=_7nxd_T|o^R(#C|3me`4@7H^?`6pTD?cal|DK?sLVvm3uH+&g7HS%g zB~6ScO^ip>Px@QbkN(Wzli(@RTSPjZ+j=6oU6J1t%ik{YV{j1p!?FAwi{{7c-?eCd zN9_4Mi{_t*BEK`1zhlw-c>TK;$=54&vFGIqH5ih?8UY7wc z84BS^$TV}pW(h58a{AW!F!BC*xH+*LZf_Rlw`=Lp(y}atc(O>}p{4%@=|u_k@6ytL zj`Th*bBOYLwDkW$dO#uGE7JER)St_3oFaX{mOhX28GNl0=@*K0sc%90k;Hm9Zx-b* z*3y55@3g+EPYf(DBA5ElWm{ezvTs6pkxsIjkcqecjmxw#SxMxREGY7~i~N`@ zDDp`b6!|+A&5zf=Ytej?1;z7w7R{$MUF7duG@oQak-vY@e3JD<{)Hlc!T93&M;6QH zvY>eW;>Gg0EGY8(#GWC!el81&{L#ho6ZRAbEgb%_J%xa8e9v)6w7(!fKK}C;=!2v$4MIlb%T^Pja5<^M2`;gmjuCBK^Xo`s3+Gqq_`X-GM_J24 zTKO6%2BP)2A%6oV%!vF}KGwu_d1^kn?2$8;jpD$KH5vUoZN2fb951IW8^x6y@_KTA z6W3$WU*b~)3pen0rn2!q>^fuFC~n=lJ!dQ%#kX6x?~G-mG~m|lKU3Klp53~O7nDuJ z+aW-n;?KzPci@i4q)qc4=}+_Df29q<}Q#pF5LdV(^Lrp#0 z9uwpJ+hGHw7zjFqJWzCcIv&7{O2e=dkWGdH{*T~{ZH~z#NjW7sh=E|To3e4_#wZzF zDY%R>8uVYd=SR(y6rWNYziC0}|K($2%jw;PR~p;NcB-FHKQVlG-$4rfkB|SU%c;YE z8m$z-=*!`UVJ7_$-ARN2(@FC_9w14<)joW?pNUYe?(v?`ka^TzAgek&FAl zhG;x>&<9gIuPP}V>M`RK27{qrLSP(Ng%NdfL9iBd2EiC8Sjz}03oFY#uA%~d9c2}( zGN!_oAXJxtGkOKRH7Se}&HqWa(6Nlc(f;EhK@}wqn)9dj=e)uyZqfHBb~#M ziLpuc(NL4Ixvi$M?qGQ&7@Eq|rL7t1m~HH7uB)x>?=p3Thd_2Nz>n?_O9jOudUrYx zYz;#^PP|gEtsNXaWIhPfCB12|KT4^%)5B^cNCun%+&%}}husTLPaD)KL9DBbsPFU@!3yD_}1b6@`V8R1vIbuCFaD zFD!FAQAK_gXD{3oqPazY-V@0^D>^|r(2{@s_r8|VzLuT~cJ92Or=@SSW#6*CA+j0` z^^HtTj*d=Fjifcrw)M|snQSxdkqsLn?K3u0)=YofY!kb)tvMsm-X6$kZd1R|*PheS z+uM=T-iIL)4d5deVbQfu<779tq~^Xu_S??I2=R(IM!@4U@pLPVZ{Bc zL3p2NHXd&DTHsccdkXURUHYJgeztl6@^8LmZvy(0cst$Y0`D0|PDVPyi%=&u=I#QS z5_3lk0>*E1A?8l^xtJ`bOwQPi6x_yYX>71s+%nlu9883@Y4Wq2M#0i`%<0*(d`zeQ z(z7MT)aC2I(0v80WBtiz`8V}>Y?VkJOFB=7e%>+v5B4;>0L@u}?8Vlg>4Y_ChD~H; zQ8%*+vhp2vlhtHNH;XmMjIQ#t93_Ad}g*69GJJB^~GGWb`;>Y%gv1MEJW;(Wqdo{(9bA0cvyrbbw z4J;*C)uTSw!0Wshbv}XdIcUvEGbgV()3G&Y3TuwXZ_$~xHAgHti7QScdqREpiY`}4 zTXu7LUrR^0u6FKwtvefQ4f#kaYv`yi>+y{8Ha`KFK8iNWXzryV{y&1~>!qT?q_t*e zbm2oMw6$i2)*8Rpi3^$1&9GaSu`;6>2lJw9jaX{pQ;*CqG2ZG%IP!e2&t2SHR9QLQ zHdN*E)=u;^gmP*v<)z-T@#>!x=IZhas$HFpRjw){gb-hSyQkQdn_pUF2sYB3x(%>; zp2MH7FXlzomr2fAr)Yi2NRO>A1T|RAgCaDP;>Ja%k*6P+ZfWVzU2$xv>92pU8)7Zb za@gDh*gTFlN-0V;oXG%|%nZbClgV*S!P(KB*L^Ki*s4Wv{mSOTB)-H@7&WDdSDneRXbL7mW89 zeO{iYRA1`J%rL$}^dd|5qJQ5&|L9IHtSu=E*A@W)v9`>>unKdtEp~;L*KRaxYfDfp zErL}pxD5Iaqcd$&BcmC*(ypeyiEej!xtrdG@xI|Bp8Cla7U*hf>92FU^e#95z}$EM zxcM^rmAIbR7Fkaw`Fes`vdDT8%S&2MXcF0QN)i@k<=400(abEju;1`N^gm0ptEzpQ{t^03lnJQ?JX#j-BrB;Y4lp98#)vuViP zv?mZTD{0FDS5$3p5Z@6XAbL&?T|+K*1Znm(Tma48&O}tSxUGFLj{Lixp1wZ3!+3G7 zyk=@@_3EjqH4W=J*Wv$$+>~7W2kk+GW{ z-PRnhkJpAvu454rwHa?TLX3Uz%V~Y%akyRBbU;;)Q&wZJcPpT1$VBJ`ow=E_N2@*XC8&TFL`GWyP+FffmD{Gq13~ zVa&;GaAX;?bIVO-6qSP%^t3ZfG%yp9j`8 zn<-u?WWy|k^r7&&QBLee3`rv!y#J;ZwY8nf!BG3_zpM-G|H2nA(#HUkhf#kq$tLjX z)n#VjtUT)H*Awwzno(IQ86da<(t}`hA}o0#KmZ2tUGV-GWB!q+I@4KDjPsVRyg>S^ z_oV34Tt&5=109BbS6+duK*=j9Fg@LPUT$tnU1KkXjd4GMei5zFoLu)6!G49m9nQ-@ zj^2;Hb2*>(If4!2PPl>)m<^MzUNm!c2vc_fo5rmHf(@O9O}`f&X z6?uSBybVJgz5AT?qqVH5wYI6JuB5+;}VkA_%5=uorz7V!##)kC0b!JB(S z-5PHuKq_DvF?l~O<%4A`#hG~^#eau0zuV_`7P-4yTDsjuPJdrVQAtS=y-QrK5_%h& zD@)74nSF)+`g(t%51hHYw6gidJiF1J$3H$<;7D;4@DHK^+Jw@$hz4-;Am|c&Swrnk zlJTLNsvd`aZRP|YZ8YgA!VB%h8YXGNC^NG)f>lG)a!c{1D09^twG_>M<;GH1t-aLN_LuPkIIWp1gBdF{17+!wT7CL`EraO$AH2$2m&aH zY&i)i{{mZPTTjE6(J!Jmnv>89CCkO&#n{#AUHuioa>cq^NK2M{ z0N@ggfW%=f78}76ml{ekLJcmKyE>Gf%%7!ymp`-5MAzF>7&LSktdBj7zAvrASeKx~ zSiiImBh68nb(T5|*0-1v13C;g%%0&qB3XyAHbI9mo2bJ`!{zm-=rGuDT#Lb^dr{{T z7+)^wFw)bKbr|bnI*eJ;VL)%5mJc0lTyLJh3b8LIB?eaIBrOITZrzzzo4-Jj!K6{`|D7H~cAZ|40X+ub^*qPHl6s7_T#qrkK#xI?TT+j~ zhU1zHCfx(r&|1K?1eh+YxX6-;s~8|ZFHn=Ojj74kb2YgKYVtIw$rB~zL`4oZ6i|`} z8`<5DFRjCnuU%A!fvJh>$Kd;GqUR?bQrJ?Evdvn z-=N0;ZoZ7Zok@?emg_MvQx?%<#PX8#7&MU<>M@2{cldm+$speS8NlT!(DNB}8S4^s z8DJMnv2S7*|DWhGSl_>>%z!RK;}L}OrF9vYqml$Zk)X=}%_CL}R+}Wr`7CuA?5(Ah z88YZkk_UimiVX+J64-}aCtt=lC(2RugjGD?O&MGK8^44q~~M#8m<{3puc4QfE;xnBM)f|SBwcXsYgUd$lN+8f1oTQa}l?b_wg`JT(S+z69xlfKBX9N zc8CH9W*KO_3Mmd8H0r{_RfTm|{Eiu3ep&s;HVy#PKR?3uKvSTg{>djydT8Ov{h<)* z3Ybg*2x@A8ADqGQBt;n_Zk&zyi#Q0b@SUM3Ax*3fW#Ra@q{ESQ9H=39Q~QWA6tD$w zL75#;&nYY|l$9&5JURF>!dL&}WsDEZ28IbG+ro5LVc=UuV}p^%S0~l$sF3-vf^VoX^XkuBVt_dXrh2G>nJN&tZ5Zh{NWHs@7=7 z1<4Mh|BI~`zhHl11n-MmFKMdyLT_*A#EDRE?-wc_#v?M$9!fG;H|&We(qJf@mMWVv zEa`|%W-{)`#9=H7;0RRXR^F5pvVY4m=oh!oA>J^aLC9eQr^NM+SQWHaYDpy{ov+ay zHiFWYuT((ePRxbCOj|~}?G=|*!1G2g zZKjO_>HYh4Xxa%dL;nnqwpb}>pjXmSKDu#QFD-*Y7ndFcN=u3h>An#u$b#gPgQJG% z9Y6s-fXm3B45GdQ9ApO}#}_~+(NTv7RKS7C?y@S2&2CMga40jD%in4X(t9_>;L zKqt!H!3^+|SOeND2K~lm10oAr{hL0!dOFyz zn0aJ`p4-gKijzOLq^v?Al{d@Joa|-Oc!b)TUnv*P-;1_<M^B55>%nowDnFHl&S0sDEp{Z79oWiDuc9q+Kn&VetX_4uN=7Z&Q_F0TaTd64{?~h@L6i< z1#&b6X&I2df{!Ipmc^VwZgdG^IQ7d6V<>4?e~-G}VV6Ue(`gdv<&ZWdNSl|FaKOhE zl}TmgL25%9fR9){WUo@GKh(?b(u02r1-Jm$74f@qd7VK=j0lIj@d#Y0z+UF)$nuDh zdQvKt@T=9lo|M!gVNHVqQ#-&pk!`k+LOnRKRG#28f>4P?4RwQoNW)54ospAy|ilnW;tI$3>C;@PRT1(OIt#7 zDJ<0pix7r!H5n<6WneKu^d^dyZOW95=`7W3Ox>Agfg~rJSJPiJznRx8FL${}c&x7S z`&?dJ2rBF30fDNfW?+@ZS%PsE;uKJwbZsajgQX}oW;P*icdCNLgPaGe$wfiY?I(vq zi93UsQ%&aWxVcT?0y_57h|te({lU%$VZy1r?rQFTcnm6+)0Kt@UsqG^_j#PfLh7=l zLF{shal^}st|H>rZOzRU@nDqb_~VdpGx*+a+0xbD6&l(b8eBWrb=$4YZS8?u?`{u; z+V7_EA2@K}f{fYlL64HTJUnqu>bdO0x>|p2!^s~t2g(5p8MG;IUJO{k+Lp@nk}ua` z%}6&O^gHR-Aeqpur?hrzqzQ&Uhgl47U2B%T!s;bQ)Sw98Kr&(ur%S&Qqeee2+7Uq= z94Cf{FFk6>>dtNqIl>li@m7nyqbDa^vVE?^)_rW%O204F`S7vhPj20B8EGo^HKw0@ zQP&YH8JN`Vl;6MjoP)!=NJBm~e-jKK=R>#Tq-Zxqg}Jyk16>B8rlG@vSh*+(vd)w8 za!HQVMR4+toE?52XiuE4-~at9l-44K%eK+?jsU z{{1(l@7%8MZg9CP_3HkVh`+I0zn!J6Fth8;D>_yYw}`^h1JCD1XN2E_RECg;tFtjRfrN^D+ zbYzpWvEJpR0{IM^A0yzeAl`z_=awBdKGHJ1y(FzGbKjaZXj zBAdA@-P>pj+Y8&u>$1XyD+bJ6w)QNCtux2|1%Fd@jag1Tcw(SCE2}| z#ew{jzf5hZF6myDvR!`f54EQM!O+pD{=PNsAI9DwXb59jfkmSV>qIW*Nrm+N zC(O9U*F=J5K6nK=+n5keduJNMh9PCO5iEnd)%8R5P4W@#=sCkMZ%9W_;jo#)1=8NX zG3m+F6bUYQ2@e<%j2`l6Kk=IQqak!(K{-v#inmP9BcAsn&miPqzTcmh=dbWrl$YiC z^1O%}f|t$X$^h%Z4N*}`KEnQy49ndMt!`h`BZzONjgVQ`9lGjG(;GKVZ>rXP>QiI= z{bS*9e_dyPf9LD$%dbxC-@g68#I>Cr9i3`vu(AAtvZn6l{^ss)g~J3#Hva}z}q&{}K;x68`RP-MLiD;oTh;_ObA5Z=+aBZ2K13{kdc^V_oAd0AfSm&W+wv(D#N z_*DolVtZs?;5$X(GU+zHHa2nTC0QnLz}k+SaHcE2{+WGy(sHu8kLgmUW-7~vQu{`Z z`t_xcUVr>aw(Z=k!G>Z_U55Jh*7I(VG0oT|`woupD{#y%Z~7&Nr&Ivhq7$-3y|gSe zhU;(@T}`!|ib(~f4noHeiI^A`Y$=s)(= z{@T>g&{Xpq8%~_~!LPUdyoC++vl{g^diSeOvO#LA32pfR#|mjUG(gu18)RmNhZdaO zaUm9zQV5qXr!wp)K&%Es6pUtb^cYP=86+G~tH+B|AU3g}I|I!GK%bvJXuAyVjFpEr zj1Dfa(I*(R-6`j*^?j*ZHtQ`Dt>)HUgSU)y7mWpPPWi=u8PnviJYlLTV3+MI81He{ z_EfpLHUS61F!THcdgY3r#7W$8J*S}+E>FQ<@Ja!V%HFi~_PB~6yBfE;OmNaiFM zUWO+y+2ByK5ot}NDYtY}D7A>0Qc6LTvGf9Z*cKhvyB{nneT3wj2k*)GoCim>kaq}8DrGfsr08=>$85m_^EPmTq* zu4RIbvREekJTp_bOKEBR)*jCNK+joku2Te+FM61*1cI&~a9SuRJ{lOJMyxzOr-3J%&);{;`cQdnX?VT)Beece-HubM; z8l$-Fww|)Gp4-^w$giiSJ`y4HfljLNQHinSNTuY>2|pAt6&eK?i`m4d;&w2Sq^?U+ zX)!J+hpN~Lc0#W-;*xPFLy)J%n{ITs`(r}w>r<0>y}5Dwj*U0}<~O&{QIuPb9Xr;) zwx2EAvvK2&wf+CoRM%C9S&DwugXfK-UyZoS?hhezAv#rLlJ!O+D-zwyP(}g3ccy|? z^vsBj70yvW4IwCAH^)Qzk3az?M6s&Vl&5R!!!%F0Q?90828 zt);0w(2g-S+N#`DW$+a%M2t<%Z3VhD0v+Oc`Gs)A84E2o&_t0cO1SF#v5TS|6o6fS z`Rd8Krd8G&uh*YdY_NH~J*~|Zr9~xq`8lPTx<*H2qGN?)T~)>099YPP+5VN*S8*uG z=_o8h;SOIzPib>bL9X3Ng##sBgY_-{qdvo~U0<{Q9payH-UGjN+>ik!Tq=a26l@%5 zW2D#7#R{gF%mR%$ZFYeZp)fC$3awB=(~5638?YBrFd;EQtUTbCJR+MN5s5jsw6WWM zammB2ed-D3)%7(z%-;WIz2)eI`sMwJT5-;cRyHz8Mi)0hQDT8(E2nS7>uuTlHvatNCtvF6?^%oY&xVH|7hlmq zYM1!BSj%n~>sK``NS2IrBic48JFq6{8F+fs+G4Y2DVdov40n9o1(5brEg7<6OjWk0 zF>NI~(^IQMzS7dd!cups+vTM743_{#tv2x$En8dBAQR&sQ3HQBI-Im8L;z|;C3NB~ zv(9eQ6+M=oD@@&;N?VI@RAFVxu(730eWV$im3+f^Gi&YnfZeX{`JiW}=bbxn|cc_1EF>_FcQsCf$ViFvj^c-X?riurI~zNVWrT6Z0}YC1G08 zrX$&uY3L+JVEC#BAUG5bzo_lwQ11|MQV1G2IC?xC9H9bgBB;xV=}RdGVjI*QLVvar zf50ywvV-3jVD%(jnOGoBTNIiy48tbH4V1Jx1o^fEb65~J2;6DBE_lUf2mi!u%|rZ) z`p4#>E#a%eTlfd+K*Q6L1uSU=pl^8Gs3TpmH{cEE?fPl9S-q1zs;=1llIf-CzeoPQ zNO>9MZ2_+x#qHB5dnen>QX+q!q$dF9X#iW1mvhXzLM2@6#ua){XV5yglG;ZoX7Y8& zl?}PEmhIR=#agExy!1)qCsurO^|JxKUrw$Ux~@g*6?PGmiHIam0nIY%B*w;oJXxWx zs<@7e-ZInbKlw$%B)=&Wc-#eg%%rH>iSvrQYh}nz*r04k5sMEUfJ)0u!`31;(^41A zG$I&nwyA$$KmX(l;TQ1#lbmj#J8zP%mp$w!l23V8+JeYU@8V>bm2B%^tgV_T7o+!sXd zJ|ABu))Abz;JyHM@&%xNGca^N*d_bj)4Hd-UR(1Tlx8#P7fRU0>Q$K4X6dLr&fbKY z(+62`Bs5r8Xg7gxurZJw`HD-rovFqYFc(?Bnty?w5ql6QCYSsDbZ*e!=x?a0%J=1a zON&uWuE*;!8}cffX~RlJhWHsHcuvy&<^c=M?FTBxM;S28+&+U+HMH3iC6C+;zKOZ)xu8XBt{2|JTxW-S+Z=vtj?Y5(6=3ZWT5jz~KGv1E8w}U- z*xk+7g}To@eE8h%&~>lYbqa3P#q;VNagTcB3rMlziAC3zXG%LF+Dz~;A> zO|Yk?)Iab`Z{-6gZx-;74Wf=Py%sYk(Sx4c3!6* zQ84fi9L{D}oU%==VrJ|&UssR)^PlX>*X0ymZ_B)#LgvPkfI(A9_%IQ@-Hj0F6V| zVuODjG4fqfAk<*SzC>#QjnhFlao|a}8t0yLWbM#N%k6f%%kHc|AP)n;Xl!^S|1hLA?hK`EV&RCy z^Rah{Z&wq_(57|iI>?V{>BnhPnt?uISC8|EE-qd1IQH7^2Pzcs1s8>|-xRr^X&84E zWQSTt3w1^wzW&C>I=1cPhf~#!O;eu%mG>YX@_NiaT66MXXRKwi*to+xRzlQk(=I4x zp=(RgGjS^n^=)`O9WG4DTpBj^v^~>?-MGjjvJBB*V316y1QB}H2!$s%sNzwA#=q1W zWcO41cBY01Za$wcKi^`JBwwwsrm{TWo9}^nBhLa~7t+uH2&tY7@Otjutm#JJrsU3| zeLD~AAZeVKHudq7Y`3jgF*b%bdum)Q96vfUGs8ZnCE@!FYumPQ<2HJ;%WzHPzC#^{ z@LxR^O>GhhK&p{qnCPxcz(+lH%>ArF;G`Z1NyDmZNZpmm^cm2ACS%2xo~4-0%A7UD zg5@g#Gp&n0xCqEZ4MwU#NyN{;(Q@eDZ0+cx+q3JM;QGmA#ras$*O%(|4zw|p9O*!AUcL_u)1|%w*Lga zGo7P8^lxYaYSpF3<0>sqJU%5DLucD`58VT z$;(A(Afz6zW04`&bA);E(Zhy#LI|x>RYlTGa=%=Kc5pTa+Fvw-6FLaig)mCUP7=PH zjU;A!{cr~{LiBP3{csCm=hw|Nu#M_*7TL%eFq)eZhXw#7j)kARlZXRDD}&)Mx&{i? z@c0VKvuM|eOE&VYIuh%#2n8`DhEEtFK1dqERvICT)Tzg5gzC?Dd+QJ@`JY(xl5oK# zK#q%G(1EI8%`iIf)wnLPzu)GVV1HC?8YZa!?Z8Dx0xr;Hjtkm{z=H#t2ri=1^3SmR z3tZS5?WmtQ7(TI=YG2S%c0G-Q_gtU?Rb>Mg9dTSxGeE-#;e*hgwB-@FusIN72MTE? zhzpLbzu~B05%su0g<)s8`^E@Xd}90whuf2vJGqzPB-CV0(pG(^;5oZshI`VWDkq#xRd#k~4HAHDca{Sb6P@!JfK=cRGKCQb>c7}cW*)Sg5X zr&goUM`>cy>aP-LC0iPYK5if8FKqJwErTW<@GZ!fv9ZD|28rxkC~7xbv-`Nf$gxT5 zKQy5M5tI!ww;1zp_?WM285?V9T^|gtZ@o^m%6`vB*^XDZVydHKszMtu(NjWSs0aMQ zUYUrBa7}_HU0j_cXf|1McwfXUhh!#fY<8{&Z`6>%&J ic91of+qS5#7L*2<`2$ zzLbNg449J^vQb+=V-&9en@;ovJU}Mz;AAPBByrcpR4Fa;bw5Hzk2Kc~_7*Lj;K z|ChZK#WdlXd<$yh?GeKyI!CKA=Q&`ZMCRIt093BE#{`{`hz zszEtD)*zFT#z%OkF^cy1yh`M8e3y_kKIpuy+8h?+qwTEL++Dmm_R`7!jWxG$d^9RF zh{0&Mg`>+7<8un`O}5;m@u~le0+cr=r>nsj?()I^+T|JG&KW9(?%qsm+bOGqHHS}H z&RqGiPO&OVfF3Uw841tr7O|Kp`X5Voi8i#w6iW~-cbK|z zyJ+M_R;M-cAa6u{JN$aA5nAiELf@P`j#HUW;yB>93soRrCW-_a4ymsujf3STG=Xsx zVH{lx#<7UPio;5b11&hCV!<~=BX#PHN#l4u%yJXPp_9txQTZmEvB#Q?LkDnsGGH9B zSwwD_@*Gjwa(8w)%_6bn2~!4K$g#;L&jV;1#MpGa+4^;%_H|9+iMIZJ(fS7*i1&Bz z?hb71Hk(5$<_7PJbpvC~KtHAz=?7L3PJN_1qAi~+E%(^U68j+sB&eMt+aI!EuRN2wlu&%3febY6*(KUmYEL(nYIMP?f zI?rXL?9+!@nWy2v)X>46j{PI|&D2-lwSM--v1K=}-Fpu&S5&&G5={ps?b{?z->L&k?5V(ZvC^?vpKQG~3^Qvam>i5@3i z&us3sFI&p%1BJU(9gzkmQ zgdfX8=$YYh$o0^1+mxWq=1^=#MQQl%ce|hZdN=$QpL%Tswks*;kL@pwAk{&1B^eLB}{^5k@LV?&LEY%>V zu9i;IX#6?a|2aE4;K@JSG1S-7)>2Zu|7=ng+ej-dW#pgRVZ7| zTxaO4sv|UI*Val>ZA)zsBdNAq3%m%MS|I$@NHwi-YRx;ID`ug@4q|8H#*rPP1Ljeo z#r6vo_FXG$I{Hgo^^^5ot1P`40dG}vN!k5+qfY+FsA5RZII>}-K67PnsMq%B)KFVm z0aNy+^1J&x1m^IPG0|DVwP_mLD|0&MoQ)|TSc^)#$lZB z41^-%ZOuO4B1x5PUENk|pZM&bDJW{GtS$G{WM(;*1?ooZdPlf?Xwg(w6MzxLSkqIX z{RIf6L-T)CEb?~%Q>WA+t>^ZW$<~(23Y~%Oq64{$Kz{sS#ZJipS0Ke;+zFcz6sW85 zM`1W$fnPYKK-xK1hpW9A@e|8@7N?~Y9!!~1hR>|oV01B}5=&MWopa+h5N&Srd@`1B z?><3RQR~u{Pp(?^$@S~`=lJ1p`0%*+>|eENysj^+HO*64QCnM4?6)+--P644fjxWv z-|F53KI-E9AOC!2KG~e)K1m3hlaOq}ZtidhkLMwU7@rCLH|@jO|Ae_MG8!c z_@c&Qsmab3zf}gmK9Mfq?LPP>PENI1|D8B%O8Asn;>Ys% z__1NJhPn1}WBk4S#}q&Z1*`Y5c(gBXd_lm?Y}hB~j|~~>T%3>gfrW4L!j2zwj&)?> zD>O~&6?|C7XZ2{GXxb==jnn!GI6s=k<$-YQ8K7wg4m4ml3Qoe(+IDO0TeX`@N_fe1 zv#M28;7j^_?`LJbuSRX#Hu(N^)dvq&Unkn+^=gm$D^VY@N};F=?4-jK7R<-TZjwJ3 z;58C}{1K;vV}r*=h6~=(hj;q!cLm<+<6v<1QblGa^%V4*Sy-4!p!Q_WH=E~Y>c7R) zva+TTpxCM}&hAy4zCVTH8=$x!A1bU2=a}KY9IV8VdHERx z9QNG&;YGWEQH`ib6ye!t?aw~@0^3>q)?3Aw`cW51lin}CfO$zO-TavlJ2uQ0SMOu5 zFKG{|CR~r}F`R|E#&~x8ctshXIz9!_#-*7ISop!shI!(fashpMlwSr%wnXDls93W9 zq$Xy3f?-PZe0ynm`wCOW#DejYW0u*gZz>5`IzKuzEMH3wQ`6d()h=i}u`IJ>a!z5= zjJfRbYcK8C974;r!#oI6?$Foe6S1QL+bOWKo3?d(9yGAe!^R5VSz-u9-#L=M6h6Ee zLn$4`E&d7#qVN6Eb_{Il@uCLf!Eb6j#B;%Q@cpe~wUanMxTp9n;=MkXpt}gh)9$zU zXy%1|ClF8lCXb?iPL>gEs>Vl}KsPR$blfzPz6TLC9z$^lt7p6YL z%Re+QOGv?|T6A6B5qFHOw9INsnpk^y!N$_kjSKKQSgq#AR#+?*v8xi&XO=`ATKcWF zwr?%PZ`w~2CQL~9Dd|)k<-;D+XP_1$lq5{NT8o>*RBwC<(R>-Um@#|}VusEBAk|l+ zL+l1@DuGJ%hW_;N#8?8PnocaUVp+n_R0{yK)EKALZK2!Ph7`_`QfpM=pB}ezS)C zZfE66Cf=3dTKTZwFW`5L@Uss4-GpVeA9CCqq0JulTh1z!d)X!U***N~lzZuF46W3| zuNrw_~6Us`02GSbxp#8{jI#2ADYl9FmxB_~>jtUrd2vaLt7o#nafx|7 z$O<(5WT;xn8~Q%x^RotjdGUQ+UN64y-Y+!d8uC(#@W#xDd|p+?==4zTs=3pqe;?^S zIAl?-#R@dn%G_lgnghQGY&_%ITz6e5L#$lAn`8-dYb=jr?;m|r%E?_=&dQ^YClNoC zTUfRFQ^-e%k}2vlF%VCOXmV9eS7S5=5z9FtO7H|any7d8NK5QV!b~L!^OHZ=!*e3S zBH|+OKP)0A+&+_4*Oo*kj*klpiW{F8SyC(Wt3!TXP)7+OzesVRh?g=OnJBajfkV^` z^H$L)kp(^-e9@gXFp%EO>TVxDFfd;3@%ZJCMSTD~h*sJ}I@sk!%Tm~vjI}9!n|vHC zL+NX^s1Srwad?y1oq@-CV%@>0;L)M_B?Hk)R8my3dqbAyIq|?oz9`v!Vy|j;Kx*WK z@aS<9;=;0nd02RS>J0PGqC+Oe1qTI%V;;Hy2fxNo#4-%=yF&db+Ry0nmtUd$czb#R z8jiZGJ9A(lqnllFGXT2qF4m5F4PV8Jg0q$mss?S=eS=CUo$DSNbT1f@MezJHwnA+r z-J?tpy!zL7z!2wYr>5Gtg1v@anX2+V$WeooBaC6NuMoBJz4C>*?7gJp*aSm;fLNWTp0=c~#;-CuB6 zjUIfD{Scp45qAyhzl1hgD!HOe6N5=g=LXS+Lr4=)+`aIy_=YK=Cb#%v7?eu~@5KsV zPPUNX)6@D4CEjJG=+N;IY5tRvewLnERuJSJWlkH*D1UAQggp}PNiYlv70jY(aTY6^5N)yDka=u0)Hlt!NVwBazL8EBW zm(?N(4`U-W5yN6R$;UmlSa(Un;Lm*>h;tZ=4y(spwKy2!1ppOAN=Z)f@{Y+6#X))G zzDc^)Mb@v{5Ep@S#kl7`At)<8)YHM*{rs4}Z!C&4Y(c7E-w^u*I`q*i>CjKyI&?P= zRnPKGAOi2pk1F$33IE>{%|nN29kvLXZ(*09V~<0p;~xEgr_XVVbM7fXComb3t99j=yf9K(R&BBrMXfLxRzww9OvnQDe(%PODrKSSd~WhKV?=LknzHdI5T0ecl|gWRPHx${?w zgl@-6&)Cg_ch;cFX;p|U9?L?SHgeh`!r&vfVI#W<=*1JLCs&be^9ptI3f6_ZSFXSx z@!>PJMD6BA@F88~Gd_qmFCakQ1Lg58FDEqE{eWQ@I;=!i%qV3)YdSB%ektR+S2@a-&sBCsvXb}I;`AG76qvYjx zXlymY&*P+(z|*bB?`4j+IyL7Jyxy&q52WgEw5RGiZyQ^tJ_CC2YWGn_;T`dKJsf8h zm_8(Q#p`&7kj}5c=R~ck8240amADORrG5wH&`O|CUE%ozR>^T2F6!n7LmvyQM}}JD z81rL2!81d23PQ;8K31m=@nodgI$2M%X{cMK*)7w=o)A{TWjI}g4-Fx_f}bMVF{Sa=7UL!+vz~&!5Fq$e z2c7m~N<*2ca^!Zvoytr%y?#h%k&d&CaGXPHF2_L&T#UB(o8h)NNz`yMEymK`F?BXI zLNrGh!;KN!)5B@IyO_OD3&hOO3vj-2Tv7Ro6>8*)6@0w^lisRmfz;j`*dI|B$7OrR zo`Zj%K5c*ZNc)^e+J`PnyA$-EAEy87>k^Th)Fpq1Dp|Bb?Yc~rfciG}q54OR1@yCG z__Fh#=q&wP@vy%7=dil^WJFzwdTsZpSEkLpBxQqY72)eJ_WUuu>8;KDnA*q2zs-bX z;FVVy?w-dm4O$NP^VmG)Pdo@xR5!GHXpufYA6g_tgu>nPX9hVXcLS@yxFUqw!qB3j zB@%zhFur?C&NQ540RC3lw=!)pWQ!>mu~RRHrwDz4vr%77SB%!Tq$e&)J#iQ5iR*{; zuFw-oqB4Idnfak#8G~Lu1$SjkgEp#E7AY-w2DDS@Q`TVh;5y|7$N2bml&WKt zfRHf(ZD{?$_^{gs4H_C47TTtS&r~BK!y`JP)yVRgSv+cNWK>(6I(E*u**rFWY;2oR zjh~k=myb`3AK#Xin#>ayOst$xkuu*qDLpZ%Ez88xt0!evX&L79jJDitW?q<=Q=?h( z&6c*wg)F~rN>Qy=Fg3rRZN_vqb=tJ4b!1MRw!ERZo==-Pt>XFTpMLtuCr_VtxsDw> zdi3DIef#zl|8mc+T|0Mf-@bM0=FJ;6tXA5C{P7Dv zdhY3GpMLh4A3phmCx7tN_rLeV<7ZBP_w;ukd(`!a>yc9@zw_|7PaJ#b*h9x3Jo>=V z2k!sYeMjy+eDKi0L-*Xh@4&tT`|sNG%{|}T`;A?9?z(gL9XoH|dHZd*Zog&wEjw=B zdehdMw%xe-hRru@xqicS8?M{5aqYEhuU)^ce@*|I)dQ>gR`vFDcdlH~(caeTT->s_ zdBLIu4YMm}SInC`y?pwtQfv0K?5TzMlQJhxppU3g5qJX(oKIOqOScAZ90$TIG%5mX z&yfcDvZ}icGy{|$#)OZ4JU`DspQ`1wHQU2(z|Eq-qu_!98iX0~$yHo=gzsqdX(|t4 z6L1M>5|)DL6BSNrUT)G7an6LCC<`5sgq_^5CXKcu-mt&46N<{qVM!H)EZ_lff+sB+gwpN zcxh=$vLV{Gbnx6#OMszZDSH#|%cf>#rpCo5JyTeil?BkrGAHR&MFjscYz*GR@Blg~ z6#f%q)VQ#!+rp!w!f&ez8y96qfl99V>M20o^HZ z7uFSD0t}ifE7ff|%PTro6cxo+ilxRwm@2<>>0+#XZfvQ4rkNRqeq2cVm@p4ZRG?om zDyST)hsiM>IYuVtM){Zz$jxMcZ? z>n&=*#5q&?xoE0sT9_7^ zP7@Vk9JV50u0pK~TAZ4LWug7?Ibo9`VkR1m6JsJKh0n9I=c0}$4!&DCCCZpGZd{5n zYASZ@f6Y8O`U{xK7xj5IU!ShJ5DMa9Bp`nQ0#;L)V4muvc; zjv@#2G=T39@M|Eo6UFUOo-1CdxKDY;5u}J_a(eY6q(2CF36R>J@g<0%q2Ijce!Nz+oijm{i(PdHfxoxt0kqnkImlccS zTT!)g2frDzMD0Rg*#rO5a?}~Hhxr)_%z4DN(x^q|!868K-^EL>k zpPn{DdCF8x@XAlYP3ClRXSTSIgSJf5V0<;&o1f;#Vegk%qQ=FAhsTYJvXn%(CDzp?wh3AXFS0V!C&`K^KQh#d&v7Bu=r49ys3fZ(a}9@Z}XFcQOClC-%bz{lGg+pf^MfD$+6K0lsLrlg3u7gv2Oj~jjUNDR+9BE_cT)SP!_T}udWu>OJ;2N zvNpJLTYPtS{5Ejo40}sGj4L$0eqRSkqwjnFqOY4gsoZ{ObYJ(Iuxnxl_y3E&?i1yH zZ4&7EFZ6Z1>neTS*U0m$_I28rtMql0XY&8AeVvy4ull-Aln1of|9ASjhrTS`U+(KJ zDR*c&vh8OVPonYMS6TA#;zFYoh)l*5`u_IbFo=JGyI^mb4Mb$Yia_GICV=YP=m zQ9q*hef$Q!?;AVP_x&%+cf~$X3xUA;kMx0m!C`;m;n(d01;0l1fgdY}v^dcRVw5nd z54=iG_rL7s_?=hk<{0|8zo7nx%lCEqIKi;X`?$X-?`diOojy)WyFwo~gfY;3{Ak@|mOU#F#hSsS?fI*ijW`c!_iZu;@% zK~w*xc=Pw*qr4ul>l~Tq>|L)9t{(EzZbolNr~QE|{t!=72mg#;*Wl{Gi`vaJ()aw+ zcC&iLs6K<_>y`2UEx?nZ;|Y*{J-~hySPuV4fZJRI`_&-xUxZyLP9g9|LnZwD0F|mq z>4douW`}AT`kM|Iz?u{Xpc#+?umT9b2H_vUob3S%DL!B=U_hE=CrCrt$)xqmE-IBC4qzk+dzE*~jUa1C9T#{?jF(v}w%!f&BpUOb8Rst}>PWVdzesHhgTZi5P48l!q zjcA?%S?vT64Wye1FAL@bvI8hjl8t)A`zuVMa~6Q|VF1c27bel;);r;_Q=Jh`J*5vE zN}u@Q?$f9Yq-RH$o$@0P<&x%9;H`k2!CyoG*4c}bt39~?Rl zzXbM?C{L-d>v>Yyx)6`*h4N?y)B*eflt#WZi(wKF&Kv;I(nKcWQW=SUp<`iQt?U8^ z;i6p9r1-bPPW9sks+)QM$tl%8)erR%lxHE;Axx6xc*I>R{fRcJtI;wU0vsWaFjpfS zX%9UMcoIDMHq0LZP=7-|Lb_fEC%K{g3GXgI3gB_TJ%AShzeE_-vBc432x$vhf?VDO zNC7+!xCihe0C9%C3wR8Gb~$(oChB)618^U}CE+_Tk?!C_FlPXg0Vwm(V!%PbgUAQ` z8gc=?13;dG55b%PKp#9rVdxu%?gbnM1goaOgD}m22tWy7F5p(ce!#~la{$t%@|^*o zJq@0Q37H&1n;iNUfM`7qSdTF9Z}2a$qYOiBfPU~nwzI3I(Ez*_fJh7U=YvM#%^3j3 zRfDHt&H`it8UQULyd<7pjh{+3@+KJ|nIU;2*`W47`e6>rMPbxNz(Zjt{N(_W!EgY{ z1i2>xC~hP21)U0LQ3e1QBhq-1`ec$3(XOa%5s;iy+n_WlF6Bw~|1u0cC-b8`uLMNL ze+9sc3P37&@ngUXfZqe&0Q^C^hY)U)_TRv~0C*hWB0tdOZu?g=sXhqYJpNiH)ysbi zP`-XZ6KEtolLsgPm;s4^azHVF{0gL<@CXh7_5OfS24RzQNE~ll%zg0Z5Pk z3Ggxix(_$~j*LBi3i}Fxd+ho<*r|O|83?G~Z6*^yd8`5~kS6rG@>>Aa0m;{K!1Dm` zQ8mD%{3(tCfZi2-OTDyHJ0`zuKo#^9bhW6nSeS8u+)?gKxGmCeiVP>eu@b0nm@a|x zaNEfwo#YARN9hxgozn3KBmwdPSpaGiGXT*5Dq9oyP@=hnjFEmL8plbK+(c8jG^xDg zM{a_N0F-gqbkj`n2{ZuJv)kVtFCBhFOE%>VGX_AkE`Ylq<^X`|@_O*wR|mmU;wu5A zNA>Nlho@lw1Yg5f0bT^)c+1c)05<`!{xJ+YVMnded(cBCBs{OLehfVV_fG&Wz=MD} zNOK5qiv+4ivfl;x4Dda`BLHf5YXD~eTLHTP6pu`ITz9;`!_PCGJI;;p2jDI?lNiUX zg8MVrm%~rdP33Kv%XB=E&oZ7gV?EXT6tP|NqIwgPx%xj4p5`jWYw%rRd=fU)T62k zFD*XD#o%Q2jMgWh-OLSFy89%~b;cxKw_@}tdH$aQi(zINySevWWYb{!jwn5vj zozvd&3iR6Vb-&jsucy3T^!n6Lh-(e!8g>}=8jctqHauZCYk1Z0rr`s_XWmxt`QF>S zcYELC{i65l-k$}N!hwpyh`+ZOO zKIQwO@9VyA`+nrN*YAkm!+uZro%MUw?@hlC{Ac;s_%{Zm1uP5L7x3X2)0o0BrDH0` z93FFG%$dNNz{bGNz|VrLL9Idif{q5cf}RZeIA}1~FE}zdF*qxDaR9yb=nrFxW9G)x$F#)s#B7M!8M80uXpAf7$(R>n zUW<7v=EIoJ$M%lhH1?HPL+qK@=VD)peIxe0xVX5cxc<0paR=j$#hs3OI_{;ob8+v) zT^KiY+^li;j5|K=$#HLw`)J%3@oDk7@yp`3#P5ke9DgGIsrXOF_l|#k{M*JQ#&%=B z@q+PULUF>}g!+V*gr0=W2|E+^B^*s~B|Mq%Lc(i_TM}q*;? zwmof6+TpYlX=f(pPAr}{cVhj-mWe$RH%#0<@r{Y^P5d-HI=w1=S^A3f)#+Q(Po=+; zej)v0hEGO#hB3pGQJB$^(UY+uV|&J)jKdixOeRyIsnk?yYBY74)|$4Oc9{;FPMFS^ zo-@5-dc*Wy=E2NknWrm% zsfkl-rtX`1cDcI#`xkhU<{aj+eb@kF+ncKWzWZJ~(sM%-d$}oq1&D@tLP) z&7QS;);s0-<&EX{&rY7bdG^^kk#iQ!*)iv_IiJsspIbF|$K12nZ0a}9Jn!Xs=jXjU zzjywo`P(YSR-{&BS4^*%T~SrBtYSsQ>WVFuK9#|hag}M6=E}m#;>uZ-m6i3Cjg>u> z+bVCXJX85}P6Kns@GTVsNP?Fy!wgiv(>NGWYtWr zvDZ}9EUQ^jv$|$W%^NlE)qJ{8Ss1V|dSUWH^TMeM=Pq2b@a2VXF8pZWU~OP+d~JGd zeyz23e(j>#*4p0MO|?5}_tqY(Jze{B?Mt=iYTv27P&eQtfQGmR zQ^VATxeZGiIvX}DN?o*V(PN7P7q>1xwj_VamL*4*yuLJW>B~z8mn~Y>v~1V1bIZe* zFI&EI`I*Lm#;V4njh{O-N3bK#VRB4$%yrZ|S{(h3t&Tm8!w#3@X~!#$w;UIml&0V& zW0Se5xT&(Kv8l6ZL(|TtgH0!zo@{!l>5Zljn=Up7G{-e(HBWDz-@L53t9euNZO!*I zKivFO^UKX|Hh+h-;&iby=8vOvX<2?x3wH;d7|ajmJgiFIo6r&ob7CKb~)EO zw>ft^?{OY?KIVMJ`Lgr8^Ihl1&cRl{*2vbx)~wdat@hTc)@7|LT35GjX}zs=f9w6N zkF}m{eZBSF*3a4uZINxMZTW5Xw%WGVw$*Lh+V-{`X?wWsiME&8&b7VMcA@QJyH9&~ zyRqHWZf&n`?`q%LzQ5hoezyIM_K!P!I^sK0J6bzVcf7eGZpEe*r&h9+H7j>_YMnKm zhdYmTezYojRn@A8SH0C`?%L3GraQH}r~8TSw|d6*^!FU?xo}P8HQTQFxOZ~z*52d2 z@AOUY>*;&4->1L0|HOdbK;^*tfyY*dt}b1@d-Ypu;@9k4^ZJ^LYXjECtu?Kkx_0i` zC2Kp^Zdki>?ZLGt);_uRrL}LY{c!EYbph*A*A=g;TGz5}^}74ly}RDLe$)D$>yNE} z_1e^H=U&@;?a^yr-%zvR)s2RYQ#aOcY}~kE(a98oJ^}C+hb>WWuJ2u>L z`i>8GC+}Xgd*|+_c3-$N@y^yekMA+;S+b{p&(1wh>^Z;Zi*LNQ_vqeNzd8S#ukEYZ zcW~c3clq2^dRNz7XZM@-Z`yz1fO5d+K4&Bs+Ir~Bp>u~mKWsQ0emM1T@!>^>_aA=y-tc?v_txLrbnm`<&))mWz31+I>qy{{ z!XrILHXqq@OIC$diZwGw4^xJE{O*bLXH@th4pJ2ylJHF5}<+Pfr+zRja0weIX)C(9! z+;8aqu2-bT5Witck@RQyCMb6K!JjKhO11RY@PNi@Y4^e|=R2g`phPS8NV^Yk9+P%o zWtQ@DY4=w`)EH?GfIVHegOE^linOb+R(H{57vx)rQKKA#b-#n zKi(?;nY0JM{#V@&Vv{x82|#J$OM0?aAngoiV-`z0$9akCrCn2Uwfk({J?nZq+S>b# z*=9?DvD`Y(XzT9n$uc^+T8tef#`3P_EMrM$r%@pF8GD_5&fe9|mMnzT^>*|-dyNYQ z9R2;h-Nx!FXWKxhqc=OtY&K6>IHzv@l#UV|N1{|`N|Y-^Hp-w{XK!Cecb8G5a<%y7 zU9H`{s~r7=Skl|v4mz6q`vkG`I#xQ3B~48oT`Nt-O2TnX# zT>pbdN|0VuVYnD zr_+5v%wL4pkT?4C{kimLqZ+B0pqod2y!_f(Xx*YwUNjdx0 zJNx@_ZCba|qpVYUl@8pbLlY4rE>Se&m`4F@<=9F+4<=#t0xt`8hth?kA4cGp2#hY= zdr1BzI1JJWb0noc;d0`Lh!ei6@!JASJzkx_>lYzLWq~q)bo=qI7daWx2&)j%2H#Hj z_kyA<&_w^H;HjZGxHx4#Y?P8`I+v$Xtz?c$<*Vgv92Kip(AbCEx>0iCj+>VMH2-qM zZxx(eB}(f~u>>V-2JbsiekW}G;27~<=j=TAuY^Bw7$Xe0y5Kg!U5QkPLq_nHYQ+ft z5~qz&Xb$0{V|BpS&1pAg73klK#c8T;VVDAw1L}^eBbO^dAyicS+d6SIvLl!10 zlkjhi_@~!u7D6eft6@06IUR$zxe94e-bVa(BNd{&8T62}kd*y?$)#_rfohN%jJ*^g%EQVoH58|;Qk6@}5MGE1 zQ^S=B%KK`B8mXiyPOOVWD=(-q>R2@v*OiaMiK=*Yyz&#(s3xe1Y7%y`rz@Xh#UKSe zA@*;oX^KgmsJw(8=%>od$`@*e@-w`nlc{E@lkonMS+yuxYBpXV$x(ChSWUk2Hkz0P z7x)*dMe1Y-Yqs(VdaR#g{b8CqU7ev8D{X3t@(b0f+SF3DOtq^saW#H9u7AEmorBX} zF5JZUXC+t3!U5m1?KDO6^jnsol!E zYL8NiZ~E7$y=tG@uMXh$*_G-Vb*;KiU9Vn?ubvx}73xNHlX@M#{%?kO99FMa$`rdY zs47agx&=M#OyvW0D|)n9_*Q-+Mhv~`P3m^_W_5>pi_(Xcms^!<)Z5hC)m^xnZ8sX` zY~>&7o$4O-8~7fwSN$fM+pn;Ky$?-ije3_dpzc=>s0Y=%)q9kA>LK;8dap8HJ)+)+ zmHwmZx77P_)6DPDco(S0)Cbk$>O<-YWi6W9I`!Miwd%v_cd*KHQazXTU8`o6MJISD2Cky3*%DNm_CP@h(6)gLNW|d3>hpN9Z@mzNr30eM$YP`m*{n^%eE!>Z|H6)YsHs;x3y->g(#S z)N^>7Y%x}(K2*;uPpH4at9SpSzNsu#f2;gaeM|kF`nLLe^&RyO>bvS6)%Vo*)eqD^ zsUNC;RzFhzqFzw{s(!3~qJFCWP5n&$yZX8M5A_T6pXx>Rk~)Z0tsmm8vwPGb+$n;+ z*$f-w@dy_l8D~Ds7wSTak&UB44p8k@+{Sq3w)OqPY4DoVv})W`Bc0VJ{_-T z7PAs&Wj5UXU&icgCY!~|*=*d>Jr_5g&1V&?k}Y6WteVx}#_U?0F|KC~Y!O?GHMgZ~ z8C%X8nS(X4X4b--tQF6ax3dnmf~{noY!&Nb-K>XQ!+KdC>t_ROHCw~hvUO}dyOwQW z8`&my9ovjEmRr~jY%9BwZDTjF?d)c@gWbY*vRm10>~^+`-NAOVJJ}xg4YrqklkH=7 zvHk1-JIL;4_pn3kFuRu>VfV44>|5-9_5eG^9%RSaL+k|mHhY+Thq>5Ec8Wd1PP0eZ zW9+-^411hC!M?|yWZ!2`u^+If*$>$>>{<34`w=_Ko@XzxAF~(PPuNTBr|f0+GxiGm zIeV4;g1yFm$zEr_V&~Ye*?IOG_6GYO_9pu+dyD;!z0H2l-eG@W@3KF#_t^XF1NJBO zA^S7?i2a3KV1H#FvrpKk>~HKd_ILI<`v?1i{gYi}m)Ia1!m6c;BcOOKk$Z6i_vSv_ zm-}<Ywbjfjo!@^AH}&!+1Ey{VF^PE1WTWERW@Jd>oJG}yo4JK&^BkVb^LRcl;Dx-1Pv%qjR6dPQ=QDUQFHsI~E4T4dUdHWw zCZEO2v5Go}&*k&@d|tsT`2wt|R`VLZkk|4$Ue6o&BEFa};Y+d7x|}z12XErdyoEb? zD{tfNyo0acD|shh#k+Vn@8Q?*Uf#$1`2b(d*YLG`9beC{15o$umz@ZJ1QzK4H<@8#d*`}kdaKR>_^^1Jyx{189P z@5OrWef%i@7QdfAz>o0<`EmXbKf%AvALifTE`E}q;*apt{89cG|1LknALmc-@9`)3 z_xV%&2mERNL;ehZmOsaT#Lx2Q`3wBV{6+o~{u2Kwf0_Rb_lJbxF02TgVTr#n16y^Yi>SSabd#{wDt|e~bT)zs-No-{F7Y@A5xlCHj5- z0sj;KkpG!~#Q(xC@W1kp`6v8S{x|*^|2zMj|AT*_JgI!j|H&^Ze^Wl=m-rwbqPOTY zhLcwsUhy;F#ZMocB%$+q@iTDcV$Rn)0|dU7LYfsIRge*Jj+J>`-On z@>}J+@|N;H%CEJ>+7fN4woF^DHEIs6No&Tp0;krhwQ22IhqgjnsdZ|rv@We1Ul6X* zdbK{SUmMU?YiqQ%+B$8$b}hauY}7Vs*J+!z>$NS~4cb=iMs1sR6TUXwtnJWl(ROOL zYPV^(YrC{NwB6dB+8*s2+FtFO+CJ?rZNGLvJE+~Q-J>1S4r}*nN3{F2quRH$`?UwO zW7>m;lBQngYNz)=SBIsnq)a!h`O-8?Gh3Rux>@2jZPG3AOA4jCM4B>wNw#;%Do1l~ zcb9ibcUyOtbERKNZ%0>~qj{j;>0MGLOn+N*M{o1Ms@6{DT0dJ$cfX^#+1b@^C~bBi zB8=W{N57#=kZULto_a1;NwrN6zu^8|DhG80HR_)NIMIYI8w?VZI(T-ytm==ZMBi|Jn>=E^#S zRnqVvG%w#!Eqwi}M-@8TA_*-LS(q(_cC7|%Hq?wn&$bA%%$EFY!$Oa;mdP@e<$En0 zDMOh|&@MSq<}Q;gOIg{Ng_o6Kp{%NfdR2KXBq=p46cuKu)5)$IA=|gErNfDpl#V__ zU0bhXwbQ?0Bv5CgJ=f46f}~UO++Ju{B$D%6G%QmFhev@*?0N)ifix}B%#miEZkD*s zQt6iXB}LM0m8OhelH=`=g>=ZK=oo2=4yRtm=8)6priN(!x3Z>OZld0872B{FB{75TS~kVA3N7IXaChLh9UsV%mT z;21hQ7-^FXuobb672X{(rw-W`J4DrrM6+`W^fsAaBHHANkp%Tja|!}hw)HxlU7c7{ z>u5G~3SJpHhuMGzYSTJFm!V5%W0#|+yAMlhJ?&0Imj_yIK6gT{x;@A&l?*GDTq%`| zE0y(I>SnC0XPe!tdqmJnWg*Mlu_RWhtd=s%nC{C2y<6vlf44_t?bXYJH84`tg3oyc zhCaP0eWSRMZ7I_Fsd4s?pl4eI8EBk2h5?VVmB})c6?hGd&|D@#j zzxBgHHbz9S=44@&&ur0MB}JFHWSF-@_YH7}G~5oskIV4wo-S*_WiHEQt~}ip;utA_ zXLyMWmsFKr7Is;>C00Ew$l>PAWwdJuJvFl0kv-36+F_$-5yS?7I(EYb@u5VGFj0@nR6{d&BGKD1=H;> zT7?;1t&r;6A~&AsG=L}M6XDX|?2a##HNu5lz!cpHOd+|z*ELkG?2~fMqFX_@-VAar zZnqmx@7HoIqE(u6vt@qSGQVs|Z?>CWiJvX$%$9U!OM0>;ec6((Y&Tu*^kx3pdY_q_ zE$K45@ua`mU4C~yl3ue+-z@Vp%Y4i-ooqLKGC#AVzd)KrZd0aPB-1OB=@iNQizJ;T zk{=i@k{smf!%UbGPamF|bFC83D)IE;D*R=-7}bgR`asZ}t9M4`TzxT$x|4 zq&L@1uf)%lbmmGrb0s~wlD=F?SFW2bclt8_TuEQ9q$|&j=ce0Tes?~S-aMIpp3E;# z=94GW$#v5w^UIU;dfyMXOkeN&;g<1BB|UoY4*8S$=>06*vK)F33%ATi z?`a{Q65lSFen1 z?$Q<^h?gO_rX4n|91}UOIgXwl2WB*@npzxe-T<4A9hV)LF?7(JkX3f@s`hTL>W;Qm z4qoFJ@Ls4V#Vgx8xD8O**WoAf?eFgD?hBAP35O4I5*A;|NDr6k>JFKfaQIcMa<)k% zLU(t9K@!RBrZQRVy1IiY*bY;OBTP|!FopQS6x9J!h#O47Zi`)4Log-2uAbnQ=~-p` zLLs&md!h6%l=&3Oc!h2}nNOk2r%>i2r%iUfTe8^o?g*xguXjUm%lMd*it^cHetP#| zvFqIjOqsvlUBE5#&zA9ZwGV%pzntpYFa9TVz*0r%4E2%t}J$4?ZA}yd9oaG)@hdmT)Ui=+T{S)o-gYoU#6Qc>ByJm z%$ND(%XIT)IrC-uc8PD7_;!geS7YpQDrnccQHxzyS1{dpGF`d)V=uAOJP2}X!v+A0 zZpYdx?kL>S6bcTk7Fo=3%#!-OC{qN)vR2R~so5uNG%#zr))p)d{|zJ2(aQ z3w6>#>SU!*C!Io_==#TMV_gGmZHITau2Xn#d$%59%l7IMilrZlWk4#H9w-&;HsEl2 zb(2o;rF3Tq2$BvrdiW@}9z&8O9DX7<-6{&MqsYPvhYt!XEK&=J zP8eE6bPg~@Ck9g}ahRf0gejCcOwlRA6rF&@ULfNa$oO(?&#n)mP|I$AnVvqVg1=0+ zP{uEmc!e_mLWy7K#*_IM%KQsu{&E4st`E+kg=9MV;2dt5jzy-U55_^a%t!C6p=~4` z`d}Gu8LkhO;g<3BK{DKu4t=nU^kjH}q*JaI+T{v`U9J||Z4ytPBtRQUdiB99+>&1O zc%qdQ$@KKWEy88F$#nEVAKWsX9GQ+j$b-M6TOZVcZt2D)jUqp}YG;?L zdv>{SV3(_VcDZn1mkS1VeGmt2CiB+^ad6B0^}!q5vK$3c8x^>K7nq{< zU>5m`Tw1!iSNUMUJxf^n*K`YuUw=E+v4qvPwR@mf+OT&@$Ls4@tK;?I(?FMQb<*ZC z9kHuJCaC9uJyE?P4`HD^$RhI~tDc8$qdWv2qBgWOTOr>8*a%Lz16@i`Jzj8wndj#n0h>mF0F9u@hrNu!mY=%=zTogLV95e zsemb@7^aXam_n*xiar{qs7I{xm-;%oy8E4-&JG8a2y!4W5MtKK272|*s!SicWSjNn zRG4{Vn!7QmUWF>`cl55)TDrU1bdKm80E#SmNvYP^(JK;%r%t9>7e=_HI9YY_%=*v( z{-Tj*oAsdq+>%ZDPyqgVxJ6f{+1YYM0CagfdV9Oq4D<+MEJX!=!YwuzO0Pm+;nmW; zMl2>`!LUg8>2$XCOPqY&r>VQYUAGPNv`B1s){-=f-d|yfQ7?)`mfs>Jz^aeFv#t8* zJKL)FH!$7!vS#)E2^9|dMxEIGc;zJ9D9_d8p3>Ma5j zH7RNUrf8GqY<*l0Q^*F^k_A&?7Wj&FwdU?sO}=7nkZhC|!rZu`y~8c!38u`$T;eNM z(>!A2`m}d|d9n!z64A`?G-8IQvJ!~(GJ4f0r@q@XeGfsqIe99~S-lh79#2`|KRomT|<>ubHj z?n~>udK8@uk*g$NU2kX5h;=yydFjI|@hhSYli@L}vf2YgcWSi@6e>T)Jf+gJ)Wg$W zrhD4UJUnf(_b8PyNgj2dRM9tur=q;0JmU*UWmucEP)3ljobhC&q9U~ZJR`kRjD}-!#m(Lcas3Bp~<-)@%D%n@m z5J{;XE~;_3Rs{C2OGwkOOGNh&D}n3b772T}1%BX&7*d{rZYk7d$^%=_5jgz$OB7g_ zCXtVadqh?Phs)v-JR+B&?#xC~81@=zD8pVO>4uLGJrdQ!Qwllc+rx7tde}&GDzl(1 z%uS0&WAcbRLbQUN@G9=U54ytk%75pD14r2BSB95y=`~~pH&vg-4bj0vpAHowWF+hz zkI)M;9P#jya2`9WE+x1s{yP%C7`sn^uU-R!*9?6DmvFNu)N=N;YE!T=(qwcg3+u}o zjK(=Pz#B$rZI?`${~sS;+UOEbB6hAYBW zPx-kbZ8nJzYiu#Pp00Fhsf$jfsbg$q&1Eh_S$%?wr!-V8t_O1Lj(VdDhs_dP#SO7W zS0UL78ybu!b!y6;X4u{d@S6SZ(A0vhNku9HW`HiuScm+Kc z+;Rojnq5j&y-N}AE+)W@XTRbJD}IjS40hBK#u+cAsiC38(cn@u8X9B?8jLL{Pm;AE z)8%C{mKj}IiUVcxwpG@1O(cQJB&M!*GaQi3OKZ&zOgdaQPohN)R53%bQM?EBP^EqB1y?~d7E6mwv1EQ zPAs_Y180&o3F4Aub+}klt4nPLAujLqOqZ|8NYnN(<$FT z#a3obPZ$;)f79iH6riV~W`G16ir#1}+mYm;N)^mjVyQx0##j*PrV>?~=7MPiift4au%C&ZM=O zt}xS_1@&{Pba5H0J;Ao>Z$k4ue2UGS93 z`jgZS!7l3#)G)FQPESZeG`Ah{K;aYxEtx_aP?DLTeD z+@~$%A;N^szO1aK-W8f;HI}&oA%0_$AaW4JaQHNWhVMp4tJo+PrdX|3;zT$ILDXz-S5U^) z3QT2vR4*$P)U$jED4!8@C8B&}CZT*}CZl|0rl5RerlNdgPC)s{Ohfs|oQU#~nU3<2 znPoCg6)kF#2`r9oG(!8SjU*fnn64}mUbD$HDZ@1h4by@)F%zPD#g>`mC`=*^|1U8h zmzl0?cU_+hG?bC(xh&}?z0`=ZdT2+g#T*azTn#7JWXuzk=OHycow6_M3#g$hQcM0y zK9#8p{hoNgTs@d#3Ef$K+~XCQv}+{0LAL^w`DkYWF;Am zQ+FWEDVL)ev-I>_2DAo=ZFDt~aw%R=|A=PvGR8ilrFxBRu#(F4gZ4)LpdiWK=rW+T zFK@SKT55*gJ!!VamL!)KdRJ&Y&E|-Oy|Dp`Vssn_NJB@EWOo$CCLsqq$_Yc{g7mJC z2?!zGY(OJMWq3j0(3Om$1SvYG+ae-3ex*ts$qT|V)y)edDDX;^yhxe~HccB2a`{1r z7>)L%nUpEj;&gYID2&c&mr_%oWt@thov3HJClVd53YQ@Tu5tto4`TF6{IcXVCdt}D z7m(?i;m%EPUshKmjdVsA*vaEMY}7?R$m#5&eb@zA?u`B4M)2zxh%9Qw(_!2 z>t&(txSr{aj$t#oCTDmexFfkUEH$~NWbAYR6A zq-NENPU4(|mX?KI_ZZ_hooOf{(mOYGp{6IUq_0G-=xQ;CKbjec*sjagQRmN z6!7E>H&WugzOEb)ZaZp}B5K)dFF%@w9oieiVQ5*C##3rwd};Zp^R@Tn%8nFy*O9I`AV z9J16B4q56JeB;G5T39tB|KqUMtH)uoboIK zS|jC276;`?mL|%REX{;73zinbA&Zl6$kIwUWN8z0mBQ98=ptK(po?rP1YKlXDd-|w zr=W{$s{~zS>k@R4ts6X^I$VK0!sRMPz%{zH1lC?+I-$9&aP^_Dg_Usnbt~Zv2pkF^ zoYjatZ8+66!X;v?)vXj`oo*%c^+;!$p5(Q(t=TaO|DmP4H7DJ+!@El|PLFDG}&B2=k zH~Ve&rsvQ7ff{E0fkHD<_doJ|948Z%(v!*R_63+iY_BJGOX0bPuJpA@<}1 z@_NE&Gmd>1Z*Q&!pu)wczRRQYs_O I;_>(Y0jZsLY5)KL literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" "b/Variant \342\200\224 Kyoto/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..a213e85256524aef1db0fbe292957a688beee061 GIT binary patch literal 105028 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

c=#BG5wKw1iP;RoSb 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 C#Ah@B literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" new file mode 100644 index 0000000..2f8431b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" @@ -0,0 +1,5 @@ + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" new file mode 100644 index 0000000..af9e637 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" new file mode 100644 index 0000000..af9e637 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" new file mode 100644 index 0000000..2f8431b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" @@ -0,0 +1,5 @@ + + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher.png" new file mode 100644 index 0000000000000000000000000000000000000000..a571e60098c92c2baca8a5df62f2929cbff01b52 GIT binary patch literal 3593 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 P00000NkvXXu0mjfP=x?Y literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" new file mode 100644 index 0000000000000000000000000000000000000000..b94c1ed5984ee5f0fff4ddf2e42bc68162ddcf42 GIT binary patch literal 1971 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 FV1fnoo5TPB literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..07db04c2b305a44d58b9c215106527f4f17e3248 GIT binary patch literal 4051 zcmV;^4=nJBP)7xL@^kn5>Y`^ga-FDE^!y!7rH@l zMGWXPPEM>h zVA9rxU>xHduBq<_#&4#0LGl+ z95JnlwN1%XVq{3iM81=B4aoHMxq-?3)Qg<#*w#-Hx6DZ#j z|Azx3gf32C)T~;QWO)vmOv(CMNGupQU02mFO21QBj8CNgPb1-9GYc6cnRL4#qf+K# zC$W&Pc1u%wO1B^gger>oQdA6C3=bJ@+RcbL&&7hqLX>uvK=PTm`MF2Pq83Ws3QVGg@Yb%cf?y|ShB63_ zUGK3d`oIUtXsk~gr>!7FTa z5~;@bqEu>|M+Vo5j0<`dIN<0N$?V*fn=Iw{6_#{3t;88}oW7L7C zK5F?GrLJa^X!g9cn;gis{=lSp)j5MEC$M7|GuXUMM_9n*cs4LvU*Zforms1`<$`=_ znRz2j$)?|g^?!5=n)!iJXR}D$O!Y%te%3R1>Q;8?`W+TDXS>n0l4QsOxgekV8kp-u zslRVX%ob9W?{unQFipbT`cK%uxgekVnqboJFYoY; ztn2W3Zc5!>Ng`W785NB+Y=vc4d#p{$97?Ch9k8!c@60(mlIIqm5OrUv|__ry)C+t4|~lvv~<+4stMM{G(o z*S)}R0zg97KEaE369y(W{pGJ|+yb;U$RF?HW^>#NtOf|?Iv`qRL+7vO$3b&;GXLnD za|PjnlM?tmIlBs`*%E++oAnJ{^}yB5r?wIkP6DyMp)u{HZGl&3E+wl0T9R;rB_6oK zS-0;8HgVZLet!CzgY0hBZ)`>4X`?yJWxpsr+py;XyPf%%Mac8!#g+gh%^m+2vYA^z zR99f3(Q0$tO!%B<*qRVa+zYG*=)jqu+5KOiu}e2H*`51O_-Ej>L>96ziKU*t!J=bQ z+1T&*urxXkW!3ZL$1~O*WcyBDXCvqCG`gl_%K_58K!4VK=7pf72$Y3b=(ghXS1UhZn7~8lK8lAvWVqdPq8Vh zQVs42Fk-fyW^*?jX8x0;o(e$Yo*~l{S=gez9Plx8ZbjlLzNV1NQh-Fd|8m5FIAD^NfZ#oSMlCr(SX9WtMGi&|4i4{-iQT}>=B9YCDS+;g;`>isXXmcnH`LVrjaE9p#7(AaCbZZ<2`oy=le{%Vm}4o9c*%JD$9KMl)EIXWZS{Zd@S~Q z)BwSa=f@qRc~A0nHzi->a##uw{|cO})+1y^x}BX}WrOjEqUe)eU)LlPd%$ltGlPLm z0R#mmF5Smwtv|%>QD8oDK7$_%fN%`}?L2&yjUYg-W@NFmSMG2N!5jed!J}*r2C~*l zax>hIPc=Xo8$xc1IdNW>@&lj4Vt@<R z0T{RtECF$3s=|Vl0096z_4~g*Wf#bja1K@l*Mw`qvS1mP=yUY^-Ng@3*y`+-J%%V_ksGD(K#l7nUf}xbU1xdRK^cHe zt}zRC^ZO5-PiH$0U*WEXzzs``+jo%#f47SV`}IlZx#eNbI4Ubu3$PT2^2CH+3r zlgW>my~Ai+akHfWDO~LL4?p+*rvV_5#ZY4VM8*|KkVf1&Oo90t#RtTZgJ;uuu_(s) zMInBF|UY=o9rAm$507)QK z>OX$nQE5Qo3Pk}B{zef9fZ|irc%_Se>>yRx$XqDwP$Pk1b&KOqP!K*$_dMYNUcHtj zY$-sZQ0x`7@DyQDMS+W<)u`wh61zd%Y&?N!&JUoC)NcVGWSjL#=lJopn_0X#MD=_; z?G|rCP%&Rk&tfO&Z&b#}TI#hd;er5!R-=31taxCNYs*7!%qmbH5?&O|>YdCdY%R4A zNV}+{(L#)*v>dZtD)^RA)jMHnGIufbTNoF+{S2>@aDB5}4Ht$j1qjV5HqAQvMoa}3 zrkd5aI{1w5YU=CSSFsu(#22^`fB~mn&*YUc;txQ&@Y65cQbcHbw;V4+cNcgVhG-QdGd>idLm%)}sbGnpD7?9YJI{a@~*CVgdC|h)v<-hRO{z>>Z)2FKh+_TL_R8phqpss@ue+5wOU$VFr>BtLh#S zvqKtao|~xw3SGE|KuY1~v1sVRBo;+YC@dtDS_ot{0HdC#sM#WbWmCUtn}75V-}q1(n7^B;0TNjZ&FLBH(9yJt8VEdLaWWf3 zwazGNJc}wIn_{y867Ds6*`vB2IOD}C8zc7;irc?-+t0wis<#<5NVwR-3-V_=%(Y-Zc4%U9hn$eay) zQvf|6#ZlwjrgV?(QE@LeyZ{P1{AF8D^5c_fw~NKi%mOG<#~W1YzgTmPhdXpP8Gn@I z)VVW$qgAVS@RI$~M6b3YQvhN66P56Ns*Vwlur+~e0w8Qjlnxh@bn6;8;|S?oTh{&6 zBqLb4Ri^+C6i)eBktu-0roBETO=?`JwLrQrRR9U=8M}(P{L9N1I=co2nh4G&$U&od zhd%1`96oOw(%-9Ipvns%v>M;c+|G_(yvc#klSQG|DlGs>ui?cpw}DakHnondvw7s< z;el9G+0mtKThDQ;v-x-Rd1SOQ`G%RCxq6RUnq9ZCYkTOb(P&;Bd(`Bh@du){H2uT0 zcnixfD(ClEN*3=Z;+?=U@s1*IEA%hC#;s+a_8dM9I@*8iQBkeGIaJQBabtY_;n;oX zti3Qtn57yZFy1D`Tcs(-FSDdWX(i5(!{l481dgv(axF^h`$@NkvW}+fp8QBQyXuvy zRdb=NmX1YC#Ur@j*E14%N>{(LToMd9AdkB7mVT9_XFZ0^&9JRn)fKwAy1JSdnDe4K zuH9|v*KN`S|M{SSQ}cE`dXAW%Ay?ZkQCk=ZSyGHThh*aK`+PGe zqkhx2y&$tJd$EBd$lBhSKZW`>wzeO24v0?n8n=dTj>#^UXIoP2Olw01$O4(%21KUV zRIJzvvdS_SJ2-;MRd;m7uZimtH~qBNuqjjqJjD|$5ug;nK!)BU7eD=^`;h4*8-C1N zSC+NNV@`flu1=jgwzhV5ckGlsz2FN1IWLbYzjKr;}Qq7w9Z!C_)%^QEz(WisY1YNIhzt6(g zDLGaJ*1zC@K~d~|N5n}%UdeP$+7|~HV2qK*V=l~zxv@s0mL0KOfmc=>Awy}fn!Kod z4JW56vfBYDXS-VU+qdpKcw#62=)Jv0F1&}`J8Y1nAA(infR+c-J-D}j_y*<`wua)% z_xCytjNXGeF*nx0T38cnLxx-ul~O8?Ca_Y?2C%4l#CT(?S@m~of9CvY&%vMd89s|* zMMAf)XPo#lX#RBy@R{zTS3LF@6Y~s=<37PlGrtU4a2@w_^ovZu7>vanR+6<~&iAo~ z+;El&VAN!7<>d4>3QXDk@a|tj;wHpRZES2lB>o6W*KW|{3;Tx6I)ibHb9AjG?!mqC z7>u>YT)b$dx%nDz2w7V>J6FKdMm77l_Zrr$RH;%eIuCaQa0v4CWyUei)y6%z7h|}k z&>VcO{{!M*cUxgg#nsiuiL3#yB7<>^bNreFMu`R7{{i-aOiop=BM002ovPDHLk FV1i_s-MRn( literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..61da551c5594a1f9d26193983d2cd69189014603 GIT binary patch literal 5339 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..efe98251295a1adbb2866d25150253c5f9d25898 GIT binary patch literal 2556 zcmVMJ0p+FmKoK8EFq%Y7vP@e4B&+J~{?6Px-nlaaGdk#AYp;8`_ndvc z@0`8&+2;N-UnChYppo6<-XeYk4z*<`rdHqaBuB%h)y#14_{jR zj6TKu92EC>rfmm-4cO8??=f)&++ZyE^<Zi$)*H?32BYPsL9%`=l<)Bj z@6blHhr`EIz;@;_W%%y5_L zvaiY9h%sD^{XpUfzBtxkvfNPy*Gpz`?;ADWQHaQ6#Ja-Zl{kPmS~n@Pj#<;XfKQZd z3fuDE;fspWTw(D@)Y(8US@QuNGbH?1JFt&c#EHBbVT+0i7=nle&q=6)hi7H80IxFo zC{#UJlalk(d&wj`3T!3E8%*X|_L-N#Pff8>!p42HU~@%}Xws(rG<{jgeG-y|Ggc9W zCTGu4V{W&Rb`Z2)`0BbG_bD}wlN0AvOmWL$*zQVy1D7mYOHoq7)45D z{n+O&+B!St`Nu{;DE0{pg(hWR8Wkq}SdCeT!iXatwT-+{IU0Yw1b_*vP)P62+8Ck6 z?2wwm7Vbb{=HUB^K5haECSCltL%rl!5ZILsV$!_K7s8F^+i2wN3QXp#F(swg>A5?7 zkK3Y;_IXzXL|Wxc7@C}ad(8C30l+M!N^JU{_WkG%0rr8o4VM)C5{C zeMU!5chb3z>y(;PO^dfx(aOA9L1I_+IRSFo(h`bYTh2MXSo|HkrkrN{dzT=&cE?dl z-h6-OMLvnOLN3i0<9gN3j&v~eo2cm4pByF z6J?b*)3Mg8bn(g;w7&2tmDje>@pD%NIcwz^YCd<3s!w##g0zF8E!tSC&QR6y%c9># zYrSU#_^O+`wVpBGPo=}7r2f1#?cNaBUw?sW7*Iw1MJlU3M|+Q+ryU1QF`#zZV6LN+ z7e1v~JnLAYv+bYL!t{ew*>s6ls8zJh*?WTOS~>+85IoF8JRtx#4@t=E7&3a&({=*y z%vkgDu!V&;ydiMpRHtyIJxAJTw@hGr*>T!mcR{Sm8GeUVKzv|^@xGObWR^AC31Ah| zN*bu}z-ccDHu8v;XvW{OlQ2D`6z;H*g@gQPr__YG}D4(qtX`H{1!avdP-uWY3j)N+39Xdx!t;1Al5K zz|uE3G54s_NZS#rC6KYRNdWBp^ebA=n;Nc-XFs9lwrgTPD5y9^=R0rE3I5w1Agy{r z0N0?|X^o7zpFl1bMZICI3zbxz6&ukZPLYS%rD{)pOh(Q^ z^FG`s(kJ!^lmJ?LuGAv}ypfHaxi*h6_Yv6TQsRlRQEQ?_LzEIO$_X_A?4qWvl_I+U z92A)ZSq2#i?Xlw`D@81^9T7dzE(rh=mlEvi^p<{6956eS5`PYgd4)H#|DbVq#T@eZ zvdqJjnq4jOK0spwOXe$x#H@A!zys}?fLzQaX8-pOZ-)KJ<~>qxbvfNXIDT7|Fw{*s zjTk6Ac$&_zi=>w{imbDWYa!%zY+CSt)IVAq-Dy_@6iom8V0{f^9Uu@Z*p)aKHFaqW ze9V;_X$f4teoMpws!^oM3s-J(@HSB!7kJoV@k|S%J9SIIXufBV-Dh}c0^Fy!!?991 zp8aI7|Fa)Pn%Z1XPsmSHBeZAh0UG)?VLe!Fi%C3E)t# z%zj9`5g45g^$-=KXLNHjnuS4CEZ|c|NmYyZ^r0QtR|?x0!_{Y%@gJ-|$=H4YfI6Md z^=C$zS>M-2Oc~Dy{O`mGO?D-e1v|NZ&n|1EwYil&qOh(0u%(xZ?jZ97CuD#3^524W z!1ijSn-5!x$Rq~--H^N#%ZBAc3WGs>_QU7D1!)yMqUukJa@xE%X+b`{5gL~YOfFr= zNyJHCEYaY%r!C9J8I%oS2XxvSdQ5HL?_vT+PB9e%i@@Z`$6bgV4_K<_-g$rJZh0jL zOX@V3&(-EO81wCj<>idwd0=tt_wGdAq5HD>|6}Tsg0KYzf`sh{4zp9K@zBaP#ZOK= z2Ha+ZZRURk47MHj0YvTy5`J%l&P(Mz;#&*`-}D)g`@n^*koj5P4hxQ3fiW@m1A|vY zxKlvDlYBck;PvsL<73t}i`9@Eh&cW7*rke{UjC7fZNL_6j$_*|4ILYXu`s6BZsS%s zcmi}1NZ?Dri^C?)SsWC*`4W~IfUxXB5qvmwbg8zY%obA?;V!WC*NL-J*!D{pLyYBV zzeFxFD?{I%nKUM9RZZ~x%x^G*Vh0ByH7P~yvtJ|vG&mvan=w(VYhVMm zU=y~x&GQc}JTvkjPqF@t^*7JI960(f6QUQ6j7TXQ7rm}AXii4^#Q1I3LlUySg5rKc z+?IB{LmRY3AMT4U3$XE&u&J$YdQuP@^2P!(_+}3veylI{8!+J2L4HGqJ^Q=B5m4OY z8Q#fl&=!5fsmiG^d!)iEf=r>4q$lM#QC0{4|L`MOagS$x&;}j#Q|q*LzL~C5KRdRgR$D<-wqU{rxAoiE9G_nq^fd;fFZx%V+( zz=Qq)42*!CPde(h*x_ei!)?Zrdj~wOKN-lL5ERP>b$3m0PBz57LG|+FTE*)q_#JiK zjwLqG)?)=8V9NSeQ2m;@f%Vy&XVh;zHr>3z5M)~YQ;>O0BNg%;b$AWO;8?upkq3fH z-%f>}Hx3ClXV2mrRuu}2swN`9H>e=Ylmj8AZ2FxmsKaaQZ@dTZMH{oOWj@oLkB9eX z0v>JC0@V^EYM!+CrOb zPS6#8Soy(COrAc)$=#sP5`k%CHc0@CdtFKk&!AvfKq00z5M*549vCaA!)xsU<2~eF zw1KwT^eI~O(Vg!H22W;ag}YJN$~vEB&S}Nj>kPEN0dQ9UZM9DV`Y@!dc;FzoH~Jbf zHsP#O2RP$|0yt|AEdXMR(u&w-^}e-foBwbS+-k7ohcCCyzPJS<>o+iw=Jm|<`VD}x z@Y3fn_u?nO{$^#~#m^w>;-_8osKaZW^=JcavA@v=`ud<@3oNSt_jUqd;O`59lRQ4g z^p9sZY=%(N8b)YJXMBz6z{^ZhIs=-nAdgDqYkfi)}sxy#nquN^!Y*k zX7D*@T^rba+ewpl>#@T}~!e z6KGF##@dBCZWrY9Y1E{wVP$yS0U!p7rB)7;G@>QlQi+Wy_{x^SVdk}U)9Tj&kyiY~ z3Nf?cW3cMlCHcy3*m1KGBI?)M=&{<&ZTO_ic+}xFu8ve2*m+Y6(#yNLj7Oj7o5d2| zunwktpP_g9dg-%WR)LKu;C%Y50COe~Vf;y(fHIeqGZGZAzgby&=_}CRy$Xwe_|is? z6=eni)_FYY@ETVqy1WAn#KzJ~Uv?RfKG8S(8!`Fm)4@xV7-hQ(oYFM;yrPihKD(4X zQ)n$@UdspdFXzCIL#6&wD9Drrnx;Bx18wz~1Nx2!D1N$DON!WBpxD_5gwILEoBTRu zQ+uD%X8<|m`H)RPNC}-h46DfR9FSbz3IDlK2KyRyP}yXl*Y`A5!xz^}=(Q;%2ppSn z?Eq9X>8XuglbG8(8I|CEM%LuEYw?)&hZ|d#{7x&P1fW}Jl0{OdSC@EY7hJo4>kk9(ENBaDa($pr^v%^Fw$S=) zn0hMRG%P;w`St+Dte<&1AeqX!a_|U+21kp%s_eCMhQ@_*7pGKw57~atX z<<1)sXvnzPR{)rBST?ziZ{2Nzs;lSWPV?PeaWtZ-2V?7J&a* zRpZ<1-yPK+fc>^PZ}umE)T?>W%(U1zU9I~T#%+tDpUtf;eS*g^YtHTl$Gj!5=G>kx z*Ho8svF7&~z*}k4#&qPsmJf#c*Jk|GTL8Ys3|cNb1KLrmhADXx`q|Qt0C3E9lNzR~ zQy{lN)8+cP+ZVy}gdBYIX*~uYJf-~kjl|Fq?Ews1$a_A#ZcVRAthl-ter@SWllv{r zaQ#kWzh<91)7S6bg8SW+-=^l@Kz!ya2tA$AV-knfq?%rw`pyg7e(tG=vss#+%IJFy zn;`GjiHDxJJ;|<18VJ!SVb0kN^gO9^84amWXbI-Q+(vGYk5=}1PZSC=X2Iz@7av&w zH8+jmU783%<#KR6nMiWN_CY2%82dHBY)7$MTZw^!f|w;30PVjy?F0sZv(VW5>mv)` z#@*W>)FhJtQoyN91g@u&+FBfJCC;aS>sRwuB4(RbVqDe?2hwNU?yi{=k|Yi&m4VOR z81S}Ac%Brd9FTxdo(Oyo#DQ;qJopwQKzN}X!Vb$ocvuX6hb7>5gh){$gsaK+w3t+o zVriQkONM}wWC$-?1@Bjoc3C5bKms_hf=Fcw@XN#yRG|PTjR>5|V^8cg+X;-3!2B z&jR4@i-yU0AHn$ji-;_S@duW``1~cnKNJg|hvUHU&@y6YIZQZAGAz2Og{Ah45AaZaeOfHOp zfFp#{MN;4&5dptQM1k|w@!(HZA*_t>x?b%<)zVce=*$jPeTgotF4)_))Lg;=8`0tAYk9{%Vxt~a0 zEO_O|!qkIO2stDL??dt6T^J8OhZDf3NKER!oX|)KzUo8}s*^x?ObWshDFLs7cgr)t zPa^|=lC%gsK&ybT>NJ>LlLLV|6$Bk$)f#*v6?_Wg4MRu0G`!o5y)~jgkKOj67|&ub zVS3us^Ull3vM18nN7^{#E(C{tizsb8^2zcS#8BEe7A&QdLGd^e2i`{$C~YPl{fJQJ zBT5@VNdowlB~#ismBqGEh6ukh5vCkhfm2ny#aSn|OsWvUsO<1$#Mtfm5GSIS3FmZu z9jk;HvcZEaxx?NL@Z<9qgGWIu@DIk=fJe@I6p;YbVjJ+tc|oZd{K@Qd!6WAd+9U|k ztpew&gcg@-G1%uWI6<)egYLw3Mm*WusoYZ|5`#ls&Pea$@d^o`wWl2!=EOt-0)bN@ z3F~n%mL@D0JSMEiQ9>!T#0ESjtVfvy0tj`u;7P)Qpo#=go!UxfA0`}Id4JeKegtB3 z+%nIuKSzs0$9^_PMtu{p~z>_4uPqCy+ zwZWtfAf=NF-dP(D9>=9j=*cvTQ@IF6uAZKbnEE_g?AYnkC3?jpZ_)LX$SE zDi!#IGJ+~82&$zNe85Q+6RFDphfkw+AQpQG=u#o1 zCXMhuy%ig|$ePs<@=e?Ug5jTtrAOZP@q*(iA|sr>U9{cp`(&WU8oj*W;MJypP%9@1 z8&7G&O<1oI3HX*Jb*VO3+XJhW;G~VSV8SBjkv0xn=ito0ffxib!Jt3%mWEAgBEv_2 zJTu+(gyf#}HIOCDnB77Guyi>aHDrNrmCOpfBVoNr#q!liyHp#msw7KbwE}@#u-Z&4 zj=ncCb6N)ad?4^PbQ&|}Psqd9=JVfmEL^U`)d(m24=}H`w5>?Tn@4&wr_ZE`$W2%; zGW){vWD0yzxro&DIL5gmzQtRYYzeMWp$;5&FVMX_+j%DCJn{LvY13O`kC8=S5O@+W zdi2^EDS@TQdf~ZLu&xLdo7b$ha>nVnn3+(rl9^B%!}wH48NbS8W+DOZM1mu9X{$CQ z`MvW+`jN^|1+o1W`k=o4AOD76t-(mCm+byN*ug$yhIrzEWhFeFjI;%An`T}yWasFSq8TBU(BUsr`Els9~96gNDMC0z9>h&OoeUa6h1 zHEPG(itwbDg!X~t-ceQ?Pg9$+$MZiE7|gR)AeeZg?f&+h<4~93{1<%2`l8@>)ZsPj zm=~@0*gf)p_ULX!5X6|BvOih#gk2r{|A)U=){M0000mR-|nJ ziD!nlM5WpyKdG{c3k2M;jXYyyVo*^yGIoo3`~=S|F7P^2q1SWS$X&WX;`m|lvakY#7qwtaxT_5#?fq+k)xD_wHQ zyOv!iWuFs&s&k8$>66s&pN$6(OHEJH8Iv+e1ce=IQ2k}QWOKrE(R&G&rrwRul5JO? z9Uk8YLMp2>9IqF#Te_G{OqvQMdu+CapwA4T<&Q@QcIv*Lg9wCU@r|C(t0{!0uNy}p2{-c$-u10k!W;Vg~%I&@z+#7Zi7r~hD8!> zpn1}&ANh%cY`4tCA32CA8i#xOs?h4F_7zdAHMab<*W)CuwR|(~gd5`m3bQqKX^YNG z+~{>s$Jk%6cClss$H84jVN#H-lJD2DGwI}SA zu}tz|ZwBc|Pw=EGw^kh`Vk_xMX|KfNCGdbgab3{y-S*BeH0I5?Fmdh355OcbEk&^| zvJH}xPR|SFnmgsUkXAZ4wj<1U04=0TZjaXuYB~;x?~Ljrb98Ioa7$W@Q2QHJmAU3m zqlJ2~r0VR++WqVw;&dIr@dIHqjUh+ASQh@B(NS@~cD1|dsV_-;UPjE8^RNw3E?oOx zSawJ0BrAl>2pdY6WexcT5X1q?^`Am81jG3nOs~fmQ$LhX9bynlAH4$-4lBA9QiYq@ z87)AMgAz(4!fMjm9M<0w0a6v{tIV^NELObpXP3`b)U*@x89Tb^oO+db`gC@e(i|b` ze67ZZ)BB~r(*Qpqoo`Z}T1l_aj#u&OY)!Dzm}f9df7x`HDRr$b;S`>(2aRx?w^7$t zp_L2SLwiLhm-FJ$ZHb+HJ7c0JKl0+sH@!SL|IheR2Of?`TP?pRa8i{~W;*EZeiU;! z5qg1lRW#x}?|K&Fq6|x^H3Q09CRZ14A}?5rOE%fsHgbZ;pRpI;nrtX##M(YnKkkk3 z+~&?#V1fxYR?-#{_;rMDS7${>_1W~iW^pf+R{8V$q~hG zUj~ld*aJ{`0%9kHw*9lEZDL0H32F{V&21_p^|9KQOZ%(tH&iu#-3N2M1Oqu=%QMi) z3a!@quYHxs5mE$*16Q&)2UBmDU*nJw+cVC%T6}3p3y>DMkb|)L)lti?c%_LG1@z1Y z`O0Nc)Qe2`t(A=Nx@S-67lfIMT>Z~C1iCb;(6G!=-@6n{h*4Lbzb@xt6wbJ=GtlqPq%4|UJ~huHD1cmeY)$p=}87X%EjT<#QNXdk!a+04QLozV|jq@$tbmh zpao9vHJHhQpjvywl(1?PE{BS zfR{NBD8e6C^$``kE!T9P9nZe@25vZLg&y^Ao*qb^nTes4#=LOmYXkDsiTF=zn}0jrbE{YJ2QDvE0x2)7y(Ha}6$KtxlNp z;n(;S{ex!!X?=Ij-kdhogzEktXGnH|JzUO_edSyAXRv4nLYTwEfl#KVS+7%bqIYCP z&ur^~ZSZtANr8eUyQne{v(gw++&~%2)9p(*3iM+2oFo6$4_%fmG}($R8Zaq{=*v4` zV!nyJ@5vIXQ1m?j1P)8`sLf>nrc_UlatmZ=)H+st(SRps zxN#&CRCYp(79mnAy*pBRv1>hmJjf?BH^u0slOl&xgTlsm$Om)hVJd^1pw4p?10fzlXzO(| zbC^>xs!xnAKfHePWTo%hPXFv8`7IYqX4gT` zQp(=7i+KlBm-}5**KPuCw9u!rR)J;9#3s|m!}eO2EEDB?Pkw-lW*+C<{DR2Le5qD; zzW@8)0)O3mN~otlX@tuhMxW;eIGuX+$rh3RWDgY7H8H4MMK0V0;bN9|!@w63^l3&5 z&0)q+q@6rD=7qQk$KedGU)PVDaA-g0fo}fn9X~WTc}y8_Lj%CE2dVh@8NOLV10^oF zQI_gsGrQl%rRNcT`SgZzAFOvvC4dF?AeqWY?4l@*#U3O*MGdG^xOm5JV%3;SOATnC z?9tAd{*w^|RtEk`S%@DO?b=lWR>)||^HL+is%@`JzWz^pKeH;4-@qzLS8dlpcx49nHQ47}Z2YEuTDZEA(kW3fYY_p}B6cIFk zMbt8vgs1oug8 zCnR@us&d9lEL~oxDKzSww@MWCZXwy07+^2K-AXe{GvG?+83e%j7Yl=f%Wb4B)huao zbP=@84F{aNVYG1Qhajw~Y1qVPFM1Qkkb`Yy&!y;yTE(C{18v*gn>iwt74810m`a_j zaeX94mEQ@K&M}<#Z@w(hKC*E2WHWD)aW;8Ua;S+nTxrjgc~uYuVX9eNx@n2>nQ}l) z;B1~Sl1qH^^=wCgv3{;zvR7E`t1eGiP7&c2d+p1;-4J!)xm3Fy$-)_obcQRPY%u7? z7XZstD$nFs>PYE%Mk7Z{QrB2riY@bl%aA*O>%{wOH%T-++P~>LC$UivlwLe&{{}*+ zkbH2ug77!!3m_rRpBFHht_jt>Us4q($OqsvHD3?|8t7vwAtJ;_*cvb{S`NuWeEIon zjsj(8M}cyEYQ>V-6XE1Hk4Wp-sts3$%7Mpv9*9VOz!5|H}i>_1X} zG`$FAG#B1$-wY#f-mxdT>FlkZLKBH?LVAFB!E}EpL75H{6wBvM^fdB%R?-j~0d|zFTA*n!Sbq@R7I$sS)Sf>=TgS> z7DkZ`m`^wC_Q@rUNntv|0Ijbf9@edvA$M)+#jMo`0r?s#41#UZ0l`5jQ8RIPkWYkL zLuSnjlMf=nsvrXsbLOTQ^D;=vJ4mu6B%p$6II+3u_iquF#Dv=&_{Ne5M{*;lK;68G zCcB|s+9?b}BBHf%?-TpXD^VR_P2J5myX1qdO&uW~Rc4(W7+B=mt#w&%j7)yuSIH`t zvogKN-ARwD5bj&d;OK|`hx40`q@@8|QhsDpp0fOFB|4a zU1aM=Yf<2ymK zU)xMo{8RuIn0NEhLK+-->qo3hthYqL6fpI~8=Tz!8VDrj z@vG(yaO``ZSJL~M*f_nb>_GJJSMJoZ*88oEkhy(K3iaPYXuH$dX>EnPP{xi--@Dwg z8bG_SeeY6%=g@5Mxo0Doc1WM#-}0nC;rzZU_NEIRnJ6u}J@fBxdZ$f@l{?MD&mg$S z$EPCM$0zZwcWT`FU8Ej^5NG;)p+aG`xn!?$Ve)&}j!{ORq1@*_ZMk}L0Xz(ns0%wv z9I$7!d>;Njr6K{E7`|9mr3TLh#}wtivvU+hRX$+hNoyYhzm|q6NXEYB#;z=!b~YVO zWr0qjXwDrkt-=^PD4HVWGMq`hmTMQky0!3gBy|fkG9WF~kSkw-QzO(sS=AbRuW`op ziGH!+lMV1j#rCixt9)sG6m~TjhW8@qc&IPD{BVWND zE}dlIZ@O6{V18XdiKR=l<6aTB2BC&kpPu^4(Q%5cZf_ImMCN6)=Q;MHw2-oy@2Dq? zBq7jYByn6Ri}-6uueQEcae}Jfz;iW9-@@@%gT6?;;VkD{|RNoav#$0VNE zk286ieB7O8wkeB~4|tO=-Xbmsf3}F4F>ZOgHfk8otsKVsWsAHTSaa8kixa6o-Ri^V z0)MR_rp^PW%$7L2Smf5N&hU;cW4ZGprO>fj*|YxR`_GR&s^#MgsOp7EmAx&@#MrCd zyIaPnnh;UNM5d{7{h@D7*U-~T?d!MX93o|1b~=jXSLmU?qT;fW${(B>2Xkjm*GkNF z&(^d3J)=9>N78NIp1Mp3lsdWVqBKFPu2q<(dE3}t|E*)2wDb9~gCECHE8@~_#Vp&a zzNrs!hW)H{u=fDT_Q!n=TZu}6ReD;sxxz$>nGv(gZ_n5k?+Sp8Sl6LA;ra zQc--wia~kpE+P*R<;{XTgar|V<)O$M1cTB35o2?DzQf*ibC(3N?6RA^=Qs1s-sd^z ze&0F2^E>D4?j19R8#iv;xN+mgjT^Tgjwuw1M`cRoSPtb_a3SW$Y9?eVJ}z||6<*vG zIgbh3K1YxK$U~7ZZG|G?=ko2!=~4uq9UOp*!8o$03F>+)5`VH>p$=Rgs4n*kRQFKa zq3G9tN(sU<_kas<0&a}CvX}{~dMK1LX@+$a#7m(fat;F+AAzd6CH_&fjX4{!32Mp| z$Dj04sC9bczw``HeMLVXaHt;Wx%d*?EZZDizu?^<7h~>5WI`hHfcWjG`SkO?JV5oe ze2`ioX;4nQ0+shYw#1UfYa{j=b7!^*;nf0P-*H|FWyL`4S3-5u0&oz48`*}VS7*7q zPc-JxEE5!5^kMjPs&Fq7_X>#rpJ~P%0JwpdcxU5@zSm^FGmSYk%k(!t@|Tr6XVVPs z3YmyA<`{q=z>-ao_g-D}{wv_l5&}H>hWC~ifmMaREjVTmTz`3t(e#0c;E|fQ|8k5MafQGvx0j6Yx$_LEZfqxeqVi164F$Uu;8s=&1qtYTGAdS@gYow;BllX?D zn4BLB4lh7*UJdE){X&mBq@$;woJ=ia=K_yskuG{Hx2%yYrwzIGJoXaGnV&J~tR7Bf#0*YId%@yPxEhH?ebm|4t(X6*q{A3WL^A zf3t^OTd8X&J0r8%!bxPxWww8%zMWlz`*zTCxipPy)O~5|+Q@&BOUZjX6PXJ_T1XRV zhem7IcKpRkl2KgGTE}PS%E-Ih6Aa~(i~y}&pEK8h7H}#}%T}Z|AIV_nimIB)?$2__ z&5k~{-_&}G^%rO{a8Zpdw@As=n`D2ihHN{YO|G}~vUDKK4Z7WR>kf&dB%?(kEu?|8 zBU8%Qc5{0lDXG3mS~_pD`}RcT8pZ~eK-`vAUIHbDt4FOQwvoANY{lf{x ztOi#%b~531QE@PLk84sj1L@&&b#M}OS9vTwi1d%$X9pDkWx)Nyy=YZJ`6MF%YA6Uy zE2w4rNx3!O5CFB;xDQynFO}5Y=w_|rV||C}y)A*H7uK403;&-!cDXS^Z{@yxbC|IfQy3PM&tzFjWuSp1h^r%G6<7RJNBxE z4i;f$6zjg#1xZ=}5C`8Y0B$8Fy@Is{|HBvAF?7m^TFy}yfqlV8uL(^hnN$S0Apq_M z*CA9zhuzi%A#O9_KG>Vg&LJ(NfwVuR*I_&ATscb*9WeHBzfeAh7r+ugm+ z_(B>|Cb142#{-UKvg261Yl{>Lg#C*vtzMzY=GzmgENeN5v^c~ z0g(zK9_-^fh=BVv6$AGn4~Qww+Z;$vfE7Cu*!MDV?DTmp35zRW+n8R!yp6WDjm7n8 zg|+0LbTEeT1Hw&AXLr&*L@rAOiZ1aAl#zYCj+u0Weon)6~Txq0XLu=Ev~>m^#K>4i-@`0T)dN zX}M)hB>2?8_cd43F#rZ{NCPvXnDrFrITAR$0GNgb!2oLgWm?lC)J29VVbo@Hx(#$> zi;fx73>f{QZ!k_1_v1Qoej|m$3ou+j5R7b50qXmZ-0MpKhUQV4aXFfkFt(>`&S~?*6_|OG5F2L+4Toc6E zN;~F*s!L>jSei-N)_}tcU>t@9N9D0;Wb_62AqUQ5UI;B=?fz7@k41c3AFjM)lD0J< z83C{;k4Oi#|3va-!=m|z)CFagG?2Ipm27cEh6NJaqoeAND?)?W6F2jRT20EmEuRWU4{VBjWB-_nqb z0P&fXBu!JxmKZT06QUwx0niEaKEO%>z@1=lh2Q96AG4lV>EZ(DZ8QYH{wEO^*r*rt zI&e21g{N}?VAc}A-r;ZpAilq%Yqi*di8bMnKh(xAkn<)=a_6eDY zGv*k8Ab@Pcr?=K2o|-moD!7x$ zWabM1d&$QKFDaY!rf*n;JRlz5TDwnM1AmE+2%cM&UxS;!`JW=Mdu~1n&h*@k%=C#& zd}j9Cmlv-;(&D*wKm^YK^;gUtZIw2_0bXOpIHBAuTpiLj)ol(sV5eC!*^kA1nq!Z+ z%wlf@n)>{_g-ibWL0H?;PokLW@OK<)_7XSL{DrH6+n;-7fd{y9er}!gr5C-CSq9@W%Y58)Fu&4rzRA-QoVXHyr!#+kVIHu}>*Mc;@v-?tqIwyyF);#qF1W z0!I@kPsWSfEb}Hky+O%wk2^o(N(#|GUVMG&FXp%}ks@Zi=)M#j zP%eHCPQZ7S0DG-*2BewN~S3cN2%$^Zw?f)j8`6jQ(fxBw@5ZY*B&2Qy@X_!fQ+nMxVp09=d;@!Ys^ h>B_8 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..5d4b7d914520d78d18cd9995c85e777e62fba953 GIT binary patch literal 5820 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" new file mode 100644 index 0000000000000000000000000000000000000000..66f997cefa1855fa5338d67086755d2f5d65cf2c GIT binary patch literal 4335 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..ad3ace1506e05f808b51482877692b9dee0d5c48 GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..b216f2d313cc673d8b8c4da591c174ebed52795c GIT binary patch literal 11873 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 Kyoto/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..28da01a04b39672fc7887d8a5125a07c0c03cde5 GIT binary patch literal 13086 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/values/colors.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/values/colors.xml" new file mode 100644 index 0000000..a66aa6b --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/values/colors.xml" @@ -0,0 +1,4 @@ + + + #203b46 + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/values/splash.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/values/splash.xml" new file mode 100644 index 0000000..b712912 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/values/splash.xml" @@ -0,0 +1,8 @@ + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/values/strings.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/values/strings.xml" new file mode 100644 index 0000000..d0e88cc --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/values/strings.xml" @@ -0,0 +1,3 @@ + + Devkit Wallet + diff --git "a/Variant \342\200\224 Kyoto/app/src/main/res/values/themes.xml" "b/Variant \342\200\224 Kyoto/app/src/main/res/values/themes.xml" new file mode 100644 index 0000000..69b1d7e --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/main/res/values/themes.xml" @@ -0,0 +1,7 @@ + + + + diff --git "a/Variant \342\200\224 Kyoto/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" "b/Variant \342\200\224 Kyoto/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" new file mode 100644 index 0000000..636ec13 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" @@ -0,0 +1,11 @@ +package org.bitcoindevkit.devkitwallet + +import org.junit.Assert.assertEquals +import org.junit.Test + +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git "a/Variant \342\200\224 Kyoto/gradle.properties" "b/Variant \342\200\224 Kyoto/gradle.properties" new file mode 100644 index 0000000..a69daa6 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/gradle.properties" @@ -0,0 +1,7 @@ +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +android.useAndroidX=true +kotlin.code.style=official +android.enableJetifier=true +android.defaults.buildfeatures.buildconfig=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false diff --git "a/Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.jar" "b/Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa GIT binary patch literal 59536 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 QuEJmfE|#`Dqx|px0L@K;Y5)KL literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.properties" "b/Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.properties" new file mode 100644 index 0000000..1e2fbf0 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/gradle/wrapper/gradle-wrapper.properties" @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git "a/Variant \342\200\224 Kyoto/gradlew" "b/Variant \342\200\224 Kyoto/gradlew" new file mode 100755 index 0000000..744e882 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/gradlew" @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git "a/Variant \342\200\224 Kyoto/gradlew.bat" "b/Variant \342\200\224 Kyoto/gradlew.bat" new file mode 100644 index 0000000..107acd3 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/gradlew.bat" @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git "a/Variant \342\200\224 Kyoto/justfile" "b/Variant \342\200\224 Kyoto/justfile" new file mode 100644 index 0000000..c11adf2 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/justfile" @@ -0,0 +1,8 @@ +@list: + just --list + +check: + ./gradlew ktlintCheck + +format: + ./gradlew ktlintFormat diff --git "a/Variant \342\200\224 Kyoto/settings.gradle.kts" "b/Variant \342\200\224 Kyoto/settings.gradle.kts" new file mode 100644 index 0000000..98bc263 --- /dev/null +++ "b/Variant \342\200\224 Kyoto/settings.gradle.kts" @@ -0,0 +1,23 @@ +rootProject.name = "Devkit Wallet" +include("app") + +pluginManagement { + repositories { + google() + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + + // Snapshots repository + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + + // Local Maven (~/.m2/repository/) + mavenLocal() + } +} From 39c1ea55c41982533adfa5df506a6badb0e03a4d Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Sun, 31 Aug 2025 09:25:55 -0400 Subject: [PATCH 3/4] chore: add 1.0 variant to default branch --- "Variant \342\200\224 1.0/.editorconfig" | 14 + "Variant \342\200\224 1.0/.gitignore" | 21 + "Variant \342\200\224 1.0/LICENSE" | 202 ++ .../app/build.gradle.kts" | 117 + .../app/proguard-rules.pro" | 21 + .../app/src/main/AndroidManifest.xml" | 28 + .../app/src/main/assets/bip39-english.txt" | 2048 ++++++++++++++++ .../src/main/ic_launcher_bdk-playstore.png" | Bin 0 -> 17223 bytes .../devkitwallet/data/TxDetails.kt" | 27 + .../data/UserPreferencesSerializer.kt" | 28 + .../devkitwallet/data/WalletConfigs.kt" | 24 + .../devkitwallet/domain/BlockchainClient.kt" | 48 + .../domain/BlockchainClientsConfig.kt" | 58 + .../devkitwallet/domain/Constants.kt" | 2060 +++++++++++++++++ .../devkitwallet/domain/CurrencyUnit.kt" | 11 + .../devkitwallet/domain/DwLogger.kt" | 51 + .../domain/UserPreferencesRepository.kt" | 52 + .../devkitwallet/domain/Wallet.kt" | 393 ++++ .../devkitwallet/domain/utils/FormatInBtc.kt" | 18 + .../domain/utils/ProtobufExtensions.kt" | 28 + .../devkitwallet/domain/utils/Timestamps.kt" | 17 + .../presentation/DevkitWalletActivity.kt" | 118 + .../navigation/CreateWalletNavigation.kt" | 133 ++ .../presentation/navigation/Destinations.kt" | 56 + .../navigation/HomeNavigation.kt" | 162 ++ .../navigation/WalletNavigation.kt" | 202 ++ .../presentation/theme/DevkitWalletColors.kt" | 21 + .../devkitwallet/presentation/theme/Fonts.kt" | 44 + .../devkitwallet/presentation/theme/Theme.kt" | 22 + .../devkitwallet/presentation/theme/Type.kt" | 32 + .../ui/components/CustomSnackbar.kt" | 41 + .../ui/components/LoadingAnimation.kt" | 74 + .../ui/components/NeutralButton.kt" | 42 + .../ui/components/RadioButtonWithLabel.kt" | 53 + .../ui/components/SecondaryScreensAppBar.kt" | 47 + .../ui/components/TransactionCards.kt" | 134 ++ .../ui/components/WalletOptionsCard.kt" | 130 ++ .../presentation/ui/screens/WalletRoot.kt" | 190 ++ .../ui/screens/drawer/AboutScreen.kt" | 82 + .../screens/drawer/BlockchainClientScreen.kt" | 129 ++ .../ui/screens/drawer/LogsScreen.kt" | 61 + .../ui/screens/drawer/RecoveryDataScreen.kt" | 221 ++ .../ui/screens/intro/ActiveWalletsScreen.kt" | 119 + .../ui/screens/intro/CreateNewWallet.kt" | 157 ++ .../ui/screens/intro/OnboardingScreen.kt" | 176 ++ .../ui/screens/intro/RecoverWalletScreen.kt" | 386 +++ .../ui/screens/intro/WalletChoiceScreen.kt" | 149 ++ .../ui/screens/wallet/RBFScreen.kt" | 260 +++ .../ui/screens/wallet/ReceiveScreen.kt" | 234 ++ .../ui/screens/wallet/SendScreen.kt" | 516 +++++ .../wallet/TransactionHistoryScreen.kt" | 71 + .../ui/screens/wallet/TransactionScreen.kt" | 199 ++ .../ui/screens/wallet/WalletHomeScreen.kt" | 281 +++ .../viewmodels/AddressViewModel.kt" | 38 + .../presentation/viewmodels/SendViewModel.kt" | 50 + .../viewmodels/WalletViewModel.kt" | 68 + .../viewmodels/mvi/MviReceiveScreen.kt" | 15 + .../viewmodels/mvi/MviSendScreen.kt" | 27 + .../viewmodels/mvi/MviWalletScreen.kt" | 21 + .../app/src/main/proto/wallets.proto" | 32 + .../drawable-v24/ic_launcher_foreground.xml" | 30 + .../app/src/main/res/drawable/bdk_logo.xml" | 24 + .../main/res/drawable/ic_bitcoin_logo.xml" | 12 + .../drawable/ic_launcher_bdk_background.xml" | 9 + .../drawable/ic_launcher_bdk_foreground.xml" | 29 + .../main/res/drawable/ic_testnet_logo.xml" | 12 + .../src/main/res/drawable/launch_screen.xml" | 11 + .../main/res/font/ia_writer_mono_bold.ttf" | Bin 0 -> 96168 bytes .../res/font/ia_writer_mono_bold_italic.ttf" | Bin 0 -> 103400 bytes .../main/res/font/ia_writer_mono_regular.ttf" | Bin 0 -> 97044 bytes .../font/ia_writer_mono_regular_italic.ttf" | Bin 0 -> 104120 bytes .../main/res/font/ia_writer_quattro_bold.ttf" | Bin 0 -> 120404 bytes .../font/ia_writer_quattro_bold_italic.ttf" | Bin 0 -> 104520 bytes .../res/font/ia_writer_quattro_regular.ttf" | Bin 0 -> 119772 bytes .../ia_writer_quattro_regular_italic.ttf" | Bin 0 -> 105028 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml" | 5 + .../mipmap-anydpi-v26/ic_launcher_bdk.xml" | 5 + .../ic_launcher_bdk_round.xml" | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml" | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png" | Bin 0 -> 3593 bytes .../main/res/mipmap-hdpi/ic_launcher_bdk.png" | Bin 0 -> 1971 bytes .../mipmap-hdpi/ic_launcher_bdk_round.png" | Bin 0 -> 4051 bytes .../res/mipmap-hdpi/ic_launcher_round.png" | Bin 0 -> 5339 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png" | Bin 0 -> 2636 bytes .../main/res/mipmap-mdpi/ic_launcher_bdk.png" | Bin 0 -> 1277 bytes .../mipmap-mdpi/ic_launcher_bdk_round.png" | Bin 0 -> 2556 bytes .../res/mipmap-mdpi/ic_launcher_round.png" | Bin 0 -> 3388 bytes .../main/res/mipmap-xhdpi/ic_launcher.png" | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_bdk.png" | Bin 0 -> 2675 bytes .../mipmap-xhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 5820 bytes .../res/mipmap-xhdpi/ic_launcher_round.png" | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png" | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_bdk.png" | Bin 0 -> 4335 bytes .../mipmap-xxhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 9177 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png" | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png" | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_bdk.png" | Bin 0 -> 5772 bytes .../mipmap-xxxhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 13086 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png" | Bin 0 -> 16570 bytes .../app/src/main/res/values/colors.xml" | 4 + .../app/src/main/res/values/splash.xml" | 8 + .../app/src/main/res/values/strings.xml" | 3 + .../app/src/main/res/values/themes.xml" | 7 + .../devkitwallet/ExampleUnitTest.kt" | 11 + "Variant \342\200\224 1.0/gradle.properties" | 5 + .../gradle/wrapper/gradle-wrapper.jar" | Bin 0 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties" | 5 + "Variant \342\200\224 1.0/gradlew" | 185 ++ "Variant \342\200\224 1.0/gradlew.bat" | 89 + "Variant \342\200\224 1.0/justfile" | 8 + .../settings.gradle.kts" | 23 + 111 files changed, 10554 insertions(+) create mode 100644 "Variant \342\200\224 1.0/.editorconfig" create mode 100644 "Variant \342\200\224 1.0/.gitignore" create mode 100644 "Variant \342\200\224 1.0/LICENSE" create mode 100644 "Variant \342\200\224 1.0/app/build.gradle.kts" create mode 100644 "Variant \342\200\224 1.0/app/proguard-rules.pro" create mode 100644 "Variant \342\200\224 1.0/app/src/main/AndroidManifest.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/assets/bip39-english.txt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/ic_launcher_bdk-playstore.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/data/TxDetails.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/data/UserPreferencesSerializer.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" create mode 100644 "Variant \342\200\224 1.0/app/src/main/proto/wallets.proto" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable/bdk_logo.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable/ic_bitcoin_logo.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_background.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable/ic_testnet_logo.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/drawable/launch_screen.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_bold.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_bold_italic.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_regular.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_bold.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_regular.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-mdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/values/colors.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/values/splash.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/values/strings.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/main/res/values/themes.xml" create mode 100644 "Variant \342\200\224 1.0/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" create mode 100644 "Variant \342\200\224 1.0/gradle.properties" create mode 100644 "Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.jar" create mode 100644 "Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.properties" create mode 100755 "Variant \342\200\224 1.0/gradlew" create mode 100644 "Variant \342\200\224 1.0/gradlew.bat" create mode 100644 "Variant \342\200\224 1.0/justfile" create mode 100644 "Variant \342\200\224 1.0/settings.gradle.kts" diff --git "a/Variant \342\200\224 1.0/.editorconfig" "b/Variant \342\200\224 1.0/.editorconfig" new file mode 100644 index 0000000..8ac4356 --- /dev/null +++ "b/Variant \342\200\224 1.0/.editorconfig" @@ -0,0 +1,14 @@ +# Root .editorconfig file +root = true + +[*.{kt,kts}] +indent_style = space +max_line_length = 120 + +ktlint_standard_trailing-comma-on-call-site = disabled +ktlint_standard_multiline-expression-wrapping = disabled +ktlint_standard_string-template-indent = disabled +ktlint_function_signature_rule_force_multiline_when_parameter_count_greater_or_equal_than = 5 +ktlint_function_naming_ignore_when_annotated_with=Composable +ktlint_standard_function-expression-body = disabled +ktlint_standard_class-signature = disabled diff --git "a/Variant \342\200\224 1.0/.gitignore" "b/Variant \342\200\224 1.0/.gitignore" new file mode 100644 index 0000000..a23b05c --- /dev/null +++ "b/Variant \342\200\224 1.0/.gitignore" @@ -0,0 +1,21 @@ +*.iml +.gradle +/.idea/ +.DS_Store +/build +/app/build/ +/captures +.externalNativeBuild +.cxx +app-simple-wallet/local.properties +app-advanced-features/local.properties +app-ui-only/local.properties +app-simple-wallet/app/build/ +app/build/ +app-ui-only/app/build/ +app-clean/ +.idea/ +local.properties +app.run.xml +release/ +.kotlin/ diff --git "a/Variant \342\200\224 1.0/LICENSE" "b/Variant \342\200\224 1.0/LICENSE" new file mode 100644 index 0000000..8061725 --- /dev/null +++ "b/Variant \342\200\224 1.0/LICENSE" @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright 2021 thunderbiscuit and contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git "a/Variant \342\200\224 1.0/app/build.gradle.kts" "b/Variant \342\200\224 1.0/app/build.gradle.kts" new file mode 100644 index 0000000..47966ff --- /dev/null +++ "b/Variant \342\200\224 1.0/app/build.gradle.kts" @@ -0,0 +1,117 @@ +import org.jlleitschuh.gradle.ktlint.reporter.ReporterType + +plugins { + id("com.android.application") version "8.7.1" + id("org.jetbrains.kotlin.android") version "2.1.10" + id("org.jetbrains.kotlin.plugin.compose") version "2.1.10" + id("org.jetbrains.kotlin.plugin.serialization") version "2.1.10" + id("com.google.protobuf") version "0.9.4" + id("org.jlleitschuh.gradle.ktlint") version "12.1.2" +} + +// This is the version of the app that is displayed in the UI on the drawer. +val variantName = "Version 0.1.0/Esplora" + +android { + namespace = "org.bitcoindevkit.devkitwallet" + compileSdk = 35 + + buildFeatures { + viewBinding = true + compose = true + buildConfig = true + } + + defaultConfig { + applicationId = "org.bitcoindevkit.devkitwallet" + minSdk = 26 + targetSdk = 35 + versionCode = 1 + versionName = "v0.1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + + buildConfigField("String", "VARIANT_NAME", "\"$variantName\"") + } + + buildTypes { + getByName("debug") { + isDebuggable = true + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = "17" + } +} + +dependencies { + // Basic android dependencies + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.23") + implementation("androidx.core:core-ktx:1.13.1") + implementation("com.google.android.material:material:1.12.0") + implementation("androidx.datastore:datastore:1.1.1") + implementation("com.google.protobuf:protobuf-javalite:3.18.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") + implementation("androidx.core:core-splashscreen:1.0.1") + + // Jetpack Compose + // Adding the Bill of Materials synchronizes dependencies in the androidx.compose namespace + // You can remove the library version in your dependency declarations + implementation(platform("androidx.compose:compose-bom:2025.02.00")) + implementation("androidx.compose.animation:animation") + implementation("androidx.compose.ui:ui-tooling") + implementation("androidx.compose.ui:ui") + implementation("androidx.compose.material3:material3") + implementation("androidx.activity:activity-compose") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5") + implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1") + implementation("androidx.navigation:navigation-compose:2.8.0") + implementation("com.google.accompanist:accompanist-systemuicontroller:0.23.1") + + // Icons + implementation("androidx.compose.material:material-icons-extended:1.7.8") + implementation("com.composables:icons-lucide:1.0.0") + + // Toolbar + implementation("androidx.appcompat:appcompat:1.7.0") + + // Bitcoin Development Kit + implementation("org.bitcoindevkit:bdk-android:1.2.0") + + // QR codes + implementation("com.google.zxing:core:3.5.3") + + // Tests + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.2.1") + androidTestImplementation("androidx.test.espresso:espresso-core:3.6.1") +} + +protobuf { + protoc { + artifact = "com.google.protobuf:protoc:3.25.0" + } + + generateProtoTasks { + all().forEach { task -> + task.builtins { + create("java") { + option("lite") + } + } + } + } +} + +ktlint { + version = "1.5.0" + ignoreFailures = false + reporters { + reporter(ReporterType.PLAIN).apply { outputToConsole = true } + } +} diff --git "a/Variant \342\200\224 1.0/app/proguard-rules.pro" "b/Variant \342\200\224 1.0/app/proguard-rules.pro" new file mode 100644 index 0000000..ff59496 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/proguard-rules.pro" @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle.kts. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git "a/Variant \342\200\224 1.0/app/src/main/AndroidManifest.xml" "b/Variant \342\200\224 1.0/app/src/main/AndroidManifest.xml" new file mode 100644 index 0000000..db99496 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/AndroidManifest.xml" @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/assets/bip39-english.txt" "b/Variant \342\200\224 1.0/app/src/main/assets/bip39-english.txt" new file mode 100644 index 0000000..f78ccaf --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/assets/bip39-english.txt" @@ -0,0 +1,2048 @@ +abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo \ No newline at end of file diff --git "a/Variant \342\200\224 1.0/app/src/main/ic_launcher_bdk-playstore.png" "b/Variant \342\200\224 1.0/app/src/main/ic_launcher_bdk-playstore.png" new file mode 100644 index 0000000000000000000000000000000000000000..b834711c58d5564e384fb80fd17efb3b737b1608 GIT binary patch literal 17223 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 { + override val defaultValue: UserPreferences = UserPreferences.getDefaultInstance() + + override suspend fun readFrom(input: InputStream): UserPreferences { + try { + return UserPreferences.parseFrom(input) + } catch (exception: InvalidProtocolBufferException) { + throw CorruptionException("Cannot read proto.", exception) + } + } + + override suspend fun writeTo(t: UserPreferences, output: OutputStream) { + t.writeTo(output) + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" new file mode 100644 index 0000000..d04d14e --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/data/WalletConfigs.kt" @@ -0,0 +1,24 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.data + +import org.bitcoindevkit.Descriptor +import org.bitcoindevkit.Network + +data class NewWalletConfig( + val name: String, + val network: Network, + val scriptType: ActiveWalletScriptType, +) + +data class RecoverWalletConfig( + val name: String, + val network: Network, + val scriptType: ActiveWalletScriptType?, + val recoveryPhrase: String?, + val descriptor: Descriptor, + val changeDescriptor: Descriptor, +) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" new file mode 100644 index 0000000..520f80f --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClient.kt" @@ -0,0 +1,48 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import org.bitcoindevkit.FullScanRequest +import org.bitcoindevkit.SyncRequest +import org.bitcoindevkit.Transaction +import org.bitcoindevkit.Update +import org.bitcoindevkit.EsploraClient as BdkEsploraClient + +interface BlockchainClient { + fun clientId(): String + + fun fullScan(fullScanRequest: FullScanRequest, stopGap: ULong): Update + + fun sync(syncRequest: SyncRequest): Update + + fun broadcast(transaction: Transaction): Unit + + fun endpoint(): String +} + +class EsploraClient(private val url: String) : BlockchainClient { + private val client = BdkEsploraClient(url) + + override fun clientId(): String { + return url + } + + override fun fullScan(fullScanRequest: FullScanRequest, stopGap: ULong): Update { + return client.fullScan(fullScanRequest, stopGap, parallelRequests = 2u) + } + + override fun sync(syncRequest: SyncRequest): Update { + return client.sync(syncRequest, parallelRequests = 2u) + } + + override fun broadcast(transaction: Transaction) { + client.broadcast(transaction) + } + + override fun endpoint(): String { + return url + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" new file mode 100644 index 0000000..7dd1f0f --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/BlockchainClientsConfig.kt" @@ -0,0 +1,58 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import org.bitcoindevkit.Network + +class BlockchainClientsConfig { + private var defaultClient: BlockchainClient? = null + private val allClients: MutableList = mutableListOf() + + fun getClient(): BlockchainClient? { + return defaultClient + } + + fun addClient(client: BlockchainClient, setDefault: Boolean) { + allClients.forEach { + if (it.clientId() == client.clientId()) { + throw IllegalArgumentException( + "Client with url ${client.clientId()} already exists" + ) + } + } + if (allClients.size >= 8) throw IllegalArgumentException("Maximum number of clients (8) reached") + allClients.add(client) + if (setDefault) { + defaultClient = client + } + } + + fun setDefaultClient(clientId: String) { + val client = allClients.find { it.clientId() == clientId } + if (client == null) throw IllegalArgumentException("Client with url $clientId not found") + defaultClient = client + } + + companion object { + fun createDefaultConfig(network: Network): BlockchainClientsConfig { + val config = BlockchainClientsConfig() + when (network) { + Network.REGTEST -> { + config.addClient(EsploraClient("http://10.0.2.2:3002"), true) + } + Network.TESTNET -> { + config.addClient(EsploraClient("https://blockstream.info/testnet/api/"), true) + } + Network.TESTNET4 -> throw IllegalArgumentException("This app does not support testnet 4 yet") + Network.SIGNET -> { + config.addClient(EsploraClient("http://signet.bitcoindevkit.net"), true) + } + Network.BITCOIN -> throw IllegalArgumentException("This app does not support mainnet") + } + return config + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" new file mode 100644 index 0000000..2efc4fc --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Constants.kt" @@ -0,0 +1,2060 @@ +package org.bitcoindevkit.devkitwallet.domain + +import org.bitcoindevkit.Network + +val supportedNetworks: List = listOf( + Network.SIGNET, + Network.TESTNET, + Network.REGTEST, +) + +val bip39WordList: List = listOf( + "abandon", + "ability", + "able", + "about", + "above", + "absent", + "absorb", + "abstract", + "absurd", + "abuse", + "access", + "accident", + "account", + "accuse", + "achieve", + "acid", + "acoustic", + "acquire", + "across", + "act", + "action", + "actor", + "actress", + "actual", + "adapt", + "add", + "addict", + "address", + "adjust", + "admit", + "adult", + "advance", + "advice", + "aerobic", + "affair", + "afford", + "afraid", + "again", + "age", + "agent", + "agree", + "ahead", + "aim", + "air", + "airport", + "aisle", + "alarm", + "album", + "alcohol", + "alert", + "alien", + "all", + "alley", + "allow", + "almost", + "alone", + "alpha", + "already", + "also", + "alter", + "always", + "amateur", + "amazing", + "among", + "amount", + "amused", + "analyst", + "anchor", + "ancient", + "anger", + "angle", + "angry", + "animal", + "ankle", + "announce", + "annual", + "another", + "answer", + "antenna", + "antique", + "anxiety", + "any", + "apart", + "apology", + "appear", + "apple", + "approve", + "april", + "arch", + "arctic", + "area", + "arena", + "argue", + "arm", + "armed", + "armor", + "army", + "around", + "arrange", + "arrest", + "arrive", + "arrow", + "art", + "artefact", + "artist", + "artwork", + "ask", + "aspect", + "assault", + "asset", + "assist", + "assume", + "asthma", + "athlete", + "atom", + "attack", + "attend", + "attitude", + "attract", + "auction", + "audit", + "august", + "aunt", + "author", + "auto", + "autumn", + "average", + "avocado", + "avoid", + "awake", + "aware", + "away", + "awesome", + "awful", + "awkward", + "axis", + "baby", + "bachelor", + "bacon", + "badge", + "bag", + "balance", + "balcony", + "ball", + "bamboo", + "banana", + "banner", + "bar", + "barely", + "bargain", + "barrel", + "base", + "basic", + "basket", + "battle", + "beach", + "bean", + "beauty", + "because", + "become", + "beef", + "before", + "begin", + "behave", + "behind", + "believe", + "below", + "belt", + "bench", + "benefit", + "best", + "betray", + "better", + "between", + "beyond", + "bicycle", + "bid", + "bike", + "bind", + "biology", + "bird", + "birth", + "bitter", + "black", + "blade", + "blame", + "blanket", + "blast", + "bleak", + "bless", + "blind", + "blood", + "blossom", + "blouse", + "blue", + "blur", + "blush", + "board", + "boat", + "body", + "boil", + "bomb", + "bone", + "bonus", + "book", + "boost", + "border", + "boring", + "borrow", + "boss", + "bottom", + "bounce", + "box", + "boy", + "bracket", + "brain", + "brand", + "brass", + "brave", + "bread", + "breeze", + "brick", + "bridge", + "brief", + "bright", + "bring", + "brisk", + "broccoli", + "broken", + "bronze", + "broom", + "brother", + "brown", + "brush", + "bubble", + "buddy", + "budget", + "buffalo", + "build", + "bulb", + "bulk", + "bullet", + "bundle", + "bunker", + "burden", + "burger", + "burst", + "bus", + "business", + "busy", + "butter", + "buyer", + "buzz", + "cabbage", + "cabin", + "cable", + "cactus", + "cage", + "cake", + "call", + "calm", + "camera", + "camp", + "can", + "canal", + "cancel", + "candy", + "cannon", + "canoe", + "canvas", + "canyon", + "capable", + "capital", + "captain", + "car", + "carbon", + "card", + "cargo", + "carpet", + "carry", + "cart", + "case", + "cash", + "casino", + "castle", + "casual", + "cat", + "catalog", + "catch", + "category", + "cattle", + "caught", + "cause", + "caution", + "cave", + "ceiling", + "celery", + "cement", + "census", + "century", + "cereal", + "certain", + "chair", + "chalk", + "champion", + "change", + "chaos", + "chapter", + "charge", + "chase", + "chat", + "cheap", + "check", + "cheese", + "chef", + "cherry", + "chest", + "chicken", + "chief", + "child", + "chimney", + "choice", + "choose", + "chronic", + "chuckle", + "chunk", + "churn", + "cigar", + "cinnamon", + "circle", + "citizen", + "city", + "civil", + "claim", + "clap", + "clarify", + "claw", + "clay", + "clean", + "clerk", + "clever", + "click", + "client", + "cliff", + "climb", + "clinic", + "clip", + "clock", + "clog", + "close", + "cloth", + "cloud", + "clown", + "club", + "clump", + "cluster", + "clutch", + "coach", + "coast", + "coconut", + "code", + "coffee", + "coil", + "coin", + "collect", + "color", + "column", + "combine", + "come", + "comfort", + "comic", + "common", + "company", + "concert", + "conduct", + "confirm", + "congress", + "connect", + "consider", + "control", + "convince", + "cook", + "cool", + "copper", + "copy", + "coral", + "core", + "corn", + "correct", + "cost", + "cotton", + "couch", + "country", + "couple", + "course", + "cousin", + "cover", + "coyote", + "crack", + "cradle", + "craft", + "cram", + "crane", + "crash", + "crater", + "crawl", + "crazy", + "cream", + "credit", + "creek", + "crew", + "cricket", + "crime", + "crisp", + "critic", + "crop", + "cross", + "crouch", + "crowd", + "crucial", + "cruel", + "cruise", + "crumble", + "crunch", + "crush", + "cry", + "crystal", + "cube", + "culture", + "cup", + "cupboard", + "curious", + "current", + "curtain", + "curve", + "cushion", + "custom", + "cute", + "cycle", + "dad", + "damage", + "damp", + "dance", + "danger", + "daring", + "dash", + "daughter", + "dawn", + "day", + "deal", + "debate", + "debris", + "decade", + "december", + "decide", + "decline", + "decorate", + "decrease", + "deer", + "defense", + "define", + "defy", + "degree", + "delay", + "deliver", + "demand", + "demise", + "denial", + "dentist", + "deny", + "depart", + "depend", + "deposit", + "depth", + "deputy", + "derive", + "describe", + "desert", + "design", + "desk", + "despair", + "destroy", + "detail", + "detect", + "develop", + "device", + "devote", + "diagram", + "dial", + "diamond", + "diary", + "dice", + "diesel", + "diet", + "differ", + "digital", + "dignity", + "dilemma", + "dinner", + "dinosaur", + "direct", + "dirt", + "disagree", + "discover", + "disease", + "dish", + "dismiss", + "disorder", + "display", + "distance", + "divert", + "divide", + "divorce", + "dizzy", + "doctor", + "document", + "dog", + "doll", + "dolphin", + "domain", + "donate", + "donkey", + "donor", + "door", + "dose", + "double", + "dove", + "draft", + "dragon", + "drama", + "drastic", + "draw", + "dream", + "dress", + "drift", + "drill", + "drink", + "drip", + "drive", + "drop", + "drum", + "dry", + "duck", + "dumb", + "dune", + "during", + "dust", + "dutch", + "duty", + "dwarf", + "dynamic", + "eager", + "eagle", + "early", + "earn", + "earth", + "easily", + "east", + "easy", + "echo", + "ecology", + "economy", + "edge", + "edit", + "educate", + "effort", + "egg", + "eight", + "either", + "elbow", + "elder", + "electric", + "elegant", + "element", + "elephant", + "elevator", + "elite", + "else", + "embark", + "embody", + "embrace", + "emerge", + "emotion", + "employ", + "empower", + "empty", + "enable", + "enact", + "end", + "endless", + "endorse", + "enemy", + "energy", + "enforce", + "engage", + "engine", + "enhance", + "enjoy", + "enlist", + "enough", + "enrich", + "enroll", + "ensure", + "enter", + "entire", + "entry", + "envelope", + "episode", + "equal", + "equip", + "era", + "erase", + "erode", + "erosion", + "error", + "erupt", + "escape", + "essay", + "essence", + "estate", + "eternal", + "ethics", + "evidence", + "evil", + "evoke", + "evolve", + "exact", + "example", + "excess", + "exchange", + "excite", + "exclude", + "excuse", + "execute", + "exercise", + "exhaust", + "exhibit", + "exile", + "exist", + "exit", + "exotic", + "expand", + "expect", + "expire", + "explain", + "expose", + "express", + "extend", + "extra", + "eye", + "eyebrow", + "fabric", + "face", + "faculty", + "fade", + "faint", + "faith", + "fall", + "false", + "fame", + "family", + "famous", + "fan", + "fancy", + "fantasy", + "farm", + "fashion", + "fat", + "fatal", + "father", + "fatigue", + "fault", + "favorite", + "feature", + "february", + "federal", + "fee", + "feed", + "feel", + "female", + "fence", + "festival", + "fetch", + "fever", + "few", + "fiber", + "fiction", + "field", + "figure", + "file", + "film", + "filter", + "final", + "find", + "fine", + "finger", + "finish", + "fire", + "firm", + "first", + "fiscal", + "fish", + "fit", + "fitness", + "fix", + "flag", + "flame", + "flash", + "flat", + "flavor", + "flee", + "flight", + "flip", + "float", + "flock", + "floor", + "flower", + "fluid", + "flush", + "fly", + "foam", + "focus", + "fog", + "foil", + "fold", + "follow", + "food", + "foot", + "force", + "forest", + "forget", + "fork", + "fortune", + "forum", + "forward", + "fossil", + "foster", + "found", + "fox", + "fragile", + "frame", + "frequent", + "fresh", + "friend", + "fringe", + "frog", + "front", + "frost", + "frown", + "frozen", + "fruit", + "fuel", + "fun", + "funny", + "furnace", + "fury", + "future", + "gadget", + "gain", + "galaxy", + "gallery", + "game", + "gap", + "garage", + "garbage", + "garden", + "garlic", + "garment", + "gas", + "gasp", + "gate", + "gather", + "gauge", + "gaze", + "general", + "genius", + "genre", + "gentle", + "genuine", + "gesture", + "ghost", + "giant", + "gift", + "giggle", + "ginger", + "giraffe", + "girl", + "give", + "glad", + "glance", + "glare", + "glass", + "glide", + "glimpse", + "globe", + "gloom", + "glory", + "glove", + "glow", + "glue", + "goat", + "goddess", + "gold", + "good", + "goose", + "gorilla", + "gospel", + "gossip", + "govern", + "gown", + "grab", + "grace", + "grain", + "grant", + "grape", + "grass", + "gravity", + "great", + "green", + "grid", + "grief", + "grit", + "grocery", + "group", + "grow", + "grunt", + "guard", + "guess", + "guide", + "guilt", + "guitar", + "gun", + "gym", + "habit", + "hair", + "half", + "hammer", + "hamster", + "hand", + "happy", + "harbor", + "hard", + "harsh", + "harvest", + "hat", + "have", + "hawk", + "hazard", + "head", + "health", + "heart", + "heavy", + "hedgehog", + "height", + "hello", + "helmet", + "help", + "hen", + "hero", + "hidden", + "high", + "hill", + "hint", + "hip", + "hire", + "history", + "hobby", + "hockey", + "hold", + "hole", + "holiday", + "hollow", + "home", + "honey", + "hood", + "hope", + "horn", + "horror", + "horse", + "hospital", + "host", + "hotel", + "hour", + "hover", + "hub", + "huge", + "human", + "humble", + "humor", + "hundred", + "hungry", + "hunt", + "hurdle", + "hurry", + "hurt", + "husband", + "hybrid", + "ice", + "icon", + "idea", + "identify", + "idle", + "ignore", + "ill", + "illegal", + "illness", + "image", + "imitate", + "immense", + "immune", + "impact", + "impose", + "improve", + "impulse", + "inch", + "include", + "income", + "increase", + "index", + "indicate", + "indoor", + "industry", + "infant", + "inflict", + "inform", + "inhale", + "inherit", + "initial", + "inject", + "injury", + "inmate", + "inner", + "innocent", + "input", + "inquiry", + "insane", + "insect", + "inside", + "inspire", + "install", + "intact", + "interest", + "into", + "invest", + "invite", + "involve", + "iron", + "island", + "isolate", + "issue", + "item", + "ivory", + "jacket", + "jaguar", + "jar", + "jazz", + "jealous", + "jeans", + "jelly", + "jewel", + "job", + "join", + "joke", + "journey", + "joy", + "judge", + "juice", + "jump", + "jungle", + "junior", + "junk", + "just", + "kangaroo", + "keen", + "keep", + "ketchup", + "key", + "kick", + "kid", + "kidney", + "kind", + "kingdom", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kiwi", + "knee", + "knife", + "knock", + "know", + "lab", + "label", + "labor", + "ladder", + "lady", + "lake", + "lamp", + "language", + "laptop", + "large", + "later", + "latin", + "laugh", + "laundry", + "lava", + "law", + "lawn", + "lawsuit", + "layer", + "lazy", + "leader", + "leaf", + "learn", + "leave", + "lecture", + "left", + "leg", + "legal", + "legend", + "leisure", + "lemon", + "lend", + "length", + "lens", + "leopard", + "lesson", + "letter", + "level", + "liar", + "liberty", + "library", + "license", + "life", + "lift", + "light", + "like", + "limb", + "limit", + "link", + "lion", + "liquid", + "list", + "little", + "live", + "lizard", + "load", + "loan", + "lobster", + "local", + "lock", + "logic", + "lonely", + "long", + "loop", + "lottery", + "loud", + "lounge", + "love", + "loyal", + "lucky", + "luggage", + "lumber", + "lunar", + "lunch", + "luxury", + "lyrics", + "machine", + "mad", + "magic", + "magnet", + "maid", + "mail", + "main", + "major", + "make", + "mammal", + "man", + "manage", + "mandate", + "mango", + "mansion", + "manual", + "maple", + "marble", + "march", + "margin", + "marine", + "market", + "marriage", + "mask", + "mass", + "master", + "match", + "material", + "math", + "matrix", + "matter", + "maximum", + "maze", + "meadow", + "mean", + "measure", + "meat", + "mechanic", + "medal", + "media", + "melody", + "melt", + "member", + "memory", + "mention", + "menu", + "mercy", + "merge", + "merit", + "merry", + "mesh", + "message", + "metal", + "method", + "middle", + "midnight", + "milk", + "million", + "mimic", + "mind", + "minimum", + "minor", + "minute", + "miracle", + "mirror", + "misery", + "miss", + "mistake", + "mix", + "mixed", + "mixture", + "mobile", + "model", + "modify", + "mom", + "moment", + "monitor", + "monkey", + "monster", + "month", + "moon", + "moral", + "more", + "morning", + "mosquito", + "mother", + "motion", + "motor", + "mountain", + "mouse", + "move", + "movie", + "much", + "muffin", + "mule", + "multiply", + "muscle", + "museum", + "mushroom", + "music", + "must", + "mutual", + "myself", + "mystery", + "myth", + "naive", + "name", + "napkin", + "narrow", + "nasty", + "nation", + "nature", + "near", + "neck", + "need", + "negative", + "neglect", + "neither", + "nephew", + "nerve", + "nest", + "net", + "network", + "neutral", + "never", + "news", + "next", + "nice", + "night", + "noble", + "noise", + "nominee", + "noodle", + "normal", + "north", + "nose", + "notable", + "note", + "nothing", + "notice", + "novel", + "now", + "nuclear", + "number", + "nurse", + "nut", + "oak", + "obey", + "object", + "oblige", + "obscure", + "observe", + "obtain", + "obvious", + "occur", + "ocean", + "october", + "odor", + "off", + "offer", + "office", + "often", + "oil", + "okay", + "old", + "olive", + "olympic", + "omit", + "once", + "one", + "onion", + "online", + "only", + "open", + "opera", + "opinion", + "oppose", + "option", + "orange", + "orbit", + "orchard", + "order", + "ordinary", + "organ", + "orient", + "original", + "orphan", + "ostrich", + "other", + "outdoor", + "outer", + "output", + "outside", + "oval", + "oven", + "over", + "own", + "owner", + "oxygen", + "oyster", + "ozone", + "pact", + "paddle", + "page", + "pair", + "palace", + "palm", + "panda", + "panel", + "panic", + "panther", + "paper", + "parade", + "parent", + "park", + "parrot", + "party", + "pass", + "patch", + "path", + "patient", + "patrol", + "pattern", + "pause", + "pave", + "payment", + "peace", + "peanut", + "pear", + "peasant", + "pelican", + "pen", + "penalty", + "pencil", + "people", + "pepper", + "perfect", + "permit", + "person", + "pet", + "phone", + "photo", + "phrase", + "physical", + "piano", + "picnic", + "picture", + "piece", + "pig", + "pigeon", + "pill", + "pilot", + "pink", + "pioneer", + "pipe", + "pistol", + "pitch", + "pizza", + "place", + "planet", + "plastic", + "plate", + "play", + "please", + "pledge", + "pluck", + "plug", + "plunge", + "poem", + "poet", + "point", + "polar", + "pole", + "police", + "pond", + "pony", + "pool", + "popular", + "portion", + "position", + "possible", + "post", + "potato", + "pottery", + "poverty", + "powder", + "power", + "practice", + "praise", + "predict", + "prefer", + "prepare", + "present", + "pretty", + "prevent", + "price", + "pride", + "primary", + "print", + "priority", + "prison", + "private", + "prize", + "problem", + "process", + "produce", + "profit", + "program", + "project", + "promote", + "proof", + "property", + "prosper", + "protect", + "proud", + "provide", + "public", + "pudding", + "pull", + "pulp", + "pulse", + "pumpkin", + "punch", + "pupil", + "puppy", + "purchase", + "purity", + "purpose", + "purse", + "push", + "put", + "puzzle", + "pyramid", + "quality", + "quantum", + "quarter", + "question", + "quick", + "quit", + "quiz", + "quote", + "rabbit", + "raccoon", + "race", + "rack", + "radar", + "radio", + "rail", + "rain", + "raise", + "rally", + "ramp", + "ranch", + "random", + "range", + "rapid", + "rare", + "rate", + "rather", + "raven", + "raw", + "razor", + "ready", + "real", + "reason", + "rebel", + "rebuild", + "recall", + "receive", + "recipe", + "record", + "recycle", + "reduce", + "reflect", + "reform", + "refuse", + "region", + "regret", + "regular", + "reject", + "relax", + "release", + "relief", + "rely", + "remain", + "remember", + "remind", + "remove", + "render", + "renew", + "rent", + "reopen", + "repair", + "repeat", + "replace", + "report", + "require", + "rescue", + "resemble", + "resist", + "resource", + "response", + "result", + "retire", + "retreat", + "return", + "reunion", + "reveal", + "review", + "reward", + "rhythm", + "rib", + "ribbon", + "rice", + "rich", + "ride", + "ridge", + "rifle", + "right", + "rigid", + "ring", + "riot", + "ripple", + "risk", + "ritual", + "rival", + "river", + "road", + "roast", + "robot", + "robust", + "rocket", + "romance", + "roof", + "rookie", + "room", + "rose", + "rotate", + "rough", + "round", + "route", + "royal", + "rubber", + "rude", + "rug", + "rule", + "run", + "runway", + "rural", + "sad", + "saddle", + "sadness", + "safe", + "sail", + "salad", + "salmon", + "salon", + "salt", + "salute", + "same", + "sample", + "sand", + "satisfy", + "satoshi", + "sauce", + "sausage", + "save", + "say", + "scale", + "scan", + "scare", + "scatter", + "scene", + "scheme", + "school", + "science", + "scissors", + "scorpion", + "scout", + "scrap", + "screen", + "script", + "scrub", + "sea", + "search", + "season", + "seat", + "second", + "secret", + "section", + "security", + "seed", + "seek", + "segment", + "select", + "sell", + "seminar", + "senior", + "sense", + "sentence", + "series", + "service", + "session", + "settle", + "setup", + "seven", + "shadow", + "shaft", + "shallow", + "share", + "shed", + "shell", + "sheriff", + "shield", + "shift", + "shine", + "ship", + "shiver", + "shock", + "shoe", + "shoot", + "shop", + "short", + "shoulder", + "shove", + "shrimp", + "shrug", + "shuffle", + "shy", + "sibling", + "sick", + "side", + "siege", + "sight", + "sign", + "silent", + "silk", + "silly", + "silver", + "similar", + "simple", + "since", + "sing", + "siren", + "sister", + "situate", + "six", + "size", + "skate", + "sketch", + "ski", + "skill", + "skin", + "skirt", + "skull", + "slab", + "slam", + "sleep", + "slender", + "slice", + "slide", + "slight", + "slim", + "slogan", + "slot", + "slow", + "slush", + "small", + "smart", + "smile", + "smoke", + "smooth", + "snack", + "snake", + "snap", + "sniff", + "snow", + "soap", + "soccer", + "social", + "sock", + "soda", + "soft", + "solar", + "soldier", + "solid", + "solution", + "solve", + "someone", + "song", + "soon", + "sorry", + "sort", + "soul", + "sound", + "soup", + "source", + "south", + "space", + "spare", + "spatial", + "spawn", + "speak", + "special", + "speed", + "spell", + "spend", + "sphere", + "spice", + "spider", + "spike", + "spin", + "spirit", + "split", + "spoil", + "sponsor", + "spoon", + "sport", + "spot", + "spray", + "spread", + "spring", + "spy", + "square", + "squeeze", + "squirrel", + "stable", + "stadium", + "staff", + "stage", + "stairs", + "stamp", + "stand", + "start", + "state", + "stay", + "steak", + "steel", + "stem", + "step", + "stereo", + "stick", + "still", + "sting", + "stock", + "stomach", + "stone", + "stool", + "story", + "stove", + "strategy", + "street", + "strike", + "strong", + "struggle", + "student", + "stuff", + "stumble", + "style", + "subject", + "submit", + "subway", + "success", + "such", + "sudden", + "suffer", + "sugar", + "suggest", + "suit", + "summer", + "sun", + "sunny", + "sunset", + "super", + "supply", + "supreme", + "sure", + "surface", + "surge", + "surprise", + "surround", + "survey", + "suspect", + "sustain", + "swallow", + "swamp", + "swap", + "swarm", + "swear", + "sweet", + "swift", + "swim", + "swing", + "switch", + "sword", + "symbol", + "symptom", + "syrup", + "system", + "table", + "tackle", + "tag", + "tail", + "talent", + "talk", + "tank", + "tape", + "target", + "task", + "taste", + "tattoo", + "taxi", + "teach", + "team", + "tell", + "ten", + "tenant", + "tennis", + "tent", + "term", + "test", + "text", + "thank", + "that", + "theme", + "then", + "theory", + "there", + "they", + "thing", + "this", + "thought", + "three", + "thrive", + "throw", + "thumb", + "thunder", + "ticket", + "tide", + "tiger", + "tilt", + "timber", + "time", + "tiny", + "tip", + "tired", + "tissue", + "title", + "toast", + "tobacco", + "today", + "toddler", + "toe", + "together", + "toilet", + "token", + "tomato", + "tomorrow", + "tone", + "tongue", + "tonight", + "tool", + "tooth", + "top", + "topic", + "topple", + "torch", + "tornado", + "tortoise", + "toss", + "total", + "tourist", + "toward", + "tower", + "town", + "toy", + "track", + "trade", + "traffic", + "tragic", + "train", + "transfer", + "trap", + "trash", + "travel", + "tray", + "treat", + "tree", + "trend", + "trial", + "tribe", + "trick", + "trigger", + "trim", + "trip", + "trophy", + "trouble", + "truck", + "true", + "truly", + "trumpet", + "trust", + "truth", + "try", + "tube", + "tuition", + "tumble", + "tuna", + "tunnel", + "turkey", + "turn", + "turtle", + "twelve", + "twenty", + "twice", + "twin", + "twist", + "two", + "type", + "typical", + "ugly", + "umbrella", + "unable", + "unaware", + "uncle", + "uncover", + "under", + "undo", + "unfair", + "unfold", + "unhappy", + "uniform", + "unique", + "unit", + "universe", + "unknown", + "unlock", + "until", + "unusual", + "unveil", + "update", + "upgrade", + "uphold", + "upon", + "upper", + "upset", + "urban", + "urge", + "usage", + "use", + "used", + "useful", + "useless", + "usual", + "utility", + "vacant", + "vacuum", + "vague", + "valid", + "valley", + "valve", + "van", + "vanish", + "vapor", + "various", + "vast", + "vault", + "vehicle", + "velvet", + "vendor", + "venture", + "venue", + "verb", + "verify", + "version", + "very", + "vessel", + "veteran", + "viable", + "vibrant", + "vicious", + "victory", + "video", + "view", + "village", + "vintage", + "violin", + "virtual", + "virus", + "visa", + "visit", + "visual", + "vital", + "vivid", + "vocal", + "voice", + "void", + "volcano", + "volume", + "vote", + "voyage", + "wage", + "wagon", + "wait", + "walk", + "wall", + "walnut", + "want", + "warfare", + "warm", + "warrior", + "wash", + "wasp", + "waste", + "water", + "wave", + "way", + "wealth", + "weapon", + "wear", + "weasel", + "weather", + "web", + "wedding", + "weekend", + "weird", + "welcome", + "west", + "wet", + "whale", + "what", + "wheat", + "wheel", + "when", + "where", + "whip", + "whisper", + "wide", + "width", + "wife", + "wild", + "will", + "win", + "window", + "wine", + "wing", + "wink", + "winner", + "winter", + "wire", + "wisdom", + "wise", + "wish", + "witness", + "wolf", + "woman", + "wonder", + "wood", + "wool", + "word", + "work", + "world", + "worry", + "worth", + "wrap", + "wreck", + "wrestle", + "wrist", + "write", + "wrong", + "yard", + "year", + "yellow", + "you", + "young", + "youth", + "zebra", + "zero", + "zone", + "zoo" +) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" new file mode 100644 index 0000000..8e82b91 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/CurrencyUnit.kt" @@ -0,0 +1,11 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +enum class CurrencyUnit { + Bitcoin, + Satoshi, +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" new file mode 100644 index 0000000..31ef49a --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/DwLogger.kt" @@ -0,0 +1,51 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import java.time.Instant +import java.time.ZoneId +import java.time.temporal.ChronoUnit + +object DwLogger { + private const val MAX_LOGS = 5000 + private val logEntries = ArrayDeque(MAX_LOGS) + private val lock = Any() + + fun log(tag: LogLevel, message: String) { + synchronized(lock) { + if (logEntries.size >= MAX_LOGS) { + logEntries.removeLast() + } + val millis = System.currentTimeMillis() + val dateTime = Instant.ofEpochMilli(millis) + .atZone(ZoneId.systemDefault()) + .toLocalDateTime() + .truncatedTo(ChronoUnit.SECONDS) + + logEntries.addFirst("$dateTime $tag $message") + } + } + + fun getLogs(): List { + synchronized(lock) { + return logEntries.toList() + } + } + + enum class LogLevel { + INFO, + WARN, + ERROR; + + override fun toString(): String { + return when (this) { + INFO -> "[INFO] " + WARN -> "[WARN] " + ERROR -> "[ERROR]" + } + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" new file mode 100644 index 0000000..7d57a5c --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/UserPreferencesRepository.kt" @@ -0,0 +1,52 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import androidx.datastore.core.DataStore +import kotlinx.coroutines.flow.first +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.data.UserPreferences + +class UserPreferencesRepository( + private val userPreferencesStore: DataStore, +) { + suspend fun fetchIntroDone(): Boolean { + return userPreferencesStore.data.first().introDone + } + + suspend fun setIntroDone() { + userPreferencesStore.updateData { currentPreferences -> + currentPreferences.toBuilder().setIntroDone(true).build() + } + } + + suspend fun fetchActiveWallets(): List { + return userPreferencesStore.data.first().walletsList + } + + suspend fun updateActiveWallets(singleWallet: SingleWallet) { + userPreferencesStore.updateData { currentPreferences -> + currentPreferences.toBuilder().addWallets(singleWallet).build() + } + } + + suspend fun setFullScanCompleted(walletId: String) { + userPreferencesStore.updateData { currentPreferences -> + val updatedWalletsList = currentPreferences.walletsList.map { wallet -> + if (wallet.id == walletId) { + wallet.toBuilder().setFullScanCompleted(true).build() + } else { + wallet + } + } + currentPreferences + .toBuilder() + .clearWallets() + .addAllWallets(updatedWalletsList) + .build() + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" new file mode 100644 index 0000000..1ec59bd --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/Wallet.kt" @@ -0,0 +1,393 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain + +import android.util.Log +import kotlinx.coroutines.runBlocking +import org.bitcoindevkit.Address +import org.bitcoindevkit.AddressInfo +import org.bitcoindevkit.Amount +import org.bitcoindevkit.CanonicalTx +import org.bitcoindevkit.ChainPosition +import org.bitcoindevkit.Connection +import org.bitcoindevkit.Descriptor +import org.bitcoindevkit.DescriptorSecretKey +import org.bitcoindevkit.FeeRate +import org.bitcoindevkit.KeychainKind +import org.bitcoindevkit.Mnemonic +import org.bitcoindevkit.Network +import org.bitcoindevkit.Psbt +import org.bitcoindevkit.Script +import org.bitcoindevkit.TxBuilder +import org.bitcoindevkit.Update +import org.bitcoindevkit.WordCount +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.data.ConfirmationBlock +import org.bitcoindevkit.devkitwallet.data.NewWalletConfig +import org.bitcoindevkit.devkitwallet.data.RecoverWalletConfig +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.data.Timestamp +import org.bitcoindevkit.devkitwallet.data.TxDetails +import org.bitcoindevkit.devkitwallet.domain.utils.intoDomain +import org.bitcoindevkit.devkitwallet.domain.utils.intoProto +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.Recipient +import java.util.UUID +import org.bitcoindevkit.Wallet as BdkWallet + +private const val TAG = "Wallet" + +class Wallet private constructor( + private val wallet: BdkWallet, + private val walletSecrets: WalletSecrets, + private val connection: Connection, + private var fullScanCompleted: Boolean, + private val walletId: String, + private val userPreferencesRepository: UserPreferencesRepository, + blockchainClientsConfig: BlockchainClientsConfig, +) { + private var currentBlockchainClient: BlockchainClient? = blockchainClientsConfig.getClient() + + fun getWalletSecrets(): WalletSecrets { + return walletSecrets + } + + fun createTransaction(recipientList: List, feeRate: FeeRate): Psbt { + // technique 1 for adding a list of recipients to the TxBuilder + // var txBuilder = TxBuilder() + // for (recipient in recipientList) { + // txBuilder = txBuilder.addRecipient(address = recipient.first, amount = recipient.second) + // } + // txBuilder = txBuilder.feeRate(satPerVbyte = fee_rate) + + // technique 2 for adding a list of recipients to the TxBuilder + var txBuilder = + recipientList.fold(TxBuilder()) { builder, recipient -> + // val address = Address(recipient.address) + val scriptPubKey: Script = Address(recipient.address, Network.TESTNET).scriptPubkey() + builder.addRecipient(scriptPubKey, Amount.fromSat(recipient.amount)) + } + // if (!opReturnMsg.isNullOrEmpty()) { + // txBuilder = txBuilder.addData(opReturnMsg.toByteArray(charset = Charsets.UTF_8).asUByteArray().toList()) + // } + return txBuilder.feeRate(feeRate).finish(wallet) + } + + // @OptIn(ExperimentalUnsignedTypes::class) + // fun createSendAllTransaction( + // recipient: String, + // feeRate: Float, + // enableRBF: Boolean, + // opReturnMsg: String? + // ): PartiallySignedTransaction { + // val scriptPubkey: Script = Address(recipient).scriptPubkey() + // var txBuilder = TxBuilder() + // .drainWallet() + // .drainTo(scriptPubkey) + // .feeRate(satPerVbyte = feeRate) + // + // if (enableRBF) { + // txBuilder = txBuilder.enableRbf() + // } + // if (!opReturnMsg.isNullOrEmpty()) { + // txBuilder = txBuilder.addData(opReturnMsg.toByteArray(charset = Charsets.UTF_8).asUByteArray().toList()) + // } + // return txBuilder.finish(wallet).psbt + // } + + // fun createBumpFeeTransaction(txid: String, feeRate: Float): PartiallySignedTransaction { + // return BumpFeeTxBuilder(txid = txid, newFeeRate = feeRate) + // .enableRbf() + // .finish(wallet = wallet) + // } + + fun sign(psbt: Psbt): Boolean { + return wallet.sign(psbt) + } + + fun broadcast(signedPsbt: Psbt): String { + currentBlockchainClient?.broadcast(signedPsbt.extractTx()) ?: throw IllegalStateException( + "Blockchain client not initialized" + ) + return signedPsbt.extractTx().computeTxid() + } + + private fun getAllTransactions(): List = wallet.transactions() + + fun getAllTxDetails(): List { + val transactions = getAllTransactions() + return transactions.map { tx -> + val txid = tx.transaction.computeTxid() + val (sent, received) = wallet.sentAndReceived(tx.transaction) + var feeRate: FeeRate? = null + var fee: Amount? = null + // TODO: I don't know why we're getting negative fees here, but it looks like a bug + try { + fee = wallet.calculateFee(tx.transaction) + } catch (e: Exception) { + Log.e(TAG, "Error calculating fee rate for tx $txid: $e") + } + try { + feeRate = wallet.calculateFeeRate(tx.transaction) + } catch (e: Exception) { + Log.e(TAG, "Error calculating fee for tx $txid: $e") + } + + val (confirmationBlock, confirmationTimestamp, pending) = + when (val position = tx.chainPosition) { + is ChainPosition.Unconfirmed -> Triple(null, null, true) + is ChainPosition.Confirmed -> + Triple( + ConfirmationBlock(position.confirmationBlockTime.blockId.height), + Timestamp(position.confirmationBlockTime.confirmationTime), + false + ) + } + TxDetails( + tx.transaction, + txid, + sent.toSat(), + received.toSat(), + fee?.toSat() ?: 0uL, + feeRate, + pending, + confirmationBlock, + confirmationTimestamp + ) + } + } + + // fun getTransaction(txid: String): TransactionDetails? { + // val allTransactions = getAllTransactions() + // allTransactions.forEach { + // if (it.txid == txid) { + // return it + // } + // } + // return null + // } + + private fun fullScan() { + val fullScanRequest = wallet.startFullScan().build() + val update: Update = + currentBlockchainClient?.fullScan( + fullScanRequest = fullScanRequest, + stopGap = 20u, + ) ?: throw IllegalStateException("Blockchain client not initialized") + wallet.applyUpdate(update) + wallet.persist(connection) + } + + fun sync() { + if (!fullScanCompleted) { + Log.i(TAG, "Full scan required") + fullScan() + runBlocking { + userPreferencesRepository.setFullScanCompleted(walletId) + fullScanCompleted = true + } + } else { + Log.i(TAG, "Just a normal sync!") + val syncRequest = wallet.startSyncWithRevealedSpks().build() + val update = + currentBlockchainClient?.sync( + syncRequest = syncRequest, + ) ?: throw IllegalStateException("Blockchain client not initialized") + wallet.applyUpdate(update) + wallet.persist(connection) + } + } + + fun getBalance(): ULong = wallet.balance().total.toSat() + + fun getNewAddress(): AddressInfo = wallet.revealNextAddress(KeychainKind.EXTERNAL) + + fun getClientEndpoint(): String = currentBlockchainClient?.endpoint() ?: "No active client" + + companion object { + fun createWallet( + newWalletConfig: NewWalletConfig, + internalAppFilesPath: String, + userPreferencesRepository: UserPreferencesRepository, + ): Wallet { + val mnemonic = Mnemonic(WordCount.WORDS12) + val bip32ExtendedRootKey = DescriptorSecretKey(newWalletConfig.network, mnemonic, null) + val descriptor: Descriptor = createScriptAppropriateDescriptor( + newWalletConfig.scriptType, + bip32ExtendedRootKey, + newWalletConfig.network, + KeychainKind.EXTERNAL + ) + val changeDescriptor: Descriptor = createScriptAppropriateDescriptor( + newWalletConfig.scriptType, + bip32ExtendedRootKey, + newWalletConfig.network, + KeychainKind.INTERNAL + ) + val walletId = UUID.randomUUID().toString() + val connection = Connection("$internalAppFilesPath/wallet-${walletId.take(8)}.sqlite3") + + // Create SingleWallet object for saving to datastore + val newWalletForDatastore: SingleWallet = SingleWallet + .newBuilder() + .setId(walletId) + .setName(newWalletConfig.name) + .setNetwork(newWalletConfig.network.intoProto()) + .setScriptType(newWalletConfig.scriptType) + .setDescriptor(descriptor.toStringWithSecret()) + .setChangeDescriptor(changeDescriptor.toStringWithSecret()) + .setRecoveryPhrase(mnemonic.toString()) + .build() + + // TODO: launch this correctly, not on the main thread + // Save the new wallet to the datastore + runBlocking { userPreferencesRepository.updateActiveWallets(newWalletForDatastore) } + + val bdkWallet = + BdkWallet( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + network = newWalletConfig.network, + connection = connection, + ) + + val walletSecrets = WalletSecrets(descriptor, changeDescriptor, mnemonic.toString()) + + return Wallet( + wallet = bdkWallet, + walletSecrets = walletSecrets, + connection = connection, + fullScanCompleted = false, + walletId = walletId, + userPreferencesRepository = userPreferencesRepository, + blockchainClientsConfig = BlockchainClientsConfig.createDefaultConfig(newWalletConfig.network) + ) + } + + fun loadActiveWallet( + activeWallet: SingleWallet, + internalAppFilesPath: String, + userPreferencesRepository: UserPreferencesRepository, + ): Wallet { + val descriptor = Descriptor(activeWallet.descriptor, activeWallet.network.intoDomain()) + val changeDescriptor = Descriptor(activeWallet.changeDescriptor, activeWallet.network.intoDomain()) + val connection = Connection("$internalAppFilesPath/wallet-${activeWallet.id.take(8)}.sqlite3") + val bdkWallet = BdkWallet.load( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + connection = connection + ) + + val walletSecrets = WalletSecrets(descriptor, changeDescriptor, activeWallet.recoveryPhrase) + return Wallet( + wallet = bdkWallet, + walletSecrets = walletSecrets, + connection = connection, + fullScanCompleted = activeWallet.fullScanCompleted, + walletId = activeWallet.id, + userPreferencesRepository = userPreferencesRepository, + blockchainClientsConfig = BlockchainClientsConfig.createDefaultConfig(activeWallet.network.intoDomain()) + ) + } + + fun recoverWallet( + recoverWalletConfig: RecoverWalletConfig, + internalAppFilesPath: String, + userPreferencesRepository: UserPreferencesRepository, + ): Wallet { + Log.i(TAG, "Recovering wallet with config: $recoverWalletConfig") + var descriptor: Descriptor? = null + var changeDescriptor: Descriptor? = null + var mnemonicString: String = "" + + // If there is a recovery phrase, we use it to recover the wallet + if (recoverWalletConfig.recoveryPhrase != null && recoverWalletConfig.scriptType != null) { + val mnemonic: Mnemonic = Mnemonic.fromString(recoverWalletConfig.recoveryPhrase) + mnemonicString = mnemonic.toString() + val bip32ExtendedRootKey = DescriptorSecretKey(recoverWalletConfig.network, mnemonic, null) + descriptor = createScriptAppropriateDescriptor( + recoverWalletConfig.scriptType, + bip32ExtendedRootKey, + recoverWalletConfig.network, + KeychainKind.EXTERNAL + ) + changeDescriptor = createScriptAppropriateDescriptor( + recoverWalletConfig.scriptType, + bip32ExtendedRootKey, + recoverWalletConfig.network, + KeychainKind.INTERNAL + ) + } else { + descriptor = recoverWalletConfig.descriptor + changeDescriptor = recoverWalletConfig.changeDescriptor + } + val walletId = UUID.randomUUID().toString() + val connection = Connection("$internalAppFilesPath/wallet-${walletId.take(8)}.sqlite3") + + // Create SingleWallet object for saving to datastore + val newWalletForDatastore: SingleWallet = SingleWallet + .newBuilder() + .setId(walletId) + .setName(recoverWalletConfig.name) + .setNetwork(recoverWalletConfig.network.intoProto()) + .setScriptType(recoverWalletConfig.scriptType ?: ActiveWalletScriptType.UNKNOWN) + .setDescriptor(descriptor.toStringWithSecret()) + .setChangeDescriptor(changeDescriptor.toStringWithSecret()) + .setRecoveryPhrase(mnemonicString) + .build() + + // TODO: launch this correctly, not on the main thread + // Save the new wallet to the datastore + runBlocking { userPreferencesRepository.updateActiveWallets(newWalletForDatastore) } + + val bdkWallet = BdkWallet( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + connection = connection, + network = recoverWalletConfig.network, + ) + + val walletSecrets = WalletSecrets(descriptor, changeDescriptor, mnemonicString) + return Wallet( + wallet = bdkWallet, + walletSecrets = walletSecrets, + connection = connection, + fullScanCompleted = false, + walletId = walletId, + userPreferencesRepository = userPreferencesRepository, + blockchainClientsConfig = BlockchainClientsConfig.createDefaultConfig(recoverWalletConfig.network) + ) + } + } +} + +fun createScriptAppropriateDescriptor( + scriptType: ActiveWalletScriptType, + bip32ExtendedRootKey: DescriptorSecretKey, + network: Network, + keychain: KeychainKind, +): Descriptor { + return if (keychain == KeychainKind.EXTERNAL) { + when (scriptType) { + ActiveWalletScriptType.P2WPKH -> Descriptor.newBip84(bip32ExtendedRootKey, KeychainKind.EXTERNAL, network) + ActiveWalletScriptType.P2TR -> Descriptor.newBip86(bip32ExtendedRootKey, KeychainKind.EXTERNAL, network) + ActiveWalletScriptType.UNKNOWN -> TODO() + ActiveWalletScriptType.UNRECOGNIZED -> TODO() + } + } else { + when (scriptType) { + ActiveWalletScriptType.P2WPKH -> Descriptor.newBip84(bip32ExtendedRootKey, KeychainKind.INTERNAL, network) + ActiveWalletScriptType.P2TR -> Descriptor.newBip86(bip32ExtendedRootKey, KeychainKind.INTERNAL, network) + ActiveWalletScriptType.UNKNOWN -> TODO() + ActiveWalletScriptType.UNRECOGNIZED -> TODO() + } + } +} + +data class WalletSecrets( + val descriptor: Descriptor, + val changeDescriptor: Descriptor, + val recoveryPhrase: String, +) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" new file mode 100644 index 0000000..b6f247a --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/FormatInBtc.kt" @@ -0,0 +1,18 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain.utils + +import java.text.DecimalFormat + +fun ULong?.formatInBtc(): String { + val balanceInSats = + if (this == 0UL || this == null) { + 0F + } else { + this.toDouble().div(100_000_000) + } + return DecimalFormat("0.00000000").format(balanceInSats) +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" new file mode 100644 index 0000000..29687cc --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/ProtobufExtensions.kt" @@ -0,0 +1,28 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain.utils + +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletNetwork + +fun Network.intoProto(): ActiveWalletNetwork { + return when (this) { + Network.REGTEST -> ActiveWalletNetwork.REGTEST + Network.TESTNET -> ActiveWalletNetwork.TESTNET + Network.TESTNET4 -> throw IllegalArgumentException("Bitcoin testnet 4 network is not supported") + Network.SIGNET -> ActiveWalletNetwork.SIGNET + Network.BITCOIN -> throw IllegalArgumentException("Bitcoin mainnet network is not supported") + } +} + +fun ActiveWalletNetwork.intoDomain(): Network { + return when (this) { + ActiveWalletNetwork.TESTNET -> Network.TESTNET + ActiveWalletNetwork.SIGNET -> Network.SIGNET + ActiveWalletNetwork.REGTEST -> Network.REGTEST + ActiveWalletNetwork.UNRECOGNIZED -> throw IllegalArgumentException("Unrecognized network") + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" new file mode 100644 index 0000000..d132ffb --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/domain/utils/Timestamps.kt" @@ -0,0 +1,17 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.domain.utils + +import android.text.format.DateFormat +import java.util.Calendar +import java.util.Locale + +// extension function on the ULong timestamp provided in the Transaction.Confirmed type +fun ULong.timestampToString(): String { + val calendar = Calendar.getInstance(Locale.ENGLISH) + calendar.timeInMillis = (this * 1000u).toLong() + return DateFormat.format("MMMM d yyyy HH:mm", calendar).toString() +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" new file mode 100644 index 0000000..8afb7b0 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/DevkitWalletActivity.kt" @@ -0,0 +1,118 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation + +import android.content.Context +import android.os.Bundle +import android.util.Log +import androidx.activity.compose.setContent +import androidx.appcompat.app.AppCompatActivity +import androidx.datastore.core.DataStore +import androidx.datastore.dataStore +import androidx.lifecycle.lifecycleScope +import kotlinx.coroutines.async +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.data.NewWalletConfig +import org.bitcoindevkit.devkitwallet.data.RecoverWalletConfig +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.data.UserPreferences +import org.bitcoindevkit.devkitwallet.data.UserPreferencesSerializer +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.UserPreferencesRepository +import org.bitcoindevkit.devkitwallet.domain.Wallet +import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.CreateWalletNavigation +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeNavigation +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitTheme +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.OnboardingScreen + +private const val TAG = "DevkitWalletActivity" +private val Context.userPreferencesStore: DataStore by dataStore( + fileName = "user_preferences.pb", + serializer = UserPreferencesSerializer +) + +class DevkitWalletActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + installSplashScreen() + + super.onCreate(savedInstanceState) + + // Initialize Devkit Wallet Logger (used in the LogsScreen) + DwLogger.log(INFO, "Devkit Wallet app started") + + val userPreferencesRepository = UserPreferencesRepository(userPreferencesStore) + val onBuildWalletButtonClicked: (WalletCreateType) -> Unit = { walletCreateType -> + try { + val activeWallet = when (walletCreateType) { + is WalletCreateType.FROMSCRATCH -> Wallet.createWallet( + newWalletConfig = walletCreateType.newWalletConfig, + internalAppFilesPath = filesDir.absolutePath, + userPreferencesRepository = userPreferencesRepository + ) + is WalletCreateType.LOADEXISTING -> Wallet.loadActiveWallet( + activeWallet = walletCreateType.activeWallet, + internalAppFilesPath = filesDir.absolutePath, + userPreferencesRepository = userPreferencesRepository, + ) + is WalletCreateType.RECOVER -> Wallet.recoverWallet( + recoverWalletConfig = walletCreateType.recoverWalletConfig, + internalAppFilesPath = filesDir.absolutePath, + userPreferencesRepository = userPreferencesRepository, + ) + } + setContent { + DevkitTheme { + HomeNavigation(activeWallet) + } + } + } catch (e: Throwable) { + Log.i(TAG, "Could not build wallet: $e") + } + } + + lifecycleScope.launch { + val activeWallets = + async { + userPreferencesRepository.fetchActiveWallets() + }.await() + + val onboardingDone = + async { + userPreferencesRepository.fetchIntroDone() + }.await() + + val onFinishOnboarding: () -> Unit = { + lifecycleScope.launch { userPreferencesRepository.setIntroDone() } + setContent { + DevkitTheme { + CreateWalletNavigation(onBuildWalletButtonClicked, activeWallets) + } + } + } + + setContent { + if (!onboardingDone) { + DwLogger.log(INFO, "First time opening the app, triggering onboarding screen") + OnboardingScreen(onFinishOnboarding) + } else { + DevkitTheme { + CreateWalletNavigation(onBuildWalletButtonClicked, activeWallets) + } + } + } + } + } +} + +sealed class WalletCreateType { + data class FROMSCRATCH(val newWalletConfig: NewWalletConfig) : WalletCreateType() + + data class LOADEXISTING(val activeWallet: SingleWallet) : WalletCreateType() + + data class RECOVER(val recoverWalletConfig: RecoverWalletConfig) : WalletCreateType() +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" new file mode 100644 index 0000000..6cb61ff --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/CreateWalletNavigation.kt" @@ -0,0 +1,133 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.core.tween +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.ActiveWalletsScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.CreateNewWalletScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.RecoverWalletScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.WalletChoiceScreen + +@Composable +fun CreateWalletNavigation(onBuildWalletButtonClicked: (WalletCreateType) -> Unit, activeWallets: List) { + val navController: NavHostController = rememberNavController() + val animationDuration = 400 + + NavHost( + navController = navController, + startDestination = WalletChoiceScreen, + ) { + composable( + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + ) { WalletChoiceScreen(navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + } + ) { + ActiveWalletsScreen( + activeWallets = activeWallets, + navController = navController, + onBuildWalletButtonClicked + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + } + ) { CreateNewWalletScreen(navController = navController, onBuildWalletButtonClicked) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(animationDuration) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(animationDuration) + ) + } + ) { RecoverWalletScreen(onAction = onBuildWalletButtonClicked, navController = navController) } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" new file mode 100644 index 0000000..0eeaaf2 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/Destinations.kt" @@ -0,0 +1,56 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import kotlinx.serialization.Serializable + +// Create wallet navigation destinations +@Serializable +object WalletChoiceScreen + +@Serializable +object ActiveWalletsScreen + +@Serializable +object CreateNewWalletScreen + +@Serializable +object WalletRecoveryScreen + +// Home navigation destinations +@Serializable +object WalletScreen + +@Serializable +object AboutScreen + +@Serializable +object RecoveryPhraseScreen + +@Serializable +object BlockchainClientScreen + +@Serializable +object LogsScreen + +// Wallet navigation destinations +@Serializable +object HomeScreen + +@Serializable +object ReceiveScreen + +@Serializable +object SendScreen + +@Serializable +object TransactionHistoryScreen + +@Serializable +data class TransactionScreen(val txid: String) + +@Serializable +data class RbfScreen(val txid: String) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" new file mode 100644 index 0000000..19b7cf6 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/HomeNavigation.kt" @@ -0,0 +1,162 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.core.tween +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.WalletRoot +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.AboutScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.BlockchainClientScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.LogsScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer.RecoveryDataScreen +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel + +private const val ANIMATION_DURATION: Int = 400 + +@Composable +fun HomeNavigation(activeWallet: Wallet) { + val navController: NavHostController = rememberNavController() + val walletViewModel = WalletViewModel(activeWallet) + + NavHost( + navController = navController, + startDestination = WalletScreen, + ) { + composable( + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { WalletRoot(navController = navController, activeWallet = activeWallet, walletViewModel = walletViewModel) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { AboutScreen(navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { RecoveryDataScreen(activeWallet.getWalletSecrets(), navController = navController) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { + BlockchainClientScreen( + state = walletViewModel.state, + navController = navController + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { LogsScreen(navController = navController) } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" new file mode 100644 index 0000000..fa89c1d --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/navigation/WalletNavigation.kt" @@ -0,0 +1,202 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.navigation + +import androidx.compose.animation.AnimatedContentTransitionScope +import androidx.compose.animation.core.tween +import androidx.compose.material3.DrawerState +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import androidx.navigation.toRoute +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.RBFScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.ReceiveScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.SendScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.TransactionHistoryScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.TransactionScreen +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.WalletHomeScreen +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.AddressViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.SendViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel + +private const val ANIMATION_DURATION: Int = 400 + +@Composable +fun WalletNavigation(drawerState: DrawerState, activeWallet: Wallet, walletViewModel: WalletViewModel) { + val navController: NavHostController = rememberNavController() + val addressViewModel = AddressViewModel(activeWallet) + val sendViewModel = SendViewModel(activeWallet) + + NavHost( + navController = navController, + startDestination = HomeScreen, + ) { + composable( + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + ) { WalletHomeScreen(navController, drawerState, walletViewModel) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { + ReceiveScreen( + state = addressViewModel.state, + onAction = addressViewModel::onAction, + navController + ) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { SendScreen(navController, sendViewModel) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { + val args = it.toRoute() + RBFScreen(args.txid, navController) + } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { TransactionHistoryScreen(navController, activeWallet) } + + composable( + enterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + exitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popEnterTransition = { + slideIntoContainer( + AnimatedContentTransitionScope.SlideDirection.Start, + animationSpec = tween(ANIMATION_DURATION) + ) + }, + popExitTransition = { + slideOutOfContainer( + AnimatedContentTransitionScope.SlideDirection.End, + animationSpec = tween(ANIMATION_DURATION) + ) + } + ) { + val args = it.toRoute() + TransactionScreen(args.txid, navController) + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" new file mode 100644 index 0000000..2f91ab0 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/DevkitWalletColors.kt" @@ -0,0 +1,21 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.ui.graphics.Color + +@Suppress("ktlint:standard:comment-spacing") +object DevkitWalletColors { + val primaryDark: Color = Color(0xFF203B46) // App bar + val primary: Color = Color(0xFF264653) // Background + val primaryLight: Color = Color(0xFF335F70) // Behind balance primary light + val white: Color = Color(0xffffffff) // Most text + val secondary: Color = Color(0xFF2A9D8F) // Buttons + val accent1: Color = Color(0xFFE9C46A) // Receive button + val accent2: Color = Color(0xFFE76F51) // Send button +} + +internal val TestPink = Color(0xffff1493) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" new file mode 100644 index 0000000..f143e82 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Fonts.kt" @@ -0,0 +1,44 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import org.bitcoindevkit.devkitwallet.R + +val quattroRegular = FontFamily( + Font( + resId = R.font.ia_writer_quattro_regular, + weight = FontWeight.Normal, + style = FontStyle.Normal + ) +) + +val quattroBold = FontFamily( + Font( + resId = R.font.ia_writer_quattro_bold, + weight = FontWeight.Bold, + style = FontStyle.Normal + ) +) + +val monoRegular = FontFamily( + Font( + resId = R.font.ia_writer_mono_regular, + weight = FontWeight.Normal, + style = FontStyle.Normal + ) +) + +val monoBold = FontFamily( + Font( + resId = R.font.ia_writer_mono_bold, + weight = FontWeight.Bold, + style = FontStyle.Normal + ) +) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" new file mode 100644 index 0000000..5743fb8 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Theme.kt" @@ -0,0 +1,22 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable + +@Composable +fun DevkitTheme(content: @Composable () -> Unit) { + MaterialTheme( + // colorScheme = devkitColors, + // shapes = devkitShapes, + typography = devkitTypography, + content = content + ) +} + +// NOTES ON THE UI +// - The standard padding is 32dp for start/end, 16dp for top/bottom diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" new file mode 100644 index 0000000..2d13fb1 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/theme/Type.kt" @@ -0,0 +1,32 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +internal val devkitTypography = + Typography( + labelLarge = + TextStyle( + fontFamily = quattroRegular, + fontWeight = FontWeight.Normal, + fontSize = 16.sp, + lineHeight = 28.sp + ), + ) + +// These are the default text styles used by Material3 components: +// Buttons: labelLarge + +internal val standardText = TextStyle( + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + fontSize = 14.sp, + fontWeight = FontWeight.Normal, +) diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" new file mode 100644 index 0000000..178cbae --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/CustomSnackbar.kt" @@ -0,0 +1,41 @@ +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Snackbar +import androidx.compose.material3.SnackbarData +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.X +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular + +@Composable +fun CustomSnackbar(data: SnackbarData) { + Snackbar( + modifier = Modifier.padding(12.dp), + action = { + IconButton( + onClick = { data.performAction() } + ) { + Icon( + imageVector = Lucide.X, + contentDescription = "Ok", + tint = DevkitWalletColors.white + ) + } + }, + containerColor = DevkitWalletColors.primaryLight, + ) { + Text( + text = data.visuals.message, + fontFamily = quattroRegular, + fontSize = 14.sp + ) + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" new file mode 100644 index 0000000..992045d --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/LoadingAnimation.kt" @@ -0,0 +1,74 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.RepeatMode +import androidx.compose.animation.core.infiniteRepeatable +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.delay +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors + +@Composable +fun LoadingAnimation( + circleColor: Color = DevkitWalletColors.accent1, + circleSize: Dp = 21.dp, + animationDelay: Int = 800, + initialAlpha: Float = 0.3f, +) { + val circles = listOf( + remember { Animatable(initialValue = initialAlpha) }, + remember { Animatable(initialValue = initialAlpha) }, + remember { Animatable(initialValue = initialAlpha) } + ) + + circles.forEachIndexed { index, animatable -> + LaunchedEffect(Unit) { + // Use coroutine delay to sync animations + delay(timeMillis = (animationDelay / circles.size).toLong() * index) + + animatable.animateTo( + targetValue = 1f, + animationSpec = infiniteRepeatable( + animation = tween( + durationMillis = animationDelay + ), + repeatMode = RepeatMode.Reverse + ) + ) + } + } + + // container for circles + Row { + circles.forEachIndexed { index, animatable -> + // gap between the circles + if (index != 0) Spacer(modifier = Modifier.width(width = 6.dp)) + + Box( + modifier = Modifier + .size(size = circleSize) + .clip(shape = CircleShape) + .background(circleColor.copy(alpha = animatable.value)) + ) + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" new file mode 100644 index 0000000..74c374f --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/NeutralButton.kt" @@ -0,0 +1,42 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.unit.dp +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors + +@Composable +fun NeutralButton(text: String, enabled: Boolean = true, modifier: Modifier? = null, onClick: () -> Unit) { + Button( + onClick = onClick, + colors = + ButtonDefaults.buttonColors( + containerColor = DevkitWalletColors.secondary, + disabledContainerColor = DevkitWalletColors.secondary, + ), + shape = RoundedCornerShape(16.dp), + enabled = enabled, + modifier = modifier ?: Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = text, + ) + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" new file mode 100644 index 0000000..b1fb8af --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/RadioButtonWithLabel.kt" @@ -0,0 +1,53 @@ +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.selection.selectable +import androidx.compose.material3.RadioButton +import androidx.compose.material3.RadioButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular + +@Composable +fun RadioButtonWithLabel(label: String, isSelected: Boolean, onSelect: () -> Unit) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(4.dp), + modifier = Modifier + .padding(0.dp) + .selectable( + selected = isSelected, + onClick = onSelect + ) + ) { + RadioButton( + selected = isSelected, + onClick = onSelect, + colors = RadioButtonDefaults.colors( + selectedColor = DevkitWalletColors.accent1, + unselectedColor = DevkitWalletColors.accent2 + ), + modifier = Modifier + .padding(start = 8.dp) + .size(40.dp) + ) + Text( + text = label, + color = DevkitWalletColors.white, + fontFamily = monoRegular, + fontSize = 12.sp, + modifier = Modifier + .clickable(onClick = onSelect) + .padding(0.dp) + ) + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" new file mode 100644 index 0000000..cdea6a0 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/SecondaryScreensAppBar.kt" @@ -0,0 +1,47 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.rounded.ArrowBack +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.runtime.Composable +import androidx.compose.ui.unit.sp +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun SecondaryScreensAppBar(title: String, navigation: () -> Unit) { + TopAppBar( + title = { + Text( + text = title, + color = DevkitWalletColors.white, + fontSize = 18.sp, + fontFamily = quattroRegular + ) + }, + navigationIcon = { + IconButton(onClick = navigation) { + Icon( + imageVector = Icons.AutoMirrored.Rounded.ArrowBack, + contentDescription = "Back", + tint = DevkitWalletColors.white + ) + } + }, + colors = + TopAppBarDefaults.topAppBarColors( + containerColor = DevkitWalletColors.primaryDark, + ) + ) +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" new file mode 100644 index 0000000..292d695 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/TransactionCards.kt" @@ -0,0 +1,134 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import android.util.Log +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.data.TxDetails +import org.bitcoindevkit.devkitwallet.domain.utils.timestampToString +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet.viewTransaction + +private const val TAG = "TransactionCards" + +@Composable +fun ConfirmedTransactionCard(details: TxDetails, navController: NavController) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).clickable { viewTransaction(navController = navController, txid = details.txid) }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween + ) { + Text( + confirmedTransactionsItem(details), + fontFamily = monoRegular, + fontSize = 12.sp, + lineHeight = 20.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp) + ) + Box( + modifier = Modifier + .padding(top = 16.dp, end = 16.dp) + .size(size = 24.dp) + .clip(shape = CircleShape) + .background(DevkitWalletColors.secondary) + .align(Alignment.Top) + ) + } +} + +@Composable +fun PendingTransactionCard(details: TxDetails, navController: NavController) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).border( + width = 2.dp, + color = DevkitWalletColors.accent1, + shape = RoundedCornerShape(16.dp) + ).clickable { + // viewTransaction( + // navController = navController, + // txid = details.txid + // ) + }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween + ) { + Text( + pendingTransactionsItem(details), + fontFamily = monoRegular, + fontSize = 12.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp) + ) + Box( + modifier = Modifier + .padding(top = 16.dp, end = 16.dp) + .size(size = 24.dp) + .clip(shape = CircleShape) + .background(DevkitWalletColors.accent1) + .align(Alignment.Top) + ) + } +} + +fun pendingTransactionsItem(txDetails: TxDetails): String { + return buildString { + Log.i(TAG, "Pending transaction list item: $txDetails") + + appendLine("Confirmation time: Pending") + appendLine("Received: ${txDetails.received}") + appendLine("Sent: ${txDetails.sent}") + appendLine("Total fee: ${txDetails.fee} sat") + appendLine("Fee rate: ${txDetails.feeRate?.toSatPerVbCeil() ?: 0} sat/vbyte") + append("Txid: ${txDetails.txid.take(n = 8)}...${txDetails.txid.takeLast(n = 8)}") + } +} + +fun confirmedTransactionsItem(txDetails: TxDetails): String { + return buildString { + Log.i(TAG, "Transaction list item: $txDetails") + + appendLine("Confirmation time: ${txDetails.confirmationTimestamp?.timestamp?.timestampToString()}") + appendLine("Received: ${txDetails.received} sat") + appendLine("Sent: ${txDetails.sent} sat") + appendLine("Total fee: ${txDetails.fee} sat") + appendLine("Fee rate: ${txDetails.feeRate?.toSatPerVbCeil() ?: 0} sat/vbyte") + appendLine("Block: ${txDetails.confirmationBlock?.height}") + append("Txid: ${txDetails.txid.take(n = 8)}...${txDetails.txid.takeLast(n = 8)}") + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" new file mode 100644 index 0000000..2e5788d --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/components/WalletOptionsCard.kt" @@ -0,0 +1,130 @@ +package org.bitcoindevkit.devkitwallet.presentation.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.domain.supportedNetworks +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro.displayString + +@Composable +fun WalletOptionsCard( + scriptTypes: List, + selectedNetwork: MutableState, + selectedScriptType: MutableState, +) { + Column( + Modifier + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start + ) { + Text( + text = "Network", + fontFamily = monoRegular, + fontSize = 14.sp, + color = DevkitWalletColors.white, + modifier = Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 8.dp, bottom = 8.dp) + ) + + HorizontalDivider( + color = DevkitWalletColors.primaryDark, + thickness = 4.dp, + modifier = Modifier.padding(bottom = 8.dp) + ) + + supportedNetworks.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedNetwork.value == it, + onSelect = { selectedNetwork.value = it } + ) + if (index == 2) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + + Text( + text = "Script Type", + fontFamily = monoRegular, + fontSize = 14.sp, + color = DevkitWalletColors.white, + modifier = Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 16.dp, bottom = 8.dp) + ) + + HorizontalDivider( + color = DevkitWalletColors.primaryDark, + thickness = 4.dp, + modifier = Modifier.padding(bottom = 8.dp) + ) + + scriptTypes.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedScriptType.value == it, + onSelect = { selectedScriptType.value = it } + ) + if (index == 1) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + } +} + +@Composable +fun NetworkOptionsCard(selectedNetwork: MutableState) { + Column( + Modifier + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.Start + ) { + Text( + text = "Network", + fontFamily = monoRegular, + fontSize = 14.sp, + color = DevkitWalletColors.white, + modifier = Modifier + .align(Alignment.CenterHorizontally) + .padding(top = 8.dp, bottom = 8.dp) + ) + + HorizontalDivider( + color = DevkitWalletColors.primaryDark, + thickness = 4.dp, + modifier = Modifier.padding(bottom = 8.dp) + ) + + supportedNetworks.forEachIndexed { index, it -> + RadioButtonWithLabel( + label = it.displayString(), + isSelected = selectedNetwork.value == it, + onSelect = { selectedNetwork.value = it } + ) + if (index == 2) Spacer(modifier = Modifier.padding(bottom = 8.dp)) + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" new file mode 100644 index 0000000..8347f8d --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/WalletRoot.kt" @@ -0,0 +1,190 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Email +import androidx.compose.material.icons.filled.Face +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material3.DrawerValue +import androidx.compose.material3.Icon +import androidx.compose.material3.ModalDrawerSheet +import androidx.compose.material3.ModalNavigationDrawer +import androidx.compose.material3.NavigationDrawerItem +import androidx.compose.material3.NavigationDrawerItemDefaults +import androidx.compose.material3.NavigationDrawerItemDefaults.colors +import androidx.compose.material3.Text +import androidx.compose.material3.rememberDrawerState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import com.composables.icons.lucide.History +import com.composables.icons.lucide.Info +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.SatelliteDish +import com.composables.icons.lucide.ScrollText +import org.bitcoindevkit.devkitwallet.BuildConfig +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.navigation.AboutScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.BlockchainClientScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.LogsScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.RecoveryPhraseScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletNavigation +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel + +@OptIn(androidx.compose.animation.ExperimentalAnimationApi::class) +@Composable +internal fun WalletRoot(navController: NavController, activeWallet: Wallet, walletViewModel: WalletViewModel) { + val drawerState = rememberDrawerState(DrawerValue.Closed) + + val items = listOf(Icons.Default.Favorite, Icons.Default.Face, Icons.Default.Email, Icons.Default.Face) + val selectedItem = remember { mutableStateOf(items[0]) } + + val navigationItemColors = + colors( + selectedContainerColor = DevkitWalletColors.primary, + unselectedContainerColor = DevkitWalletColors.primary, + selectedTextColor = DevkitWalletColors.white, + unselectedTextColor = DevkitWalletColors.white + ) + + ModalNavigationDrawer( + drawerState = drawerState, + drawerContent = { + ModalDrawerSheet( + drawerContainerColor = DevkitWalletColors.primary + ) { + Column( + Modifier + .background(color = DevkitWalletColors.secondary) + .height(300.dp) + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + Image( + painter = painterResource(id = R.drawable.ic_testnet_logo), + contentDescription = "Bitcoin testnet logo", + modifier = Modifier + .size(90.dp) + .padding(bottom = 16.dp) + ) + Text( + text = "Devkit Wallet", + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + ) + Spacer(modifier = Modifier.padding(4.dp)) + Text( + text = "The sample wallet on Android for BDK.", + color = DevkitWalletColors.white, + fontFamily = quattroRegular, + fontSize = 12.sp, + fontStyle = androidx.compose.ui.text.font.FontStyle.Italic + ) + Spacer(modifier = Modifier.padding(16.dp)) + Text( + text = BuildConfig.VARIANT_NAME, + style = standardText + ) + } + Column( + Modifier + .fillMaxHeight() + .background(color = DevkitWalletColors.primary) + ) { + Spacer(modifier = Modifier.height(16.dp)) + NavigationDrawerItem( + icon = { Icon(Lucide.Info, contentDescription = "About", tint = DevkitWalletColors.white) }, + label = { DrawerItemLabel("About") }, + selected = items[0] == selectedItem.value, + onClick = { navController.navigate(AboutScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + NavigationDrawerItem( + icon = { + Icon( + Lucide.History, + contentDescription = "Wallet Recovery Data", + tint = DevkitWalletColors.white + ) + }, + label = { DrawerItemLabel("Wallet Recovery Data") }, + selected = items[1] == selectedItem.value, + onClick = { navController.navigate(RecoveryPhraseScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + NavigationDrawerItem( + icon = { + Icon( + Lucide.SatelliteDish, + contentDescription = "Esplora Client", + tint = DevkitWalletColors.white + ) + }, + label = { DrawerItemLabel("Esplora Client") }, + selected = items[2] == selectedItem.value, + onClick = { navController.navigate(BlockchainClientScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + NavigationDrawerItem( + icon = { + Icon( + Lucide.ScrollText, + contentDescription = "Logs", + tint = DevkitWalletColors.white + ) + }, + label = { DrawerItemLabel("Logs") }, + selected = items[3] == selectedItem.value, + onClick = { navController.navigate(LogsScreen) }, + colors = navigationItemColors, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + ) + } + } + }, + content = { + WalletNavigation( + drawerState = drawerState, + activeWallet = activeWallet, + walletViewModel = walletViewModel + ) + } + ) +} + +@Composable +fun DrawerItemLabel(text: String) { + Text( + text = text, + fontFamily = quattroRegular, + ) +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" new file mode 100644 index 0000000..0c7369e --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/AboutScreen.kt" @@ -0,0 +1,82 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import androidx.navigation.compose.rememberNavController +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private val message: String = """ + This wallet is build for: + + 1. Developers interested in learning how to leverage the Bitcoin Development Kit on Android. + + 2. Any bitcoiner looking for a Signet/Testnet/Regtest wallet! +""".trimIndent() + +@Composable +internal fun AboutScreen(navController: NavController) { + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "About", + navigation = { navController.navigate(WalletScreen) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(16.dp), + verticalArrangement = Arrangement.Top, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(modifier = Modifier.padding(24.dp)) + Image( + painter = painterResource(id = R.drawable.bdk_logo), + contentDescription = "BDK logo", + Modifier.size(180.dp) + ) + Spacer(modifier = Modifier.padding(24.dp)) + Text( + text = message, + color = DevkitWalletColors.white, + textAlign = TextAlign.Start, + fontFamily = quattroRegular, + modifier = Modifier.padding(all = 8.dp) + ) + } + } +} + +@Preview(device = Devices.PIXEL_4, showBackground = true) +@Composable +internal fun PreviewAboutScreen() { + AboutScreen(rememberNavController()) +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" new file mode 100644 index 0000000..ba01e18 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/BlockchainClientScreen.kt" @@ -0,0 +1,129 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroBold +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenState + +@Composable +internal fun BlockchainClientScreen(state: WalletScreenState, navController: NavController) { + val focusManager = LocalFocusManager.current + // val isBlockChainCreated = Wallet.isBlockChainCreated() + val serverEndpoint: MutableState = remember { mutableStateOf("") } + val isChecked: MutableState = remember { mutableStateOf(false) } + // if (isBlockChainCreated) { + // electrumServer.value = Wallet.getElectrumURL() + // isChecked.value = Wallet.isElectrumServerDefault() + // } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Esplora Client", + navigation = { navController.navigate(WalletScreen) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(all = 16.dp), + ) { + Text( + text = "Current Esplora client endpoint", + color = DevkitWalletColors.white, + fontSize = 18.sp, + fontFamily = quattroBold, + ) + Text( + text = state.esploraEndpoint, + style = standardText, + ) + // Row(verticalAlignment = Alignment.CenterVertically) { + // Text( + // text = "Use default electrum URL", + // color = DevkitWalletColors.white, + // fontSize = 14.sp, + // textAlign = TextAlign.Center, + // ) + // Switch( + // checked = isChecked.value, + // onCheckedChange = { + // isChecked.value = it + // if (it) { + // Wallet.setElectrumSettings(ElectrumSettings.DEFAULT) + // } else { + // Wallet.setElectrumSettings(ElectrumSettings.CUSTOM) + // } + // }, + // enabled = isBlockChainCreated + // ) + // } + + // OutlinedTextField( + // value = electrumServer.value, + // onValueChange = { electrumServer.value = it }, + // label = { + // Text( + // text = "Electrum Server", + // color = DevkitWalletColors.white, + // ) + // }, + // singleLine = true, + // textStyle = TextStyle(color = DevkitWalletColors.white), + // colors = TextFieldDefaults.outlinedTextFieldColors( + // focusedBorderColor = DevkitWalletColors.accent1, + // unfocusedBorderColor = DevkitWalletColors.white, + // cursorColor = DevkitWalletColors.accent1, + // ), + // keyboardActions = KeyboardActions(onDone = { + // focusManager.clearFocus() + // }), + // modifier = Modifier.fillMaxWidth(), + // enabled = isBlockChainCreated && !isChecked.value + // ) + + // Button( + // onClick = { + // Wallet.changeElectrumServer(electrumServer.value) + // focusManager.clearFocus() + // }, + // modifier = Modifier + // .align(alignment = Alignment.End) + // .padding(all = 8.dp), + // colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + // enabled = isBlockChainCreated && !isChecked.value + // ) { + // Text( + // text = "Save", + // color = DevkitWalletColors.white, + // fontSize = 12.sp, + // textAlign = TextAlign.Center, + // ) + // } + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" new file mode 100644 index 0000000..f7acc9c --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/LogsScreen.kt" @@ -0,0 +1,61 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import androidx.compose.foundation.horizontalScroll +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.rememberScrollState +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +@Composable +fun LogsScreen(navController: NavController) { + val logs: List = remember { DwLogger.getLogs() } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Logs", + navigation = { navController.navigate(WalletScreen) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + LazyColumn( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(16.dp) + ) { + items(logs) { logLine -> + Text( + text = logLine, + style = standardText, + maxLines = 1, + overflow = TextOverflow.Visible, + modifier = Modifier + .fillMaxWidth() + .horizontalScroll(rememberScrollState()) + ) + } + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" new file mode 100644 index 0000000..5a8024b --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/drawer/RecoveryDataScreen.kt" @@ -0,0 +1,221 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.drawer + +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import com.composables.icons.lucide.ClipboardCopy +import com.composables.icons.lucide.Lucide +import org.bitcoindevkit.devkitwallet.domain.WalletSecrets +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private val MESSAGE: String = """ + The next screen will show your recovery phrase and descriptors. Make sure no one else is looking at your screen. +""".trimIndent() + +@Composable +internal fun RecoveryDataScreen(walletSecrets: WalletSecrets, navController: NavController) { + val (currentIndex, setCurrentIndex) = remember { mutableIntStateOf(0) } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Your Wallet Recovery Data", + navigation = { navController.navigate(WalletScreen) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Crossfade( + modifier = Modifier.padding(paddingValues), + targetState = currentIndex, + label = "", + animationSpec = tween( + durationMillis = 1000, + delayMillis = 200, + ) + ) { screen -> + when (screen) { + 0 -> WarningText(setCurrentIndex = setCurrentIndex) + 1 -> RecoveryPhrase(walletSecrets = walletSecrets) + } + } + } +} + +@Composable +fun WarningText(setCurrentIndex: (Int) -> Unit) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(horizontal = 32.dp, vertical = 16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + Text( + text = MESSAGE, + color = DevkitWalletColors.white, + fontFamily = quattroRegular + ) + Spacer(modifier = Modifier.padding(16.dp)) + NeutralButton( + text = "See my recovery data", + enabled = true + ) { setCurrentIndex(1) } + } +} + +@Composable +fun RecoveryPhrase(walletSecrets: WalletSecrets) { + val context = LocalContext.current + Column( + modifier = Modifier + .fillMaxSize() + .padding(all = 32.dp) + ) { + Text( + text = "Write down your recovery phrase and keep it in a safe place.", + color = DevkitWalletColors.white, + fontFamily = quattroRegular + ) + Spacer(modifier = Modifier.padding(8.dp)) + Box { + SelectionContainer { + Text( + modifier = Modifier + .clickable { + simpleCopyClipboard( + walletSecrets.recoveryPhrase, + context + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).padding(12.dp), + text = walletSecrets.recoveryPhrase, + fontFamily = monoRegular, + color = DevkitWalletColors.white + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd) + ) + } + Spacer(modifier = Modifier.padding(16.dp)) + Text( + text = "These are your descriptors.", + color = DevkitWalletColors.white, + fontFamily = quattroRegular + ) + Spacer(modifier = Modifier.padding(8.dp)) + Box { + SelectionContainer { + Text( + modifier = Modifier + .clickable { + simpleCopyClipboard( + walletSecrets.descriptor.toStringWithSecret(), + context + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).padding(12.dp), + text = walletSecrets.descriptor.toStringWithSecret(), + fontFamily = monoRegular, + color = DevkitWalletColors.white + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd) + ) + } + Spacer(modifier = Modifier.padding(4.dp)) + Box { + SelectionContainer { + Text( + modifier = Modifier + .clickable { + simpleCopyClipboard( + walletSecrets.changeDescriptor.toStringWithSecret(), + context + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).padding(12.dp), + text = walletSecrets.changeDescriptor.toStringWithSecret(), + fontFamily = monoRegular, + color = DevkitWalletColors.white + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd) + ) + } + } +} + +fun simpleCopyClipboard(content: String, context: Context) { + val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip: ClipData = ClipData.newPlainText("", content) + clipboard.setPrimaryClip(clip) +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewRecoveryPhraseScreen() { +// RecoveryPhraseScreen() +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" new file mode 100644 index 0000000..84f65b9 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/ActiveWalletsScreen.kt" @@ -0,0 +1,119 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.data.SingleWallet +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private const val TAG = "ActiveWalletsScreen" + +@Composable +internal fun ActiveWalletsScreen( + activeWallets: List, + navController: NavController, + onBuildWalletButtonClicked: (WalletCreateType) -> Unit, +) { + Scaffold( + topBar = { + SecondaryScreensAppBar(title = "Choose a Wallet", navigation = { navController.navigateUp() }) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + ) { + Spacer(modifier = Modifier.height(12.dp)) + activeWallets.forEach { + ActiveWalletCard(wallet = it, onBuildWalletButtonClicked) + } + if (activeWallets.isEmpty()) { + Text( + text = "No active wallets.", + fontSize = 16.sp, + fontFamily = quattroRegular, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp).align(Alignment.CenterHorizontally) + ) + } + Spacer(modifier = Modifier.height(12.dp)) + } + } +} + +@Composable +fun ActiveWalletCard(wallet: SingleWallet, onBuildWalletButtonClicked: (WalletCreateType) -> Unit) { + Column( + Modifier + .fillMaxWidth() + // Padding outside the card + .padding(horizontal = 16.dp, vertical = 8.dp) + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ) + // Padding inside the card + .padding(horizontal = 4.dp, vertical = 8.dp) + .clickable { + DwLogger.log(INFO, "Activating existing wallet: ${wallet.name}") + onBuildWalletButtonClicked(WalletCreateType.LOADEXISTING(wallet)) + }, + verticalArrangement = Arrangement.SpaceBetween, + horizontalAlignment = Alignment.Start + ) { + DataField("Name", wallet.name) + DataField("Network", wallet.network.toString()) + DataField("Script Type", wallet.scriptType.toString()) + } +} + +@Composable +fun DataField(name: String, value: String) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 4.dp) + ) { + Text( + text = name, + style = standardText, + lineHeight = 18.sp, + ) + Text( + text = value, + style = standardText, + lineHeight = 18.sp, + ) + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" new file mode 100644 index 0000000..44ffc30 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/CreateNewWallet.kt" @@ -0,0 +1,157 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.unit.dp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.navigation.NavController +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.data.NewWalletConfig +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.WalletOptionsCard + +@Composable +internal fun CreateNewWalletScreen( + navController: NavController, + onBuildWalletButtonClicked: (WalletCreateType) -> Unit, +) { + Scaffold( + topBar = { + SecondaryScreensAppBar(title = "Create a New Wallet", navigation = { navController.navigateUp() }) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + + ConstraintLayout( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + .padding(vertical = 16.dp) + ) { + val (choices, button) = createRefs() + + val walletName: MutableState = remember { mutableStateOf("") } + val selectedNetwork: MutableState = remember { mutableStateOf(Network.SIGNET) } + val selectedScriptType: MutableState = + remember { mutableStateOf(ActiveWalletScriptType.P2TR) } + val scriptTypes = listOf(ActiveWalletScriptType.P2TR, ActiveWalletScriptType.P2WPKH) + + Column( + modifier = Modifier + .constrainAs(choices) { + top.linkTo(parent.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.fillMaxSize() + .background(color = DevkitWalletColors.primary) + .padding(horizontal = 32.dp) + ) { + OutlinedTextField( + modifier = Modifier + .padding(bottom = 8.dp) + .fillMaxWidth() + .align(Alignment.CenterHorizontally), + value = walletName.value, + onValueChange = { walletName.value = it }, + label = { + Text( + text = "Give your wallet a name", + style = standardText, + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = monoRegular, color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + + Spacer(modifier = Modifier.padding(12.dp)) + WalletOptionsCard(scriptTypes, selectedNetwork, selectedScriptType) + Spacer(modifier = Modifier.padding(16.dp)) + } + + Column( + modifier = Modifier + .constrainAs(button) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.fillMaxWidth() + .padding(horizontal = 32.dp) + ) { + NeutralButton( + text = "Create Wallet", + enabled = true, + modifier = Modifier + .height(80.dp) + .fillMaxWidth() + .padding(vertical = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)), + onClick = { + val newWalletConfig = NewWalletConfig( + name = walletName.value, + network = selectedNetwork.value, + scriptType = selectedScriptType.value + ) + DwLogger.log(INFO, "Creating new wallet named ${newWalletConfig.name}") + onBuildWalletButtonClicked(WalletCreateType.FROMSCRATCH(newWalletConfig)) + } + ) + } + } + } +} + +fun ActiveWalletScriptType.displayString(): String { + return when (this) { + ActiveWalletScriptType.P2TR -> "P2TR (Taproot, BIP-86)" + ActiveWalletScriptType.P2WPKH -> "P2WPKH (Native Segwit, BIP-84)" + ActiveWalletScriptType.UNKNOWN -> TODO() + ActiveWalletScriptType.UNRECOGNIZED -> TODO() + } +} + +fun Network.displayString(): String { + return when (this) { + Network.REGTEST -> "Regtest" + Network.TESTNET -> "Testnet 3" + Network.TESTNET4 -> "Testnet 4" + Network.SIGNET -> "Signet" + Network.BITCOIN -> TODO() + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" new file mode 100644 index 0000000..1d17ca3 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/OnboardingScreen.kt" @@ -0,0 +1,176 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.animation.Crossfade +import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.constraintlayout.compose.ConstraintLayout +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.devkitTypography + +@Composable +fun OnboardingScreen(onFinishOnboarding: () -> Unit) { + val (currentIndex, setCurrentIndex) = remember { mutableIntStateOf(1) } + + @Suppress("ktlint:standard:max-line-length") + val messages = listOf( + "Easter egg #1: \uD83E\uDD5A", + "Welcome to the Devkit Wallet! This app is a playground for developers and bitcoin enthusiasts to experiment with bitcoin's test networks.", + "It is developed with the Bitcoin Dev Kit, a powerful set of libraries produced and maintained by the Bitcoin Dev Kit Foundation.\n\nThe variant of the app you have installed in the Esplora variant, which uses Esplora clients to fetch blockchain data for the wallet.", + "The Foundation maintains this app as a way to showcase the capabilities of the Bitcoin Dev Kit and to provide a starting point for developers to build their own apps.\n\nIt is not a production application, and only works for testnet, signet, and regtest. Have fun!" + ) + + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + ) { + val (logo, intro, progress, buttons) = createRefs() + + Image( + painter = painterResource(id = R.drawable.bdk_logo), + contentDescription = "Bitcoin Dev Kit logo", + Modifier + .size(180.dp) + .constrainAs(logo) { + top.linkTo(parent.top, margin = 90.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) + + Crossfade( + modifier = Modifier.constrainAs(intro) { + top.linkTo(logo.bottom, margin = 90.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + targetState = currentIndex, + label = "", + animationSpec = tween( + durationMillis = 1000, + delayMillis = 200, + ) + ) { screen -> + when (screen) { + 0 -> IntroTextPart(messages[0]) + 1 -> IntroTextPart(messages[1]) + 2 -> IntroTextPart(messages[2]) + 3 -> IntroTextPart(messages[3]) + } + } + + Row( + modifier = Modifier.constrainAs(progress) { + bottom.linkTo(buttons.top, margin = 32.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + horizontalArrangement = Arrangement.Center + ) { + Box( + modifier = Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 1) DevkitWalletColors.accent1 else DevkitWalletColors.accent1.copy(alpha = 0.3f) + ) + ) + Box( + modifier = Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 2) DevkitWalletColors.accent1 else DevkitWalletColors.accent1.copy(alpha = 0.3f) + ) + ) + Box( + modifier = Modifier + .padding(horizontal = 8.dp) + .size(size = 16.dp) + .clip(shape = CircleShape) + .background( + if (currentIndex == 3) DevkitWalletColors.accent1 else DevkitWalletColors.accent1.copy(alpha = 0.3f) + ) + ) + } + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp) + .constrainAs(buttons) { + bottom.linkTo(parent.bottom, margin = 32.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + }, + horizontalArrangement = Arrangement.SpaceBetween, + ) { + Text( + text = "Previous", + modifier = Modifier + .clickable( + indication = null, + interactionSource = remember { MutableInteractionSource() } + ) { setCurrentIndex((currentIndex - 1).coerceIn(0, 3)) }, + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge + ) + Text( + text = if (currentIndex < 3) "Next" else "Awesome!", + modifier = Modifier + .clickable( + indication = null, + interactionSource = remember { MutableInteractionSource() } + ) { + if (currentIndex < 3) { + setCurrentIndex( + (currentIndex + 1).coerceIn(0, 3) + ) + } else { + onFinishOnboarding() + } + }, + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge + ) + } + } +} + +@Composable +fun IntroTextPart(message: String) { + Text( + text = message, + modifier = Modifier.padding(horizontal = 32.dp), + color = DevkitWalletColors.white, + style = devkitTypography.labelLarge + ) +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" new file mode 100644 index 0000000..220ea19 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/RecoverWalletScreen.kt" @@ -0,0 +1,386 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import android.util.Log +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SegmentedButton +import androidx.compose.material3.SegmentedButtonDefaults +import androidx.compose.material3.SingleChoiceSegmentedButtonRow +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import androidx.navigation.compose.rememberNavController +import kotlinx.coroutines.launch +import org.bitcoindevkit.Descriptor +import org.bitcoindevkit.DescriptorSecretKey +import org.bitcoindevkit.KeychainKind +import org.bitcoindevkit.Mnemonic +import org.bitcoindevkit.Network +import org.bitcoindevkit.devkitwallet.data.ActiveWalletScriptType +import org.bitcoindevkit.devkitwallet.data.RecoverWalletConfig +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.bip39WordList +import org.bitcoindevkit.devkitwallet.domain.createScriptAppropriateDescriptor +import org.bitcoindevkit.devkitwallet.presentation.WalletCreateType +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.CustomSnackbar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NetworkOptionsCard +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.ui.components.WalletOptionsCard + +@Composable +internal fun RecoverWalletScreen(onAction: (WalletCreateType) -> Unit, navController: NavController) { + val scope = rememberCoroutineScope() + val snackbarHostState = remember { SnackbarHostState() } + + Scaffold( + topBar = { SecondaryScreensAppBar(title = "Recover a Wallet", navigation = { navController.navigateUp() }) }, + snackbarHost = { + SnackbarHost(hostState = snackbarHostState) { data -> + CustomSnackbar(data) + } + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + var selectedIndex by remember { mutableIntStateOf(0) } + val options = listOf("Descriptor", "Recovery Phrase") + + var descriptorString by remember { mutableStateOf("") } + var changeDescriptorString by remember { mutableStateOf("") } + var recoveryPhrase by remember { mutableStateOf("") } + + var walletName by remember { mutableStateOf("") } + val selectedNetwork: MutableState = remember { mutableStateOf(Network.SIGNET) } + val selectedScriptType: MutableState = + remember { mutableStateOf(ActiveWalletScriptType.P2TR) } + val scriptTypes = listOf(ActiveWalletScriptType.P2TR, ActiveWalletScriptType.P2WPKH) + + Column( + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + ) { + SingleChoiceSegmentedButtonRow { + options.forEachIndexed { index, label -> + SegmentedButton( + shape = SegmentedButtonDefaults.itemShape( + index = index, + count = options.size + ), + onClick = { selectedIndex = index }, + selected = index == selectedIndex, + label = { Text(text = label, fontSize = 12.sp, color = Color.White) }, + colors = SegmentedButtonDefaults.colors( + activeContainerColor = DevkitWalletColors.primaryLight, + activeContentColor = DevkitWalletColors.primaryLight, + activeBorderColor = DevkitWalletColors.primaryLight, + inactiveContainerColor = DevkitWalletColors.primaryDark, + inactiveContentColor = DevkitWalletColors.primaryDark, + inactiveBorderColor = DevkitWalletColors.primaryDark, + ), + border = BorderStroke(4.dp, DevkitWalletColors.primaryDark), + icon = { }, + modifier = Modifier.width(180.dp).padding(top = 8.dp) + ) + } + } + Spacer(modifier = Modifier.padding(12.dp)) + + if (selectedIndex == 0) { + DescriptorInput( + walletName, + descriptorString, + changeDescriptorString, + selectedNetwork, + walletNameOnValueChange = { walletName = it }, + descriptorOnValueChange = { descriptorString = it }, + changeDescriptorOnValueChange = { changeDescriptorString = it } + ) + Spacer(modifier = Modifier.weight(1f)) + } else { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.padding(horizontal = 32.dp) + ) { + WalletOptionsCard(scriptTypes, selectedNetwork, selectedScriptType) + Spacer(modifier = Modifier.padding(12.dp)) + OutlinedTextField( + modifier = Modifier + .padding(bottom = 8.dp) + .fillMaxWidth() + .align(Alignment.CenterHorizontally), + value = walletName, + onValueChange = { walletName = it }, + label = { + Text( + text = "Give your wallet a name", + style = standardText, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = monoRegular, color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + RecoveryPhraseInput(recoveryPhrase, onValueChange = { recoveryPhrase = it }) + } + Spacer(modifier = Modifier.weight(1f)) + } + NeutralButton( + text = "Recover Wallet", + enabled = true, + onClick = { + if (descriptorString.isNotEmpty() && recoveryPhrase.isNotEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You cannot recover using both a descriptor and a recovery phrase at the same time." + ) + } + } + if (descriptorString.isEmpty() && recoveryPhrase.isEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You must provide either a descriptor or a recovery phrase to recover a wallet." + ) + } + } + if (descriptorString.isNotEmpty() && changeDescriptorString.isEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You must provide two descriptors for recovery." + ) + } + } + if (descriptorString.isEmpty() && changeDescriptorString.isNotEmpty()) { + scope.launch { + snackbarHostState.showSnackbar( + "You must provide two descriptors for recovery." + ) + } + } + if (recoveryPhrase.isNotEmpty()) { + Log.i("RecoverWalletScreen", "Recovering wallet with recovery phrase") + val parsingResult = parseRecoveryPhrase(recoveryPhrase) + + if (parsingResult is RecoveryPhraseValidationResult.Invalid) { + scope.launch { + snackbarHostState.showSnackbar(parsingResult.reason) + } + } else if (parsingResult is RecoveryPhraseValidationResult.ProbablyValid) { + val mnemonic = Mnemonic.fromString(parsingResult.recoveryPhrase) + val bip32ExtendedRootKey = DescriptorSecretKey(selectedNetwork.value, mnemonic, null) + val descriptor = createScriptAppropriateDescriptor( + scriptType = selectedScriptType.value, + bip32ExtendedRootKey = bip32ExtendedRootKey, + network = selectedNetwork.value, + keychain = KeychainKind.EXTERNAL + ) + val changeDescriptor = createScriptAppropriateDescriptor( + scriptType = selectedScriptType.value, + bip32ExtendedRootKey = bip32ExtendedRootKey, + network = selectedNetwork.value, + keychain = KeychainKind.INTERNAL + ) + val recoverWalletConfig = RecoverWalletConfig( + name = walletName, + network = selectedNetwork.value, + scriptType = selectedScriptType.value, + descriptor = descriptor, + changeDescriptor = changeDescriptor, + recoveryPhrase = parsingResult.recoveryPhrase + ) + DwLogger.log(INFO, "Recovering wallet with recovery phrase (name: $walletName)") + onAction(WalletCreateType.RECOVER(recoverWalletConfig)) + } + } + if (descriptorString.isNotEmpty() && changeDescriptorString.isNotEmpty()) { + Log.i("RecoverWalletScreen", "Recovering wallet with descriptors") + + val descriptor = Descriptor(descriptorString, selectedNetwork.value) + val changeDescriptor = Descriptor(changeDescriptorString, selectedNetwork.value) + val recoverWalletConfig = RecoverWalletConfig( + name = walletName, + network = selectedNetwork.value, + scriptType = null, + descriptor = descriptor, + changeDescriptor = changeDescriptor, + recoveryPhrase = null + ) + DwLogger.log(INFO, "Recovering wallet with descriptors (name: $walletName)") + onAction(WalletCreateType.RECOVER(recoverWalletConfig)) + } + } + ) + } + } +} + +@Composable +fun DescriptorInput( + walletName: String, + descriptor: String, + changeDescriptor: String, + selectedNetwork: MutableState, + walletNameOnValueChange: (String) -> Unit, + descriptorOnValueChange: (String) -> Unit, + changeDescriptorOnValueChange: (String) -> Unit, +) { + Column( + Modifier.padding(horizontal = 32.dp) + ) { + NetworkOptionsCard( + selectedNetwork + ) + OutlinedTextField( + modifier = Modifier + .fillMaxWidth() + .align(Alignment.CenterHorizontally) + .padding(top = 16.dp), + value = walletName, + onValueChange = { walletNameOnValueChange(it) }, + label = { + Text( + text = "Give your wallet a name", + style = standardText + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = monoRegular, color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + OutlinedTextField( + modifier = Modifier.fillMaxWidth().padding(top = 16.dp), + value = descriptor, + onValueChange = { descriptorOnValueChange(it) }, + label = { + Text( + text = "Input your descriptor here", + style = standardText + ) + }, + singleLine = false, + minLines = 5, + textStyle = TextStyle(fontFamily = quattroRegular, fontSize = 12.sp, color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + OutlinedTextField( + modifier = Modifier.fillMaxWidth().padding(top = 16.dp), + value = changeDescriptor, + onValueChange = { changeDescriptorOnValueChange(it) }, + label = { + Text( + text = "Input your change descriptor here", + style = standardText, + ) + }, + singleLine = false, + minLines = 5, + textStyle = TextStyle(fontFamily = quattroRegular, fontSize = 12.sp, color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } +} + +@Composable +fun RecoveryPhraseInput(recoveryPhrase: String, onValueChange: (String) -> Unit) { + Column { + OutlinedTextField( + modifier = Modifier.fillMaxWidth(), + value = recoveryPhrase, + onValueChange = { onValueChange(it) }, + label = { + Text( + text = "Input 12-word recovery phrase here", + style = standardText, + ) + }, + singleLine = false, + minLines = 5, + textStyle = TextStyle(fontFamily = quattroRegular, fontSize = 12.sp, color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + ), + ) + } +} + +private fun parseRecoveryPhrase(recoveryPhrase: String): RecoveryPhraseValidationResult { + val words = recoveryPhrase.trim().split(" ") + if (words.size != 12) { + return RecoveryPhraseValidationResult.Invalid("Recovery phrase must have 12 words") + } + if (words.any { it !in bip39WordList }) { + return RecoveryPhraseValidationResult.Invalid("Invalid word in recovery phrase") + } + return RecoveryPhraseValidationResult.ProbablyValid(recoveryPhrase) +} + +sealed class RecoveryPhraseValidationResult { + data class ProbablyValid(val recoveryPhrase: String) : RecoveryPhraseValidationResult() + + data class Invalid(val reason: String) : RecoveryPhraseValidationResult() +} + +@Preview(device = Devices.PIXEL_4, showBackground = true) +@Composable +internal fun PreviewWalletRecoveryScreen() { + RecoverWalletScreen( + onAction = {}, + navController = rememberNavController() + ) +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" new file mode 100644 index 0000000..70ec51f --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/intro/WalletChoiceScreen.kt" @@ -0,0 +1,149 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.intro + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.R +import org.bitcoindevkit.devkitwallet.presentation.navigation.ActiveWalletsScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.CreateNewWalletScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.WalletRecoveryScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoBold + +@Composable +internal fun WalletChoiceScreen(navController: NavController) { + Scaffold( + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + ) { + val (logo, active, create, recover) = createRefs() + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 90.dp) + .constrainAs(logo) { + top.linkTo(parent.top) + }, + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + Image( + painter = painterResource(id = R.drawable.ic_testnet_logo), + contentDescription = "Bitcoin testnet logo", + Modifier.size(90.dp) + ) + Spacer(modifier = Modifier.padding(8.dp)) + Text( + text = "Devkit\nWallet", + color = DevkitWalletColors.white, + fontSize = 28.sp, + lineHeight = 38.sp, + fontFamily = monoBold, + ) + } + + Button( + onClick = { navController.navigate(ActiveWalletsScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + enabled = true, + modifier = Modifier + .size(width = 300.dp, height = 150.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(active) { + bottom.linkTo(create.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + Text( + text = "Use an\nActive Wallet", + // fontSize = 18.sp, + textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + + Button( + onClick = { navController.navigate(CreateNewWalletScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .size(width = 300.dp, height = 150.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(create) { + bottom.linkTo(recover.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + Text( + text = "Create a\nNew Wallet", + // fontSize = 18.sp, + textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + + Button( + onClick = { navController.navigate(WalletRecoveryScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .size(width = 300.dp, height = 150.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(recover) { + bottom.linkTo(parent.bottom, margin = 70.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + Text( + text = "Recover an\nExisting Wallet", + // fontSize = 18.sp, + textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + } + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewWalletChoiceScreen() { +// WalletChoiceScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" new file mode 100644 index 0000000..bc7a814 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/RBFScreen.kt" @@ -0,0 +1,260 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.runtime.Composable +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController + +private const val TAG = "RBFScreen" + +@Composable +internal fun RBFScreen( + txid: String?, + navController: NavController, + paddingValues: PaddingValues = PaddingValues(0.dp), +) { +// if (txid.isNullOrEmpty()) { +// navController.popBackStack() +// } +// var transaction: TransactionDetails? = getTransaction(txid = txid) +// if (transaction == null) { +// navController.popBackStack() +// } +// transaction = transaction as TransactionDetails +// val context = LocalContext.current +// +// val amount = (transaction.sent - transaction.received - (transaction.fee ?: 0UL)).toString() +// val feeRate: MutableState = rememberSaveable { mutableStateOf("") } +// val (showDialog, setShowDialog) = rememberSaveable { mutableStateOf(false) } +// +// ConstraintLayout( +// modifier = Modifier +// .fillMaxSize() +// .padding(paddingValues) +// .background(DevkitWalletColors.primary) +// ) { +// val (screenTitle, transactionInputs, bottomButtons) = createRefs() +// +// Text( +// text = "Send Bitcoin", +// color = DevkitWalletColors.white, +// fontSize = 28.sp, +// textAlign = TextAlign.Center, +// modifier = Modifier +// .constrainAs(screenTitle) { +// top.linkTo(parent.top) +// start.linkTo(parent.start) +// end.linkTo(parent.end) +// } +// .padding(top = 70.dp) +// ) +// +// Column( +// horizontalAlignment = Alignment.CenterHorizontally, +// verticalArrangement = Arrangement.Center, +// modifier = Modifier.constrainAs(transactionInputs) { +// top.linkTo(screenTitle.bottom) +// bottom.linkTo(bottomButtons.top) +// start.linkTo(parent.start) +// end.linkTo(parent.end) +// height = Dimension.fillToConstraints +// } +// ) { +// ShowTxnDetail(name = "Transaction Id",content = txid!!) +// ShowTxnDetail(name = "Amount", content = amount) +// TransactionFeeInput(feeRate = feeRate) +// BumpFeeDialog( +// txid = txid, +// amount = amount, +// feeRate = feeRate, +// showDialog = showDialog, +// setShowDialog = setShowDialog, +// context = context +// ) +// } +// Column( +// Modifier +// .constrainAs(bottomButtons) { +// bottom.linkTo(parent.bottom) +// start.linkTo(parent.start) +// end.linkTo(parent.end) +// } +// .padding(bottom = 32.dp) +// ) { +// Button( +// onClick = { setShowDialog(true) }, +// colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), +// shape = RoundedCornerShape(16.dp), +// modifier = Modifier +// .height(80.dp) +// .fillMaxWidth(0.9f) +// .padding(vertical = 8.dp, horizontal = 8.dp) +// .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) +// ) { +// Text( +// text = "broadcast transaction", +// fontSize = 14.sp, +// textAlign = TextAlign.Center, +// lineHeight = 28.sp, +// ) +// } +// Button( +// onClick = { navController.navigate(Screen.HomeScreen.route) }, +// colors = ButtonDefaults.buttonColors(DevkitWalletColors.primaryLight), +// shape = RoundedCornerShape(16.dp), +// modifier = Modifier +// .height(80.dp) +// .fillMaxWidth(0.9f) +// .padding(vertical = 8.dp, horizontal = 8.dp) +// .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) +// ) { +// Text( +// text = "back to wallet", +// fontSize = 14.sp, +// textAlign = TextAlign.Center, +// lineHeight = 28.sp, +// ) +// } +// } +// } +} +// +// @OptIn(ExperimentalMaterial3Api::class) +// @Composable +// private fun ShowTxnDetail(name: String, content: String) { +// Row( +// verticalAlignment = Alignment.CenterVertically, +// modifier = Modifier.fillMaxWidth(fraction = 0.9f) +// ) { +// OutlinedTextField( +// modifier = Modifier +// .padding(vertical = 8.dp) +// .weight(0.5f), +// value = content, +// onValueChange = { }, +// label = { +// Text( +// text = name, +// color = DevkitWalletColors.white, +// ) +// }, +// singleLine = true, +// textStyle = TextStyle(color = DevkitWalletColors.white), +// colors = TextFieldDefaults.outlinedTextFieldColors( +// focusedBorderColor = DevkitWalletColors.accent1, +// unfocusedBorderColor = DevkitWalletColors.white, +// cursorColor = DevkitWalletColors.accent1, +// ), +// enabled = false, +// ) +// } +// } +// +// @OptIn(ExperimentalMaterial3Api::class) +// @Composable +// private fun TransactionFeeInput(feeRate: MutableState) { +// Column(horizontalAlignment = Alignment.CenterHorizontally) { +// OutlinedTextField( +// modifier = Modifier +// .padding(vertical = 8.dp) +// .fillMaxWidth(0.9f), +// value = feeRate.value, +// onValueChange = { newValue: String -> +// feeRate.value = newValue.filter { it.isDigit() } +// }, +// singleLine = true, +// textStyle = TextStyle(color = DevkitWalletColors.white), +// label = { +// Text( +// text = "New fee rate", +// color = DevkitWalletColors.white, +// ) +// }, +// colors = TextFieldDefaults.outlinedTextFieldColors( +// focusedBorderColor = DevkitWalletColors.accent1, +// unfocusedBorderColor = DevkitWalletColors.white, +// cursorColor = DevkitWalletColors.accent1, +// ), +// ) +// } +// } +// +// @Composable +// fun BumpFeeDialog( +// txid: String, +// amount: String, +// showDialog: Boolean, +// setShowDialog: (Boolean) -> Unit, +// context: Context, +// feeRate: MutableState, +// ) { +// if (showDialog) { +// var confirmationText = "Confirm Transaction : \nTxid : $txid\nAmount : $amount" +// if (feeRate.value.isNotEmpty()) { +// confirmationText += "Fee Rate : ${feeRate.value.toULong()}" +// } +// AlertDialog( +// containerColor = DevkitWalletColors.primaryLight, +// onDismissRequest = {}, +// title = { +// Text( +// text = "Confirm transaction", +// color = DevkitWalletColors.white +// ) +// }, +// text = { +// Text( +// text = confirmationText, +// color = DevkitWalletColors.white +// ) +// }, +// confirmButton = { +// TextButton( +// onClick = { +// if (feeRate.value.isNotEmpty()) { +// broadcastTransaction(txid = txid, feeRate = feeRate.value.toFloat()) +// } else { +// Toast.makeText(context, "Fee is empty!", Toast.LENGTH_SHORT).show() +// } +// setShowDialog(false) +// }, +// ) { +// Text( +// text = "Confirm", +// color = DevkitWalletColors.white +// ) +// } +// }, +// dismissButton = { +// TextButton( +// onClick = { +// setShowDialog(false) +// }, +// ) { +// Text( +// text = "Cancel", +// color = DevkitWalletColors.white +// ) +// } +// }, +// ) +// } +// } +// +// private fun broadcastTransaction(txid: String, feeRate: Float = 1F) { +// Log.i(TAG, "Attempting to broadcast transaction with inputs: txid $txid, fee rate: $feeRate") +// try { +// // create, sign, and broadcast +// val psbt: PartiallySignedTransaction = Wallet.createBumpFeeTransaction(txid = txid, feeRate = feeRate) +// Wallet.sign(psbt) +// val newTxid: String = Wallet.broadcast(psbt) +// Log.i(TAG, "Transaction was broadcast! txid: $newTxid") +// } catch (e: Throwable) { +// Log.i(TAG, "Broadcast error: ${e.message}") +// } +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" new file mode 100644 index 0000000..ebc406c --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/ReceiveScreen.kt" @@ -0,0 +1,234 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import android.content.ClipData +import android.content.ClipboardManager +import android.content.Context +import android.util.Log +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.core.graphics.createBitmap +import androidx.navigation.NavController +import com.composables.icons.lucide.ClipboardCopy +import com.composables.icons.lucide.Lucide +import com.google.zxing.BarcodeFormat +import com.google.zxing.common.BitMatrix +import com.google.zxing.qrcode.QRCodeWriter +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenState +import androidx.core.graphics.set + +private const val TAG = "ReceiveScreen" + +@Composable +internal fun ReceiveScreen( + state: ReceiveScreenState, + onAction: (ReceiveScreenAction) -> Unit, + navController: NavController, +) { + Log.i(TAG, "We are recomposing the ReceiveScreen") + val snackbarHostState = remember { SnackbarHostState() } + Scaffold( + snackbarHost = { SnackbarHost(snackbarHostState) }, + topBar = { + SecondaryScreensAppBar( + title = "Receive Address", + navigation = { navController.navigate(HomeScreen) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + ) { + val (QRCode, bottomButtons) = createRefs() + val context = LocalContext.current + val scope = rememberCoroutineScope() + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier + .constrainAs(QRCode) { + top.linkTo(parent.top) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + }.padding(horizontal = 32.dp) + ) { + val qr: ImageBitmap? = state.address?.let { addressToQR(it) } + Log.i("ReceiveScreen", "New receive address is ${state.address}") + if (qr != null) { + Image( + bitmap = qr, + contentDescription = "Bitcoindevkit website QR code", + Modifier.size(250.dp).clip(RoundedCornerShape(16.dp)) + ) + Spacer(modifier = Modifier.padding(vertical = 16.dp)) + Box { + SelectionContainer { + Text( + modifier = Modifier + .clickable { + copyToClipboard( + state.address, + context, + scope, + snackbarHostState, + null, + ) + }.background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).padding(12.dp), + text = state.address.chunked(4).joinToString(" "), + fontFamily = monoRegular, + color = DevkitWalletColors.white + ) + } + Icon( + Lucide.ClipboardCopy, + tint = Color.White, + contentDescription = "Copy to clipboard", + modifier = Modifier + .padding(8.dp) + .size(20.dp) + .align(Alignment.BottomEnd) + ) + } + Spacer(modifier = Modifier.padding(vertical = 16.dp)) + Text( + text = "Wallet address index: ${state.addressIndex}", + fontFamily = monoRegular, + color = DevkitWalletColors.white, + modifier = Modifier.align(Alignment.Start) + ) + } + } + + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.padding(bottom = 24.dp) + ) { + Button( + onClick = { onAction(ReceiveScreenAction.UpdateAddress) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "Generate address", + style = standardText, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } + } + } +} + +private fun addressToQR(address: String): ImageBitmap? { + Log.i(TAG, "We are generating the QR code for address $address") + try { + val qrCodeWriter: QRCodeWriter = QRCodeWriter() + val bitMatrix: BitMatrix = qrCodeWriter.encode(address, BarcodeFormat.QR_CODE, 1000, 1000) + val bitMap = createBitmap(1000, 1000) + for (x in 0 until 1000) { + for (y in 0 until 1000) { + // DevkitWalletColors.primaryDark for dark and DevkitWalletColors.white for light + bitMap[x, y] = + if (bitMatrix[x, y]) DevkitWalletColors.primaryDark.toArgb() else DevkitWalletColors.white.toArgb() + } + } + return bitMap.asImageBitmap() + } catch (e: Throwable) { + Log.i("ReceiveScreen", "Error with QRCode generation, $e") + } + return null +} + +fun copyToClipboard( + content: String, + context: Context, + scope: CoroutineScope, + snackbarHostState: SnackbarHostState, + setCopyClicked: ( + (Boolean) -> Unit + )?, +) { + val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + val clip: ClipData = ClipData.newPlainText("", content) + clipboard.setPrimaryClip(clip) + scope.launch { + snackbarHostState.showSnackbar("Copied address to clipboard!") + delay(1000) + if (setCopyClicked != null) { + setCopyClicked(false) + } + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewReceiveScreen() { +// ReceiveScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" new file mode 100644 index 0000000..474ba1a --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/SendScreen.kt" @@ -0,0 +1,516 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import android.content.Context +import android.widget.Toast +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.heightIn +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.BottomSheetScaffold +import androidx.compose.material3.BottomSheetScaffoldState +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.OutlinedTextFieldDefaults +import androidx.compose.material3.Switch +import androidx.compose.material3.SwitchDefaults +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.rememberBottomSheetScaffoldState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.UserRoundMinus +import com.composables.icons.lucide.UserRoundPlus +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.standardText +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.SendViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.Recipient +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.SendScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TransactionType +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TxDataBundle + +private const val TAG = "SendScreen" + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun SendScreen(navController: NavController, sendViewModel: SendViewModel) { + val onAction = sendViewModel::onAction + + val context = LocalContext.current + val coroutineScope = rememberCoroutineScope() + + val recipientList: MutableList = remember { mutableStateListOf(Recipient(address = "", amount = 0u)) } + val feeRate: MutableState = rememberSaveable { mutableStateOf("") } + val (showDialog, setShowDialog) = rememberSaveable { mutableStateOf(false) } + val sendAll: MutableState = remember { mutableStateOf(false) } + + val bottomSheetScaffoldState: BottomSheetScaffoldState = rememberBottomSheetScaffoldState() + + BottomSheetScaffold( + topBar = { + SecondaryScreensAppBar( + title = "Send Bitcoin", + navigation = { navController.navigate(HomeScreen) } + ) + }, + sheetShape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp), + sheetContent = { AdvancedOptions(sendAll, recipientList) }, + sheetContainerColor = DevkitWalletColors.primaryDark, + scaffoldState = bottomSheetScaffoldState, + sheetPeekHeight = 0.dp, + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .background(DevkitWalletColors.primary) + ) { + val (transactionInputs, bottomButtons) = createRefs() + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier + .constrainAs(transactionInputs) { + top.linkTo(parent.top) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + } + ) { + TransactionRecipientInput(recipientList = recipientList) + TransactionAmountInput( + recipientList = recipientList, + transactionType = if (sendAll.value) TransactionType.SEND_ALL else TransactionType.STANDARD + ) + TransactionFeeInput(feeRate = feeRate) + Dialog( + recipientList = recipientList, + feeRate = feeRate, + showDialog = showDialog, + setShowDialog = setShowDialog, + transactionType = if (sendAll.value) TransactionType.SEND_ALL else TransactionType.STANDARD, + context = context, + onAction = onAction + ) + } + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.padding(bottom = 32.dp) + ) { + MoreOptions(coroutineScope = coroutineScope, bottomSheetScaffoldState = bottomSheetScaffoldState) + Button( + onClick = { setShowDialog(true) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "Broadcast transaction", + ) + } + } + } + } +} + +@Composable +internal fun AdvancedOptions( + sendAll: MutableState, + recipientList: MutableList, +) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 8.dp) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth() + ) { + Text( + text = "Send All", + style = standardText, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + Spacer(modifier = Modifier.width(8.dp)) + Switch( + checked = sendAll.value, + onCheckedChange = { + sendAll.value = !sendAll.value + while (recipientList.size > 1) { + recipientList.removeLast() + } + }, + colors = SwitchDefaults.colors( + uncheckedBorderColor = DevkitWalletColors.primaryDark, + uncheckedThumbColor = DevkitWalletColors.primaryDark, + uncheckedTrackColor = DevkitWalletColors.white, + checkedThumbColor = DevkitWalletColors.white, + checkedTrackColor = DevkitWalletColors.accent1 + ) + ) + } + + Row( + Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = "Number of Recipients", + style = standardText + ) + Text( + text = "${recipientList.size}", + style = standardText + ) + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy((-1).dp), + modifier = Modifier.padding(top = 4.dp) + ) { + val startShape = RoundedCornerShape(topStart = 6.dp, bottomStart = 6.dp) + val endShape = RoundedCornerShape(topEnd = 6.dp, bottomEnd = 6.dp) + Box( + Modifier + .clip(startShape) + .border(2.dp, Color.White, startShape) + .clickable(role = Role.Button) { + recipientList.add(Recipient("", 0u)) + }.padding(horizontal = 12.dp, vertical = 10.dp) + ) { + Icon(Lucide.UserRoundPlus, tint = DevkitWalletColors.white, contentDescription = null) + } + Box( + Modifier + .clip(endShape) + .border(2.dp, Color.White, endShape) + .clickable(role = Role.Button) { + if (recipientList.size > 1) { + recipientList.removeLast() + } + }.padding(horizontal = 12.dp, vertical = 10.dp) + ) { + Icon(Lucide.UserRoundMinus, tint = DevkitWalletColors.white, contentDescription = null) + } + } + // Button( + // onClick = { + // if (recipientList.size > 1) { + // recipientList.removeLast() + // } + // }, + // enabled = !sendAll.value, + // colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + // shape = RoundedCornerShape(16.dp), + // modifier = Modifier.width(70.dp) + // ) { + // Text(text = "-") + // } + // Button( + // onClick = { recipientList.add(Recipient("", 0u)) }, + // enabled = !sendAll.value, + // colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent1), + // shape = RoundedCornerShape(16.dp), + // modifier = Modifier.width(70.dp) + // ) { + // Text(text = "+") + // } + } + + Spacer(modifier = Modifier.height(32.dp)) + } +} + +@Composable +private fun TransactionRecipientInput(recipientList: MutableList) { + LazyColumn( + modifier = Modifier + .fillMaxWidth(0.9f) + .heightIn(max = 100.dp) + ) { + itemsIndexed(recipientList) { index, _ -> + val recipientAddress: MutableState = rememberSaveable { mutableStateOf("") } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = recipientAddress.value, + onValueChange = { + recipientAddress.value = it + recipientList[index].address = it + }, + label = { + Text( + text = "Recipient address ${index + 1}", + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white + ) + ) + } + } + } +} + +fun checkRecipientList( + recipientList: MutableList, + feeRate: MutableState, + context: Context, +): Boolean { + if (recipientList.size > 4) { + Toast.makeText(context, "Too many recipients", Toast.LENGTH_SHORT).show() + return false + } + for (recipient in recipientList) { + if (recipient.address == "") { + Toast.makeText(context, "Address is empty", Toast.LENGTH_SHORT).show() + return false + } + } + if (feeRate.value.isBlank()) { + Toast.makeText(context, "Fee rate is empty", Toast.LENGTH_SHORT).show() + return false + } + return true +} + +@Composable +private fun TransactionAmountInput(recipientList: MutableList, transactionType: TransactionType) { + LazyColumn( + modifier = Modifier + .fillMaxWidth(0.9f) + .heightIn(max = 100.dp) + ) { + itemsIndexed(recipientList) { index, _ -> + val amount: MutableState = rememberSaveable { mutableStateOf("") } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = amount.value, + onValueChange = { + amount.value = it + recipientList[index].amount = it.toULong() + }, + label = { + when (transactionType) { + TransactionType.SEND_ALL -> { + Text( + text = "Amount (Send All)", + color = DevkitWalletColors.white, + ) + } + else -> { + Text( + text = "Amount ${index + 1}", + color = DevkitWalletColors.white, + ) + } + } + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white + ), + enabled = ( + when (transactionType) { + TransactionType.SEND_ALL -> false + else -> true + } + ) + ) + } + } + } +} + +@Composable +private fun TransactionFeeInput(feeRate: MutableState) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .fillMaxWidth(0.9f), + value = feeRate.value, + onValueChange = { newValue: String -> + feeRate.value = newValue.filter { it.isDigit() } + }, + singleLine = true, + textStyle = TextStyle(color = DevkitWalletColors.white), + label = { + Text( + text = "Fee rate", + color = DevkitWalletColors.white, + ) + }, + colors = OutlinedTextFieldDefaults.colors( + cursorColor = DevkitWalletColors.accent1, + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white + ), + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun MoreOptions(coroutineScope: CoroutineScope, bottomSheetScaffoldState: BottomSheetScaffoldState) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + ) { + NeutralButton( + text = "Advanced options", + onClick = { + coroutineScope.launch { + bottomSheetScaffoldState.bottomSheetState.expand() + } + }, + ) + } +} + +@Composable +private fun Dialog( + recipientList: MutableList, + feeRate: MutableState, + showDialog: Boolean, + setShowDialog: (Boolean) -> Unit, + transactionType: TransactionType, + context: Context, + onAction: (SendScreenAction) -> Unit, +) { + if (showDialog) { + var confirmationText = "Confirm Transaction : \n" + recipientList.forEach { confirmationText += "${it.address}, ${it.amount}\n" } + if (feeRate.value.isNotEmpty()) { + confirmationText += "Fee Rate : ${feeRate.value.toULong()}" + } + AlertDialog( + containerColor = DevkitWalletColors.primaryLight, + onDismissRequest = {}, + title = { + Text( + text = "Confirm transaction", + color = DevkitWalletColors.white + ) + }, + text = { + Text( + text = confirmationText, + color = DevkitWalletColors.white + ) + }, + confirmButton = { + TextButton( + onClick = { + if (checkRecipientList(recipientList = recipientList, feeRate = feeRate, context = context)) { + val txDataBundle = + TxDataBundle( + recipients = recipientList, + feeRate = feeRate.value.toULong(), + transactionType = transactionType, + ) + onAction(SendScreenAction.Broadcast(txDataBundle)) + setShowDialog(false) + } + }, + ) { + Text( + text = "Confirm", + color = DevkitWalletColors.white + ) + } + }, + dismissButton = { + TextButton( + onClick = { + setShowDialog(false) + }, + ) { + Text( + text = "Cancel", + color = DevkitWalletColors.white + ) + } + }, + ) + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewSendScreen() { +// SendScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" new file mode 100644 index 0000000..9e903b0 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionHistoryScreen.kt" @@ -0,0 +1,71 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.navigation.HomeScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.TransactionScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.ui.components.ConfirmedTransactionCard +import org.bitcoindevkit.devkitwallet.presentation.ui.components.PendingTransactionCard +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +private const val TAG = "TransactionHistoryScreen" + +@Composable +internal fun TransactionHistoryScreen(navController: NavController, activeWallet: Wallet) { + val (pendingTransactions, confirmedTransactions) = activeWallet.getAllTxDetails().partition { it.pending } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Transaction History", + navigation = { navController.navigate(HomeScreen) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + val scrollState = rememberScrollState() + Column( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + .padding(top = 6.dp) + .verticalScroll(state = scrollState) + ) { + if (pendingTransactions.isNotEmpty()) { + pendingTransactions.forEach { + PendingTransactionCard(details = it, navController = navController) + } + } + if (confirmedTransactions.isNotEmpty()) { + confirmedTransactions.sortedBy { it.confirmationBlock?.height }.forEach { + ConfirmedTransactionCard(it, navController) + } + } + } + } +} + +fun viewTransaction(navController: NavController, txid: String) { + navController.navigate(TransactionScreen(txid)) +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewTransactionsScreen() { +// TransactionsScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" new file mode 100644 index 0000000..e580a43 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/TransactionScreen.kt" @@ -0,0 +1,199 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import org.bitcoindevkit.devkitwallet.presentation.navigation.RbfScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.ui.components.SecondaryScreensAppBar + +@Composable +internal fun TransactionScreen(txid: String?, navController: NavController) { + // val transaction = getTransaction(txid = txid) + // if (transaction == null) { + // navController.popBackStack() + // } + // val transactionDetail = getTransactionDetails(transaction = transaction!!) + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Transaction Details", + navigation = { navController.navigateUp() } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(paddingValues) + ) { + val (screenTitle, transactions, bottomButton) = createRefs() + + Column( + modifier = Modifier + .constrainAs(screenTitle) { + top.linkTo(parent.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + }.padding(top = 70.dp) + ) { + Text( + text = "Transaction", + color = DevkitWalletColors.white, + fontSize = 28.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + // Text( + // text = transactionTitle(transaction = transaction), + // color = DevkitWalletColors.white, + // fontSize = 14.sp, + // textAlign = TextAlign.Center, + // modifier = Modifier.padding(horizontal = 16.dp) + // ) + } + + LazyColumn( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier + .constrainAs(transactions) { + top.linkTo(screenTitle.bottom) + bottom.linkTo(bottomButton.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + } + ) { + // items(transactionDetail) { + // Row( + // modifier = Modifier + // .fillMaxWidth() + // .padding(all = 16.dp) + // ) { + // Text( + // text = "${it.first} :", + // fontSize = 16.sp, + // color = DevkitWalletColors.white, + // ) + // Text( + // text = it.second, + // fontSize = 16.sp, + // textAlign = TextAlign.End, + // color = DevkitWalletColors.white, + // modifier = Modifier.fillMaxWidth() + // ) + // } + // } + } + + Column( + modifier = Modifier + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(bottomButton) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + TransactionDetailButton( + content = "increase fees", + navController = navController, + txid = txid + ) + } + } + } +} + +@Composable +fun TransactionDetailButton(content: String, navController: NavController, txid: String?) { + Button( + onClick = { + when (content) { + "increase fees" -> { + navController.navigate(RbfScreen(txid!!)) + } + "back to transaction list" -> { + navController.navigateUp() + } + } + }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(60.dp) + .fillMaxWidth() + ) { + Text( + text = content, + fontSize = 14.sp, + fontFamily = monoRegular, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } +} + +// fun getTransactionDetails(transaction: TransactionDetails): List> { +// val transactionDetails = mutableListOf>() +// +// if (transaction.confirmationTime != null) { +// transactionDetails.add(Pair("Status", "Confirmed")) +// transactionDetails.add(Pair("Timestamp", transaction.confirmationTime!!.timestamp.timestampToString())) +// transactionDetails.add(Pair("Received", (if (transaction.received < transaction.sent) 0 else transaction.received).toString())) +// transactionDetails.add(Pair("Sent", (if (transaction.sent < transaction.received) 0 else transaction.sent - transaction.received - transaction.fee!!).toString())) +// transactionDetails.add(Pair("Fees", transaction.fee.toString())) +// transactionDetails.add(Pair("Block", transaction.confirmationTime!!.height.toString())) +// } else { +// transactionDetails.add(Pair("Status", "Pending")) +// transactionDetails.add(Pair("Timestamp", "Pending")) +// transactionDetails.add(Pair("Received", (if (transaction.received < transaction.sent) 0 else transaction.received).toString())) +// transactionDetails.add(Pair("Sent", (if (transaction.sent < transaction.received) 0 else transaction.sent - transaction.received - transaction.fee!!).toString())) +// transactionDetails.add(Pair("Fees", transaction.fee.toString())) +// } +// return transactionDetails +// } +// +// fun transactionTitle(transaction: TransactionDetails): String { +// return transaction.txid +// } +// +// fun getTransaction(txid: String?): TransactionDetails? { +// if (txid.isNullOrEmpty()) { +// return null +// } +// return Wallet.getTransaction(txid = txid) +// } diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" new file mode 100644 index 0000000..ca96998 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/ui/screens/wallet/WalletHomeScreen.kt" @@ -0,0 +1,281 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.ui.screens.wallet + +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.util.Log +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.CurrencyBitcoin +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.CenterAlignedTopAppBar +import androidx.compose.material3.DrawerState +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBarDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavHostController +import com.composables.icons.lucide.Lucide +import com.composables.icons.lucide.Menu +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch +import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit +import org.bitcoindevkit.devkitwallet.domain.utils.formatInBtc +import org.bitcoindevkit.devkitwallet.presentation.navigation.ReceiveScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.SendScreen +import org.bitcoindevkit.devkitwallet.presentation.navigation.TransactionHistoryScreen +import org.bitcoindevkit.devkitwallet.presentation.theme.DevkitWalletColors +import org.bitcoindevkit.devkitwallet.presentation.theme.monoRegular +import org.bitcoindevkit.devkitwallet.presentation.theme.quattroBold +import org.bitcoindevkit.devkitwallet.presentation.ui.components.LoadingAnimation +import org.bitcoindevkit.devkitwallet.presentation.ui.components.NeutralButton +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.WalletViewModel +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenState + +private const val TAG = "WalletHomeScreen" + +@Composable +internal fun WalletHomeScreen( + navController: NavHostController, + drawerState: DrawerState, + walletViewModel: WalletViewModel, +) { + val networkAvailable: Boolean = isOnline(LocalContext.current) + val state: WalletScreenState = walletViewModel.state + val onAction = walletViewModel::onAction + + val interactionSource = remember { MutableInteractionSource() } + val scope: CoroutineScope = rememberCoroutineScope() + + Scaffold( + topBar = { WalletAppBar(scope = scope, drawerState = drawerState) }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(Modifier.padding(24.dp)) + Row( + Modifier + .clickable( + interactionSource, + indication = null, + onClick = { onAction(WalletScreenAction.SwitchUnit) } + ).fillMaxWidth(0.9f) + .padding(horizontal = 8.dp) + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ).height(100.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceEvenly + ) { + when (state.unit) { + CurrencyUnit.Bitcoin -> { + Icon( + imageVector = Icons.Rounded.CurrencyBitcoin, + tint = DevkitWalletColors.white, + contentDescription = "Bitcoin testnet logo", + modifier = Modifier + .align(Alignment.CenterVertically) + .size(48.dp) + ) + Text( + text = state.balance.formatInBtc(), + fontFamily = monoRegular, + fontSize = 32.sp, + color = DevkitWalletColors.white + ) + } + CurrencyUnit.Satoshi -> { + Text( + text = "${state.balance} sat", + fontFamily = monoRegular, + fontSize = 32.sp, + color = DevkitWalletColors.white + ) + } + } + } + Spacer(modifier = Modifier.padding(4.dp)) + if (networkAvailable) { + Row( + modifier = Modifier.height(40.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + if (state.syncing) LoadingAnimation() + } + } + + if (!networkAvailable) { + Row( + Modifier + .fillMaxWidth() + .background(color = DevkitWalletColors.accent2) + .height(50.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center, + ) { + Text( + text = "Network unavailable", + fontFamily = monoRegular, + fontSize = 16.sp, + color = DevkitWalletColors.white + ) + } + } + + NeutralButton( + text = "sync", + enabled = networkAvailable, + onClick = { onAction(WalletScreenAction.UpdateBalance) } + ) + + NeutralButton( + text = "transaction history", + enabled = networkAvailable, + onClick = { navController.navigate(TransactionHistoryScreen) } + ) + + Row( + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .height(140.dp) + .fillMaxWidth(0.9f) + ) { + Button( + onClick = { navController.navigate(ReceiveScreen) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent1), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(160.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "receive", + fontSize = 16.sp, + textAlign = TextAlign.End, + lineHeight = 28.sp, + modifier = Modifier + .fillMaxWidth(0.4f) + .align(Alignment.Bottom) + ) + } + + Button( + onClick = { navController.navigate(SendScreen) }, + colors = + ButtonDefaults.buttonColors( + containerColor = DevkitWalletColors.accent2, + disabledContainerColor = DevkitWalletColors.accent2, + ), + shape = RoundedCornerShape(16.dp), + enabled = networkAvailable, + modifier = Modifier + .height(160.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "send", + fontSize = 16.sp, + textAlign = TextAlign.End, + lineHeight = 28.sp, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Bottom) + ) + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun WalletAppBar(scope: CoroutineScope, drawerState: DrawerState) { + CenterAlignedTopAppBar( + title = { + Text( + text = "Devkit Wallet", + color = DevkitWalletColors.white, + // fontFamily = quattroRegular, + fontFamily = quattroBold, + fontSize = 20.sp, + ) + }, + navigationIcon = { + IconButton(onClick = { scope.launch { drawerState.open() } }) { + Icon( + imageVector = Lucide.Menu, + contentDescription = "Open drawer", + tint = DevkitWalletColors.white + ) + } + }, + colors = + TopAppBarDefaults.topAppBarColors( + containerColor = DevkitWalletColors.primaryDark, + ) + ) +} + +fun isOnline(context: Context): Boolean { + val connectivityManager = + context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val capabilities = + connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork) + if (capabilities != null) { + when { + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_CELLULAR") + return true + } + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_WIFI") + return true + } + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_ETHERNET") + return true + } + } + } + return false +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" new file mode 100644 index 0000000..e68d44f --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/AddressViewModel.kt" @@ -0,0 +1,38 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels + +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.lifecycle.ViewModel +import org.bitcoindevkit.AddressInfo +import org.bitcoindevkit.devkitwallet.domain.DwLogger +import org.bitcoindevkit.devkitwallet.domain.DwLogger.LogLevel.INFO +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.ReceiveScreenState + +internal class AddressViewModel(private val wallet: Wallet) : ViewModel() { + var state: ReceiveScreenState by mutableStateOf(ReceiveScreenState()) + private set + + fun onAction(action: ReceiveScreenAction) { + when (action) { + is ReceiveScreenAction.UpdateAddress -> updateAddress() + } + } + + private fun updateAddress() { + val newAddress: AddressInfo = wallet.getNewAddress() + DwLogger.log(INFO, "Revealing new address at index ${newAddress.index}") + + state = ReceiveScreenState( + address = newAddress.address.toString(), + addressIndex = newAddress.index + ) + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" new file mode 100644 index 0000000..9e50297 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/SendViewModel.kt" @@ -0,0 +1,50 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels + +import android.util.Log +import androidx.lifecycle.ViewModel +import org.bitcoindevkit.FeeRate +import org.bitcoindevkit.Psbt +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.SendScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TransactionType +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.TxDataBundle + +private const val TAG = "SendViewModel" + +internal class SendViewModel(private val wallet: Wallet) : ViewModel() { + fun onAction(action: SendScreenAction) { + when (action) { + is SendScreenAction.Broadcast -> broadcast(action.txDataBundle) + } + } + + private fun broadcast(txInfo: TxDataBundle) { + try { + // Create, sign, and broadcast + val psbt: Psbt = + when (txInfo.transactionType) { + TransactionType.STANDARD -> + wallet.createTransaction( + recipientList = txInfo.recipients, + feeRate = FeeRate.fromSatPerVb(txInfo.feeRate), + ) + // TransactionType.SEND_ALL -> Wallet.createSendAllTransaction(recipientList[0].address, FeeRate.fromSatPerVb(feeRate), rbfEnabled, opReturnMsg) + TransactionType.SEND_ALL -> throw NotImplementedError("Send all not implemented") + } + val isSigned = wallet.sign(psbt) + if (isSigned) { + val txid: String = wallet.broadcast(psbt) + Log.i(TAG, "Transaction was broadcast! txid: $txid") + } else { + Log.i(TAG, "Transaction not signed.") + } + } catch (e: Throwable) { + Log.i(TAG, "Broadcast error: ${e.message}") + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" new file mode 100644 index 0000000..692dfbb --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/WalletViewModel.kt" @@ -0,0 +1,68 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels + +import android.util.Log +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit +import org.bitcoindevkit.devkitwallet.domain.Wallet +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenAction +import org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi.WalletScreenState + +private const val TAG = "WalletViewModel" + +class WalletViewModel( + private val wallet: Wallet, +) : ViewModel() { + var state: WalletScreenState by mutableStateOf(WalletScreenState()) + private set + + init { + updateClientEndpoint() + } + + fun onAction(action: WalletScreenAction) { + when (action) { + WalletScreenAction.UpdateBalance -> updateBalance() + WalletScreenAction.SwitchUnit -> switchUnit() + } + } + + private fun switchUnit() { + state = when (state.unit) { + CurrencyUnit.Bitcoin -> state.copy(unit = CurrencyUnit.Satoshi) + CurrencyUnit.Satoshi -> state.copy(unit = CurrencyUnit.Bitcoin) + } + } + + private fun updateBalance() { + state = state.copy(syncing = true) + viewModelScope.launch(Dispatchers.IO) { + wallet.sync() + withContext(Dispatchers.Main) { + val newBalance = wallet.getBalance() + Log.i(TAG, "New balance: $newBalance") + state = state.copy(balance = newBalance, syncing = false) + } + } + } + + private fun updateClientEndpoint() { + viewModelScope.launch(Dispatchers.IO) { + val endpoint = wallet.getClientEndpoint() + withContext(Dispatchers.Main) { + state = state.copy(esploraEndpoint = endpoint) + } + } + } +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" new file mode 100644 index 0000000..fb3f954 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviReceiveScreen.kt" @@ -0,0 +1,15 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi + +data class ReceiveScreenState( + val address: String? = null, + val addressIndex: UInt? = null, +) + +sealed interface ReceiveScreenAction { + data object UpdateAddress : ReceiveScreenAction +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" new file mode 100644 index 0000000..224018f --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviSendScreen.kt" @@ -0,0 +1,27 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi + +// data class SendScreenState( +// val address: String? = null, +// ) + +sealed class SendScreenAction { + data class Broadcast(val txDataBundle: TxDataBundle) : SendScreenAction() +} + +data class TxDataBundle( + val recipients: List, + val feeRate: ULong, + val transactionType: TransactionType, +) + +data class Recipient(var address: String, var amount: ULong) + +enum class TransactionType { + STANDARD, + SEND_ALL, +} diff --git "a/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" new file mode 100644 index 0000000..cef5212 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/java/org/bitcoindevkit/devkitwallet/presentation/viewmodels/mvi/MviWalletScreen.kt" @@ -0,0 +1,21 @@ +/* + * Copyright 2021-2025 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package org.bitcoindevkit.devkitwallet.presentation.viewmodels.mvi + +import org.bitcoindevkit.devkitwallet.domain.CurrencyUnit + +data class WalletScreenState( + val balance: ULong = 0u, + val syncing: Boolean = false, + val unit: CurrencyUnit = CurrencyUnit.Bitcoin, + val esploraEndpoint: String = "", +) + +sealed interface WalletScreenAction { + data object UpdateBalance : WalletScreenAction + + data object SwitchUnit : WalletScreenAction +} diff --git "a/Variant \342\200\224 1.0/app/src/main/proto/wallets.proto" "b/Variant \342\200\224 1.0/app/src/main/proto/wallets.proto" new file mode 100644 index 0000000..2f1f8a8 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/proto/wallets.proto" @@ -0,0 +1,32 @@ +syntax = "proto3"; + +option java_package = "org.bitcoindevkit.devkitwallet.data"; +option java_multiple_files = true; + +message UserPreferences { + bool introDone = 1; + repeated SingleWallet wallets = 2; +} + +message SingleWallet { + string id = 1; + string name = 2; + ActiveWalletNetwork network = 3; + ActiveWalletScriptType scriptType = 4; + string descriptor = 5; + string changeDescriptor = 6; + string recoveryPhrase = 7; + bool fullScanCompleted = 8; +} + +enum ActiveWalletNetwork { + TESTNET = 0; + SIGNET = 1; + REGTEST = 2; +} + +enum ActiveWalletScriptType { + P2WPKH = 0; + P2TR = 1; + UNKNOWN = 2; +} diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable/bdk_logo.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable/bdk_logo.xml" new file mode 100644 index 0000000..a28d65b --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable/bdk_logo.xml" @@ -0,0 +1,24 @@ + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_bitcoin_logo.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_bitcoin_logo.xml" new file mode 100644 index 0000000..d57d1bb --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_bitcoin_logo.xml" @@ -0,0 +1,12 @@ + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_background.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_background.xml" new file mode 100644 index 0000000..6884ff0 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_background.xml" @@ -0,0 +1,9 @@ + + + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" new file mode 100644 index 0000000..227c9e3 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" @@ -0,0 +1,29 @@ + + + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_testnet_logo.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_testnet_logo.xml" new file mode 100644 index 0000000..d57d1bb --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable/ic_testnet_logo.xml" @@ -0,0 +1,12 @@ + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/drawable/launch_screen.xml" "b/Variant \342\200\224 1.0/app/src/main/res/drawable/launch_screen.xml" new file mode 100644 index 0000000..52e7de9 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/drawable/launch_screen.xml" @@ -0,0 +1,11 @@ + + + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_bold.ttf" "b/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_bold.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..c9c06a2a38255e3361314d65042dfece0e0c33e7 GIT binary patch literal 96168 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ⅇ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 t}JZcqZ`G!1F;@ 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 S@d=+sJkU@~I-*w4&;J0ovcHJ{ literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_regular.ttf" "b/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_regular.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..1308a4c30d2a5da6518e15bfafe1ff015bea0ccc GIT binary patch literal 97044 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%0AgIH^@40z%2MZP4Nh% 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 wD3QSbHCJrGhQ5_nH?{>{SYWMKcACCvH$=8 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" "b/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_mono_regular_italic.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..433395291a78067922f05fb38888c21483b31f84 GIT binary patch literal 104120 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%0As^C{;bK|do7 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ͩpc)_O82K3pY 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 Ht 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" "b/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_bold_italic.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..0ae7e61c3d6586c6df9795774c7b15d7b32526a4 GIT binary patch literal 104520 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�A&}L8Kvpobf`G<( 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%0DQMx5neH64 z^71Q$&qa1TD$<<`nhKLUAI>}~MJI~eP>RvmQ(E&)WYF$;DCPyGbQ*s=&3X&s~IwYc#YNXcrYak-6>g zbz`grN;EwhN;JJH4Mh;mIwYPsl5xBP)e~uLy3GN@|me+xk*EbV6%o2!L^_* z9Ln!H)u-lny@nEbzlIX|4Moi&u-O{!1LZ<~e^`OO+i_>g zCEtzVPJ8@YJHUMHPcT-Josq0(Y2+&kS)?!1=lfZ7Q+4sa`T!YNi|us9`fO~>OY%_z zgY8d8vxxqX{-FMVeqZ|BLLf*Z?N4KW;4`d9{!!@nnF0<2$$Wbi9wD~ZkiW5HU<&z9 z`Y|nlmDI)$Os1eye*HKSQMA2bu}X;u`d1XP6r1{{>$9*uaDtCMB<&<0yveQGg<-wq Rgij+r@=!uLqE*n({{vs=q6Po} literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_regular.ttf" "b/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_regular.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..f8eb282aa721dc9a02ff2e192cabfc46d38bf4b7 GIT binary patch literal 119772 zcmbq+2Vh*q@%Qe&cXukMa*|HPD%YfwWXV?Vl69(9w=A7|k>rXi#+YUdm~M)JnBHq> zp_opbgg_up0tpb35R#AtW0H_S2qY$<>HPg>_r23eHemiAMti!^zTMf`*=akwk8#FW z5(=HU+lRYn;~QuESHH$*)a>?-&a<0#UJp<)V?xXxoHJbi(uV&rrj;^g8JImhul0kc zD$YRFos31#pEF!izWb+pHZ$gU1J94H+%&dj)19v-po3b*Vg^^9yv^-6spuTWUr5K_ zpINhI?WS9*Q-6)`s2}fKJ9gq0z!UL35uZ_OH=efU&u9MZ3dXW_F}~#9<5rKYO5EJ` zU&c>G|E&5r0BoAA7~hY>_uS()Z98?>`3KkH`=#h}bmQ?W$1Yh{c^BgszYqLoZ5lgu zi|s#&Coz5%#>3p3$2P5wI`z_0eD7n-x@^nwCvLkT&g*6Th6flcT)AcI>Mf`L=D`-m zU;7aC4}da^+3`dF2{w$M6u?qh4oWw}b1WDCIP}Ly5E@I12 zj<8cuo`!#%oz6fLb{;z)|%Bk%3IivQT~Lzg7TN_S15nW{)+Nl{NwB&>_e3Q zW}l-R=N87fjmM&l;|VAoJPBnAW{&fjd?w0LUW2lZ*Q0FYjVNdFL6k!rIPlXsaNy_h z^H848FJOXS#4p0{m+;*vui$%7Ud69Rc_Y6W<*ocql;7requk5)qI`@$f%3;3IP;hI zODKQAUq<;Ve--6x{B@LX@IRpZBmX1Hw>T)u-{BY$f0zFggy}Q2v+y59O!) zGscB3bd)v`jWS1o+QK71XOS<8Q0co;3e&2?PJFEnR*M;Fz>_zF|3ts zXIgt_Uy!A&JZl=<8{fc`_$0Am6N zQrRHON?AH(Swg&gNPodHA*gRd7y9e+4P8d)Vd8V#$n!)F>@K12Nz~94{Nh1qMl$D7R6#&Jaa&cr$JI?GdJ^r zhJ}#hGsea?ZsUovOqZp5<;qQ4c!4ZSWm&sw^YNQ_K$e}d>|3*SY$YF(5U zQEK<&ud&))vb;r>ur!!mBdKH8UX&&55EiHXRF*%I<$jd$+Ox7G=@PF!gEB#TT9zcw ziRU(2^HG#$E#p?rvz#C(#aC(H@r+;<}-^ zvHoe~7WNtBW)9X3G&j}b?P~nIQ+*e(t_Ut3GCm(LK566xzjw;_w~X&^8=sI@vK}lg z`DuLD;~_grfs-90ScpDjl&sS)g0L>tFGN|U??PFrUxu<4n37yf$GXeaFO_vJmUS*c zSq1qb^csCP%DRZQ&cpXo{aln~I;=|6IA7M#K#ynfBXu>fasUqn*-tnc5d5ZLcH}&% zIs|zEKZ+LWDa@I!c!=rRe40ELravHXc=@p8Tthuxrki)q>w+H!4={2bA)lAoj6HS%*zyFq@g&~B2SE47>D=PK=X`MFv? z|FH4=!S4L@=bg*Kc27U zTlfilD?gEM9;x}kp5s)o{Yhd}u z0;c1)A=ZT+hM4D@^#JX37T?Lw=I8KpRd3o_v{TM%zF|94TG8wEL48;c>htvZ`T~8S zzDQrJUjZ$=N54|PO21maM!#0SPQPBiLBCPI3A!1+4m6h=GNlwUr4d}(1-TNGRs%^E zA@!)Pt$}Z{L)*%Pc7}E$$}_cXD9_SPLb+2r8Rgm9DJaj;PDOdHb{fj_wCyO**G`8` zFr+Wlm*I1czC@pkR`16ufhN}*fpNoE;V12h3Z4Ah2`x@GNF^W~76JX7XTd+8*2Ev7YcptRfBc5;8tkQ?;Vb#1Y49t(kZ-7kk^D>5 z;tlw2Rkb8EjW+<6C7;NaPvoG@rIs>GaugLwm(CmkE zd9luUGP=5z{w{Rb)C?n4njXF2TM9}bgHJsM79Drviw$*3VELZO?gYnP&iC-!5hXY* zGGR9_65kg;5r5Ql&8{VBPAyaOX$9Iz+IDd9#oDEizPD@lYJ0VxX)o*3be~?LgWo{8 zdQf6SKT*F~|F-@e{W1M}`j7PA>3`P$u79k58sD6Ae$Fj9pSo7p|)LrjxcW-f@=Dx^%yZbKp-R_6nkGh|5?{oja{X@{W2}=e?MpoZnaEc<*nY3)r+o z$5Lpb+t{}yg>K^y^Up-Oq|o=oe({FJG;5ebe)#l6q4PkY%d~H4cWU=*k7zIIOwZJF zpxRA2E!B@bsgv0;@auj<+{Rko$EH&y{^5kCtdqpuex4${n7Pr*MHr~?sRvS+btbez0;u3z3xZckGr3qLZLy=uxFlUiRTK>eV)CZCq4TjDCCHs&?75^O!s!#lOxBBhi&V#==cnO|QJ(&9Ty9Y}SRvfGd*U32;e=zxA z^4o{se&y}Y2>N!*+pQ=^-d_CnQv3|PJ@>#T2R7s%gt$(3{swEdL-V81Zf%J`2;?IG<+l;}nK z!ua_Nyi~6DL0>J@SLhq{E&6%-#n4e0mHc^VN`sTWTH5KWB@hX;3|Qt{wgP&NMFzax3h5J< zvTnqkI}qRUA=|^#n_6hqn;>d2E%F}r<&(Z$Ir}NpomACT_zLb|hqog2Ct+OYf&G*BLei?G@ zm+;JAgP-sU{PW*H)4z_G$Y0@s|BjU*I#kX620izC*1-M=`S(6+g0^f#JSl)^b~F13 zaq`1h$>Xe@{TH#h5SxuiQ!D#|4RVbQaSOMyAdh16c?_G!quByPy%%yjTY|XvGQ^*j zBKDogmP2c8Lo9IxPh%(Y0(L5&!Or02>?~f%&g2#BY+lXI<8|y@UdzrwWc*SdU>EaQ z>>}R8Zso)5Cd9@s=WXm3KE!V1bJ)#%E_B%fb{}8H?q_=uC3=*vVUO_DY!mmgt9dtK z2tP#>;U#u5FJkBOdUgqK)@SI&(D3chTwT!debC}PSYKt(Xf=8*v|0(-N08j*kl)Mo zQPHdYRP>2{F(3xTT=9k&62sz8;?LqO@w)hf_^tT8cvJjN{E>eP8uhz;H-7|L^)dc9 ze}X>*?eQePo?pxFx!LLNz{%U>=zmDI9c>O*6ZhkMnk3Ya4Fq=5EwN=ClJO2y+tBB(Vgaz8)CZa^N5JD3%{Ga?i z{y!e#`$RmyjK9slCldJgMI!%!aPVhD691t{=Ff^0{+w{~ABj}{yh!6Oh;;sAk-_(i zY5XT5lmAp?@t=uo{-Vgip25$BTe$cygonQ@y!;j6%zr0l@ZXD>{12jpzbQ(gO&75{_2q1u`N80oxuHUE6-=g^IWzE zzWi0Zi(SKe*mb;*UC;a34SaxI%X`@ae3X5MkFW>%7<-7X5I2dxi+@1(b1g=T)jXP4 zE73}|2CY%+)%wKy;-BJQ;sf!acu#yPmWvUwR4fyt`burFKBn)`PuAkKI4uFTRk}D{ zY!Ro4?c#KOt-fC0Om>#IOk6H56}$E0NVaRUv}P@!wPjy9kTYW>pf=d|x@&uBl?exT>+`Pu{8o7&sjpS0Js zm$cWl1KRJkUu(b7Ue?~y{;0j7-2{tnk9MW5Ya!SxLbvKR-J%`VxvpuSXn)cEsl5;B z>xO+!JTfulU7Jej@gbcZ#vl!$1*MitIys z0v?PYob^GJ6Y%@P@S#Y!UShyC{aYMX4z+W5SkyzBt9HCP)z|b{^w){@BA(l0K1XBJ zbHnXjISHN_hF=v4*X}XkLYJ0{IS#!dT>m<=zQoI{@0InB#B1WY8_eej(F=_rv@WV_=~!F#wK9%k?MPVzP_C zFjlKGCAFfwCe3Q~dHq$DHTgbbCE}xxkAJsVnW-5>my;fw2Do*c1{?+WTL({gmDV~iut@YB?aM8Kqg$Mmk4c^%bEi9Hf|BT&&m-p*M(&*LOli{Y+ToAP0|9&%1m49thY;OQ}pt%o>JTY-7#(grdE1ymD(qn%$@bx|MzO_Z~;;@n)HGcPJ8 zt0*aQFJKbti*(b6sz8z@Z{|VMS)eAUL@Za-499pnoXoJ|d z_rVAEc5hq1as9UOH-J;B(T9KyOE}6tHJVc|kQVyz-|+z%V%DP__v%1}mG;D#&Y@{6 z7DLlSVLG)DVA-w>#K&c%r=>cR90vI(@N-r;eU3GQgWo4C zzyCC0xoY=rJ{aKBCr~{Q2z^R;aKs52EVO;lb|ryg;030F8&jFsH zlm1cd-53Fn(n3c zj8DQzFRAtyQGJ?A=%sA5pUv6=ff#Pnleoo}%&iu!@2E3t8(}sZ6qChb#pZyu%Q}#o z>!;~WjEc#DofMwlBQ=yKV#X(HsL<602TWE@6Z1}bM&Z50#2e#D0^ZTmiaUY_Em#Nb z2xcN9i$xQ9Rxp2<`y7k;)1jMqXK0`7mx4J&i(1I}7|3}Kdnync9|vCqmY^;mD`Oxl zb70r$nnhm=aW5q#WF?f;n3XeF>;sufqI!=~%W4I|s499SL&?#p}9SCTL-Q@FtDt&?x_bK z-#4!v+GqQwja$x|+uGF@x(B=_=^|}LM5Vy9Lsoo*;k3pSJQ#*sBpnqTF=N9vQtc3r ztNQb)KIjfx){rM2P+0>=W3b4{a<*XOA9|l=(2;0`F5w=B&w+`=kB>hd`Y;&eiTG&> zJumi!e$Fe$JE=`UyEgD|_rWhqV-0~?n?-0bQ9{IOVyzvnJj2ggE10CMKU#H>l9G~^ zLgF$>c1Hch#kf>|pj=gj(}N!pls-q5$0_^n?4;gNhCY-SSOeSeUts(*e!4A$(6noTD@_BRY!IZJ%@@Gz)xT7=(ts0S-bK z9B86$VqUHl8izZ`?2+nJ>Qje@s1vGL5g6K>7>uoJXl@Jb4F*9WOViTwp zKXjbJaUIBElQOpj0N7}U*AwoCKL)%;&bxvSO@h+v*{0z04EPvYeM!nT z1)p!gR~{Z_ut~%1%wpF`n&qMX^AY$gFzUAg{;{N`YNsB1-$Y}~HTP;H+Z22e)dyb% zA=@(0em2>ckZnjoHDw#TJ#MH>C{Xs*QmqEm#FT^YoJWyr!G|8=dmnmeibT7zO;onE zjsLuDibx~6egNcVN!wZByTrh^2R!f=@J(XHfkNT{7{p{-j*x9Rg#l10DOp*WN6fyj zioaF4ym8LD#KG9Q>iSt-@zOGAGa>JJb}0x_yV zGPDaq&B81WhmHk+u3%Z58sxng>gC;N^CWs!j*Sdx;^~uRU#iV_FgAh|z&&?q<=CaA=Ub_f{1Vo&^S;abzKqhi}m}2sGs*0BIrED0%^X zoX$jz+Yn(QxN2GpqQ8#Av(16W9LkT7Dya8k{yl|GPJOswR{p)6>t{8z7BDB!##I5WDK42Q~hV> z42iyzLa*}DZR1a1E_U%#5ozc{cj#|I7Uu*qtq@F8rx;zxDNZ(8CqaCtt?!f%@FV7o zKY|H(N_3BRf~HFLQOtt8$%&YSf|Jdr;4~972ZNXcW$O^!&>Mu);aUlIl4MNQ1oq(j zAPm6|poDajHBByNxXF0X$(+d^U$S9v((o%FAAJzwWRLqapJR})t*`y`^8{zn2R4QA z7l*0??aqWz8bcU&vO5%x(!T{cNQb#$BiPUlW`yQ;41IP(Qz3K&FA$y+ABc)VX1Oye zB_R$KtzK(PT2ZPav7+3O=&M$)so@RQ9y)Yru(x-Re(Xp`SQolBbZz%(o40O0O%{?a zvQNp&qv&dajtWjTv4Wei9|foNtKg>2A$X~@VF^yQFQPseYb|U{x0I^{KQi`GKx2-0 z&Wydtex&WI+B0J>3Qo4Kf}61yg%`zM2oBp9Ww?LP)T}R~Q4%lo8!>J(_M+M`$7jS| zjJe6vrekJ&?60QLrVF8Ov4C5|7%iCYesW-?{f2omjJAA=7oM*wVMb{(K_7CX+NM?~ z%Pl*i`cd0Vm#+0Owi(Ei&4Cm~kL1l!&}TBLF!kVCr>3U*Qoa5Zhd0+tt~DpdM%W|K z=OzA1lPq2#Ch?fa%kpK-CmKii+!v+&}oODWFB`)avWl60#k&w*%!-M4`g!pmn_-L zOvW;Oncg%f+DXipOE%wzutXKnwIu{l&7!;cI`tX4_T8EM_L(5@-|*8lGc+<2G?uta8bf0pv9?M6j7qpE zf3glA(w1SZq%b!x3dE!#x}6Gd&2&;IP2XbGEo-BsI3nfT-5(PztX4LLU_peVQZu6W+_Qb(D&Q@PFJVJsurx`c`t4 zBsrZ^~4jm+V?&D@IHIbKYIS%)0`yIlTO>PZNq6aFEU<1am*OZND-oBlqsfhiv1hW z5Q}N8q$I_~qFPL@hfMZ~D2xN~7`0w~i$kMp*N)zQZ&gD>)xBch`jL_Kp*Q#mRb`cB zl?XpZ2gVzRF>kO9AE9>--|QAZ+4c$x&j@J_*l&Xmn^%T7;COdxE$kXq?QmV9_CQXi(+(sFC^ zE7B$ltfaXOiy^McFAx1K@8S(zPNg6H{S`_>-m&g!t5y__TyHN2&)Qb%X|BDXAcGG7N-?z}-VZOv$3* zN0;A!{KTxxTN4#}jZdE~=jAX4igiqLqh#L>qMJSl3t$3HwvK`in{e1Vgs*~=twZ$Y zYzAav4(OdnvF21K89T}gFc$y>UPP=pkLBhT<*8URf~nzXsu4^z1J5a`X>e_!D}K3s zdQ;)jS-o=`I|oLCJ2u_g+u$B^2)N#=E_=oT;l5P<*PPSOfPO~ zD66-}xo;iYOyiOGNqMzXjWeXiso*qD1s^8398Z}XPZK*YkeustBtk1z+7S$~3OHnD z9J+u}6veugLe67QyE3NE$H@Cf92)-FiYRWgb=eSzE~Kj5if+EH?xH{<9&KWczGI$)^D)pYB4EuEBVy148}q-El-t(FXer4QwSHwH7Ts!TuKsfJF5P4)SJ7+9 zH;SHQ#q8 zOpx^mUJ217OgqSnhNjjsf>+WaQ8iWY>d2ar?FEjZDHXg*%FE65s%Jv3^7VVq>H?gFoqrB2yUaKv?nqq6P1;~*1(2h-#51~z?6%x2OV9D9Harw3`j81XK+is4WM{tDTIQtc4avgYvJDEPqV2mdbo;)LACvci};3oT$GHN#f6aJEdlfR_kroW`%wAK{d^p_Nz{1pW^{guIROrGEq z_V3hwP5XCp`=-C5XtEG?v`bnJh+#vIuY)be5l}(H`WU9LM+UKxPMPaVNy#PGK9V|Q zI8=~a_Zbnu2|5kH($Dfaj-(b0{WaO%(A`JUY@wvt)l+CTEC@$rA008)$oi3ET_|mR zRo}Gri3SU$t*_cQZGA->vh@{>O7B9ob zU?dmLTRq@QaLr72sQvXkZ{0NA(thri$$UwB>}pIDS(xBgvh@{Q+4^+On+ZCJDCGpa zm~hyGoK6)1gP=%O5im_gdbIz%vgjepL-SujP~%3inxf%S-e?=mwdaV|pnWNBhaeJ# zkEFfmbRaZkA?`wYz{LMZ=8^wrEb6TnEel8IwP=lV=0CPC6j&~wi4|#Q=yA0W(ZInE9I|fR7|9h0|z?Y4ZM-)6b2~O)x!RJkaQyfXb7Z4od zng;ri4014cAlqS&(xk0K#A)k?iAu86ndD5QfTYKlkNgPa+GrJNX)-J+nn#A0>LUx6 zzVq9WxeN69!KH6pa@}>8@Kt>Ng}ZlO82S!P4oBNe%tjwE%olJ+L$V%i7GTwvZsoBNLhJAK`4q}61srD9@@rl?iK#--tpfP&azE8_J=2pUBStIRB%(z zC^+pIDfoOEJ9K+1|^Ie;FF9;<2a(7rT;f|U|Uq#*61Jxeymqrmp< z*z~d4%rD`+J319{v}dA-m*gYT2v>0jtT!pTJTyJ(}YD!{! zY_wHpIXovOCbh`p&G(Uvs;aE0kcNqAmykhH;q*f<_`EXTg#T-9tR?r9xubvD9B5cx zT%M45?&XD>t7tM54^(ly*ky8#4C+>Oq+P_((rQxC!Qp_X!`C+a9XDd zet9HZycWi5b{H?}pH2&^`jR4H`cBZjJ6xZ5-W;E%*G+2wxp4cvR9~)2w{?Jq zLil96@;j{w`i{A8#eFJ7>k;ru7S8FDM0)7SI3W<4F?=uDy6T{8Dk(ks5Tc;~FR7^s z&&xff4y0DQQIW_mJv5RyU)@&VYnvg#5)Vfp$C2&F{K4-cmG7vKJ`LNE0wtQcCEk*&I z83ZkK&@4m6Fs9_ofvYCx%Vn_iugaH`>2j~`*s-Z=G%XO{TGBBvFnh)Hy7W~&_B}gx z>;eIKQSv&XMe2%B^1jAECF#;REYR!7Z3$1#c&~#J5c1TgJ{0q$MUG z=E7MKg2vN5DF}ACIl^4wd^t_PSKNxntca&ttr(2qMq-IrEcyyebC)jj^gW@4&jj4Dd8;uSXEWSU;NX3gUAzBGMsP*3YC=ap;A zn*P+&Qx#}$57ef=?V*JJXY&h#&>EtB@tBL;7&wREiQ2fjhmM9rj(j0`_G zQ^uUI#%K#>(i)>|G&7&-%h%fV*AKR|OkHn#XLWYY8ow=a$qCj5o#TYgNrzNItk0Q( z5GdtOVLL|WYvq=N;y$ocIM$be=vIa|!;_PR=hA#Bei`eNv2#+0sZOU1@Rh5SZET_e zKvLoT%?*tkI@^z{3!O8+tD?`@kiMy>w6lO0%n8_Ax6hq>dRxoZZhv~m!jhtb>K6X{ z!meUlZ2LTtsS;1An|_OlfNp|2G65$WS;5;T!AWN+czYyV%4P-cjDVL*o0Z_2eleeE zv_A~`knKot*t)1swr&-^QUBA4ei6@I8h#FPOxn7tz1il6JBHkt9B$tN1;=9xIWFZIS#Uc&G8YOY+%)XFV)A|YD2t;+Aqd=z@2v6Q14m+wuTD1Mc4aa^djzN!vZt%0-)33+DaKrR+|N)$71QS49u9p*o^8KRpq5< zt*8j>;*Wvq&>QV5PXa!g8M(X_`ML zP}EuQ%5;Bwl@{H$eePf+XJyrU3JZ|0NQXK2r{FJQvoJ47TUOCxAWVyiHBuX>Lb#X$ zL6pZu`*>?XFT+B`sFm3-5Ipm`vooe4Pp(64 z9FQy_(jz<5ON&%yX+Ct^aTOzTQq$_{axS`PkU!gA(b<>T9y_D7vON@#ywP~L81@R; zsrl?sz@8c_tQHC+BA%$SM?BCUYPYRV=7C6Lkju-tWDne$VQ4R;aOgmcY6Iu5s7&_D zF||sz!7;WP@PcmmfAyClAqF6mVQ5a9HZ6aeABKOfPiBwgNsFJ(U?5x&VE|Q4$spmM zp1NUMM@jX(JurioZ``>$>$ zq_On<-y@pqZ8%XwJgR6<>sY}%BjH+97(U}ak@d;uRQ0eP1PHAT(`;vV|gwt?$u(P5pJcn<^pkBCsXl!s+V^!~8`(i0uM1tdT#INWK2N2!+$4Sw8ub;5AmB#?>xL5r%a=eleqUunUVEx%?f;KcqEK>K9opPV7$^wd5NZ!d*LfW1B z@p^vy`p|C&2l)k%HS5+x)(ncjtjB)`#=pokL)dhUK$7VQ}p2y_ABT` z4XiR0h|YAx+p(`r=AR1^01Jyno~ zopu?{2dX$MD19585hTwB-lRG^_|p3IQR;}Gun(dOd1z3qU;o8<>Tn=(E62YOD(XUW zq4JicUQuHhP;+tk_lIlQs|K%aAzp)goWg6e&a>dPIF=De#Rw#?nNl>xn@nl3X_ILC zEGTNR5=AEniDrQZ`r}c=i?Sc$#SLM2E%Af_?<6>g1l|?1fL|QT4R~T>Y;g9;Hk4w5 zd@f@W;~vxsgblXXHx5r$DN7CQ^ZQ9!(vNFZ{O9 zX@BLl(95#TK2|VeFr#8- zp7_@I=^2!li*{fEy$76a_{|3Ttz>U0`SF%1Kd8<%a$Kkbxm`@`if88>#!YfzIL6Cv zm2lJ-)h1l#NxvT2W8_KiG4iAbQ6~y@926Idv&Y8BJZTJs&Qi)S}+pysex!wTG_3=YQIPCx$nQ$;gFn&t;cC ziMs?S8%XJNC!P9WV{-eev!Bj|P`;F*$KemKPQ=|PRtFy8(Bu;pNOyn9({R+k>_Jkz zv7~&Et*_2VArVXF5TvOO=Y$HFP)MVLdP<W#!7Gg#@PP3Tj(MKrA>o27z2kpTN4I1Oyqbom!3P^OY?HzOE6X zPIR6RN7vkRtV<>?hs`m{RaDGEsSS@Fh>e$qnKIJqYu`98K9=9BY%_y#R#pcLdPv?t z9N(bRfWb4gmz4^7Bp^d7B5%JBK{aA}BX2)35jVqUCuSiDIDy3@u7>4P&Ez|IsASvoz3RX6q(C!dekb6E0cpK#~MXebE>~E%y&h(y|$=T zX5@C;swUrtwlM$6y#60YFrh*7EXjjjqICoh4r32%8|H}Mljkn7e&pO`$+=VY<=mO= zQ>;g}BlJ0FZGy*R!aUFu2`Agw;Ei5_!y+y@{08#+ixCURfrmaj&>jm-&hm1zGVL6B z{V9-ST3-y(`khE#CpS;pljf3!puQ4SK%Yiyoj{&LA+!h3mv4p~}*T^m8DJU0ZEdS-Lc51M%etMl)7EyJ+dHde zm}iHY1_#^P@M8~DR0I&Yn!CLX_{<8Nh`4C`!kI;d)dAkp9$eUN``7TCo;ky^z`7s7 zS+6XN{iyq>G)QH>s6AAyYizrz8!FWCYc~ieeIdh+Ia)oX+`p`>2N2 zQv0Y5ADcwHFWE?=c%8AS4AfxVOxaD2paenOVF-Owunlu8rawF=Qb7XS(k!@j)zNVSTIXdb- zADxGvELp#DpD#FG$+gM*e4K58y>XB9YvGg8J`J215=4qk!JBX{a2nBYEQvv6kP>F_ zmO+buS7m?qT$uFdoHIDo9Qq?_xOps9-z=960jjDRu(SLB|G(OjI`fhti3f zAZ)l|#4}M*a46_Oh%qEM<2hRI$JPS{#=m(Fftiq7HoV@4jI(1vN!n@lWM5`(5pt_> zb&gA3og-HRbfvi(%q@3JKiO%O#)_#iQU@HqH9b8WM@QC{%$k*3nBEguJXAC2swnE8 zIkP>ZtUiD7K*Ox&ra9P~u&h60$A+f-Vvj36D!sL-w?DUFW_^BPyE7^=t7c|LuZSA# zADA=#p`0T~0Dc+rGSwalrTJrv7}o@lD}xy!Lc{nmuFXjC$eTfGD5ai652ZDSgU}!4 z)YZk==ZsWr*)n+JjSrO0h;7g8>*UGpPd;hHQSu>#;?Y+os|!>|aY`A()n#;ygpS72 zIRo;V(Q8Z$8%5X12F=WXm#_XymS^ug6n?CtPQxA37L80*6!xFg)^FPMzypKtz4zdQ z&V(Nas?VNv3H5);tjiN%7lDUqydUB1Ctlu&-)wp@ZURkF@v0OvUR4G;xR-KasSYfp zW`2r#_Goa(lcmU2`7h*VGCT7L#wi}C*gOeAVq$BO;fU_bGz?{0q#A#b2hI&!bK*SY z(Vh!@$s=H{ryPh3cqu|_?21#YPVx|iX!+d}+W@#30Fe>i8+x7`UcP4h3pp-{zm%UX z7%%jMv45iAjnj+XInnU5Gwi2JH`5G0-4 z$&@C@K!{0^AsQqB;ZzJo8?ZRkR#?Q0$YU0wH_MkAu}?Gy2P{N9PEwRjo*>aL^#-wVH|OG z;?wWWy+OZW&UX=YZ|2X@LZi3oF|7veq|p9iLKLzGz{1Gw)W|_FHV)8M3QI}B5eiDg zN>&F9jAI5kO^Ra&+Kp9hqQ7bOtU02!s`tv3XNij5v8#mslh3~R@sGdweE;|t{OWIi zh;HN>lYL6wnFj#nm|i;pm%O0hos;0Sh828vBs`*>Zh~V>O`uH{I!j>wfG;ivX=OAh zWwFA=lyPBH#F4QiXA&Jkt4PKXU3qK*TNF4)(e&*1Mh9l;jr~i1@T1W^$bYtmHqD>E zX*~4lOL)5-tAY>bL;DWq4Y(3wAuDOKRC-j%${B@jLKd-U6!Qw0V{%8WrbZpk;J+F? z%#!PB`(sdy(l=vzryup zyh_2%c$JB(s!!|j=M(iK+NV`E(T>@^5w9}wk-ofYU-|Ot&K#^KoS{I}k<>J3ftKW^ zo>VjHb{~0U8mulRsFXe@TcNybpq?}F4vFEhGqv_{!mmDYH!bW*N27LDf9KIioU)8T8xbz7r z_fz?VcT*1AME-NSbXF-+ktrRb-cDR4)hvLMlz8qnAd=qr+4%a9Cq8OoSr3kr?=LfZZE!e&+Bgj^XmW@Bi;N8F~vCDe6K zc!$WZ7?P?(R((}%<+gl%yMbeDlGxPg^8v3?U&(a3RnmiOox*6_G$YN-G)}@y8>x7w z#4^st-M?`WdCL>ZH)y2pAh8U002=`)uyj}n^O#9-j_|yY{#EqvkDM1ePhr5%iG)je zsOk^M`O@I`7vtSWJ+SGUar^#t0f#G1Shf5(q2myWh{Cm#DlfVebE{c#uPEKyrdw?K zIx{^F0>Wa68bKy(PCqkl{_s$;^o%1PiKhD>S0ClcsDVX+Y31eJovnfL=JHu}H6_LV z+??#JX{jlmSX)|=ZkRDu6f3T&GWUSe$N?nR#f%#(^3%TNWa6j#d@{>|yh2fS&NRQ;vX>hg>gm59Y+LU4HIDy0@Gu!`;U!qh-f@NqL@JTo>nyu~Ax-A}d{rg-ZaGR}Ej0 z>~2J&eRKi9n)=#{Zn8!31rM$}@lx!rEncu}P2%3rzs2V2Ku47A(m4lgE0?Z4zP+V0 zqqV;Molt-VVe%X0f7Y{3K0jc0#QIeTZC{E5wOH9j>#gpypadlmkZ8yA#XBFSeF~T3GyvQ{9P67l&M-cy#r%1^Bqz&&* zsRv~)EwX9R-K01d1&hpFS`O=IBO!45WwxlBZyp2=lu>K+i+oz~&UhB6AnG}m<~EQ#$6BLjI^Z0czcvp9+-_zE#f#fHE}sED2>5|&&*ah^J%Cl zQsD3h-PuBqt1GIiAL#Dx_mtYFJ31=@-Tu9}3#YJwug;t{%~w66vNCHRE8Ux2*w%P| z?bYdNF=e^gg&+ZFa4Bf;bI^eD4b1It&h zUXGLg6?JtLxHzi&l})QwZR)P6sjR69QJ50A;4TMwUlqOci2P1y5yTqkK2OR43}XOM zn?vt6NYrffrVS@9dpVC^82Sb7cIh6!9PP;G=*&33l*XhFQgdc|+8`Wxx*wD?em+TU zH7s%>G&G6}hvYzT)KfCr9<5#?O%{6Zc|3#rco@Bwe7Gp4UmxWxd=688E9uf-UoP4J@owZPKd1pAr z3l*=Ojpv)$aA44H6*0*4Lb%3`R~Bh8IP-#}x-l!|d1d!U#e*H9$Kql|baYPi0B5rr z>uPHdu`Vl_iJ)^%mb@xH#gPziXU)7h0Ybf|yat0K+b2JtbTIe;F#trxDgc(DWV$(n zZtTI`QYy5JI~GW20gU?oZ2O4Ao$hqU581Q5m7cPs&8G)X-;z|~sq|*sgYmAEbYJ4K zxGY~Fdq&C*{OL^R^z1-S#?$T`q~YgeKQgVy>;EUO3cd8td{57`N3tc@{d7i;r{GZN zdERuWz|$l7fO1-*vEGUp-mEbVmmg_93>|?C#x?B5fl?H)HtqrNBD%sX*uAh=eDZ$! zA~roQ*OQlL!)&I~^-wYltL%;nB*x3Fa8p!7yk+92rxZ5%7gl%9?Vi12>4hDEn!b$Y zybZk@wstqR4%ct&vA5QhSCqFkI;)zyw>rz}3jBrDH7n_TAJsh{aD5m4`jnNm! zUq`dxCD|_B-OR5BK;S)`k#Jf|3ci5gpb*v12QN({Z4r$-Jz&xyxn0Bkasr|@Tlq;O zEOL;Tne3U4m1VQhyGZDYS?y?yFc>`jszv8JvXj%YlX?^KvYK;dIyRn8w@~Ar?$G<* zEX`tZ72fOZ&h;M({m8&MU#|1(fD_jFzZGt{@*VR_cX?CZE0~^^BQQcR32K_-t;Uop z>QA&_206ABtcn3EW(iuFKK{fDC1uXaTvwah@8Ii$;)F9_{&|@*x!W~*&&AKt6)EWZ zR5VNX>2{sB0INctM^SyL83ngNQ#SVmpL?%N2x#a9V3E4kK#KLO6A=qLf)^$VRJFOpO)?cMoi60tgWtI z1{r`kojQSh%5~x%4)97%1wv`b2-sm};)Tz5$#K4aEWV^r__xo0C&5!v(Ad2gmkvL@ z<#^sbes@7(0{WBfOMbZn4I2Cc2{Ul`pjIt@1AOw}vmqA+Ye}3>H!oj+u_6ftyQ%At ze_}&CbrF3+ee1Yr%f{yV{ZPkc{?d{edA_V^Wd6h>=QrBMGI$1Ajd`>eC6DdUK|nfg zC-c7{Nt2zT}yLKlFTh3=AzBAA_h0Yx%LJMGyku?S& zLv(Z<%_~T4aDOhgZX~ZsFA>NR@J5b#aRaSJNk_opSd6{Vjc7 zyPYosx6vI&>ya}~@6YfB+}OOf1Xc4gg=rM%oH%7PO8GS}3+6QlqC)vd1UWf=)0{)3~L8TOSMZnBb!(EjrPj zU`tWtpgp>eb9x{jqrhnjT=pi>h8ZtL(K5uUJvP}9n_^GN^?=AQJAkROyCUqIrNQq= zBZrTZk#ipe*Sk}U96{$gkVbu^eTA{nxs9)}ub@@Uej_fOy#KaC=TgVN{SEbdHZFXd z+OftERnao#IOB0R4|_Klp~cE@@hcoz()ci&t$dUi3*s>$AvPAXl%9Y^7#ojwTiAg( zZX%7b;hc|&0p4*2X=NlWfzZ#qx@^swWuZ64Bf-$8H8th0zDg9>ymIAcDaSCCHPr}? zgdnBG;kSU#UBHLl=2VY6Upa2l;nK)AEU9Q)6y&{tz?SsSgbkOOo9Xk)6iB}#*W-)< zYt|^4ZO#Se*_7sPBNpJODDe1`_!S0n?@Q61tKq~35bS|Szvwvw$t`ER{8E`Sr6-If z;feGI?E>JL1UWk^KyO{P;e~_5A9@ti*GA)7N=#Y|ViwvcZGAziCMP46Ju5kLS~{M> z+aX{bJ7Tdg)iMgBI+=Jwygz857K?Mh~{(Zwd}K2JrH!6^nM_zeOwXN~%EPaPV)uDZ_XHRm3}~60r@!Sp)1XX9QmG z@JJy^Y5CQ*Ru0RSIp0%kE$R9aLK9||?*}VQO#WtIxN;$3XvgcZsvAz|EjoPn-^Q=H%~DsoVsWsdHmlwVtE0R7<>d8i{`%L> zme}afJ-~7%?v_~qIwmnUdr<|cJ%qFkuRnncqSgwnWSfnTMIp(Fma?%sUKp-OiygIP zG7b0umE;rZ*fLC9BfI7pT86i6_WpH^QdlTeE(~|FOD+tD7YZwh)-Y0|$PIvGlgC_+ zbY}SzSK6)*25+=pefC9HUwzS%b?cVUkNw`;Xi0>Ae&e^Fdi2q!dgUd{>ZWCZ{9mv+ z<|q}k!YpBF;+6?)?<3r(Q8tPpZNULy5tHY^!OQ8=N`*nBTp1Z*0dmSm;WENOH)iDr zh7#QAiilWXXR z6J5wDg8=fS1)JfXBed(0;~wb}v$P zXtRP+w;(7S4#pfAj&vssGx=Idt2YX>zLo`4ZRrg z$^yP8k=|Gky63db85#1LQ_!XYlR@v6iX;2M2BQ^ZhA00t-cKrNzYw&~Li^eDHnb$pEwPIBNLoWzM0+cAaPsWQBv3QaEO#YpeJm`yV23Mpfp7s6v&I-ebBMhWfw_yGmOA5Cxl*U}>mxxb% z0^@Gs$(zv?un;X<>^43#wBE%;P=^7F+;z0!3_z;&}HEJf$&dCujG^VKQJX ziv+AXm^qvUnrAhVLta>r?}twcx11dEXxz?a(OC;`NrctxK_DyA&BjY0znPm}rIkiF z+%1)HmNm*vUu3aYOmfpJ?3N|UOgcFcY`4pSc5+4tp+`G#fv zG4UI|!Z8nSiMbRAbph`Z%w;A;g|M!1evno&t~qDiiW@~}MN7HMR*-%mD-|v=*0fyG z;YorJoa!C(w>>k+503DT=jm}B{l0v7!Bd>$AIAO}xR7ts09@P*H=87KocX0NPc(!N zDGD6gGHp*aBVwv16!YVR$1Dh zw&<)(e_Ceppe3%dd6sKUNh_bFP`lvp*mYCyA%TDYk zd~#+cjjSeZDx(M=`Eo2krr?M6?);+nLqC!{XZlwO(gQFi46?vxRgzdaN2X%|;t(28 z76y4pbCIhx^m$PFS`jZ7Q~nkrH`-i`SIRZ?h}~w$SVSX6AmnJM#2hkQc!XRd8AFl= zKf8E8-w}EvNampoiS&$Lp^QSJDbCBw_jhK~7!X~K#+hZ@6$L|!7K|pemC*EZ=f=wi z((>~1bol)i=}<@7cVW{H>w;%(*bshgruov*tig`{=(wlunDW}uS#zRyOB)I*Lf$bd z*gcZA=J!N~JEvjGBb{YJvL6SOC{!ffWK>5w2r*xZlOi``s(1- z6St%WUVAMd`$_=~aLFtpvxuV0`&~hVJ|p%Zxn0-UDD_EmiCiV8a+r^}>opl&ip1(5 z?t5Jjao_8sbNhE+cirxZD_=wJNPoHt{gQv4&hRFIB;@pCQt9LkZc9NxY#k6lfN~`{ zG8n7s9Onz5%}J*aA6aF>Yh+kJF_fh$cjAmdg#5rvJ;$Zo#*6PY&&@!X8b=-Q&_Wk=8&avHlua-hV z4W68&Un1vhA^3%KvW%nPJOri{OiQsu#0;>*O8jBCfRbbsM+1o#s>PjyJmNGw6`3gmJ{bV=AfH+e-i8^ z28CRM5I7WZ8bu!YH`T~fG&;YmH6^9fm!6fC?(0lRX{`vIbc{N>Vp1qwgbMtA*O1jZ z>e#8o~$3&l0U%vY}0g+ln;xQjO?qpue zqL9O3iL!y-BqJfWz^<@-u&pW=54>x*6e;eJaIj4%#k4C@M@C* zTo~6!9sK#ie1ERm^UXlKC2Dr`?1&3RoZuJ^Mu(kW_5aN&*RSWf>qGtj zC-%^G&^;wzy!_4Bf@mrCTQth`x{BsqpZB4nG3_BlX&V4ndkcu9OWG?q)mL!IFXo(3 zJ8Tpc4L&mAuo(qM91`DEY?|7=L)J6fRd8xo!OeCR{P8dxGD)^0W4sb?ius~HxxZjh zu{7;WDCOmQ1a!LPDU7zRE2ITd5xaH5CgU8bHJb6)wq{`b8t84IP!+2qnVqL}cC+}xJ zx1)C3$Srp_bmT`_W^8I*Rok$>y>)1?wYv{TMsL04y6-Nw#>|P;OV%!1*L>7 zl=}d#xN9t}vFduDyk!wD^14!8zU$vB@TK|kAAr__v_ak?Udk1@=Z(amBlo;7<3G%Br5vi8XsOs4nM!qB{s|3CKLJ3h|h z+8=)AdA3Qbva8i<)urv~eYNUZNvmGGwu+lv&N*}D%sFSyln?WY zZ+uk^QC(8b{2`fq+S9R03tft&kjSU&;rAn==HD>RIxjSm@hOwJAO2Ou+tsC@_Xz9lIHB0v=GjxIM$})SMF1@a{v#5VI zGTUF&SzDK`tFxC?W(V}?wXH>!mN3%8mdc{mfwW8OjJmYiJ?4S#Pn|gNsqO*up4v2> zvF_5effE0HZ@+z?zl7{Wo$$5&3*c2ot7%>??Ap$y?b>kQ!Uj6Qu3aYiY5(kr>00CN zbmCj0zBNkwFYR)*H|*{2YplEB^16nL+D08Mp6%mXw{K_+p0^{dvA%9ul`q3z-sf|t zjrbrgHV^l%&D9x0^`qR7%$-U&y)U$9mz>_7y&+=4nTk<-swYQr{^IXfu^ZsdWV}i} zPtXqLvgQ~4JECFT?1zczpdlvGhbbMfBmR&FS}9oEp3NtVZd2TzU5QyE?AbthW8AR; zx+VXw2&HFHCPn>u@-;QWTIeAwYQ^JL%55G@ed$qphql14!->lr84RalFC-ewij+#fj*fnu`Hf9^2ZrD}8vxFQg@CvO{0BM3=6rK%$!L; z5diUeOw{ zzo}Ni+xTYPJ;y#C`5P+KJl_EGX#4<~)$sbGvB+iVdmJ{f_T%1ot$ylr6!=NJlX3YB z#$4Sq?7Pp9s~fm7uP=IDM5gm4XiuC&kwAa=O>~J*TAz;2x4?b*KP9JB4Ssbrlx9hT zKG<0VdlR|BiSUlJffR8ZXndY=b4sdWBm+A7E~x+g0Q!69E zj?R%tkgG_Y6O~iv>)XnXjCP%nB9GIc174p$=;esJ*Yb!+z~(L(g1k|PJ85QwSIkPwirL)B>w~M> zgXCxBcH7U1+%qw|X4!lHvvK3cWZgGbkBzSkk5!C5NBx$;ZzQ=I?WBQH5`7tg3&BB? zeHm@mbVx2SUq%=iPigPokN@_g)ZlM^ym8|-nB|ErD$>np@2`AZ8L$nWVq+)Q_ET-_ zj?5gp?Gzh(tYxnHgI^N4wc8ti`B`fH19@BI<+|F>d`25GkGlxGja2yDPh;GJU?^Sa z2iuCpu{^A zT~`97(O&KFW!P+N_&Vy_Paheibw<9ouJ-8BfnxvVTW{k)V$Up7|1p?l84#W1_}Pd) zc+t-+th!6t)=L(#trytx^BfCo>$Gab`bdk1Rf=}+`1=vjwf7_PIn*s#_v0V)PQCRO zk-O*-_)IhghRkD0#P6jjB3vR!tIS}K;4yWeJBk{n<}ehdVJ z5quE?gDfL9xH5B%nV)OWV7CHC4?-CQslojU+HdT!bv1o-AMVc>*_zv4IoCh&E9Nr| ztgNVTUP$+6^aRS+tQ<%uzDz@>7_2hIV8w6H)MBw(WAQ$TYfw2S%25nnS$Yo%;@-vQ zAh%{if?v|EO|$0=c5N_z&905XWBor%yY?wHC)u@6Un#e1+wE}lb=jST`51yN$*v7L z1X=RcbFpnLyX3I(yh!AN)C)F*x3#ov3-=8V_t87;@^jyY+_U>|=*ZO6k$&txr z`~&a`1Aesrp;9k~c7H9jyhee%N>uyV6!$4dB)Uvl!;fpoqn6za@n(0)VduG3!)_KJ`XCb~}- zu77hlfd#x^BTJHN$_AXpa;8l1j$!dYT)$M9oEF6OBS#OwFWJQX*pD*pJicE%05Zk+ zvuCn9wHSZ#NXR12A1E^_H)aBACA9ws9J#HVf>LlwrgM7<#%_m$g8Mm29K{8BmK+P> zrgH^u3Y0PnL;T4GyAzWtX7)}F^2aJD%%A$B1%dw9k0+NepQO-V2E%gFQ3#(+I$NJE z;p{ln?g&OlYDG-psH)yzD5gl}^y0gZAOVP*p~*(_sl9tiC-B^JkzaPb6~4dgm#A|e z&R&^NXA$uW*d?Lhh9o2G-I}2rl%gTUFoy}`G)#DL6}AofCy0W2Ve;m(9$CD}*?@Bn zz7Dg#DQBPy@)H~Q8;MiXGm*iXtIAf+^);84d>p!oUzZlI+Hk>o(!fy+jYCQq`qEDJ z?t1$f?A;}&+Pm9YTbipYE6QN(#wnQ+9KTDjcek_lxV<~R+2;1{v)iTzXboW`#0Q6>r#?AkGAO#(q+$&ERT zF#p@Vx_GI*`P|CkR6WiYF10%kPaCfQ%Fyr4kbxb*nP%4}TQVjy8zpA1Cv!44Zfzlv z7<42yUEHvp&5c`h7=RXIOya~{GHsICD-O2>yWxaQ@&pXF!%AV%!^HbyTjXm~Aw5%H zpfcd{9KW%{dK$YndXiw*c0spJ{^xwwkX<{d^@v!@!d_`x_y2B=M4G$GuAaQml5fi{ zN*^|))wJc8+18eIy-l4v|NIl*&d=dH_-oAJBKPOcL;pzLBt032)e?4XbPb|Hf?b;o z?lHS|yg$jBBgmZ_FP}Uwqu5rK*H2w3D6>y(qL(gv|Fh-yg$#G_ggvS3iK6uY}Q@)f54O5`iNUTl;09JBFw9k)ymzx*=O;&ptRCL)tY zwS93eNgrhE22X(J)G_b`Zt&Ka0ZeuqQJ!y-;Q{I4<8y)nPTh@D%kRzViw2wdhP-PS zTj#_bIc=ch`+n|sX@O0Sw~R*dZ5M1Va3PW4XrsZER!SJFv#gvGK?eYy7;tfeHMdto z;1y~BPoV43$oj6z#z^E373s4xcR%sPRr*_Q(U;_tCIIs4CJb80tMBshM?n7+mt5$x zWawg`g4j+<7#iH}K@Sb|^^#?={gkEBGHe~@BFvID=(AfTH4Yh7X0w|YTAzP(#&t7Uy)92A z*`42CdMQoNb`xH>O$zIfxDOM$v_Atq(R6-i#N$YS!G+R6oYA`(8z6xUN-ILk+(m`( zj7fo`0en($v5$=NZU#hzK(JJ@^dr!X&NH5x#t*3g$q;ZSIy!KUbg*Nfucy5=7?2vI z`fS+kJbq6Gge4E((&3nj-;HB5LW36HZ;{yKz#$|2iH1)N^1T=ivFn5?jqk$bS1Mcc zcJww*HX022`pM>rb^G^h>ujs*cGTr;=$jZe8w`z+`p{f}!l+&);-{YcZBMYSZG2bT zsdAj**7&Xy1Xvf=JQomwGLM01-$%@sqm_Q@+hhu6@I&~qPc7p;Kl7M9FDNF zkWNy@pJ+Pxu`H3UT+wLt=lEundL-Du%hS)!241qb4LsD<4v7v1llrHMx--(~M#`EO=B+m5}@aL|=Z#wfV)7fR@ z!zv+H&~N2${5LeJ&>y~(wHs|6HLMYAYjuC1y!+i*aW>7cF7LBjd+LHi)u?5yHLHh zjJ|0OL3kGJ$Nhdb^558*^YdmhyNmxO_{Yv+0tT>9u#@PISwh@g+);_xX#6OwI4+OQ zzzU1t35rrh$H7qySC41wO^A^euqm{4w<%8hz?(m3UsS*H+ArA3F_z6T#zxfl)wf5e zKY3`6?yTqMI`KQ|PbvH>7oN9#X!Lk4=B0-lE7EYfl8#pDjo{p}Ts>~W>SkbbWIL)v zJloOZPLy@=vPh#`I-I%iF}gaa61Yt`#hFkN=M`4d6Y*o5IO*Z``3mx*hdDj2d~bm_ z`8a2~>2$|AmH25+YnJc>!Dbi7Igf4n$nfw-Hf2p^#lG}y2?n?HWq(%u$u61t=(=?u zovN!7e>*zlP}|n-uI{aE>>sK@`>GlQuJdEC{SPEC>3k5F4zPBRT?s-glrK0xwUb*? zfJvjV$_P(n8+0S^+BOx_fmGrDNQM+zy5YfTAc_69D?dH8cXn!a@6@NSoO=1{tA6|2 z?X&Fj>dM*ezy0l1SHDbn<$OR%lUy>qgTZSzyv+MF|84v*@$?oX;1I|>I0Wu6dMcLQ zrln&JBK;BkdX|^((9(N(`gh=;Q_9ovo7V%%MS1v%$b&qcRs*WPP?SfyOUaR3%3lEr zBhuHvKEv+_OO3`%g=-uuCx0kev^6~s?h&O)o=$bf{j$UuOJif)B*v(Xy&#spO&j~C z@Nk>r)zTH+QT0yVH!n{wkEQQa@8;=G^7On|`fl|Oo{pJ{dJ1FddsRMn=l_eRKc=P2 zx^uL4-{9#l#nKOG{mkL%nX&Z4FJX8w+#y<_hP#VUaXcMo=(TiQ)|!wGe>5$fv|(C# zDF<0CgcOI$dAI+t>bV_$Okl$ABC@5$Kjih4{#tq3TGFGb7KDhZ{$be?a~pv6Z5|c zxSRO+#T?kA&4DL)I*nVTZ=-aa(e&|jFE%%&(oATw06XoXJlQ1WXUd96;g=_aO__|6 z=`!$9W|ZNf2VYaYg7cd=xM|#gsg3y!mrc6et;#TAu~{P1=zw=mAFn)r+NZ+lN@$^cbPH-3LdsU>M z{QW$g=v1U1o}c0A$9X!@sYt(Q9vU>17wJS_f|qQX7rX=#1llF|iu7%i4*1eMHi4c9 zz7wI*Jir$gLqo13Q!&ELJfF!U*n7ifXuOQzi!%)f=Y>-aM!=U`U@N(s2Npm9S1SO! zBwV$_4jig>6G+#ViRx-2@4uQ~kDlq5W?6U5#|cgU>DXA>L<# ztr*Kr6;zM0ck^_Dtw`UkI(fQ>rxR>N`d$?&D9`07PRkJLdtU+|yDVZd_*`(i2 zHW5sS)YO{sG-fvIHsYAGPFJOya5|k;&dM^s$3;lA=3sWDn@Ucd9poWIXI7$Ugab3y zO01GNUlPOU$EFfc%6_l~*Up(UPlHZM1kbf^~dzRx+te2bSdpRxK z!_x_OB7K{dZsF;~w?+C<6;7Ps6QC*7L*o?bJ5{Vq7+)Pvr}2sO-D(z3xASxwmq_2M zA_e7pcslWAk$#TW?if#}aftK-TKY$LI?=L7KRh4e^?aJA6D^DMi>PMQ5BF%+qseYNK6Rbq~P8B;S)HB4>305L~w_3r|=?s0TLa-9)d(~>5{vc1M zv5WM>+8Xp2Pp7eq^o!=Pnxp1ZBK-)`2YI@Xx3&p+OFf^bQ$I!e zPKwnJT>qJ;Q-4JI-jhf{J+#IRa#|DV2Q;~DJ5Q&6iuA+t`Mmrgo=*J~=@-q5{UzT& z(0K=*F6&mv=x$7gBfL;~S+`oG&qEe~Tv!p43kfd^_aEGR=Z6|4jQDas`95Fv|c z@R$62UZjFOb6GK2J|{eYA8B|%S&oM#$^suKtKkD>IX)80#^FGCL0JtiD9iD(cv->^ z%4+yQS&pA2$^uU)tKkV{Ii8j%3w)uhhA))m_*$YY@P@J)-cXj~ZSk@~*8cxx@MIZW zlBEXlxeDmHuosrzdLl~)AEW4140({0WoQv(xoI4FbDU<{M9Og}e6&~-WuV_0lBeZ4 z=pAB(z*nlo18ftNObt9X1qC)eZH1)IIQt6ev}01+PzI6xhFT`)I||T@hT*n@J9=_+ zbG^A9pEcX(DK$YymUCQj* z?rm)zkNTl}v?GvP-!dFgkGLyF!nxrQ=tppmms|=vqeXIuN;6UbX}F1_w+wn;#(;4} zsZ%Dh98PHb@?jw*|Ad?pxiN^t+R%z*e=-zwm79BO^??oJPes@>1NqMXeDFcW$XZJ9 z5$8SL1blo1A38)!clH(FFug)2*o7NRHEAf(n1`ESy`#*&(GIN1+rt{L43( zz#hkA6JeC&79GaXCok^60Lgg?d4VR_Gh!qc4YdOd!Yr!!ST_Wj+I{cVotFkX>(_OS z>?v%^o(Q(L1*(r6X%2RGonN*2oJjvphtAMiTiNGtuC4KuRTQN;%lpdxY5q#u#-YD+ z^K;PezX_fPKYySM*u$9?g$)Cs{P0sX?msMq;ulw#BdoH36&w-Zxn_hUFK+h=1_MU- zL3Zf*uIkq<0K!A#}d1qd0#uRjPjk4b&>YArV&s+ z7{!itC;uqx#eK|#9|d;xzaY-=yHFBm!(S^o9*YRV(#Q|gMahW!9TwRUixb(+xR z-re{{bTf^Q4DJ&l;;>@!X%6t<`EFaOf=S1Dr`X^%vJA18TNc}{!A~97!&(8aUFcRV zbiX-y4d5(`#ybdUs4dIt!-W=sQ~~3wg6M(MQ3a$k`iQ1Dbf8l;E0phtuY?P%{)v0&E_q zPB0H^Ww#Lqif4Ch@RX&z5DMb6r&iy#b=fQOT?2(hC-1<=OOHLKsu%}{3uu|{Eh%6% zA{vu9H%n&loJJ^%F^z6xNeB>yBqGpQk|;$q8B3y4{Fg%2;1|)Es5}o>-;Kx<8eld#t8tJXP>a zG^ZehbTz9sz`(&Y-W}uOV5Lc%R51M@oUNR8wmKMU4Xj)_HqhBW)<;ZrY@Gg8@r zQvh(X(A?8wT8Q%xe8JYiYn`ih5Tg|u9SavQq8=+;X#>e(|E%nsoo#Drdr2H^x+)xM zW+Q3{YxV@@Kq~k--R%i)pmY)WMsulcg5nQ{4!F>z$uVeyZX3<^xDAjIAj)uOQsIV< zmXfbPooL)TwEMt;%?%R}vRKjZaBuJML^CVv+0}W&rI+98b*U$rZgOH|d}?a^E;lyx z0%z}|KZR0$$Wd5;U=Ct=n*&Ch*o41US!zRyn%rbHUTk9;mOvd1uHemmgxO z>fc7ENJc4fv1g2qH6s%j_V!*larowe$w(L7i`x|#byJ^&zZ9J%&X6iYWn}e}>4pW- zA6)*&87`C3L9;wyR0hi+vPCQ+y77;^_23R}XX9nnpJSi@Qr;SH^PK|&>b-e%)^sCe zpAYzW5zm(DMzw$gEzk`z1-x^S42W9WoMt5yJ2v2pt`x?oP9v|_Pg$iM9$xz-`-GLm)3Ls zvYj`$S_(Es{HrE^eC0(KT=S7zpJGa6ZGT6&co?f8#yC5|0&)_oU2sofY(Y1Hv4Rx z0cB&wMP@}e0v8h9)r3qT31D+(tMXR4XmR#(>LHx@{d|gGhQxyMM=>n+IgRX{y4qlO z!4Cb-HM`DjA57P!54NAX>sH{mpgUMw7x~HbaB;Y!>648urPo|=?80z+d-%d*Kj|kV zH*u_9g>Hg(a#=?qyX<$6py<}mV|xMp8$5F$1Hm^&OCJ>a`+1aN{iGk$(l-h{p_m_v z2kAdR34?AuLLP8yYAzI^Xh+PScVhX2GS8QfC*~`?vHXpxJYR|Ca~{w8`7-(`>(;BH z{~XRd{SDE7=_7nxd_T|o^R(#C|3me`4@7H^?`6pTD?cal|DK?sLVvm3uH+&g7HS%g zB~6ScO^ip>Px@QbkN(Wzli(@RTSPjZ+j=6oU6J1t%ik{YV{j1p!?FAwi{{7c-?eCd zN9_4Mi{_t*BEK`1zhlw-c>TK;$=54&vFGIqH5ih?8UY7wc z84BS^$TV}pW(h58a{AW!F!BC*xH+*LZf_Rlw`=Lp(y}atc(O>}p{4%@=|u_k@6ytL zj`Th*bBOYLwDkW$dO#uGE7JER)St_3oFaX{mOhX28GNl0=@*K0sc%90k;Hm9Zx-b* z*3y55@3g+EPYf(DBA5ElWm{ezvTs6pkxsIjkcqecjmxw#SxMxREGY7~i~N`@ zDDp`b6!|+A&5zf=Ytej?1;z7w7R{$MUF7duG@oQak-vY@e3JD<{)Hlc!T93&M;6QH zvY>eW;>Gg0EGY8(#GWC!el81&{L#ho6ZRAbEgb%_J%xa8e9v)6w7(!fKK}C;=!2v$4MIlb%T^Pja5<^M2`;gmjuCBK^Xo`s3+Gqq_`X-GM_J24 zTKO6%2BP)2A%6oV%!vF}KGwu_d1^kn?2$8;jpD$KH5vUoZN2fb951IW8^x6y@_KTA z6W3$WU*b~)3pen0rn2!q>^fuFC~n=lJ!dQ%#kX6x?~G-mG~m|lKU3Klp53~O7nDuJ z+aW-n;?KzPci@i4q)qc4=}+_Df29q<}Q#pF5LdV(^Lrp#0 z9uwpJ+hGHw7zjFqJWzCcIv&7{O2e=dkWGdH{*T~{ZH~z#NjW7sh=E|To3e4_#wZzF zDY%R>8uVYd=SR(y6rWNYziC0}|K($2%jw;PR~p;NcB-FHKQVlG-$4rfkB|SU%c;YE z8m$z-=*!`UVJ7_$-ARN2(@FC_9w14<)joW?pNUYe?(v?`ka^TzAgek&FAl zhG;x>&<9gIuPP}V>M`RK27{qrLSP(Ng%NdfL9iBd2EiC8Sjz}03oFY#uA%~d9c2}( zGN!_oAXJxtGkOKRH7Se}&HqWa(6Nlc(f;EhK@}wqn)9dj=e)uyZqfHBb~#M ziLpuc(NL4Ixvi$M?qGQ&7@Eq|rL7t1m~HH7uB)x>?=p3Thd_2Nz>n?_O9jOudUrYx zYz;#^PP|gEtsNXaWIhPfCB12|KT4^%)5B^cNCun%+&%}}husTLPaD)KL9DBbsPFU@!3yD_}1b6@`V8R1vIbuCFaD zFD!FAQAK_gXD{3oqPazY-V@0^D>^|r(2{@s_r8|VzLuT~cJ92Or=@SSW#6*CA+j0` z^^HtTj*d=Fjifcrw)M|snQSxdkqsLn?K3u0)=YofY!kb)tvMsm-X6$kZd1R|*PheS z+uM=T-iIL)4d5deVbQfu<779tq~^Xu_S??I2=R(IM!@4U@pLPVZ{Bc zL3p2NHXd&DTHsccdkXURUHYJgeztl6@^8LmZvy(0cst$Y0`D0|PDVPyi%=&u=I#QS z5_3lk0>*E1A?8l^xtJ`bOwQPi6x_yYX>71s+%nlu9883@Y4Wq2M#0i`%<0*(d`zeQ z(z7MT)aC2I(0v80WBtiz`8V}>Y?VkJOFB=7e%>+v5B4;>0L@u}?8Vlg>4Y_ChD~H; zQ8%*+vhp2vlhtHNH;XmMjIQ#t93_Ad}g*69GJJB^~GGWb`;>Y%gv1MEJW;(Wqdo{(9bA0cvyrbbw z4J;*C)uTSw!0Wshbv}XdIcUvEGbgV()3G&Y3TuwXZ_$~xHAgHti7QScdqREpiY`}4 zTXu7LUrR^0u6FKwtvefQ4f#kaYv`yi>+y{8Ha`KFK8iNWXzryV{y&1~>!qT?q_t*e zbm2oMw6$i2)*8Rpi3^$1&9GaSu`;6>2lJw9jaX{pQ;*CqG2ZG%IP!e2&t2SHR9QLQ zHdN*E)=u;^gmP*v<)z-T@#>!x=IZhas$HFpRjw){gb-hSyQkQdn_pUF2sYB3x(%>; zp2MH7FXlzomr2fAr)Yi2NRO>A1T|RAgCaDP;>Ja%k*6P+ZfWVzU2$xv>92pU8)7Zb za@gDh*gTFlN-0V;oXG%|%nZbClgV*S!P(KB*L^Ki*s4Wv{mSOTB)-H@7&WDdSDneRXbL7mW89 zeO{iYRA1`J%rL$}^dd|5qJQ5&|L9IHtSu=E*A@W)v9`>>unKdtEp~;L*KRaxYfDfp zErL}pxD5Iaqcd$&BcmC*(ypeyiEej!xtrdG@xI|Bp8Cla7U*hf>92FU^e#95z}$EM zxcM^rmAIbR7Fkaw`Fes`vdDT8%S&2MXcF0QN)i@k<=400(abEju;1`N^gm0ptEzpQ{t^03lnJQ?JX#j-BrB;Y4lp98#)vuViP zv?mZTD{0FDS5$3p5Z@6XAbL&?T|+K*1Znm(Tma48&O}tSxUGFLj{Lixp1wZ3!+3G7 zyk=@@_3EjqH4W=J*Wv$$+>~7W2kk+GW{ z-PRnhkJpAvu454rwHa?TLX3Uz%V~Y%akyRBbU;;)Q&wZJcPpT1$VBJ`ow=E_N2@*XC8&TFL`GWyP+FffmD{Gq13~ zVa&;GaAX;?bIVO-6qSP%^t3ZfG%yp9j`8 zn<-u?WWy|k^r7&&QBLee3`rv!y#J;ZwY8nf!BG3_zpM-G|H2nA(#HUkhf#kq$tLjX z)n#VjtUT)H*Awwzno(IQ86da<(t}`hA}o0#KmZ2tUGV-GWB!q+I@4KDjPsVRyg>S^ z_oV34Tt&5=109BbS6+duK*=j9Fg@LPUT$tnU1KkXjd4GMei5zFoLu)6!G49m9nQ-@ zj^2;Hb2*>(If4!2PPl>)m<^MzUNm!c2vc_fo5rmHf(@O9O}`f&X z6?uSBybVJgz5AT?qqVH5wYI6JuB5+;}VkA_%5=uorz7V!##)kC0b!JB(S z-5PHuKq_DvF?l~O<%4A`#hG~^#eau0zuV_`7P-4yTDsjuPJdrVQAtS=y-QrK5_%h& zD@)74nSF)+`g(t%51hHYw6gidJiF1J$3H$<;7D;4@DHK^+Jw@$hz4-;Am|c&Swrnk zlJTLNsvd`aZRP|YZ8YgA!VB%h8YXGNC^NG)f>lG)a!c{1D09^twG_>M<;GH1t-aLN_LuPkIIWp1gBdF{17+!wT7CL`EraO$AH2$2m&aH zY&i)i{{mZPTTjE6(J!Jmnv>89CCkO&#n{#AUHuioa>cq^NK2M{ z0N@ggfW%=f78}76ml{ekLJcmKyE>Gf%%7!ymp`-5MAzF>7&LSktdBj7zAvrASeKx~ zSiiImBh68nb(T5|*0-1v13C;g%%0&qB3XyAHbI9mo2bJ`!{zm-=rGuDT#Lb^dr{{T z7+)^wFw)bKbr|bnI*eJ;VL)%5mJc0lTyLJh3b8LIB?eaIBrOITZrzzzo4-Jj!K6{`|D7H~cAZ|40X+ub^*qPHl6s7_T#qrkK#xI?TT+j~ zhU1zHCfx(r&|1K?1eh+YxX6-;s~8|ZFHn=Ojj74kb2YgKYVtIw$rB~zL`4oZ6i|`} z8`<5DFRjCnuU%A!fvJh>$Kd;GqUR?bQrJ?Evdvn z-=N0;ZoZ7Zok@?emg_MvQx?%<#PX8#7&MU<>M@2{cldm+$speS8NlT!(DNB}8S4^s z8DJMnv2S7*|DWhGSl_>>%z!RK;}L}OrF9vYqml$Zk)X=}%_CL}R+}Wr`7CuA?5(Ah z88YZkk_UimiVX+J64-}aCtt=lC(2RugjGD?O&MGK8^44q~~M#8m<{3puc4QfE;xnBM)f|SBwcXsYgUd$lN+8f1oTQa}l?b_wg`JT(S+z69xlfKBX9N zc8CH9W*KO_3Mmd8H0r{_RfTm|{Eiu3ep&s;HVy#PKR?3uKvSTg{>djydT8Ov{h<)* z3Ybg*2x@A8ADqGQBt;n_Zk&zyi#Q0b@SUM3Ax*3fW#Ra@q{ESQ9H=39Q~QWA6tD$w zL75#;&nYY|l$9&5JURF>!dL&}WsDEZ28IbG+ro5LVc=UuV}p^%S0~l$sF3-vf^VoX^XkuBVt_dXrh2G>nJN&tZ5Zh{NWHs@7=7 z1<4Mh|BI~`zhHl11n-MmFKMdyLT_*A#EDRE?-wc_#v?M$9!fG;H|&We(qJf@mMWVv zEa`|%W-{)`#9=H7;0RRXR^F5pvVY4m=oh!oA>J^aLC9eQr^NM+SQWHaYDpy{ov+ay zHiFWYuT((ePRxbCOj|~}?G=|*!1G2g zZKjO_>HYh4Xxa%dL;nnqwpb}>pjXmSKDu#QFD-*Y7ndFcN=u3h>An#u$b#gPgQJG% z9Y6s-fXm3B45GdQ9ApO}#}_~+(NTv7RKS7C?y@S2&2CMga40jD%in4X(t9_>;L zKqt!H!3^+|SOeND2K~lm10oAr{hL0!dOFyz zn0aJ`p4-gKijzOLq^v?Al{d@Joa|-Oc!b)TUnv*P-;1_<M^B55>%nowDnFHl&S0sDEp{Z79oWiDuc9q+Kn&VetX_4uN=7Z&Q_F0TaTd64{?~h@L6i< z1#&b6X&I2df{!Ipmc^VwZgdG^IQ7d6V<>4?e~-G}VV6Ue(`gdv<&ZWdNSl|FaKOhE zl}TmgL25%9fR9){WUo@GKh(?b(u02r1-Jm$74f@qd7VK=j0lIj@d#Y0z+UF)$nuDh zdQvKt@T=9lo|M!gVNHVqQ#-&pk!`k+LOnRKRG#28f>4P?4RwQoNW)54ospAy|ilnW;tI$3>C;@PRT1(OIt#7 zDJ<0pix7r!H5n<6WneKu^d^dyZOW95=`7W3Ox>Agfg~rJSJPiJznRx8FL${}c&x7S z`&?dJ2rBF30fDNfW?+@ZS%PsE;uKJwbZsajgQX}oW;P*icdCNLgPaGe$wfiY?I(vq zi93UsQ%&aWxVcT?0y_57h|te({lU%$VZy1r?rQFTcnm6+)0Kt@UsqG^_j#PfLh7=l zLF{shal^}st|H>rZOzRU@nDqb_~VdpGx*+a+0xbD6&l(b8eBWrb=$4YZS8?u?`{u; z+V7_EA2@K}f{fYlL64HTJUnqu>bdO0x>|p2!^s~t2g(5p8MG;IUJO{k+Lp@nk}ua` z%}6&O^gHR-Aeqpur?hrzqzQ&Uhgl47U2B%T!s;bQ)Sw98Kr&(ur%S&Qqeee2+7Uq= z94Cf{FFk6>>dtNqIl>li@m7nyqbDa^vVE?^)_rW%O204F`S7vhPj20B8EGo^HKw0@ zQP&YH8JN`Vl;6MjoP)!=NJBm~e-jKK=R>#Tq-Zxqg}Jyk16>B8rlG@vSh*+(vd)w8 za!HQVMR4+toE?52XiuE4-~at9l-44K%eK+?jsU z{{1(l@7%8MZg9CP_3HkVh`+I0zn!J6Fth8;D>_yYw}`^h1JCD1XN2E_RECg;tFtjRfrN^D+ zbYzpWvEJpR0{IM^A0yzeAl`z_=awBdKGHJ1y(FzGbKjaZXj zBAdA@-P>pj+Y8&u>$1XyD+bJ6w)QNCtux2|1%Fd@jag1Tcw(SCE2}| z#ew{jzf5hZF6myDvR!`f54EQM!O+pD{=PNsAI9DwXb59jfkmSV>qIW*Nrm+N zC(O9U*F=J5K6nK=+n5keduJNMh9PCO5iEnd)%8R5P4W@#=sCkMZ%9W_;jo#)1=8NX zG3m+F6bUYQ2@e<%j2`l6Kk=IQqak!(K{-v#inmP9BcAsn&miPqzTcmh=dbWrl$YiC z^1O%}f|t$X$^h%Z4N*}`KEnQy49ndMt!`h`BZzONjgVQ`9lGjG(;GKVZ>rXP>QiI= z{bS*9e_dyPf9LD$%dbxC-@g68#I>Cr9i3`vu(AAtvZn6l{^ss)g~J3#Hva}z}q&{}K;x68`RP-MLiD;oTh;_ObA5Z=+aBZ2K13{kdc^V_oAd0AfSm&W+wv(D#N z_*DolVtZs?;5$X(GU+zHHa2nTC0QnLz}k+SaHcE2{+WGy(sHu8kLgmUW-7~vQu{`Z z`t_xcUVr>aw(Z=k!G>Z_U55Jh*7I(VG0oT|`woupD{#y%Z~7&Nr&Ivhq7$-3y|gSe zhU;(@T}`!|ib(~f4noHeiI^A`Y$=s)(= z{@T>g&{Xpq8%~_~!LPUdyoC++vl{g^diSeOvO#LA32pfR#|mjUG(gu18)RmNhZdaO zaUm9zQV5qXr!wp)K&%Es6pUtb^cYP=86+G~tH+B|AU3g}I|I!GK%bvJXuAyVjFpEr zj1Dfa(I*(R-6`j*^?j*ZHtQ`Dt>)HUgSU)y7mWpPPWi=u8PnviJYlLTV3+MI81He{ z_EfpLHUS61F!THcdgY3r#7W$8J*S}+E>FQ<@Ja!V%HFi~_PB~6yBfE;OmNaiFM zUWO+y+2ByK5ot}NDYtY}D7A>0Qc6LTvGf9Z*cKhvyB{nneT3wj2k*)GoCim>kaq}8DrGfsr08=>$85m_^EPmTq* zu4RIbvREekJTp_bOKEBR)*jCNK+joku2Te+FM61*1cI&~a9SuRJ{lOJMyxzOr-3J%&);{;`cQdnX?VT)Beece-HubM; z8l$-Fww|)Gp4-^w$giiSJ`y4HfljLNQHinSNTuY>2|pAt6&eK?i`m4d;&w2Sq^?U+ zX)!J+hpN~Lc0#W-;*xPFLy)J%n{ITs`(r}w>r<0>y}5Dwj*U0}<~O&{QIuPb9Xr;) zwx2EAvvK2&wf+CoRM%C9S&DwugXfK-UyZoS?hhezAv#rLlJ!O+D-zwyP(}g3ccy|? z^vsBj70yvW4IwCAH^)Qzk3az?M6s&Vl&5R!!!%F0Q?90828 zt);0w(2g-S+N#`DW$+a%M2t<%Z3VhD0v+Oc`Gs)A84E2o&_t0cO1SF#v5TS|6o6fS z`Rd8Krd8G&uh*YdY_NH~J*~|Zr9~xq`8lPTx<*H2qGN?)T~)>099YPP+5VN*S8*uG z=_o8h;SOIzPib>bL9X3Ng##sBgY_-{qdvo~U0<{Q9payH-UGjN+>ik!Tq=a26l@%5 zW2D#7#R{gF%mR%$ZFYeZp)fC$3awB=(~5638?YBrFd;EQtUTbCJR+MN5s5jsw6WWM zammB2ed-D3)%7(z%-;WIz2)eI`sMwJT5-;cRyHz8Mi)0hQDT8(E2nS7>uuTlHvatNCtvF6?^%oY&xVH|7hlmq zYM1!BSj%n~>sK``NS2IrBic48JFq6{8F+fs+G4Y2DVdov40n9o1(5brEg7<6OjWk0 zF>NI~(^IQMzS7dd!cups+vTM743_{#tv2x$En8dBAQR&sQ3HQBI-Im8L;z|;C3NB~ zv(9eQ6+M=oD@@&;N?VI@RAFVxu(730eWV$im3+f^Gi&YnfZeX{`JiW}=bbxn|cc_1EF>_FcQsCf$ViFvj^c-X?riurI~zNVWrT6Z0}YC1G08 zrX$&uY3L+JVEC#BAUG5bzo_lwQ11|MQV1G2IC?xC9H9bgBB;xV=}RdGVjI*QLVvar zf50ywvV-3jVD%(jnOGoBTNIiy48tbH4V1Jx1o^fEb65~J2;6DBE_lUf2mi!u%|rZ) z`p4#>E#a%eTlfd+K*Q6L1uSU=pl^8Gs3TpmH{cEE?fPl9S-q1zs;=1llIf-CzeoPQ zNO>9MZ2_+x#qHB5dnen>QX+q!q$dF9X#iW1mvhXzLM2@6#ua){XV5yglG;ZoX7Y8& zl?}PEmhIR=#agExy!1)qCsurO^|JxKUrw$Ux~@g*6?PGmiHIam0nIY%B*w;oJXxWx zs<@7e-ZInbKlw$%B)=&Wc-#eg%%rH>iSvrQYh}nz*r04k5sMEUfJ)0u!`31;(^41A zG$I&nwyA$$KmX(l;TQ1#lbmj#J8zP%mp$w!l23V8+JeYU@8V>bm2B%^tgV_T7o+!sXd zJ|ABu))Abz;JyHM@&%xNGca^N*d_bj)4Hd-UR(1Tlx8#P7fRU0>Q$K4X6dLr&fbKY z(+62`Bs5r8Xg7gxurZJw`HD-rovFqYFc(?Bnty?w5ql6QCYSsDbZ*e!=x?a0%J=1a zON&uWuE*;!8}cffX~RlJhWHsHcuvy&<^c=M?FTBxM;S28+&+U+HMH3iC6C+;zKOZ)xu8XBt{2|JTxW-S+Z=vtj?Y5(6=3ZWT5jz~KGv1E8w}U- z*xk+7g}To@eE8h%&~>lYbqa3P#q;VNagTcB3rMlziAC3zXG%LF+Dz~;A> zO|Yk?)Iab`Z{-6gZx-;74Wf=Py%sYk(Sx4c3!6* zQ84fi9L{D}oU%==VrJ|&UssR)^PlX>*X0ymZ_B)#LgvPkfI(A9_%IQ@-Hj0F6V| zVuODjG4fqfAk<*SzC>#QjnhFlao|a}8t0yLWbM#N%k6f%%kHc|AP)n;Xl!^S|1hLA?hK`EV&RCy z^Rah{Z&wq_(57|iI>?V{>BnhPnt?uISC8|EE-qd1IQH7^2Pzcs1s8>|-xRr^X&84E zWQSTt3w1^wzW&C>I=1cPhf~#!O;eu%mG>YX@_NiaT66MXXRKwi*to+xRzlQk(=I4x zp=(RgGjS^n^=)`O9WG4DTpBj^v^~>?-MGjjvJBB*V316y1QB}H2!$s%sNzwA#=q1W zWcO41cBY01Za$wcKi^`JBwwwsrm{TWo9}^nBhLa~7t+uH2&tY7@Otjutm#JJrsU3| zeLD~AAZeVKHudq7Y`3jgF*b%bdum)Q96vfUGs8ZnCE@!FYumPQ<2HJ;%WzHPzC#^{ z@LxR^O>GhhK&p{qnCPxcz(+lH%>ArF;G`Z1NyDmZNZpmm^cm2ACS%2xo~4-0%A7UD zg5@g#Gp&n0xCqEZ4MwU#NyN{;(Q@eDZ0+cx+q3JM;QGmA#ras$*O%(|4zw|p9O*!AUcL_u)1|%w*Lga zGo7P8^lxYaYSpF3<0>sqJU%5DLucD`58VT z$;(A(Afz6zW04`&bA);E(Zhy#LI|x>RYlTGa=%=Kc5pTa+Fvw-6FLaig)mCUP7=PH zjU;A!{cr~{LiBP3{csCm=hw|Nu#M_*7TL%eFq)eZhXw#7j)kARlZXRDD}&)Mx&{i? z@c0VKvuM|eOE&VYIuh%#2n8`DhEEtFK1dqERvICT)Tzg5gzC?Dd+QJ@`JY(xl5oK# zK#q%G(1EI8%`iIf)wnLPzu)GVV1HC?8YZa!?Z8Dx0xr;Hjtkm{z=H#t2ri=1^3SmR z3tZS5?WmtQ7(TI=YG2S%c0G-Q_gtU?Rb>Mg9dTSxGeE-#;e*hgwB-@FusIN72MTE? zhzpLbzu~B05%su0g<)s8`^E@Xd}90whuf2vJGqzPB-CV0(pG(^;5oZshI`VWDkq#xRd#k~4HAHDca{Sb6P@!JfK=cRGKCQb>c7}cW*)Sg5X zr&goUM`>cy>aP-LC0iPYK5if8FKqJwErTW<@GZ!fv9ZD|28rxkC~7xbv-`Nf$gxT5 zKQy5M5tI!ww;1zp_?WM285?V9T^|gtZ@o^m%6`vB*^XDZVydHKszMtu(NjWSs0aMQ zUYUrBa7}_HU0j_cXf|1McwfXUhh!#fY<8{&Z`6>%&J ic91of+qS5#7L*2<`2$ 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 I;_>(Y0jZsLY5)KL literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" "b/Variant \342\200\224 1.0/app/src/main/res/font/ia_writer_quattro_regular_italic.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..a213e85256524aef1db0fbe292957a688beee061 GIT binary patch literal 105028 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

c=#BG5wKw1iP;RoSb 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 C#Ah@B literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" new file mode 100644 index 0000000..2f8431b --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" @@ -0,0 +1,5 @@ + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" new file mode 100644 index 0000000..af9e637 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" new file mode 100644 index 0000000..af9e637 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" new file mode 100644 index 0000000..2f8431b --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" @@ -0,0 +1,5 @@ + + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher.png" new file mode 100644 index 0000000000000000000000000000000000000000..a571e60098c92c2baca8a5df62f2929cbff01b52 GIT binary patch literal 3593 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 P00000NkvXXu0mjfP=x?Y literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" new file mode 100644 index 0000000000000000000000000000000000000000..b94c1ed5984ee5f0fff4ddf2e42bc68162ddcf42 GIT binary patch literal 1971 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 FV1fnoo5TPB literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..07db04c2b305a44d58b9c215106527f4f17e3248 GIT binary patch literal 4051 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 FV1i_s-MRn( literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..61da551c5594a1f9d26193983d2cd69189014603 GIT binary patch literal 5339 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..efe98251295a1adbb2866d25150253c5f9d25898 GIT binary patch literal 2556 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 h>B_8 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..5d4b7d914520d78d18cd9995c85e777e62fba953 GIT binary patch literal 5820 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" new file mode 100644 index 0000000000000000000000000000000000000000..66f997cefa1855fa5338d67086755d2f5d65cf2c GIT binary patch literal 4335 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..ad3ace1506e05f808b51482877692b9dee0d5c48 GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..b216f2d313cc673d8b8c4da591c174ebed52795c GIT binary patch literal 11873 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 1.0/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..28da01a04b39672fc7887d8a5125a07c0c03cde5 GIT binary patch literal 13086 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/app/src/main/res/values/colors.xml" "b/Variant \342\200\224 1.0/app/src/main/res/values/colors.xml" new file mode 100644 index 0000000..a66aa6b --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/values/colors.xml" @@ -0,0 +1,4 @@ + + + #203b46 + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/values/splash.xml" "b/Variant \342\200\224 1.0/app/src/main/res/values/splash.xml" new file mode 100644 index 0000000..b712912 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/values/splash.xml" @@ -0,0 +1,8 @@ + + + + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/values/strings.xml" "b/Variant \342\200\224 1.0/app/src/main/res/values/strings.xml" new file mode 100644 index 0000000..d0e88cc --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/values/strings.xml" @@ -0,0 +1,3 @@ + + Devkit Wallet + diff --git "a/Variant \342\200\224 1.0/app/src/main/res/values/themes.xml" "b/Variant \342\200\224 1.0/app/src/main/res/values/themes.xml" new file mode 100644 index 0000000..69b1d7e --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/main/res/values/themes.xml" @@ -0,0 +1,7 @@ + + + + diff --git "a/Variant \342\200\224 1.0/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" "b/Variant \342\200\224 1.0/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" new file mode 100644 index 0000000..636ec13 --- /dev/null +++ "b/Variant \342\200\224 1.0/app/src/test/java/org/bitcoindevkit/devkitwallet/ExampleUnitTest.kt" @@ -0,0 +1,11 @@ +package org.bitcoindevkit.devkitwallet + +import org.junit.Assert.assertEquals +import org.junit.Test + +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git "a/Variant \342\200\224 1.0/gradle.properties" "b/Variant \342\200\224 1.0/gradle.properties" new file mode 100644 index 0000000..000bd8f --- /dev/null +++ "b/Variant \342\200\224 1.0/gradle.properties" @@ -0,0 +1,5 @@ +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +android.useAndroidX=true +android.enableJetifier=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false diff --git "a/Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.jar" "b/Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa GIT binary patch literal 59536 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 QuEJmfE|#`Dqx|px0L@K;Y5)KL literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.properties" "b/Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.properties" new file mode 100644 index 0000000..1e2fbf0 --- /dev/null +++ "b/Variant \342\200\224 1.0/gradle/wrapper/gradle-wrapper.properties" @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git "a/Variant \342\200\224 1.0/gradlew" "b/Variant \342\200\224 1.0/gradlew" new file mode 100755 index 0000000..744e882 --- /dev/null +++ "b/Variant \342\200\224 1.0/gradlew" @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git "a/Variant \342\200\224 1.0/gradlew.bat" "b/Variant \342\200\224 1.0/gradlew.bat" new file mode 100644 index 0000000..107acd3 --- /dev/null +++ "b/Variant \342\200\224 1.0/gradlew.bat" @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git "a/Variant \342\200\224 1.0/justfile" "b/Variant \342\200\224 1.0/justfile" new file mode 100644 index 0000000..c11adf2 --- /dev/null +++ "b/Variant \342\200\224 1.0/justfile" @@ -0,0 +1,8 @@ +@list: + just --list + +check: + ./gradlew ktlintCheck + +format: + ./gradlew ktlintFormat diff --git "a/Variant \342\200\224 1.0/settings.gradle.kts" "b/Variant \342\200\224 1.0/settings.gradle.kts" new file mode 100644 index 0000000..7d091f4 --- /dev/null +++ "b/Variant \342\200\224 1.0/settings.gradle.kts" @@ -0,0 +1,23 @@ +rootProject.name = "Devkit Wallet" +include("app") + +pluginManagement { + repositories { + google() + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + + // Snapshots repository + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + + // Local Maven (~/.m2/repository/) + // mavenLocal() + } +} From cc5cbbd6260b95f9fd1c30999bdf7a9e9b4c25ba Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Sun, 31 Aug 2025 09:27:16 -0400 Subject: [PATCH 4/4] chore: add 0.30 variant to default branch --- "Variant \342\200\224 0.30/.gitignore" | 19 + .../app/build.gradle.kts" | 81 + .../app/proguard-rules.pro" | 21 + .../app/src/main/AndroidManifest.xml" | 28 + .../app/src/main/assets/bip39-english.txt" | 2048 +++++++++++++++++ .../src/main/ic_launcher_bdk-playstore.png" | Bin 0 -> 17223 bytes .../devkitwallet/DevkitWalletActivity.kt" | 63 + .../devkitwallet/DevkitWalletApplication.kt" | 29 + .../devkitwallet/domain/ElectrumServer.kt" | 76 + .../devkitwallet/domain/Repository.kt" | 61 + .../devkitwallet/domain/Wallet.kt" | 214 ++ .../navigation/CreateWalletNavigation.kt" | 58 + .../navigation/HomeNavigation.kt" | 91 + .../navigation/WalletNavigation.kt" | 134 ++ .../goldenraven/devkitwallet/ui/Screen.kt" | 26 + .../ui/components/LoadingAnimation.kt" | 73 + .../ui/components/NeutralButton.kt" | 36 + .../ui/components/SecondaryScreensAppBar.kt" | 44 + .../ui/components/TransactionCards.kt" | 102 + .../devkitwallet/ui/screens/WalletRoot.kt" | 124 + .../ui/screens/drawer/AboutScreen.kt" | 75 + .../ui/screens/drawer/ElectrumScreen.kt" | 133 ++ .../screens/drawer/RecoveryPhraseScreen.kt" | 60 + .../ui/screens/intro/WalletChoiceScreen.kt" | 132 ++ .../ui/screens/intro/WalletRecoveryScreen.kt" | 205 ++ .../ui/screens/wallet/RBFScreen.kt" | 298 +++ .../ui/screens/wallet/ReceiveScreen.kt" | 168 ++ .../ui/screens/wallet/SendScreen.kt" | 615 +++++ .../ui/screens/wallet/TransactionScreen.kt" | 211 ++ .../ui/screens/wallet/TransactionsScreen.kt" | 114 + .../ui/screens/wallet/WalletHomeScreen.kt" | 275 +++ .../ui/theme/DevkitWalletColors.kt" | 18 + .../devkitwallet/ui/theme/Fonts.kt" | 36 + .../devkitwallet/ui/theme/Theme.kt" | 19 + .../devkitwallet/ui/theme/Type.kt" | 23 + .../devkitwallet/utils/FormatInBtc.kt" | 12 + .../utils/SharedPreferencesManager.kt" | 45 + .../devkitwallet/utils/Timestamps.kt" | 17 + .../viewmodels/AddressViewModel.kt" | 22 + .../viewmodels/WalletViewModel.kt" | 49 + .../drawable-v24/ic_launcher_foreground.xml" | 30 + .../app/src/main/res/drawable/bdk_logo.xml" | 24 + .../src/main/res/drawable/faucet_address.png" | Bin 0 -> 1389 bytes .../main/res/drawable/ic_bitcoin_logo.xml" | 12 + .../res/drawable/ic_launcher_background.xml" | 170 ++ .../drawable/ic_launcher_bdk_background.xml" | 9 + .../drawable/ic_launcher_bdk_foreground.xml" | 29 + .../res/drawable/ic_round_expand_more_24.xml" | 5 + .../main/res/drawable/ic_testnet_logo.xml" | 12 + .../src/main/res/drawable/launch_screen.xml" | 11 + .../app/src/main/res/font/fira_mono.ttf" | Bin 0 -> 174596 bytes .../src/main/res/font/fira_mono_medium.ttf" | Bin 0 -> 173428 bytes .../main/res/font/jetbrains_mono_light.ttf" | Bin 0 -> 276452 bytes .../main/res/font/jetbrains_mono_regular.ttf" | Bin 0 -> 273900 bytes .../res/font/jetbrains_mono_semibold.ttf" | Bin 0 -> 277092 bytes .../res/mipmap-anydpi-v26/ic_launcher.xml" | 5 + .../mipmap-anydpi-v26/ic_launcher_bdk.xml" | 5 + .../ic_launcher_bdk_round.xml" | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml" | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png" | Bin 0 -> 3593 bytes .../main/res/mipmap-hdpi/ic_launcher_bdk.png" | Bin 0 -> 1971 bytes .../mipmap-hdpi/ic_launcher_bdk_round.png" | Bin 0 -> 4051 bytes .../res/mipmap-hdpi/ic_launcher_round.png" | Bin 0 -> 5339 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png" | Bin 0 -> 2636 bytes .../main/res/mipmap-mdpi/ic_launcher_bdk.png" | Bin 0 -> 1277 bytes .../mipmap-mdpi/ic_launcher_bdk_round.png" | Bin 0 -> 2556 bytes .../res/mipmap-mdpi/ic_launcher_round.png" | Bin 0 -> 3388 bytes .../main/res/mipmap-xhdpi/ic_launcher.png" | Bin 0 -> 4926 bytes .../res/mipmap-xhdpi/ic_launcher_bdk.png" | Bin 0 -> 2675 bytes .../mipmap-xhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 5820 bytes .../res/mipmap-xhdpi/ic_launcher_round.png" | Bin 0 -> 7472 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png" | Bin 0 -> 7909 bytes .../res/mipmap-xxhdpi/ic_launcher_bdk.png" | Bin 0 -> 4335 bytes .../mipmap-xxhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 9177 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png" | Bin 0 -> 11873 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png" | Bin 0 -> 10652 bytes .../res/mipmap-xxxhdpi/ic_launcher_bdk.png" | Bin 0 -> 5772 bytes .../mipmap-xxxhdpi/ic_launcher_bdk_round.png" | Bin 0 -> 13086 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png" | Bin 0 -> 16570 bytes .../app/src/main/res/values/colors.xml" | 4 + .../app/src/main/res/values/strings.xml" | 3 + .../app/src/main/res/values/themes.xml" | 11 + .../devkitwallet/ExampleUnitTest.kt" | 12 + "Variant \342\200\224 0.30/build.gradle.kts" | 4 + "Variant \342\200\224 0.30/gradle.properties" | 7 + .../gradle/wrapper/gradle-wrapper.jar" | Bin 0 -> 59536 bytes .../gradle/wrapper/gradle-wrapper.properties" | 5 + "Variant \342\200\224 0.30/gradlew" | 185 ++ "Variant \342\200\224 0.30/gradlew.bat" | 89 + .../settings.gradle.kts" | 23 + 90 files changed, 6520 insertions(+) create mode 100644 "Variant \342\200\224 0.30/.gitignore" create mode 100644 "Variant \342\200\224 0.30/app/build.gradle.kts" create mode 100644 "Variant \342\200\224 0.30/app/proguard-rules.pro" create mode 100644 "Variant \342\200\224 0.30/app/src/main/AndroidManifest.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/assets/bip39-english.txt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/ic_launcher_bdk-playstore.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/DevkitWalletActivity.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/DevkitWalletApplication.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/ElectrumServer.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Repository.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Wallet.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/CreateWalletNavigation.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/HomeNavigation.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/WalletNavigation.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/Screen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/LoadingAnimation.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/NeutralButton.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/SecondaryScreensAppBar.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/TransactionCards.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/WalletRoot.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/AboutScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/ElectrumScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/RecoveryPhraseScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletChoiceScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletRecoveryScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/RBFScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/ReceiveScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/SendScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionsScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/WalletHomeScreen.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/DevkitWalletColors.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Fonts.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Theme.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Type.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/FormatInBtc.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/SharedPreferencesManager.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/Timestamps.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/AddressViewModel.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/WalletViewModel.kt" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/bdk_logo.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/faucet_address.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/ic_bitcoin_logo.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_background.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_background.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/ic_round_expand_more_24.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/ic_testnet_logo.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/drawable/launch_screen.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/font/fira_mono.ttf" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/font/fira_mono_medium.ttf" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/font/jetbrains_mono_light.ttf" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/font/jetbrains_mono_regular.ttf" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/font/jetbrains_mono_semibold.ttf" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-mdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-mdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/values/colors.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/values/strings.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/main/res/values/themes.xml" create mode 100644 "Variant \342\200\224 0.30/app/src/test/java/com/goldenraven/devkitwallet/ExampleUnitTest.kt" create mode 100644 "Variant \342\200\224 0.30/build.gradle.kts" create mode 100644 "Variant \342\200\224 0.30/gradle.properties" create mode 100644 "Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.jar" create mode 100644 "Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.properties" create mode 100755 "Variant \342\200\224 0.30/gradlew" create mode 100644 "Variant \342\200\224 0.30/gradlew.bat" create mode 100644 "Variant \342\200\224 0.30/settings.gradle.kts" diff --git "a/Variant \342\200\224 0.30/.gitignore" "b/Variant \342\200\224 0.30/.gitignore" new file mode 100644 index 0000000..fe4a88b --- /dev/null +++ "b/Variant \342\200\224 0.30/.gitignore" @@ -0,0 +1,19 @@ +*.iml +.gradle +/.idea/ +.DS_Store +/build +/app/build/ +/captures +.externalNativeBuild +.cxx +app-simple-wallet/local.properties +app-advanced-features/local.properties +app-ui-only/local.properties +app-simple-wallet/app/build/ +app/build/ +app-ui-only/app/build/ +app-clean/ +.idea/ +local.properties +app.run.xml diff --git "a/Variant \342\200\224 0.30/app/build.gradle.kts" "b/Variant \342\200\224 0.30/app/build.gradle.kts" new file mode 100644 index 0000000..a8fdd0e --- /dev/null +++ "b/Variant \342\200\224 0.30/app/build.gradle.kts" @@ -0,0 +1,81 @@ +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") +} + +android { + compileSdk = 34 + + buildFeatures { + viewBinding = true + compose = true + } + + defaultConfig { + applicationId = "com.goldenraven.devkitwallet" + minSdk = 26 + targetSdk = 34 + versionCode = 1 + versionName = "v0.0.1" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + getByName("debug") { + isDebuggable = true + } + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = "1.8" + } + + composeOptions { + kotlinCompilerExtensionVersion = "1.5.5" + } + + namespace = "com.goldenraven.devkitwallet" +} + +dependencies { + // basic android dependencies + implementation ("org.jetbrains.kotlin:kotlin-stdlib:1.9.20") + implementation ("androidx.core:core-ktx:1.12.0") + implementation ("com.google.android.material:material:1.10.0") + + // compose + // Adding the Bill of Materials synchronizes dependencies in the androidx.compose namespace + // You can remove the library version in your dependency declarations + implementation(platform("androidx.compose:compose-bom:2023.06.01")) + implementation("androidx.compose.material:material") + implementation("androidx.compose.animation:animation") + implementation("androidx.compose.ui:ui-tooling") + implementation("androidx.compose.runtime:runtime-livedata") + implementation("androidx.compose.ui:ui") + implementation("androidx.compose.material3:material3") + implementation("androidx.activity:activity-compose") + implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.2") + // implementation("androidx.navigation:navigation-compose:2.4.1") + implementation("androidx.constraintlayout:constraintlayout-compose:1.0.1") + implementation("com.google.accompanist:accompanist-navigation-animation:0.23.1") + implementation("com.google.accompanist:accompanist-systemuicontroller:0.23.1") + + // toolbar + implementation("androidx.appcompat:appcompat:1.6.1") + + // bitcoindevkit + implementation("org.bitcoindevkit:bdk-android:0.30.0") + + // qr codes + implementation("com.google.zxing:core:3.4.1") + + // tests + testImplementation ("junit:junit:4.13.2") + androidTestImplementation ("androidx.test.ext:junit:1.1.5") + androidTestImplementation ("androidx.test.espresso:espresso-core:3.5.1") +} diff --git "a/Variant \342\200\224 0.30/app/proguard-rules.pro" "b/Variant \342\200\224 0.30/app/proguard-rules.pro" new file mode 100644 index 0000000..ff59496 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/proguard-rules.pro" @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle.kts. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/AndroidManifest.xml" "b/Variant \342\200\224 0.30/app/src/main/AndroidManifest.xml" new file mode 100644 index 0000000..ec27e45 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/AndroidManifest.xml" @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/assets/bip39-english.txt" "b/Variant \342\200\224 0.30/app/src/main/assets/bip39-english.txt" new file mode 100644 index 0000000..f78ccaf --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/assets/bip39-english.txt" @@ -0,0 +1,2048 @@ +abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/ic_launcher_bdk-playstore.png" "b/Variant \342\200\224 0.30/app/src/main/ic_launcher_bdk-playstore.png" new file mode 100644 index 0000000000000000000000000000000000000000..b834711c58d5564e384fb80fd17efb3b737b1608 GIT binary patch literal 17223 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 Unit = { walletCreateType -> + try { + // load up a wallet either from scratch or using a BIP39 recovery phrase + when (walletCreateType) { + // if we create a wallet from scratch we don't need a recovery phrase + is WalletCreateType.FROMSCRATCH -> Wallet.createWallet() + + is WalletCreateType.RECOVER -> Wallet.recoverWallet(walletCreateType.recoveryPhrase) + } + setContent { + DevkitTheme { + HomeNavigation() + } + } + } catch(e: Throwable) { + Log.i(TAG, "Could not build wallet: $e") + } + } + + if (Repository.doesWalletExist()) { + Wallet.loadExistingWallet() + setContent { + DevkitTheme { + HomeNavigation() + } + } + } else { + setContent { + DevkitTheme { + CreateWalletNavigation(onBuildWalletButtonClicked) + } + } + } + } +} + +sealed class WalletCreateType { + object FROMSCRATCH : WalletCreateType() + class RECOVER(val recoveryPhrase: String) : WalletCreateType() +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/DevkitWalletApplication.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/DevkitWalletApplication.kt" new file mode 100644 index 0000000..c420c31 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/DevkitWalletApplication.kt" @@ -0,0 +1,29 @@ +/* + * Copyright 2021 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet + +import android.app.Application +import android.content.Context +import com.goldenraven.devkitwallet.utils.SharedPreferencesManager +import com.goldenraven.devkitwallet.domain.Repository +import com.goldenraven.devkitwallet.domain.Wallet + +class DevkitWalletApplication : Application() { + override fun onCreate() { + super.onCreate() + + // initialize Wallet object (singleton) with path variable + Wallet.setPath(applicationContext.filesDir.toString()) + + // initialize shared preferences manager object (singleton) + val sharedPreferencesManager = SharedPreferencesManager( + sharedPreferences = applicationContext.getSharedPreferences("current_wallet", Context.MODE_PRIVATE) + ) + + // initialize Repository object with shared preferences + Repository.setSharedPreferences(sharedPreferencesManager) + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/ElectrumServer.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/ElectrumServer.kt" new file mode 100644 index 0000000..c064115 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/ElectrumServer.kt" @@ -0,0 +1,76 @@ +/* + * Copyright 2021-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.domain + +import android.util.Log +import org.bitcoindevkit.Blockchain +import org.bitcoindevkit.BlockchainConfig +import org.bitcoindevkit.ElectrumConfig + +private const val TAG = "ElectrumServer" + +class ElectrumServer { + private var useDefaultElectrum: Boolean = true + private var default: Blockchain + private var custom: Blockchain? = null + private var customElectrumURL: String + private val defaultElectrumURL = "ssl://electrum.blockstream.info:60002" + + init { + val blockchainConfig = BlockchainConfig.Electrum(ElectrumConfig( + url = defaultElectrumURL, + socks5 = null, + retry = 5u, + timeout = null, + stopGap = 10u, + validateDomain = true + )) + customElectrumURL = "" + default = Blockchain(blockchainConfig) + } + + val server: Blockchain + get() = if (useDefaultElectrum) this.default else this.custom!! + + // if you're looking to test different public Electrum servers we recommend these 3: + // ssl://electrum.blockstream.info:60002 + // tcp://electrum.blockstream.info:60001 + // tcp://testnet.aranguren.org:51001 + fun createCustomElectrum(electrumURL: String) { + customElectrumURL = electrumURL + val blockchainConfig = BlockchainConfig.Electrum(ElectrumConfig( + url = customElectrumURL, + socks5 = null, + retry = 5u, + timeout = null, + stopGap = 10u, + validateDomain = true + )) + custom = Blockchain(blockchainConfig) + useCustomElectrum() + Log.i(TAG, "New Electrum Server URL : $customElectrumURL") + } + + fun useCustomElectrum() { + useDefaultElectrum = false + } + + fun useDefaultElectrum() { + useDefaultElectrum = true + } + + fun isElectrumServerDefault(): Boolean { + return useDefaultElectrum + } + + fun getElectrumURL(): String { + return if (useDefaultElectrum) { + defaultElectrumURL + } else { + customElectrumURL + } + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Repository.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Repository.kt" new file mode 100644 index 0000000..7912603 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Repository.kt" @@ -0,0 +1,61 @@ +/* + * Copyright 2021-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.domain + +import android.util.Log +import com.goldenraven.devkitwallet.utils.SharedPreferencesManager + +private const val TAG = "Repository" + +object Repository { + + // shared preferences are a way to save/retrieve small pieces of data without building a database + private lateinit var sharedPreferencesManager: SharedPreferencesManager + + fun setSharedPreferences(sharedPrefManager: SharedPreferencesManager) { + sharedPreferencesManager = sharedPrefManager + } + + // take a look at shared preferences and see if the user already has a wallet saved on device + fun doesWalletExist(): Boolean { + val walletInitialized: Boolean = sharedPreferencesManager.walletInitialised + Log.i(TAG, "Value of walletInitialized at launch: $walletInitialized") + return walletInitialized + } + + // save the necessary data for wallet reconstruction in shared preferences + // upon application launch, the wallet can initialize itself using that data + fun saveWallet(path: String, descriptor: String, changeDescriptor: String) { + Log.i( + TAG, + "Saved wallet:\npath -> $path \ndescriptor -> $descriptor \nchange descriptor -> $changeDescriptor" + ) + sharedPreferencesManager.walletInitialised = true + sharedPreferencesManager.path = path + sharedPreferencesManager.descriptor = descriptor + sharedPreferencesManager.changeDescriptor = changeDescriptor + } + + fun saveMnemonic(mnemonic: String) { + Log.i(TAG, "The recovery phrase is: $mnemonic") + sharedPreferencesManager.mnemonic = mnemonic + } + + fun getMnemonic(): String { + return sharedPreferencesManager.mnemonic + } + + fun getInitialWalletData(): RequiredInitialWalletData { + val descriptor: String = sharedPreferencesManager.descriptor + val changeDescriptor: String = sharedPreferencesManager.changeDescriptor + return RequiredInitialWalletData(descriptor, changeDescriptor) + } +} + +data class RequiredInitialWalletData( + val descriptor: String, + val changeDescriptor: String +) diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Wallet.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Wallet.kt" new file mode 100644 index 0000000..a113631 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/domain/Wallet.kt" @@ -0,0 +1,214 @@ +/* + * Copyright 2021-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.domain + +import android.util.Log +import com.goldenraven.devkitwallet.ui.screens.wallet.Recipient +import org.bitcoindevkit.* +import org.bitcoindevkit.Wallet as BdkWallet + +private const val TAG = "Wallet" + +object Wallet { + + private lateinit var wallet: BdkWallet + private lateinit var path: String + private lateinit var electrumServer: ElectrumServer + // to use Esplora on regtest locally, use the following address + // private const val regtestEsploraUrl: String = "http://10.0.2.2:3002" + + object LogProgress: Progress { + override fun update(progress: Float, message: String?) { + Log.i(TAG, "Sync wallet") + } + } + + // setting the path requires the application context and is done once by the BdkSampleApplication class + fun setPath(path: String) { + Wallet.path = path + } + + private fun initialize( + descriptor: Descriptor, + changeDescriptor: Descriptor, + ) { + val database = DatabaseConfig.Sqlite(SqliteDbConfiguration("$path/bdk-sqlite")) + wallet = BdkWallet( + descriptor, + changeDescriptor, + Network.TESTNET, + database + ) + } + + fun createBlockchain() { + electrumServer = ElectrumServer() + Log.i(TAG, "Current electrum URL : ${electrumServer.getElectrumURL()}") + } + + fun changeElectrumServer(electrumURL: String) { + electrumServer.createCustomElectrum(electrumURL = electrumURL) + wallet.sync(electrumServer.server, LogProgress) + } + + fun createWallet() { + val mnemonic = Mnemonic(WordCount.WORDS12) + val bip32ExtendedRootKey = DescriptorSecretKey(Network.TESTNET, mnemonic, null) + val descriptor: Descriptor = Descriptor.newBip84(bip32ExtendedRootKey, KeychainKind.EXTERNAL, Network.TESTNET) + val changeDescriptor: Descriptor = Descriptor.newBip84(bip32ExtendedRootKey, KeychainKind.INTERNAL, Network.TESTNET) + initialize( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + ) + Repository.saveWallet(path, descriptor.asStringPrivate(), changeDescriptor.asStringPrivate()) + Repository.saveMnemonic(mnemonic.asString()) + } + + // only create BIP84 compatible wallets + private fun createExternalDescriptor(rootKey: DescriptorSecretKey): String { + val externalPath: DerivationPath = DerivationPath("m/84h/1h/0h/0") + val externalDescriptor = "wpkh(${rootKey.extend(externalPath).asString()})" + Log.i(TAG, "Descriptor for receive addresses is $externalDescriptor") + return externalDescriptor + } + + private fun createInternalDescriptor(rootKey: DescriptorSecretKey): String { + val internalPath: DerivationPath = DerivationPath("m/84h/1h/0h/1") + val internalDescriptor = "wpkh(${rootKey.extend(internalPath).asString()})" + Log.i(TAG, "Descriptor for change addresses is $internalDescriptor") + return internalDescriptor + } + + // if the wallet already exists, its descriptors are stored in shared preferences + fun loadExistingWallet() { + val initialWalletData: RequiredInitialWalletData = Repository.getInitialWalletData() + Log.i(TAG, "Loading existing wallet with descriptor: ${initialWalletData.descriptor}") + Log.i(TAG, "Loading existing wallet with change descriptor: ${initialWalletData.changeDescriptor}") + initialize( + descriptor = Descriptor(initialWalletData.descriptor, Network.TESTNET), + changeDescriptor = Descriptor(initialWalletData.changeDescriptor, Network.TESTNET), + ) + } + + fun recoverWallet(recoveryPhrase: String) { + val mnemonic = Mnemonic.fromString(recoveryPhrase) + val bip32ExtendedRootKey = DescriptorSecretKey(Network.TESTNET, mnemonic, null) + val descriptor: Descriptor = Descriptor.newBip84(bip32ExtendedRootKey, KeychainKind.EXTERNAL, Network.TESTNET) + val changeDescriptor: Descriptor = Descriptor.newBip84(bip32ExtendedRootKey, KeychainKind.INTERNAL, Network.TESTNET) + initialize( + descriptor = descriptor, + changeDescriptor = changeDescriptor, + ) + Repository.saveWallet(path, descriptor.asStringPrivate(), changeDescriptor.asStringPrivate()) + Repository.saveMnemonic(mnemonic.asString()) + } + + @OptIn(ExperimentalUnsignedTypes::class) + fun createTransaction( + recipientList: MutableList, + feeRate: Float, + enableRBF: Boolean, + opReturnMsg: String? + ): PartiallySignedTransaction { + // technique 1 for adding a list of recipients to the TxBuilder + // var txBuilder = TxBuilder() + // for (recipient in recipientList) { + // txBuilder = txBuilder.addRecipient(address = recipient.first, amount = recipient.second) + // } + // txBuilder = txBuilder.feeRate(satPerVbyte = fee_rate) + + // technique 2 for adding a list of recipients to the TxBuilder + var txBuilder = recipientList.fold(TxBuilder()) { builder, recipient -> + val scriptPubkey: Script = Address(recipient.address).scriptPubkey() + builder.addRecipient(scriptPubkey, recipient.amount) + } + if (enableRBF) { + txBuilder = txBuilder.enableRbf() + } + if (!opReturnMsg.isNullOrEmpty()) { + txBuilder = txBuilder.addData(opReturnMsg.toByteArray(charset = Charsets.UTF_8).asUByteArray().toList()) + } + return txBuilder.feeRate(feeRate).finish(wallet).psbt + } + + @OptIn(ExperimentalUnsignedTypes::class) + fun createSendAllTransaction( + recipient: String, + feeRate: Float, + enableRBF: Boolean, + opReturnMsg: String? + ): PartiallySignedTransaction { + val scriptPubkey: Script = Address(recipient).scriptPubkey() + var txBuilder = TxBuilder() + .drainWallet() + .drainTo(scriptPubkey) + .feeRate(satPerVbyte = feeRate) + + if (enableRBF) { + txBuilder = txBuilder.enableRbf() + } + if (!opReturnMsg.isNullOrEmpty()) { + txBuilder = txBuilder.addData(opReturnMsg.toByteArray(charset = Charsets.UTF_8).asUByteArray().toList()) + } + return txBuilder.finish(wallet).psbt + } + + fun createBumpFeeTransaction(txid: String, feeRate: Float): PartiallySignedTransaction { + return BumpFeeTxBuilder(txid = txid, newFeeRate = feeRate) + .enableRbf() + .finish(wallet = wallet) + } + + fun sign(psbt: PartiallySignedTransaction): Boolean { + return wallet.sign(psbt, null) + } + + fun broadcast(signedPsbt: PartiallySignedTransaction): String { + electrumServer.server.broadcast(signedPsbt.extractTx()) + return signedPsbt.txid() + } + + fun getAllTransactions(): List = wallet.listTransactions(true) + + fun getTransaction(txid: String): TransactionDetails? { + val allTransactions = getAllTransactions() + allTransactions.forEach { + if (it.txid == txid) { + return it + } + } + return null + } + + fun sync() { + Log.i(TAG, "Wallet is syncing") + wallet.sync(electrumServer.server, LogProgress) + } + + fun getBalance(): ULong = wallet.getBalance().total + + fun getNewAddress(): AddressInfo = wallet.getAddress(AddressIndex.New) + + fun getLastUnusedAddress(): AddressInfo = wallet.getAddress(AddressIndex.LastUnused) + + fun isBlockChainCreated() = ::electrumServer.isInitialized + + fun getElectrumURL(): String = electrumServer.getElectrumURL() + + fun isElectrumServerDefault(): Boolean = electrumServer.isElectrumServerDefault() + + fun setElectrumSettings(electrumSettings: ElectrumSettings) { + when (electrumSettings) { + ElectrumSettings.DEFAULT -> electrumServer.useDefaultElectrum() + ElectrumSettings.CUSTOM -> electrumServer.useCustomElectrum() + } + } +} + +enum class ElectrumSettings { + DEFAULT, + CUSTOM +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/CreateWalletNavigation.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/CreateWalletNavigation.kt" new file mode 100644 index 0000000..f05821b --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/CreateWalletNavigation.kt" @@ -0,0 +1,58 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.navigation + +import androidx.compose.animation.AnimatedContentScope +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.tween +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import com.goldenraven.devkitwallet.WalletCreateType +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.screens.intro.WalletChoiceScreen +import com.goldenraven.devkitwallet.ui.screens.intro.WalletRecoveryScreen +import com.google.accompanist.navigation.animation.AnimatedNavHost +import com.google.accompanist.navigation.animation.composable +import com.google.accompanist.navigation.animation.rememberAnimatedNavController + +@OptIn(ExperimentalAnimationApi::class) +@Composable +fun CreateWalletNavigation(onBuildWalletButtonClicked: (WalletCreateType) -> Unit) { + val navController: NavHostController = rememberAnimatedNavController() + val animationDuration = 400 + + AnimatedNavHost( + navController = navController, + startDestination = Screen.WalletChoiceScreen.route, + ) { + + composable( + route = Screen.WalletChoiceScreen.route, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + ) { WalletChoiceScreen(navController = navController, onBuildWalletButtonClicked) } + + composable( + route = Screen.WalletRecoveryScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + } + ) { WalletRecoveryScreen(navController = navController, onBuildWalletButtonClicked) } + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/HomeNavigation.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/HomeNavigation.kt" new file mode 100644 index 0000000..aca8a7b --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/HomeNavigation.kt" @@ -0,0 +1,91 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.navigation + +import androidx.compose.animation.AnimatedContentScope +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.tween +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.screens.WalletRoot +import com.goldenraven.devkitwallet.ui.screens.drawer.AboutScreen +import com.goldenraven.devkitwallet.ui.screens.drawer.ElectrumScreen +import com.goldenraven.devkitwallet.ui.screens.drawer.RecoveryPhraseScreen +import com.google.accompanist.navigation.animation.AnimatedNavHost +import com.google.accompanist.navigation.animation.composable +import com.google.accompanist.navigation.animation.rememberAnimatedNavController + +@OptIn(ExperimentalAnimationApi::class) +@Composable +fun HomeNavigation() { + val navController: NavHostController = rememberAnimatedNavController() + val animationDuration = 400 + + AnimatedNavHost( + navController = navController, + startDestination = Screen.WalletScreen.route, + ) { + + composable( + route = Screen.WalletScreen.route, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + ) { WalletRoot(navController = navController) } + + composable( + route = Screen.AboutScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + ) { AboutScreen(navController = navController) } + + composable( + route = Screen.RecoveryPhraseScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + } + ) { RecoveryPhraseScreen(navController = navController) } + + composable( + route = Screen.ElectrumScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + } + ) { ElectrumScreen(navController = navController) } + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/WalletNavigation.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/WalletNavigation.kt" new file mode 100644 index 0000000..57b707e --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/navigation/WalletNavigation.kt" @@ -0,0 +1,134 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.navigation + +import androidx.compose.animation.AnimatedContentScope +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.animation.core.tween +import androidx.compose.material3.DrawerState +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.screens.wallet.RBFScreen +import com.goldenraven.devkitwallet.ui.screens.wallet.ReceiveScreen +import com.goldenraven.devkitwallet.ui.screens.wallet.SendScreen +import com.goldenraven.devkitwallet.ui.screens.wallet.TransactionScreen +import com.goldenraven.devkitwallet.ui.screens.wallet.TransactionsScreen +import com.goldenraven.devkitwallet.ui.screens.wallet.WalletHomeScreen +import com.google.accompanist.navigation.animation.AnimatedNavHost +import com.google.accompanist.navigation.animation.composable +import com.google.accompanist.navigation.animation.rememberAnimatedNavController + +@OptIn(ExperimentalAnimationApi::class) +@Composable +fun WalletNavigation(drawerState: DrawerState) { + val navController: NavHostController = rememberAnimatedNavController() + val animationDuration = 400 + + AnimatedNavHost( + navController = navController, + startDestination = Screen.HomeScreen.route, + ) { + + composable( + route = Screen.HomeScreen.route, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + ) { WalletHomeScreen(navController, drawerState) } + + composable( + route = Screen.ReceiveScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + } + ) { ReceiveScreen(navController) } + + composable( + route = Screen.SendScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + } + ) { SendScreen(navController) } + + composable( + route = "${Screen.RBFScreen.route}/txid={txid}", + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + } + ) { backStackEntry -> + backStackEntry.arguments?.getString("txid")?.let { + RBFScreen(navController, backStackEntry.arguments?.getString("txid")) + } + } + + composable( + route = Screen.TransactionsScreen.route, + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + } + ) { TransactionsScreen(navController) } + + composable( + route = "${Screen.TransactionScreen.route}/txid={txid}", + enterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + exitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + }, + popEnterTransition = { + slideIntoContainer(AnimatedContentScope.SlideDirection.Start, animationSpec = tween(animationDuration)) + }, + popExitTransition = { + slideOutOfContainer(AnimatedContentScope.SlideDirection.End, animationSpec = tween(animationDuration)) + } + ) { backStackEntry -> + backStackEntry.arguments?.getString("txid")?.let { + TransactionScreen(navController, backStackEntry.arguments?.getString("txid")) + } + } + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/Screen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/Screen.kt" new file mode 100644 index 0000000..1ccef2d --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/Screen.kt" @@ -0,0 +1,26 @@ +/* + * Copyright 2021-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui + +sealed class Screen(val route: String) { + // create wallet screens + object WalletChoiceScreen : Screen("wallet_choice_screen") + object WalletRecoveryScreen : Screen("wallet_recovery_screen") + + // home screens + object WalletScreen : Screen("wallet_screen") + object AboutScreen : Screen("about_screen") + object RecoveryPhraseScreen : Screen("recovery_phrase_screen") + object ElectrumScreen : Screen("electrum_screen") + + // wallet screens + object HomeScreen : Screen("home_screen") + object SendScreen : Screen("send_screen") + object ReceiveScreen : Screen("receive_screen") + object RBFScreen : Screen("rbf_screen") + object TransactionsScreen : Screen("transactions_screen") + object TransactionScreen : Screen("transaction_screen") +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/LoadingAnimation.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/LoadingAnimation.kt" new file mode 100644 index 0000000..7bde283 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/LoadingAnimation.kt" @@ -0,0 +1,73 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.components + +import androidx.compose.animation.core.Animatable +import androidx.compose.animation.core.RepeatMode +import androidx.compose.animation.core.infiniteRepeatable +import androidx.compose.animation.core.tween +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import kotlinx.coroutines.delay + +@Composable +fun LoadingAnimation( + circleColor: Color = Color(0xffE9C46A), + circleSize: Dp = 21.dp, + animationDelay: Int = 800, + initialAlpha: Float = 0.3f +) { + val circles = listOf( + remember { Animatable(initialValue = initialAlpha) }, + remember { Animatable(initialValue = initialAlpha) }, + remember { Animatable(initialValue = initialAlpha) } + ) + + circles.forEachIndexed { index, animatable -> + LaunchedEffect(Unit) { + // Use coroutine delay to sync animations + delay(timeMillis = (animationDelay / circles.size).toLong() * index) + + animatable.animateTo( + targetValue = 1f, + animationSpec = infiniteRepeatable( + animation = tween( + durationMillis = animationDelay + ), + repeatMode = RepeatMode.Reverse + ) + ) + } + } + + // container for circles + Row { + circles.forEachIndexed { index, animatable -> + // gap between the circles + if (index != 0) Spacer(modifier = Modifier.width(width = 6.dp)) + + Box( + modifier = Modifier + .size(size = circleSize) + .clip(shape = CircleShape) + .background(circleColor.copy(alpha = animatable.value) ) + ) + } + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/NeutralButton.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/NeutralButton.kt" new file mode 100644 index 0000000..aa743fd --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/NeutralButton.kt" @@ -0,0 +1,36 @@ +package com.goldenraven.devkitwallet.ui.components + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.unit.dp +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors + +@Composable +fun NeutralButton(text: String, enabled: Boolean, onClick: () -> Unit) { + Button( + onClick = onClick, + colors = ButtonDefaults.buttonColors( + containerColor = DevkitWalletColors.secondary, + disabledContainerColor = DevkitWalletColors.secondary, + ), + shape = RoundedCornerShape(16.dp), + enabled = enabled, + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = text, + ) + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/SecondaryScreensAppBar.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/SecondaryScreensAppBar.kt" new file mode 100644 index 0000000..bba2683 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/SecondaryScreensAppBar.kt" @@ -0,0 +1,44 @@ +/* + * Copyright 2021-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.components + +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.ArrowBack +import androidx.compose.material3.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.unit.sp +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoRegular + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun SecondaryScreensAppBar( + title: String, + navigation: () -> Unit +) { + TopAppBar( + title = { + Text( + text = title, + color = DevkitWalletColors.white, + fontSize = 18.sp, + fontFamily = jetBrainsMonoRegular + ) + }, + navigationIcon = { + IconButton(onClick = navigation) { + Icon( + imageVector = Icons.Rounded.ArrowBack, + contentDescription = "Back", + tint = DevkitWalletColors.white + ) + } + }, + colors = TopAppBarDefaults.topAppBarColors( + containerColor = DevkitWalletColors.primaryDark, + ) + ) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/TransactionCards.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/TransactionCards.kt" new file mode 100644 index 0000000..b77f3e8 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/components/TransactionCards.kt" @@ -0,0 +1,102 @@ +package com.goldenraven.devkitwallet.ui.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.ui.screens.wallet.confirmedTransactionsItem +import com.goldenraven.devkitwallet.ui.screens.wallet.pendingTransactionsItem +import com.goldenraven.devkitwallet.ui.screens.wallet.viewTransaction +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight +import org.bitcoindevkit.TransactionDetails + +@Composable +fun ConfirmedTransactionCard(details: TransactionDetails, navController: NavController) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ) + .clickable { viewTransaction(navController = navController, txid = details.txid) }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween + ) { + Text( + confirmedTransactionsItem(details), + fontFamily = jetBrainsMonoLight, + fontSize = 12.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp) + ) + Box( + modifier = Modifier + .padding(top = 16.dp, end = 16.dp) + .size(size = 24.dp) + .clip(shape = CircleShape) + .background(DevkitWalletColors.secondary) + .align(Alignment.Top) + ) + } +} + +@Composable +fun PendingTransactionCard(details: TransactionDetails, navController: NavController) { + Row( + Modifier + .padding(horizontal = 8.dp, vertical = 6.dp) + .fillMaxWidth() + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ) + .border( + width = 2.dp, + color = DevkitWalletColors.accent1, + shape = RoundedCornerShape(16.dp) + ) + .clickable { + viewTransaction( + navController = navController, + txid = details.txid + ) + }, + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Absolute.SpaceBetween + ) { + Text( + pendingTransactionsItem(details), + fontFamily = jetBrainsMonoLight, + fontSize = 12.sp, + color = DevkitWalletColors.white, + modifier = Modifier.padding(16.dp) + ) + Box( + modifier = Modifier + .padding(top = 16.dp, end = 16.dp) + .size(size = 24.dp) + .clip(shape = CircleShape) + .background(Color(0xffE9C46A)) + .align(Alignment.Top) + ) + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/WalletRoot.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/WalletRoot.kt" new file mode 100644 index 0000000..4ca9716 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/WalletRoot.kt" @@ -0,0 +1,124 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.* +import androidx.compose.material3.* +import androidx.compose.material3.NavigationDrawerItemDefaults.colors +import androidx.compose.material3.rememberDrawerState +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.R +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.navigation.WalletNavigation +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight + +@OptIn(androidx.compose.animation.ExperimentalAnimationApi::class) +@Composable +internal fun WalletRoot(navController: NavController) { + val drawerState = rememberDrawerState(DrawerValue.Closed) + + val items = listOf(Icons.Default.Favorite, Icons.Default.Face, Icons.Default.Email, Icons.Default.Face) + val selectedItem = remember { mutableStateOf(items[0]) } + + val navigationItemColors = colors( + selectedContainerColor = DevkitWalletColors.primary, + unselectedContainerColor = DevkitWalletColors.primary, + selectedTextColor = DevkitWalletColors.white, + unselectedTextColor = DevkitWalletColors.white + ) + + ModalNavigationDrawer ( + drawerState = drawerState, + drawerContent = { + ModalDrawerSheet { + Column( + Modifier + .background(color = DevkitWalletColors.secondary) + .height(300.dp) + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + Image( + painter = painterResource(id = R.drawable.ic_testnet_logo), + contentDescription = "Bitcoin testnet logo", + Modifier + .size(90.dp) + .padding(bottom = 16.dp) + ) + Text( + text = "BDK Android Sample Wallet", + color = DevkitWalletColors.white, + fontFamily = jetBrainsMonoLight, + ) + Spacer(modifier = Modifier.padding(8.dp)) + Text( + "Version 0.1.0", + color = DevkitWalletColors.white, + fontFamily = jetBrainsMonoLight, + ) + } + Column( + Modifier.fillMaxHeight().background(color = DevkitWalletColors.primary) + ) { + Spacer(modifier = Modifier.height(16.dp)) + NavigationDrawerItem( + label = { DrawerItemLabel("About") }, + selected = items[0] == selectedItem.value, + onClick = { navController.navigate(Screen.AboutScreen.route) }, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + colors = navigationItemColors + ) + NavigationDrawerItem( + label = { DrawerItemLabel("Recovery Phrase") }, + selected = items[1] == selectedItem.value, + onClick = { navController.navigate(Screen.RecoveryPhraseScreen.route) }, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + colors = navigationItemColors + ) + NavigationDrawerItem( + label = { DrawerItemLabel("Custom Electrum Server") }, + selected = items[2] == selectedItem.value, + onClick = { navController.navigate(Screen.ElectrumScreen.route) }, + modifier = Modifier.padding(NavigationDrawerItemDefaults.ItemPadding), + colors = navigationItemColors + ) + } + } + }, + content = { + WalletNavigation( + drawerState = drawerState, + ) + } + ) +} + +@Composable +fun DrawerItemLabel(text: String) { + Text( + text = text, + fontFamily = jetBrainsMonoLight, + ) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/AboutScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/AboutScreen.kt" new file mode 100644 index 0000000..851725e --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/AboutScreen.kt" @@ -0,0 +1,75 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.drawer + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import androidx.navigation.compose.rememberNavController +import com.goldenraven.devkitwallet.R +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight + +@Composable +internal fun AboutScreen(navController: NavController) { + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "About", + navigation = { navController.navigate(Screen.WalletScreen.route) } + ) + } + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(paddingValues) + .padding(16.dp), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Image( + painter = painterResource(id = R.drawable.bdk_logo), + contentDescription = "Bitcoin testnet logo", + Modifier.size(180.dp) + ) + Spacer(modifier = Modifier.padding(24.dp)) + Text( + text = "This wallet is build for developers to learn how to leverage the Bitcoin Development Kit.", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Start, + modifier = Modifier.padding(all = 8.dp) + ) + } + } +} + +@Preview(device = Devices.PIXEL_4, showBackground = true) +@Composable +internal fun PreviewAboutScreen() { + AboutScreen(rememberNavController()) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/ElectrumScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/ElectrumScreen.kt" new file mode 100644 index 0000000..afc17bf --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/ElectrumScreen.kt" @@ -0,0 +1,133 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.drawer + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.material3.Button +import androidx.compose.material.OutlinedTextField +import androidx.compose.material.Switch +import androidx.compose.material.TextFieldDefaults +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.domain.ElectrumSettings +import com.goldenraven.devkitwallet.domain.Wallet +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight + +@Composable +internal fun ElectrumScreen(navController: NavController) { + val focusManager = LocalFocusManager.current + val isBlockChainCreated = Wallet.isBlockChainCreated() + val electrumServer: MutableState = remember { mutableStateOf("") } + val isChecked: MutableState = remember { mutableStateOf(false) } + if (isBlockChainCreated) { + electrumServer.value = Wallet.getElectrumURL() + isChecked.value = Wallet.isElectrumServerDefault() + } + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Custom Electrum Server", + navigation = { navController.navigate(Screen.WalletScreen.route) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(all = 16.dp), + ) { + + Row(verticalAlignment = Alignment.CenterVertically) { + Text( + text = "Use default electrum URL", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + ) + Switch( + checked = isChecked.value, + onCheckedChange = { + isChecked.value = it + if (it) { + Wallet.setElectrumSettings(ElectrumSettings.DEFAULT) + } else { + Wallet.setElectrumSettings(ElectrumSettings.CUSTOM) + } + }, + enabled = isBlockChainCreated + ) + } + + OutlinedTextField( + value = electrumServer.value, + onValueChange = { electrumServer.value = it }, + label = { + Text( + text = "Electrum Server", + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + keyboardActions = KeyboardActions(onDone = { + focusManager.clearFocus() + }), + modifier = Modifier.fillMaxWidth(), + enabled = isBlockChainCreated && !isChecked.value + ) + + Button( + onClick = { + Wallet.changeElectrumServer(electrumServer.value) + focusManager.clearFocus() + }, + modifier = Modifier + .align(alignment = Alignment.End) + .padding(all = 8.dp), + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + enabled = isBlockChainCreated && !isChecked.value + ) { + Text( + text = "Save", + color = DevkitWalletColors.white, + fontSize = 12.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + ) + } + } + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/RecoveryPhraseScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/RecoveryPhraseScreen.kt" new file mode 100644 index 0000000..3a80e49 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/drawer/RecoveryPhraseScreen.kt" @@ -0,0 +1,60 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.drawer + +import androidx.compose.foundation.layout.* +import androidx.compose.material3.* +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.tooling.preview.Devices +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import androidx.navigation.compose.rememberNavController +import com.goldenraven.devkitwallet.domain.Repository +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight + +@Composable +internal fun RecoveryPhraseScreen(navController: NavController) { + + val seedPhrase: String = Repository.getMnemonic() + val wordList: List = seedPhrase.split(" ") + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Your Recovery Phrase", + navigation = { navController.navigate(Screen.WalletScreen.route) } + ) + }, + containerColor = DevkitWalletColors.primary + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .padding(all = 32.dp) + ) { + wordList.forEachIndexed { index, item -> + Text( + text = "${index + 1}. $item", + modifier = Modifier.weight(weight = 1F), + color = DevkitWalletColors.white, + fontFamily = jetBrainsMonoLight + ) + } + } + } +} + +@Preview(device = Devices.PIXEL_4, showBackground = true) +@Composable +internal fun PreviewRecoveryPhraseScreen() { + RecoveryPhraseScreen(rememberNavController()) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletChoiceScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletChoiceScreen.kt" new file mode 100644 index 0000000..a37c32b --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletChoiceScreen.kt" @@ -0,0 +1,132 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.intro + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.R +import com.goldenraven.devkitwallet.WalletCreateType +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.devkitTypography +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight + +@Composable +internal fun WalletChoiceScreen( + navController: NavController, + onBuildWalletButtonClicked: (WalletCreateType) -> Unit +) { + + Scaffold { paddingValues -> + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(paddingValues) + ) { + val (logo, create, recover) = createRefs() + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 90.dp) + .constrainAs(logo) { + top.linkTo(parent.top) + }, + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically, + ) { + Image( + painter = painterResource(id = R.drawable.ic_testnet_logo), + contentDescription = "Bitcoin testnet logo", + Modifier.size(90.dp) + ) + Spacer(modifier = Modifier.padding(8.dp)) + Text( + text = "BDK\nSample\nTestnet\nWallet", + color = DevkitWalletColors.white, + fontSize = 28.sp, + fontFamily = jetBrainsMonoLight, + ) + } + + Button( + onClick = { onBuildWalletButtonClicked(WalletCreateType.FROMSCRATCH) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .size(width = 300.dp, height = 170.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(create) { + bottom.linkTo(recover.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + Text( + text = "Create a\nNew Wallet", + // fontSize = 18.sp, + // fontFamily = jetBrainsMonoLight, + // textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + + Button( + onClick = { navController.navigate(Screen.WalletRecoveryScreen.route) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .size(width = 300.dp, height = 170.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(recover) { + bottom.linkTo(parent.bottom, margin = 100.dp) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + Text( + text = "Recover an\nExisting Wallet", + // fontSize = 18.sp, + // fontFamily = jetBrainsMonoLight, + // textAlign = TextAlign.Center, + // lineHeight = 28.sp, + ) + } + } + } +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewWalletChoiceScreen() { +// WalletChoiceScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletRecoveryScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletRecoveryScreen.kt" new file mode 100644 index 0000000..3086721 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/intro/WalletRecoveryScreen.kt" @@ -0,0 +1,205 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.intro + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.OutlinedTextField +import androidx.compose.material.TextFieldDefaults +import androidx.compose.material3.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.focus.FocusDirection +import androidx.compose.ui.focus.FocusManager +import androidx.compose.ui.platform.LocalFocusManager +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.WalletCreateType +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight + +@Composable +internal fun WalletRecoveryScreen( + navController: NavController, + onBuildWalletButtonClicked: (WalletCreateType) -> Unit +) { + Scaffold( + topBar = { + SecondaryScreensAppBar(title = "Recover a Wallet", navigation = { navController.popBackStack() }) + } + ) { paddingValues -> + + // the screen is broken into 2 parts: the screen title and the body + ConstraintLayout( + modifier = Modifier + .fillMaxHeight(1f) + .padding(paddingValues) + ) { + + val (screenTitle, body) = createRefs() + + val emptyRecoveryPhrase: Map = mapOf( + 1 to "", 2 to "", 3 to "", 4 to "", 5 to "", 6 to "", + 7 to "", 8 to "", 9 to "", 10 to "", 11 to "", 12 to "" + ) + val (recoveryPhraseWordMap, setRecoveryPhraseWordMap) = remember { mutableStateOf(emptyRecoveryPhrase) } + + + // the app name + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxWidth(1f) + .background(DevkitWalletColors.primary) + .constrainAs(screenTitle) { + top.linkTo(parent.top) + } + ) { + Column { + Text( + text = "Enter your 12-word recovery phrase to recover an existing wallet.", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + modifier = Modifier + .padding(top = 70.dp, bottom = 8.dp, start = 16.dp, end = 16.dp) + .align(Alignment.CenterHorizontally) + ) + } + } + + // the body + MyList( + recoveryPhraseWordMap, + setRecoveryPhraseWordMap, + modifier = Modifier + .constrainAs(body) { + top.linkTo(screenTitle.bottom) + bottom.linkTo(parent.bottom) + // bottom.linkTo(button.top) + height = Dimension.fillToConstraints + }, + onClick = { + onBuildWalletButtonClicked(WalletCreateType.RECOVER(buildRecoveryPhrase(recoveryPhraseWordMap))) + } + ) + } + } +} + +@Composable +fun MyList( + recoveryPhraseWordMap: Map, + setRecoveryPhraseWordMap: (Map) -> Unit, + modifier: Modifier, + onClick: () -> Unit +) { + val scrollState = rememberScrollState() + Column( + modifier + .fillMaxWidth(1f) + .background(DevkitWalletColors.primary) + .verticalScroll(state = scrollState), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + val focusManager = LocalFocusManager.current + for (i in 1..12) { + WordField(wordNumber = i, recoveryPhraseWordMap, setRecoveryPhraseWordMap, focusManager) + } + Button( + onClick = onClick, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .size(width = 300.dp, height = 100.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 8.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "Recover Wallet", + fontSize = 20.sp, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } +} + +@Composable +fun WordField( + wordNumber: Int, + recoveryWordMap: Map, + setRecoveryPhraseWordMap: (Map) -> Unit, + focusManager: FocusManager +) { + OutlinedTextField( + value = recoveryWordMap[wordNumber] ?: "elvis is here", + onValueChange = { newText -> + val newMap: MutableMap = recoveryWordMap.toMutableMap() + newMap[wordNumber] = newText + + val updatedMap = newMap.toMap() + setRecoveryPhraseWordMap(updatedMap) + }, + label = { + Text( + text = "Word $wordNumber", + color = DevkitWalletColors.white, + ) + }, + textStyle = TextStyle( + fontSize = 18.sp, + color = DevkitWalletColors.white + ), + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + modifier = Modifier + .padding(8.dp), + keyboardOptions = when (wordNumber) { + 12 -> KeyboardOptions(imeAction = ImeAction.Done) + else -> KeyboardOptions(imeAction = ImeAction.Next) + }, + keyboardActions = KeyboardActions( + onNext = { focusManager.moveFocus(FocusDirection.Down) }, + onDone = { focusManager.clearFocus() } + ), + singleLine = true, + ) +} + +// input words can have capital letters, space around them, space inside of them +private fun buildRecoveryPhrase(recoveryPhraseWordMap: Map): String { + var recoveryPhrase = "" + recoveryPhraseWordMap.values.forEach { + recoveryPhrase = recoveryPhrase.plus(it.trim().replace(" ", "").lowercase().plus(" ")) + } + return recoveryPhrase.trim() +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewWalletRecoveryScreen() { +// WalletRecoveryScreen() +// } diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/RBFScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/RBFScreen.kt" new file mode 100644 index 0000000..3b74d6e --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/RBFScreen.kt" @@ -0,0 +1,298 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.wallet + +import android.content.Context +import android.util.Log +import android.widget.Toast +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.* +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.domain.Wallet +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight +import org.bitcoindevkit.PartiallySignedTransaction +import org.bitcoindevkit.TransactionDetails + +private const val TAG = "RBFScreen" + +@Composable +internal fun RBFScreen( + navController: NavController, + txid: String?, + paddingValues: PaddingValues = PaddingValues(0.dp), +) { + if (txid.isNullOrEmpty()) { + navController.popBackStack() + } + var transaction: TransactionDetails? = getTransaction(txid = txid) + if (transaction == null) { + navController.popBackStack() + } + transaction = transaction as TransactionDetails + val context = LocalContext.current + + val amount = (transaction.sent - transaction.received - (transaction.fee ?: 0UL)).toString() + val feeRate: MutableState = rememberSaveable { mutableStateOf("") } + val (showDialog, setShowDialog) = rememberSaveable { mutableStateOf(false) } + + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .background(DevkitWalletColors.primary) + ) { + val (screenTitle, transactionInputs, bottomButtons) = createRefs() + + Text( + text = "Send Bitcoin", + color = DevkitWalletColors.white, + fontSize = 28.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + modifier = Modifier + .constrainAs(screenTitle) { + top.linkTo(parent.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + .padding(top = 70.dp) + ) + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier.constrainAs(transactionInputs) { + top.linkTo(screenTitle.bottom) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + } + ) { + ShowTxnDetail(name = "Transaction Id",content = txid!!) + ShowTxnDetail(name = "Amount", content = amount) + TransactionFeeInput(feeRate = feeRate) + BumpFeeDialog( + txid = txid, + amount = amount, + feeRate = feeRate, + showDialog = showDialog, + setShowDialog = setShowDialog, + context = context + ) + } + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + .padding(bottom = 32.dp) + ) { + Button( + onClick = { setShowDialog(true) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "broadcast transaction", + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + Button( + onClick = { navController.navigate(Screen.HomeScreen.route) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.primaryLight), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "back to wallet", + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun ShowTxnDetail(name: String, content: String) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth(fraction = 0.9f) + ) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = content, + onValueChange = { }, + label = { + Text( + text = name, + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + enabled = false, + ) + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun TransactionFeeInput(feeRate: MutableState) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .fillMaxWidth(0.9f), + value = feeRate.value, + onValueChange = { newValue: String -> + feeRate.value = newValue.filter { it.isDigit() } + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + label = { + Text( + text = "New fee rate", + color = DevkitWalletColors.white, + ) + }, + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + ) + } +} + +@Composable +fun BumpFeeDialog( + txid: String, + amount: String, + showDialog: Boolean, + setShowDialog: (Boolean) -> Unit, + context: Context, + feeRate: MutableState, +) { + if (showDialog) { + var confirmationText = "Confirm Transaction : \nTxid : $txid\nAmount : $amount" + if (feeRate.value.isNotEmpty()) { + confirmationText += "Fee Rate : ${feeRate.value.toULong()}" + } + AlertDialog( + containerColor = DevkitWalletColors.primaryLight, + onDismissRequest = {}, + title = { + Text( + text = "Confirm transaction", + color = DevkitWalletColors.white + ) + }, + text = { + Text( + text = confirmationText, + color = DevkitWalletColors.white + ) + }, + confirmButton = { + TextButton( + onClick = { + if (feeRate.value.isNotEmpty()) { + broadcastTransaction(txid = txid, feeRate = feeRate.value.toFloat()) + } else { + Toast.makeText(context, "Fee is empty!", Toast.LENGTH_SHORT).show() + } + setShowDialog(false) + }, + ) { + Text( + text = "Confirm", + color = DevkitWalletColors.white + ) + } + }, + dismissButton = { + TextButton( + onClick = { + setShowDialog(false) + }, + ) { + Text( + text = "Cancel", + color = DevkitWalletColors.white + ) + } + }, + ) + } +} + +private fun broadcastTransaction(txid: String, feeRate: Float = 1F) { + Log.i(TAG, "Attempting to broadcast transaction with inputs: txid $txid, fee rate: $feeRate") + try { + // create, sign, and broadcast + val psbt: PartiallySignedTransaction = Wallet.createBumpFeeTransaction(txid = txid, feeRate = feeRate) + Wallet.sign(psbt) + val newTxid: String = Wallet.broadcast(psbt) + Log.i(TAG, "Transaction was broadcast! txid: $newTxid") + } catch (e: Throwable) { + Log.i(TAG, "Broadcast error: ${e.message}") + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/ReceiveScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/ReceiveScreen.kt" new file mode 100644 index 0000000..ab2ff99 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/ReceiveScreen.kt" @@ -0,0 +1,168 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.wallet + +import android.util.Log +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.selection.SelectionContainer +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.core.graphics.createBitmap +import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoRegular +import com.goldenraven.devkitwallet.viewmodels.AddressViewModel +import com.google.zxing.BarcodeFormat +import com.google.zxing.common.BitMatrix +import com.google.zxing.qrcode.QRCodeWriter + +private const val TAG = "ReceiveScreen" + +@Composable +internal fun ReceiveScreen( + navController: NavController, + addressViewModel: AddressViewModel = viewModel() +) { + + val address by addressViewModel.address.observeAsState(null) + val addressIndex by addressViewModel.addressIndex.observeAsState("") + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Receive Address", + navigation = { navController.navigate(Screen.HomeScreen.route) } + ) + } + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + .background(DevkitWalletColors.primary) + ) { + val (QRCode, bottomButtons) = createRefs() + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier.constrainAs(QRCode) { + top.linkTo(parent.top) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + } + ) { + val QR: ImageBitmap? = address?.let { addressToQR(it) } + Log.i("ReceiveScreen", "New receive address is $address") + if (QR != null) { + Image( + bitmap = QR, + contentDescription = "Bitcoindevkit website QR code", + Modifier.size(250.dp) + ) + Spacer(modifier = Modifier.padding(vertical = 8.dp)) + SelectionContainer { + Text( + text = address!!, + fontFamily = jetBrainsMonoRegular, + color = DevkitWalletColors.white + ) + } + Spacer(modifier = Modifier.padding(vertical = 8.dp)) + Text( + text = "m/84h/1h/0h/0/$addressIndex", + fontFamily = jetBrainsMonoRegular, + color = DevkitWalletColors.white + ) + } + } + + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + .padding(bottom = 24.dp) + ) { + Button( + onClick = { addressViewModel.updateAddress() }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "generate address", + fontSize = 14.sp, + fontFamily = jetBrainsMonoRegular, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } + } + } +} + +private fun addressToQR(address: String): ImageBitmap? { + Log.i(TAG, "We are generating the QR code for address $address") + try { + val qrCodeWriter: QRCodeWriter = QRCodeWriter() + val bitMatrix: BitMatrix = qrCodeWriter.encode(address, BarcodeFormat.QR_CODE, 1000, 1000) + val bitMap = createBitmap(1000, 1000) + for (x in 0 until 1000) { + for (y in 0 until 1000) { + // DevkitWalletColors.primaryDark for dark and DevkitWalletColors.white for light + bitMap.setPixel(x, y, if (bitMatrix[x, y]) 0xff203b46.toInt() else 0xffffffff.toInt()) + } + } + return bitMap.asImageBitmap() + } catch (e: Throwable) { + Log.i("ReceiveScreen", "Error with QRCode generation, $e") + } + return null +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewReceiveScreen() { +// ReceiveScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/SendScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/SendScreen.kt" new file mode 100644 index 0000000..f46a796 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/SendScreen.kt" @@ -0,0 +1,615 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.wallet + +import android.content.Context +import android.util.Log +import android.widget.Toast +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.BottomSheetScaffold +import androidx.compose.material.BottomSheetScaffoldState +import androidx.compose.material.BottomSheetValue +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.material3.* +import androidx.compose.material.Icon +import androidx.compose.material.rememberBottomSheetScaffoldState +import androidx.compose.material.rememberBottomSheetState +import androidx.compose.material3.Switch +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.domain.Wallet +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight +import androidx.compose.material3.TextButton +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import com.goldenraven.devkitwallet.R +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch +import org.bitcoindevkit.PartiallySignedTransaction + +private const val TAG = "SendScreen" + +@OptIn(ExperimentalMaterialApi::class) +@Composable +internal fun SendScreen( + navController: NavController, +) { + val context = LocalContext.current + val coroutineScope = rememberCoroutineScope() + + val recipientList: MutableList = remember { mutableStateListOf(Recipient(address = "", amount = 0u)) } + val feeRate: MutableState = rememberSaveable { mutableStateOf("") } + val (showDialog, setShowDialog) = rememberSaveable { mutableStateOf(false) } + + val sendAll: MutableState = remember { mutableStateOf(false) } + val rbfEnabled: MutableState = remember { mutableStateOf(false) } + val opReturnMsg: MutableState = remember { mutableStateOf(null) } + + val bottomSheetScaffoldState = rememberBottomSheetScaffoldState( + bottomSheetState = rememberBottomSheetState(initialValue = BottomSheetValue.Collapsed) + ) + + BottomSheetScaffold( + topBar = { + SecondaryScreensAppBar( + title = "Send Bitcoin", + navigation = { navController.navigate(Screen.HomeScreen.route) } + ) + }, + sheetContent = { AdvancedOptions(sendAll, rbfEnabled, opReturnMsg, recipientList) }, + scaffoldState = bottomSheetScaffoldState, + sheetBackgroundColor = DevkitWalletColors.primaryDark, + sheetShape = RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp), + sheetElevation = 12.dp, + sheetPeekHeight = 0.dp, + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .padding(paddingValues) + .background(DevkitWalletColors.primary) + ) { + val (transactionInputs, bottomButtons) = createRefs() + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier.constrainAs(transactionInputs) { + top.linkTo(parent.top) + bottom.linkTo(bottomButtons.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + } + ) { + TransactionRecipientInput(recipientList = recipientList) + TransactionAmountInput( + recipientList = recipientList, + transactionType = if (sendAll.value) TransactionType.SEND_ALL else TransactionType.DEFAULT + ) + TransactionFeeInput(feeRate = feeRate) + MoreOptions(coroutineScope = coroutineScope, bottomSheetScaffoldState = bottomSheetScaffoldState) + Dialog( + recipientList = recipientList, + feeRate = feeRate, + showDialog = showDialog, + setShowDialog = setShowDialog, + transactionType = if (sendAll.value) TransactionType.SEND_ALL else TransactionType.DEFAULT, + rbfEnabled = rbfEnabled.value, + opReturnMsg = opReturnMsg.value, + context = context + ) + } + Column( + Modifier + .constrainAs(bottomButtons) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + .padding(bottom = 32.dp) + ) { + Button( + onClick = { setShowDialog(true) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(80.dp) + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "broadcast transaction", + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun AdvancedOptions( + sendAll: MutableState, + rbfEnabled: MutableState, + opReturnMsg: MutableState, + recipientList: MutableList +) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 8.dp) + ) { + Row( + Modifier + .fillMaxWidth() + .padding(bottom = 8.dp), + horizontalArrangement = Arrangement.Center + ) { + Text( + text = "Advanced Options", + color = DevkitWalletColors.white, + fontSize = 18.sp, + fontFamily = jetBrainsMonoLight, + ) + } + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth() + ) { + Text( + text = "Send All", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + Spacer(modifier = Modifier.width(8.dp)) + Switch( + checked = sendAll.value, + onCheckedChange = { + sendAll.value = !sendAll.value + while (recipientList.size > 1) { recipientList.removeLast() } + }, + colors = SwitchDefaults.colors( + uncheckedBorderColor = DevkitWalletColors.primaryDark, + uncheckedThumbColor = DevkitWalletColors.primaryDark, + uncheckedTrackColor = DevkitWalletColors.white, + checkedThumbColor = DevkitWalletColors.white, + checkedTrackColor = DevkitWalletColors.accent1, + ) + ) + } + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth() + ) { + Text( + text = "Enable Replace-by-Fee", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + Spacer(modifier = Modifier.width(8.dp)) + Switch( + checked = rbfEnabled.value, + onCheckedChange = { + rbfEnabled.value = !rbfEnabled.value + }, + colors = SwitchDefaults.colors( + uncheckedBorderColor = DevkitWalletColors.primaryDark, + uncheckedThumbColor = DevkitWalletColors.primaryDark, + uncheckedTrackColor = DevkitWalletColors.white, + checkedThumbColor = DevkitWalletColors.white, + checkedTrackColor = DevkitWalletColors.accent1, + ) + ) + } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = opReturnMsg.value ?: "", + onValueChange = { + opReturnMsg.value = it + }, + label = { + Text( + text = "Optional OP_RETURN message", + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + ) + } + + Row( + Modifier + .fillMaxWidth() + .padding(vertical = 4.dp), + horizontalArrangement = Arrangement.Center + ) { + Text( + text = "Number of Recipients", + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + ) + } + + Row( + Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Button( + onClick = { if (recipientList.size > 1) { recipientList.removeLast() } }, + enabled = !sendAll.value, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent2), + shape = RoundedCornerShape(16.dp), + modifier = Modifier.width(70.dp) + ) { + Text(text = "-") + } + + Text( + text = "${recipientList.size}", + color = DevkitWalletColors.white, + fontSize = 18.sp, + ) + + Button( + onClick = { recipientList.add(Recipient("", 0u)) }, + enabled = !sendAll.value, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent1), + shape = RoundedCornerShape(16.dp), + modifier = Modifier.width(70.dp) + ) { + Text(text = "+") + } + + + } + + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun TransactionRecipientInput(recipientList: MutableList) { + LazyColumn (modifier = Modifier + .fillMaxWidth(0.9f) + .heightIn(max = 100.dp)) { + itemsIndexed(recipientList) { index, _ -> + val recipientAddress: MutableState = rememberSaveable { mutableStateOf("") } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = recipientAddress.value, + onValueChange = { + recipientAddress.value = it + recipientList[index].address = it + }, + label = { + Text( + text = "Recipient address ${index + 1}", + color = DevkitWalletColors.white, + ) + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + ) + } + } + } +} + +fun checkRecipientList( + recipientList: MutableList, + feeRate: MutableState, + context: Context +): Boolean { + if (recipientList.size > 4) { + Toast.makeText(context, "Too many recipients", Toast.LENGTH_SHORT).show() + return false + } + for (recipient in recipientList) { + if (recipient.address == "") { + Toast.makeText(context, "Address is empty", Toast.LENGTH_SHORT).show() + return false + } + } + if (feeRate.value.isBlank()) { + Toast.makeText(context, "Fee rate is empty", Toast.LENGTH_SHORT).show() + return false + } + return true +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun TransactionAmountInput(recipientList: MutableList, transactionType: TransactionType) { + LazyColumn (modifier = Modifier + .fillMaxWidth(0.9f) + .heightIn(max = 100.dp)) { + itemsIndexed(recipientList) { index, _ -> + val amount: MutableState = rememberSaveable { mutableStateOf("") } + + Row(verticalAlignment = Alignment.CenterVertically) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .weight(0.5f), + value = amount.value, + onValueChange = { + amount.value = it + recipientList[index].amount = it.toULong() + }, + label = { + when (transactionType) { + TransactionType.SEND_ALL -> { + Text( + text = "Amount (Send All)", + color = DevkitWalletColors.white, + ) + } + else -> { + Text( + text = "Amount ${index + 1}", + color = DevkitWalletColors.white, + ) + } + } + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + enabled = ( + when (transactionType) { + TransactionType.SEND_ALL -> false + else -> true + } + ) + ) + } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun TransactionFeeInput(feeRate: MutableState) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + OutlinedTextField( + modifier = Modifier + .padding(vertical = 8.dp) + .fillMaxWidth(0.9f), + value = feeRate.value, + onValueChange = { newValue: String -> + feeRate.value = newValue.filter { it.isDigit() } + }, + singleLine = true, + textStyle = TextStyle(fontFamily = jetBrainsMonoLight, color = DevkitWalletColors.white), + label = { + Text( + text = "Fee rate", + color = DevkitWalletColors.white, + ) + }, + colors = TextFieldDefaults.outlinedTextFieldColors( + focusedBorderColor = DevkitWalletColors.accent1, + unfocusedBorderColor = DevkitWalletColors.white, + cursorColor = DevkitWalletColors.accent1, + ), + ) + } +} + +@OptIn(ExperimentalMaterialApi::class) +@Composable +fun MoreOptions(coroutineScope: CoroutineScope, bottomSheetScaffoldState: BottomSheetScaffoldState) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .padding(vertical = 8.dp) + .background(DevkitWalletColors.secondary) + ) { + Button( + onClick = { + coroutineScope.launch { + if (bottomSheetScaffoldState.bottomSheetState.isCollapsed) { + bottomSheetScaffoldState.bottomSheetState.expand() + } else { + bottomSheetScaffoldState.bottomSheetState.collapse() + } + } + }, + colors = ButtonDefaults.buttonColors(Color.Transparent), + modifier = Modifier + .height(50.dp) + .fillMaxWidth(fraction = 0.9f) + .padding(vertical = 8.dp) + ) { + Text( + text = "more options", + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + Icon( + painter = painterResource(id = R.drawable.ic_round_expand_more_24), + tint = DevkitWalletColors.white, + contentDescription = "More options" + ) + } + } +} + +@Composable +fun Dialog( + recipientList: MutableList, + feeRate: MutableState, + showDialog: Boolean, + setShowDialog: (Boolean) -> Unit, + transactionType: TransactionType, + rbfEnabled: Boolean, + opReturnMsg: String?, + context: Context, +) { + if (showDialog) { + var confirmationText = "Confirm Transaction : \n" + recipientList.forEach { confirmationText += "${it.address}, ${it.amount}\n"} + if (feeRate.value.isNotEmpty()) { + confirmationText += "Fee Rate : ${feeRate.value.toULong()}" + } + if (!opReturnMsg.isNullOrEmpty()) { + confirmationText += "OP_RETURN Message : $opReturnMsg" + } + AlertDialog( + containerColor = DevkitWalletColors.primaryLight, + onDismissRequest = {}, + title = { + Text( + text = "Confirm transaction", + color = DevkitWalletColors.white + ) + }, + text = { + Text( + text = confirmationText, + color = DevkitWalletColors.white + ) + }, + confirmButton = { + TextButton( + onClick = { + if (checkRecipientList(recipientList = recipientList, feeRate = feeRate, context = context)) { + broadcastTransaction( + recipientList = recipientList, + feeRate = feeRate.value.toFloat(), + transactionType = transactionType, + rbfEnabled = rbfEnabled, + opReturnMsg = opReturnMsg + ) + setShowDialog(false) + } + }, + ) { + Text( + text = "Confirm", + color = DevkitWalletColors.white + ) + } + }, + dismissButton = { + TextButton( + onClick = { + setShowDialog(false) + }, + ) { + Text( + text = "Cancel", + color = DevkitWalletColors.white + ) + } + }, + ) + } +} + +private fun broadcastTransaction( + recipientList: MutableList, + feeRate: Float = 1F, + transactionType: TransactionType, + rbfEnabled: Boolean, + opReturnMsg: String? +) { + Log.i(TAG, "Attempting to broadcast transaction with inputs: recipient, amount: $recipientList, fee rate: $feeRate") + try { + // create, sign, and broadcast + val psbt: PartiallySignedTransaction = when (transactionType) { + TransactionType.DEFAULT -> Wallet.createTransaction(recipientList, feeRate, rbfEnabled, opReturnMsg) + TransactionType.SEND_ALL -> Wallet.createSendAllTransaction(recipientList[0].address, feeRate, rbfEnabled, opReturnMsg) + } + var isSigned = Wallet.sign(psbt) + if (isSigned) { + val txid: String = Wallet.broadcast(psbt) + Log.i(TAG, "Transaction was broadcast! txid: $txid") + } else { + Log.i(TAG, "Transaction not signed.") + } + } catch (e: Throwable) { + Log.i(TAG, "Broadcast error: ${e.message}") + } +} + +data class Recipient(var address: String, var amount: ULong) + +enum class TransactionType { + DEFAULT, + SEND_ALL, +} + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewSendScreen() { +// SendScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionScreen.kt" new file mode 100644 index 0000000..b667fa7 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionScreen.kt" @@ -0,0 +1,211 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.wallet + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.constraintlayout.compose.ConstraintLayout +import androidx.constraintlayout.compose.Dimension +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.domain.Wallet +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight +import com.goldenraven.devkitwallet.utils.timestampToString +import org.bitcoindevkit.TransactionDetails + +@Composable +internal fun TransactionScreen( + navController: NavController, + txid: String?, +) { + val transaction = getTransaction(txid = txid) + if (transaction == null) { + navController.popBackStack() + } + val transactionDetail = getTransactionDetails(transaction = transaction!!) + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Transaction Details", + navigation = { navController.popBackStack() } + ) + } + ) { paddingValues -> + ConstraintLayout( + modifier = Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(paddingValues) + ) { + val (screenTitle, transactions, bottomButton) = createRefs() + + Column( + modifier = Modifier + .constrainAs(screenTitle) { + top.linkTo(parent.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + .padding(top = 70.dp) + ) { + Text( + text = "Transaction", + color = DevkitWalletColors.white, + fontSize = 28.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + modifier = Modifier.fillMaxWidth() + ) + Text( + text = transactionTitle(transaction = transaction), + color = DevkitWalletColors.white, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + modifier = Modifier.padding(horizontal = 16.dp) + ) + } + + + LazyColumn( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier.constrainAs(transactions) { + top.linkTo(screenTitle.bottom) + bottom.linkTo(bottomButton.top) + start.linkTo(parent.start) + end.linkTo(parent.end) + height = Dimension.fillToConstraints + } + ) { + items(transactionDetail) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(all = 16.dp) + ) { + Text( + text = "${it.first} :", + fontSize = 16.sp, + fontFamily = jetBrainsMonoLight, + color = DevkitWalletColors.white, + ) + Text( + text = it.second, + fontSize = 16.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.End, + color = DevkitWalletColors.white, + modifier = Modifier.fillMaxWidth() + ) + } + } + } + + Column( + modifier = Modifier + .fillMaxWidth(0.9f) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + .constrainAs(bottomButton) { + bottom.linkTo(parent.bottom) + start.linkTo(parent.start) + end.linkTo(parent.end) + } + ) { + TransactionDetailButton( + content = "increase fees", + navController = navController, + txid = txid + ) + } + } + + } +} + +@Composable +fun TransactionDetailButton(content: String, navController: NavController, txid: String?) { + Button( + onClick = { + when (content) { + "increase fees" -> { + navController.navigate("${Screen.RBFScreen.route}/txid=$txid") + } + "back to transaction list" -> { + navController.popBackStack() + } + } + }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.secondary), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(60.dp) + .fillMaxWidth() + ) { + Text( + text = content, + fontSize = 14.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.Center, + lineHeight = 28.sp, + ) + } +} + +fun getTransactionDetails(transaction: TransactionDetails): List> { + val transactionDetails = mutableListOf>() + + if (transaction.confirmationTime != null) { + transactionDetails.add(Pair("Status", "Confirmed")) + transactionDetails.add(Pair("Timestamp", transaction.confirmationTime!!.timestamp.timestampToString())) + transactionDetails.add(Pair("Received", (if (transaction.received < transaction.sent) 0 else transaction.received).toString())) + transactionDetails.add(Pair("Sent", (if (transaction.sent < transaction.received) 0 else transaction.sent - transaction.received - transaction.fee!!).toString())) + transactionDetails.add(Pair("Fees", transaction.fee.toString())) + transactionDetails.add(Pair("Block", transaction.confirmationTime!!.height.toString())) + } else { + transactionDetails.add(Pair("Status", "Pending")) + transactionDetails.add(Pair("Timestamp", "Pending")) + transactionDetails.add(Pair("Received", (if (transaction.received < transaction.sent) 0 else transaction.received).toString())) + transactionDetails.add(Pair("Sent", (if (transaction.sent < transaction.received) 0 else transaction.sent - transaction.received - transaction.fee!!).toString())) + transactionDetails.add(Pair("Fees", transaction.fee.toString())) + } + return transactionDetails +} + +fun transactionTitle(transaction: TransactionDetails): String { + return transaction.txid +} + +fun getTransaction(txid: String?): TransactionDetails? { + if (txid.isNullOrEmpty()) { + return null + } + return Wallet.getTransaction(txid = txid) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionsScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionsScreen.kt" new file mode 100644 index 0000000..35d0b11 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/TransactionsScreen.kt" @@ -0,0 +1,114 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.wallet + +import android.util.Log +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Scaffold +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import com.goldenraven.devkitwallet.domain.Wallet +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.SecondaryScreensAppBar +import com.goldenraven.devkitwallet.ui.components.ConfirmedTransactionCard +import com.goldenraven.devkitwallet.ui.components.PendingTransactionCard +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.utils.timestampToString +import org.bitcoindevkit.TransactionDetails + +private const val TAG = "TransactionsScreen" + +@Composable +internal fun TransactionsScreen(navController: NavController) { + val allTransactions: List = Wallet.getAllTransactions() + val (confirmedTransactions, unconfirmedTransactions) = sortTransactions(allTransactions) + + Scaffold( + topBar = { + SecondaryScreensAppBar( + title = "Transactions History", + navigation = { navController.navigate(Screen.HomeScreen.route) } + ) + } + ) { paddingValues -> + val scrollState = rememberScrollState() + Column( + modifier = Modifier + .padding(paddingValues) + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(top = 6.dp) + .verticalScroll(state = scrollState) + ) { + if (unconfirmedTransactions.isNotEmpty()) { + unconfirmedTransactions.forEach { + PendingTransactionCard(details = it, navController = navController) + } + } + if (confirmedTransactions.isNotEmpty()) { + confirmedTransactions.forEach { + ConfirmedTransactionCard(it, navController) + } + } + } + } +} + +fun viewTransaction(navController: NavController, txid: String) { + navController.navigate("${Screen.TransactionScreen.route}/txid=$txid") +} + +private fun sortTransactions(transactions: List): Transactions { + val confirmedTransactions = mutableListOf() + val unconfirmedTransactions = mutableListOf() + transactions.forEach { tx -> + if (tx.confirmationTime != null) confirmedTransactions.add(tx) else unconfirmedTransactions.add(tx) + } + return Transactions( + confirmedTransactions = confirmedTransactions, + unconfirmedTransactions = unconfirmedTransactions + ) +} + +fun pendingTransactionsItem(transaction: TransactionDetails): String { + return buildString { + Log.i(TAG, "Pending transaction list item: $transaction") + appendLine("Timestamp: Pending") + appendLine("Received: ${transaction.received}") + appendLine("Sent: ${transaction.sent}") + appendLine("Fees: ${transaction.fee}") + append("Txid: ${transaction.txid.take(n = 8)}...${transaction.txid.takeLast(n = 8)}") + } +} + +fun confirmedTransactionsItem(transaction: TransactionDetails): String { + return buildString { + Log.i(TAG, "Transaction list item: $transaction") + appendLine("Timestamp: ${transaction.confirmationTime!!.timestamp.timestampToString()}") + appendLine("Received: ${transaction.received}") + appendLine("Sent: ${transaction.sent}") + appendLine("Block: ${transaction.confirmationTime!!.height}") + append("Txid: ${transaction.txid.take(n = 8)}...${transaction.txid.takeLast(n = 8)}") + } +} + +data class Transactions( + val confirmedTransactions: List, + val unconfirmedTransactions: List +) + +// @Preview(device = Devices.PIXEL_4, showBackground = true) +// @Composable +// internal fun PreviewTransactionsScreen() { +// TransactionsScreen(rememberNavController()) +// } diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/WalletHomeScreen.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/WalletHomeScreen.kt" new file mode 100644 index 0000000..04f16a9 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/screens/wallet/WalletHomeScreen.kt" @@ -0,0 +1,275 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.screens.wallet + +import android.content.Context +import android.net.ConnectivityManager +import android.net.NetworkCapabilities +import android.util.Log +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.rounded.Menu +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.rotate +import androidx.compose.ui.draw.shadow +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.navigation.NavHostController +import com.goldenraven.devkitwallet.R +import com.goldenraven.devkitwallet.domain.Wallet +import com.goldenraven.devkitwallet.ui.Screen +import com.goldenraven.devkitwallet.ui.components.LoadingAnimation +import com.goldenraven.devkitwallet.ui.components.NeutralButton +import com.goldenraven.devkitwallet.ui.theme.DevkitWalletColors +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoLight +import com.goldenraven.devkitwallet.ui.theme.jetBrainsMonoSemiBold +import com.goldenraven.devkitwallet.utils.formatInBtc +import com.goldenraven.devkitwallet.viewmodels.CurrencyUnit +import com.goldenraven.devkitwallet.viewmodels.WalletViewModel +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.launch + +private const val TAG = "WalletHomeScreen" + +@Composable +internal fun WalletHomeScreen( + navController: NavHostController, + drawerState: DrawerState, + walletViewModel: WalletViewModel = viewModel(), +) { + + val networkAvailable: Boolean = isOnline(LocalContext.current) + val syncing by walletViewModel.syncing.observeAsState(true) + val balance by walletViewModel.balance.observeAsState() + val unit by walletViewModel.unit.observeAsState() + if (networkAvailable && !Wallet.isBlockChainCreated()) { + Log.i(TAG, "Creating new blockchain") + Wallet.createBlockchain() + } + + val interactionSource = remember { MutableInteractionSource() } + val scope: CoroutineScope = rememberCoroutineScope() + + Scaffold( + topBar = { WalletAppBar(scope = scope, drawerState = drawerState) } + ) { paddingValues -> + Column( + modifier = Modifier + .fillMaxSize() + .background(DevkitWalletColors.primary) + .padding(paddingValues), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Spacer(Modifier.padding(24.dp)) + Row( + Modifier + .clickable( + interactionSource, + indication = null, + onClick = { walletViewModel.switchUnit() } + ) + .fillMaxWidth(0.9f) + .padding(horizontal = 8.dp) + .background( + color = DevkitWalletColors.primaryLight, + shape = RoundedCornerShape(16.dp) + ) + .height(100.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.SpaceEvenly + ) { + when(unit) { + CurrencyUnit.Bitcoin, null -> { + Image( + painter = painterResource(id = R.drawable.ic_bitcoin_logo), + contentDescription = "Bitcoin testnet logo", + Modifier + .align(Alignment.CenterVertically) + .rotate(-13f) + ) + Text( + text = balance.formatInBtc(), + fontFamily = jetBrainsMonoSemiBold, + fontSize = 32.sp, + color = DevkitWalletColors.white + ) + } + CurrencyUnit.Satoshi -> { + Text( + text = "$balance sat", + fontFamily = jetBrainsMonoSemiBold, + fontSize = 32.sp, + color = DevkitWalletColors.white + ) + } + } + } + Spacer(modifier = Modifier.padding(4.dp)) + Row( + modifier = Modifier.height(40.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + if (syncing) LoadingAnimation() + } + + if (!networkAvailable) { + Row( + Modifier + .fillMaxWidth() + .background(color = DevkitWalletColors.accent2) + .height(50.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center, + ) { + Text( + text = "Network unavailable", + fontFamily = jetBrainsMonoLight, + fontSize = 18.sp, + color = DevkitWalletColors.white + ) + } + } + + NeutralButton( + text = "sync", + enabled = networkAvailable, + onClick = { walletViewModel.updateBalance() } + ) + + NeutralButton( + text = "transaction history", + enabled = networkAvailable, + onClick = { navController.navigate(Screen.TransactionsScreen.route) } + ) + + Row( + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .height(140.dp) + .fillMaxWidth(0.9f) + ) { + Button( + onClick = { navController.navigate(Screen.ReceiveScreen.route) }, + colors = ButtonDefaults.buttonColors(DevkitWalletColors.accent1), + shape = RoundedCornerShape(16.dp), + modifier = Modifier + .height(160.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "receive", + fontSize = 16.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.End, + lineHeight = 28.sp, + modifier = Modifier + .fillMaxWidth(0.4f) + .align(Alignment.Bottom) + ) + } + + Button( + onClick = { navController.navigate(Screen.SendScreen.route) }, + colors = ButtonDefaults.buttonColors( + containerColor = DevkitWalletColors.accent2, + disabledContainerColor = DevkitWalletColors.accent2, + ), + shape = RoundedCornerShape(16.dp), + enabled = networkAvailable, + modifier = Modifier + .height(160.dp) + .padding(vertical = 8.dp, horizontal = 8.dp) + .shadow(elevation = 4.dp, shape = RoundedCornerShape(16.dp)) + ) { + Text( + text = "send", + fontSize = 16.sp, + fontFamily = jetBrainsMonoLight, + textAlign = TextAlign.End, + lineHeight = 28.sp, + modifier = Modifier + .fillMaxWidth() + .align(Alignment.Bottom) + ) + } + } + } + + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +internal fun WalletAppBar(scope: CoroutineScope, drawerState: DrawerState) { + CenterAlignedTopAppBar( + title = { + Text( + text = "BDK Sample Wallet", + color = DevkitWalletColors.white, + fontFamily = jetBrainsMonoSemiBold, + fontSize = 20.sp, + ) + }, + navigationIcon = { + IconButton(onClick = { scope.launch { drawerState.open() } }) { + Icon( + imageVector = Icons.Rounded.Menu, + contentDescription = "Open drawer", + tint = DevkitWalletColors.white + ) + } + }, + colors = TopAppBarDefaults.topAppBarColors( + containerColor = DevkitWalletColors.primaryDark, + ) + ) +} + +fun isOnline(context: Context): Boolean { + val connectivityManager = + context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager + val capabilities = + connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork) + if (capabilities != null) { + when { + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_CELLULAR") + return true + } + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_WIFI") + return true + } + capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) -> { + Log.i("Internet", "NetworkCapabilities.TRANSPORT_ETHERNET") + return true + } + } + } + return false +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/DevkitWalletColors.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/DevkitWalletColors.kt" new file mode 100644 index 0000000..636b4e9 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/DevkitWalletColors.kt" @@ -0,0 +1,18 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.theme + +import androidx.compose.ui.graphics.Color + +object DevkitWalletColors { + val primaryDark: Color = Color(0xFF203B46) // App bar + val primary: Color = Color(0xFF264653) // Background + val primaryLight: Color = Color(0xFF335F70) // Behind balance primary light + val white: Color = Color(0xffffffff) // Most text + val secondary: Color = Color(0xFF2A9D8F) // Buttons + val accent1: Color = Color(0xFFE9C46A) // Receive button + val accent2: Color = Color(0xFFE76F51) // Send button +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Fonts.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Fonts.kt" new file mode 100644 index 0000000..1c2a803 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Fonts.kt" @@ -0,0 +1,36 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.theme + +import androidx.compose.ui.text.font.Font +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import com.goldenraven.devkitwallet.R + +val jetBrainsMonoLight = FontFamily( + Font( + resId = R.font.jetbrains_mono_light, + weight = FontWeight.Light, + style = FontStyle.Normal + ) +) + +val jetBrainsMonoRegular = FontFamily( + Font( + resId = R.font.jetbrains_mono_regular, + weight = FontWeight.Normal, + style = FontStyle.Normal + ) +) + +val jetBrainsMonoSemiBold = FontFamily( + Font( + resId = R.font.jetbrains_mono_semibold, + weight = FontWeight.SemiBold, + style = FontStyle.Normal + ) +) diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Theme.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Theme.kt" new file mode 100644 index 0000000..0aebbd4 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Theme.kt" @@ -0,0 +1,19 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.theme + +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable + +@Composable +fun DevkitTheme(content: @Composable () -> Unit) { + MaterialTheme( + // colorScheme = devkitColors, + // shapes = devkitShapes, + typography = devkitTypography, + content = content + ) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Type.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Type.kt" new file mode 100644 index 0000000..a4b9055 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/ui/theme/Type.kt" @@ -0,0 +1,23 @@ +/* + * Copyright 2020-2023 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +internal val devkitTypography = Typography( + labelLarge = TextStyle( + fontFamily = jetBrainsMonoLight, + fontWeight = FontWeight.Light, + fontSize = 16.sp, + lineHeight = 28.sp + ), +) + +// These are the default text styles used by Material3 components: +// Buttons: labelLarge diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/FormatInBtc.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/FormatInBtc.kt" new file mode 100644 index 0000000..5d0c406 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/FormatInBtc.kt" @@ -0,0 +1,12 @@ +package com.goldenraven.devkitwallet.utils + +import java.text.DecimalFormat + +fun ULong?.formatInBtc(): String { + val balanceInSats = if (this == 0UL || this == null) { + 0F + } else { + this.toFloat().div(100_000_000) + } + return DecimalFormat("0.00000000").format(balanceInSats) +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/SharedPreferencesManager.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/SharedPreferencesManager.kt" new file mode 100644 index 0000000..6467fb3 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/SharedPreferencesManager.kt" @@ -0,0 +1,45 @@ + +package com.goldenraven.devkitwallet.utils + +import android.content.SharedPreferences + + +private const val PREFS_WALLET_INITIALISED = "initialized" +private const val PREFS_PATH = "path" +private const val PREFS_DESCRIPTOR = "descriptor" +private const val PREFS_CHANGE_DESCRIPTOR = "changeDescriptor" +private const val PREFS_MNEMONIC = "mnemonic" + +class SharedPreferencesManager(private val sharedPreferences: SharedPreferences) { + + var path: String + get() = sharedPreferences.getString(PREFS_PATH, "") ?: "" + set(value) { + sharedPreferences.edit()?.putString(PREFS_PATH, value)?.apply() + } + + var descriptor: String + get() = sharedPreferences.getString(PREFS_DESCRIPTOR, "") ?: "" + set(value) { + sharedPreferences.edit()?.putString(PREFS_DESCRIPTOR, value)?.apply() + } + + var changeDescriptor: String + get() = sharedPreferences.getString(PREFS_CHANGE_DESCRIPTOR, "") ?: "" + set(value) { + sharedPreferences.edit()?.putString(PREFS_CHANGE_DESCRIPTOR, value)?.apply() + } + + var mnemonic: String + get() = sharedPreferences.getString(PREFS_MNEMONIC, "No seed phrase saved") + ?: "Seed phrase not there" + set(value) { + sharedPreferences.edit()?.putString(PREFS_MNEMONIC, value)?.apply() + } + + var walletInitialised: Boolean + get() = sharedPreferences.getBoolean(PREFS_WALLET_INITIALISED, false) + set(value) { + sharedPreferences.edit()?.putBoolean(PREFS_WALLET_INITIALISED, value)?.apply() + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/Timestamps.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/Timestamps.kt" new file mode 100644 index 0000000..9e17505 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/utils/Timestamps.kt" @@ -0,0 +1,17 @@ +/* + * Copyright 2021 thunderbiscuit and contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the ./LICENSE file. + */ + +package com.goldenraven.devkitwallet.utils + +import android.text.format.DateFormat +import java.util.Calendar +import java.util.Locale + +// extension function on the ULong timestamp provided in the Transaction.Confirmed type +fun ULong.timestampToString(): String { + val calendar = Calendar.getInstance(Locale.ENGLISH) + calendar.timeInMillis = (this * 1000u).toLong() + return DateFormat.format("MMMM d yyyy HH:mm", calendar).toString() +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/AddressViewModel.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/AddressViewModel.kt" new file mode 100644 index 0000000..0c3074e --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/AddressViewModel.kt" @@ -0,0 +1,22 @@ +package com.goldenraven.devkitwallet.viewmodels + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import com.goldenraven.devkitwallet.domain.Wallet + +internal class AddressViewModel : ViewModel() { + private var _address: MutableLiveData = MutableLiveData(null) + val address: LiveData + get() = _address + + private var _addressIndex: MutableLiveData = MutableLiveData(0u) + val addressIndex: LiveData + get() = _addressIndex + + fun updateAddress() { + val newAddress = Wallet.getNewAddress() + _address.value = newAddress.address.asString() + _addressIndex.value = newAddress.index + } +} diff --git "a/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/WalletViewModel.kt" "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/WalletViewModel.kt" new file mode 100644 index 0000000..e99eb15 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/java/com/goldenraven/devkitwallet/viewmodels/WalletViewModel.kt" @@ -0,0 +1,49 @@ +package com.goldenraven.devkitwallet.viewmodels + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.goldenraven.devkitwallet.domain.Wallet +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext + +internal class WalletViewModel : ViewModel() { + + private var _balance: MutableLiveData = MutableLiveData(0u) + val balance: LiveData + get() = _balance + + private var _syncing: MutableLiveData = MutableLiveData(false) + val syncing: LiveData + get() = _syncing + + private var _unit: MutableLiveData = MutableLiveData(CurrencyUnit.Bitcoin) + val unit: LiveData + get() = _unit + + fun switchUnit() { + _unit.value = when (_unit.value) { + CurrencyUnit.Bitcoin -> CurrencyUnit.Satoshi + CurrencyUnit.Satoshi -> CurrencyUnit.Bitcoin + null -> CurrencyUnit.Bitcoin + } + } + + fun updateBalance() { + _syncing.value = true + viewModelScope.launch(Dispatchers.IO) { + Wallet.sync() + withContext(Dispatchers.Main) { + _balance.value = Wallet.getBalance() + _syncing.value = false + } + } + } +} + +enum class CurrencyUnit { + Bitcoin, + Satoshi +} diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/bdk_logo.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/bdk_logo.xml" new file mode 100644 index 0000000..a28d65b --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/bdk_logo.xml" @@ -0,0 +1,24 @@ + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/faucet_address.png" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/faucet_address.png" new file mode 100644 index 0000000000000000000000000000000000000000..9a632f1c09e8ab90a5071c581e30e4619a152634 GIT binary patch literal 1389 zcmeAS@N?(olHy`uVBq!ia0vp^&q0`j2}ov5yH*aQ*pj^6T^Rm@;DWu&Co?dxDtWp% zhE&XXdv{~*6E}&5i<2LEv20Dy*tH%4Pqbx3B+S`rxMd{t17lZ~6cGj?J@8oAo#Ue{?q+Rb%ntC)t<3=f}&-y}SQ3 zsP0kGPCMKEXY5Ybv$;DNKZ|UZzi%J7>d&mjSM6->*xUUxtC(OrE%f)y&^q7$iWiWa zve>xAxB2j5N$s6LjmOvRlCrtDK=|LRcgXGoI(nwjPcP{?S9tVp-Ksw$Y`1PlPc@o1 z?7lw9{vWkU^7XuL^KJK5U+2MMgw?}ipVhbI=>Ks%{%_XoJIG#|cTw`t)1unxuPqKo zt^m8+cE3v5N4qlB>&t}mY{Pz<{%v#!YP<+qWF{OOR8^^ETOc=5s%M+$AY*zfgFcZ?u_o zDZ1NvC$E>xuKywp9OiNM$B&KqPBGi0Z*2Ef%Wqd%n&a7nID=CZq={@N_-V6ORu5mRnaf%$-#)(=Ua$c33(yfUde_T$_8HG< z?YfvXe_s5#ZQb8D8D4(SsrA0h=Aqlaf6fa~OQXB5zrKBu-EeycTIxqp1<8v4nZBL( Weat51n*uC989ZJ6T-G@yGywoIAM5@A literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_bitcoin_logo.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_bitcoin_logo.xml" new file mode 100644 index 0000000..d57d1bb --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_bitcoin_logo.xml" @@ -0,0 +1,12 @@ + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_background.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_background.xml" new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_background.xml" @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_background.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_background.xml" new file mode 100644 index 0000000..6884ff0 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_background.xml" @@ -0,0 +1,9 @@ + + + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" new file mode 100644 index 0000000..227c9e3 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_launcher_bdk_foreground.xml" @@ -0,0 +1,29 @@ + + + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_round_expand_more_24.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_round_expand_more_24.xml" new file mode 100644 index 0000000..c66295f --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_round_expand_more_24.xml" @@ -0,0 +1,5 @@ + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_testnet_logo.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_testnet_logo.xml" new file mode 100644 index 0000000..d57d1bb --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/ic_testnet_logo.xml" @@ -0,0 +1,12 @@ + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/drawable/launch_screen.xml" "b/Variant \342\200\224 0.30/app/src/main/res/drawable/launch_screen.xml" new file mode 100644 index 0000000..52e7de9 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/drawable/launch_screen.xml" @@ -0,0 +1,11 @@ + + + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/font/fira_mono.ttf" "b/Variant \342\200\224 0.30/app/src/main/res/font/fira_mono.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..558bb75d35fdf1e6105142bd6e7de1193f1feff7 GIT binary patch literal 174596 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�FaPp^-L1W` zigG5Yw`oAmX3xnxt)aHo(JbXHmNrn;*jD6^<+6bm17Vk%LiM2ROfo=jr@UIK_Z*?T z9?4YFXNW8F+b+AvL;$LxEi6*-u-$Emf`!FTZSc zv;I`2(c@0&?_aj6S$=M1b)I$CuJ&yuA>;H|vb)s3t^K^3$qEhw*gWJ$z`!EahN_K} zZoL=Q1UM04CDwz=K#hjeU|k|tH^bJAsaecX8f97!MpK%%CMZ{k|JWt7*IaYW-m9*< zYR5Ad-4=7(d2D6dVB6)F;};uOzR${W25aY`90REv-?cMIjnpR z0_d;N7&*qpziYTI$9VX64d3J#Xur^3TXQ)Ed>p=O>m$d&6Aj-rc*rpYfDdXEW;}Y5EFv_1_G&Gf@UKI1a2Y$pW|ZnapW2kI|I!} z>;O-@SeAu&RyT!pAaN2*DT&x=pk-RbH&HKgBE#md4nXQ(vRw+7r544L+a!LOQ<-lhpUgHsOE9>A)Pm~VF zJHWxc$w2v{3~hL4c+(?_olf`6$aFas*50E!@P4HuJ1^5#YU;ADXmC~9vmA!pVl#bV zpUulP8w&l-mfk#@$%GG~KE4*3eGj}89-@;rOK$eQJjC^nRQR zwy#v)24f9;d??U=#n_P}4MY-gzy}6*a82siNk*^8h4rT=vU3P>yC(&US1-T{_+a zwN{BGr>zKqf}4vtuiB(VAbP|uoU6177J{Z8Bob0Zsm0jSO%7*qu{(F7*IVmwW_e9b zBZIn$)U z?<>jt9Z0X1KzfJBypS+BYBD<`bNI(Z%)Q#PYb7gU$Ohnj8}~R;A=3S#3IeApaVDxo zK_}nN*_N4t&I0^D(=yvC58#*b4c1c7QGoyHQ|oLC&1W7ilb#P`Lhq^a0GID)6G7z& zw3+eW`|i-Y>)yq?&&OqWI0#&hTMCuMI6S1{Bj}x){FFK_hsX!}+vNu*@813uj>?$B zX6YjKKHCC4zVJ67fdh+5N@lWh$rM+U&RH*tfpoC<*DF6|S6_4^gsHju3b|5AsL+bO z$#K8}NH4ep$sxf$2@50lI)E>}!JWl}>O53iMnzyBK!_qYNQxkim5c!Uz`QvwS4``oS4;x!XOz8Ak_FFCXDI9=71FjZ^(b(7;IvDn!l-xH?$31(frDpiMrNd zwtd^oO|IFQZ7V-x-;I>~QXk}?WcfA7ZVpj_K?m6lw#iXEZc~ z*sM6n1rREs0N9YoVv`uWd-NM%i$c{3ROTTY9MW`93Q#bGKA+V}sXBaRzS81Ck)=63 zCp}xuew0kcDCT3)=d5PD2H})A2QOUc#fuR&wJDP!cJJT&``g+E2HJA-@@=-fI<`jr zUY~EPtCPQcrqd;#j+^f2n3?HlpJ^*ADXu6hTd6!V*Rrx?*=o`^>!pnF-(&<^1Ai>w z^C&L0S?ZH^g|=fa>0oJ$aCN?7}U6&9ao3H@}EW9*I9N?uBS$w=m7StNE zJQS*|^!sf#vMh)CLcN{smCcn+bv6EgzoN95)E-WIR5W}hz@W<7w3eb002f=lu2`I_ z(QvRw!6YV1F;Wrr`S;!3b@jcy^?7DQ+ZywUIR6cu{i1&_Vj^osIvA8&44uKjI*?{IOU*W)j6dy0xc zBM4`Rj_t+%{{*n??0X~|hp;J1fRp9eDTwb}_RRr;$+7S-ofGeHK*O~r79KL81d{25 zr#%-Ugise?D{r}F{Y^KmXB($(zkTX@IL%US z{IghptODWb=oBcbE&&=eOa-SBl$hY!xc0ISPp8F}A;uds)R%I=WI-MV1|7y# zlsBJxin*0lKlus!vOM`#^Dn2TFn#0<3WM+a9QZyI`iW^4HWr;`*OH}&z}Man`RZTf zu|1&Jc#i>```G;-e|)q9*B_Hg**z>D>*fu) z&W_d*oF-Q*JQZVLl+oegfsv7c*E+|>Iw6GuPaa}V;=H>6c!G6Y=wHmw!w+!1Mm-O? z|1r+Pi2v_n?DN30<0_slzOKoxatx$mjHk(Va!eKfuE|q!Opt%qIR;WQUmwAj)B4c(8qX@ngcjW2zTkf7X3<~ch2)q{@m=L9kRpPA*Uo!6M#zKO z87`B01ovy_svLup8sD{ZOpfX2-!*zK$H0AsKTpssIc8A(E@*}vGt9qh`%;bp^NarR zU;=4h$uaP+!FLVk^jdMGtJeKpjSsrl8CWTOMW`^7O)2J3;kj1%tzF@2YV?im7;Kn^=`L;*n z*n{RRiKK14ip?glgmq@6Kkm_ljDk|-GeiSYrDVBRz8vE$xW%lD#64=Wmnzrye5cHxk?>fY(r;c14H28|!9Xnh*YGa@mt#U^pm*}X zEiH)D*g@zrEZ{iTr{rZHYE@oQUTHm?m7l!*;w(4dq5O*Fb?-O3vt<1e^Wk+8S#`i- z(R*|l2<8JOHz?P0;3y*;IBb@Epd3$NiEGX5vAD+)GW=zToT53+hffm02hMXuhRhfc z=lcG=R#z6Pd~7N#+S{-EmRaStLwWh>t8>c_wXsHq4X|LX2tEdyh2CfIKqcz*G5w_+ zJnTV$C%=sC>0u9-7Gxw~?H)6)!(W`(Nz62Yg(`)i->n++CH`N~^Z&UUk_j-qmVVUDRFVBKLwR zvLs8wvSd`;Fxd1GN+>a%P)w)+LJQ5bKu8FL6at}zKoX~rfI~yPL zJm2%ZzwZTW@11*R=A1cm=FFLMXUc`0p_|xdtRHRnr#obOC2vmX2|x<7X+)o-=QuRa(#48r&9s8F@p+<$ z=7ERZ^fQZt#X8A=zmT=85pzKjzHcYRJ2<{iBY=xA%0j1e6@E9-weU-)@Joop zR4>+&Dd0rn7Yk88W>|MkzKdL*d3*4c;48OhrQUSQ<|m)rOh3qU2NQy?k{RTXJG1QY z+XoI%p)?lfyR*OCAl=(RM#RzD=TG1o0y22EH_oSnadjZ>n{2MB5@8HL*Q{Pr|eYOlbp; zY{Nw4BhfyptdcnqeH7U_5xpYtg{{#S=mbo9 zRZqANH7@x6rF3nPN8}=9*o{^8+2O=cKS`YNH9^^6RX&wd$SYFzufs0-L5Me|u2*0f ze1)z(s$L0S$PLkdiee%kY7teUy;Jj}fUDbrIUqz=JLUjkV}?AGZPqo4wo6RuUp^}k zm})tIK0OM)XuYJefIrKqlyzT+F(Yi)@t9@A`h6Po*<#p(XJQ>+V>Dnb--6v99mY~) z1wKz4150!_G|bJ$FziO#jgyT%#u>&r#@FC!;4++=zsC5cakFu&aVJ&*_Z#0e9>Yoe z?_n+QBjaV`=f-Qsn}{#*8{_xJ`^JaHDUG{6`17CsaPYV9{rXpLz46OeU-{Wje*EGK zKluK$&ph?SgH{EdkwO3!c@A6B(e$fTzpL_P1r|&&=_pTk= z#zwXd4W8J)sb}K}$8A`@cJ<2Tol6!ioZsHs4F8t(@CjV$h0Ua-r~odbvog|BlM@p# zpGZUfEGQXRKDej&GpBea^8KIwyr;5q(!ZeN|CmQ?IpnML-@DcguK(TlhFG2GG5Ej7 z?SC^qG5%#7Aq35OUm$uyD=^Ia*KiG7bXIJY>Lw2*nEgDfR0$Qp7CIi7Tr zKAdMACZpI(dotNW&cL47uVIJeW#kHS4OXf*lUvE1 z*T|dX9WvVVFnOE2g)NNEbPQ97{Hkb!07BMOKn!q?0Tri^u{ppR|!y(nK1u5SWF% zG_^Q4Sw(!ri!Cr^WI8Dk3OLCn9+HjaS~^K1h}QyFe+k&P>%g)II~>FZDhRy8#^=VT z#y^d}8y_2gH4YhnG5&1)(fEV$JL9)FUGZzkoVShFjb9qSFkUf!YW&1_$#@Z-T7FZ9HWhFdm1bdIa+7LE}5v*ZFPZF5`CNHscm!Kcv}>@Q`w?ag}kU@eTMmxy1N7 zWZi|vdB(ZMS;m>hX~tgT6l1rs)7W8bgq8Og0|H+dD89m9K$Q_l5uW9ra&j_-$~GxUUpXg1_*6ipv%Fd*1gc9*MhP9Delslfg7r(FD7ra?kb%g+dpPTU`?<4RDJ!aQ0T6om|5u*91cMCff zhW?vy+d-`79SbMjTgflXZgixA1yJTcp7GTMv@;h-*d~Zix@gb-y^|5_!d$73nJ@KAy)ByPHc$9XV%CntJe7a zYpVQf{kWM}eW!XT-mVeb(f)^ErJ-H!soUk6vPDz1B`De;n-S5D1XvYOx62+uGkfUs zv?iKMP^)eGyjax(id>RV^LH&^=o55=rW7_5;J-*Z3EY#W#vRq?PSqJ?_mmwm8TWX& zQvSlanc5Tq&ux)C{e&RF+DV-p{7AJ(tYg7Tqzt?mh4ndh|9MMcsMJhYrdqF>i)>g+ zE4~$ZC-AML7iePf66%{slaw#U8#M7x#2LsvVbv6-^%H{5EP@|}SL2xPdf);WTg8v& zf7pkid#G*IYIA!eU5;PsxU};#Em`1#S?%IXwtpgd8wnbdLq>B{uYJPB|vB*%xSQP#C*5F^JVQ6FqJ&RRv@{V zOYSX?>{(Q=cpf+9O-N<%x<@x;wQ=^;KAO0;iTRd>$oH^FN60zs31pjbDvr0nGanl)kfp=wMbr74{UO^qisj4T=9SUGbUJ!f@ly&0xw5Stp z@mr$J@1(K;xdMBuQc(f^VKuAk)D=RuX&haUSMuzj*o_oMQSQG3>vV$7_}6L8wTgY@ zT&w45;3Vp>i#-L1S}bu0BSq_x7qYTb73_RgPTQ*UKr4xdl(EsM0|y{MCrKg+zf40W zFJe3@n4%?;wj%#Tyrn=9_)3ljJbVn+G8{OD>c@F&oI6KP`-hN6p!SApAJDPnxRu{( z6Aq_W2hdl*0howJi1sM_wcHQ+sl|SY`rt>wkBE~v)i3ge=RjfWjC#;6;#qi0qZxDK zYnRS{-F4SqYn2Ipgp??UFZS3gc^_=4u?F@k#zff}woFv2JznaPTm!KTP6%5gL0Z=AzIy7BMbxUi~*D8&AW1 zJK?<=7@&@B5AIZZ5K&z7BNXu5fF3|qu*x_)hlWHu!tg}br_ij<;F$zk z10ftXuVcyC%7(1=tKj>4E9LlrS?_DXsDPa(I(Ta*IlB|I zL%t*bg2RiIR(;YYj@qzKWo2jZ6Hv&(W`JEpK2l9qTJ%ojaGdU zuGq6E&+#MBM6SS4W@Nh2e?Ms3Dk=R_OCLIy*aQqNtZjJoigHW5F{p zoGUphj!n7z;+q%YosT@yd4m8XDg0Rh8mQpy2hMWLYk2vfve@smAN4;%ZWje)w}g4) z)d~55oA_T-MDd734*S*xFA2O%l!(XN;uJQ0z4u;Y#uPLj{6yk+17JoAW=s?);ycM3 zofs1j=z7!`(%)9_ecfuCYMIC{`c2b=yeee@=mD5=UJ*Q};qC7Po8B&=p@q9TKd%;$ zWLe{&##z!*l`TX`m!Ao56@IcmxQ49jyg^`m5ToYs^|~J<56H5Do)A8e(Xxd2^e;+1 z0+PysA(%qa6R^Y>3ejJ{v3gsKBiY#pbx((RSMrD0e<8+__#b_y`B#poPVy?s94->n z5HbbyljDPdvjl%g86@ck)2A%UJ3DUxhe$?5gFb&1MN!T;sAYyK2RCR6CMXZ@AA+wS z64s!o5H{7Fj2`|#jb9Bj+y_y*tQf-*rjSsOJGVd5DLVY~v)K!W4i~W*z!!WI0ax-3 zJ_bedjf5??AS%8Q;2)7AO>mCH;q#yzbCL%kA790|)I8__Dw+p#K?Cr*DQEzEL=C`6 zaNs(Hmf{OgQXs}6=oqTYrs@*BsIZcCVZ14#fTrjXd<)h{=_U#u6>XGwMSL$5G9v|l z3K!j?Lud&XV=2@ZE`0xkUYVMlAPED#QZbrBL9w`M6s89;umpkB(6Sn)$s|XZZlA^} zQjS>tE#(jJ60?Ppr?^0{fz4>5Ahni%C@XkVos$7Q#CTEMkM5D|e>O^N6lL`|)ih9J zP4T6qf#?y74swP7w6il0BeqE!iSvyqtiv4m4RuQo0SEPS)unbQ%+%+rv6gNUIStD{>w6mF-hE z50{h-Z{IOgQZlq-<&vzdB`ei0RwCBp?ZYLVq33uTxqcM$i#j7FaKt)U=z0Q2aTYd= zXXjgQX;g!+K*B2D>UT;VPw(dm>xfbZlses1I-vO6Vd->Q1B`6@(K;hoRpapy%o|Dx z4Abh%@>fln--h`>&!-aSiQN%|Vmc8Yk$*z}kuX^-e8M&Wi=H?_5J^wPq*lRwo%<|m zN|hFJ*6Mp9v*VyQ#KyoQgVi7KKY*zx7nD;q96U&N2hS9B9Nb5C@7wq9%EO?Y;&%zN zwuQmLeX9IE)N~LPh&gBq9459Qpgzo5b?iey*^GnY?%$Ws6<-S@Z~$aY2U$KmrYOca zWQ*WMNoy?Yz_SzIW4}1w6S2MKBbs&edmQG$6hS2Gh=r5LF}V%}1H0AbnqDl*j?QDj zQF*3-6M^THc&PW9g}cFA=(IcrOj|3O)9a)?%eT zpz~Qemzo2_tRZK(m7T~eRw7VG)IuaIpF?|;gw7zeg+~r)$&BTdCC9CL^}0gj1hb1- z^N~Y(Wx;l7-A~Wwa{h|QuQ3rN6fU7vkwuSJ!)qe!FVgd*o+A&63G$FdkCjsYvUE|I zGqjGA*(|zQcnf+I%JwNu7YgAgj~r5!Dp{}Bn?kn^@7a>{kaHWd%85P-vC`$-jbeTiI<_mNvaV|}40eS$(DsF$|k%Na0 zfgWG7hENzG7wQ(v4*G`GpOT*@uGRJ*IwaN$7QUcwh&LtO(0hV2z?)W2Sbed7QeQ;y zrs@idhpc?zzEHeokygMC>5f`9h;@U~84n&(@4<6I=Z$zTSLW-i_fqegum%=-r{L7! zC(;Z8B}MR&(t#$|C3JTp>k>MZT=RrriFE}=-67~&_gT1t4?=XpmJ6#-p%aP@6`iTZ zaA@tNc^2)Gy^poip@Slu-b*@O>lu$KqqQfU}W~k4tb_=;D*BY`lA~#0=8&xyuHSnIO=$f|f= zt>v@~K)vFegG1_=m`3D^%93FyA|(gZ($8PjP{Oi9>X};JXz8JPUD|h~5ys-j&^l~F z8Nnx@p~WfEaMLOKCbUKg(@CvOBT7WrdMpA=!Y#!27{hurVIT|cpV4W_@JPK}$#7tW z{JL*dZ-|wK=BuM*twk|aBHVwI>`#;EjLkn05(&z+lt@yYx9Dut8YfZ@T`t!_N1f57 zp2r@mv;NU^>kf}3A6jL_Si)gu$YMLGp`NVj+(YaMBinzX(&#W=^ZP^@z0Z#Bk^pc4+f3fmvrtn|nTJBu7&uv3XSjBfm_K(5mv z8?+5@;@C$%YwU~nlWk&34p}y_kSvqDFUE;w0}(PtVR=v?DBqIKQL@OYPqkqJ zOd%VjjZMhy&{z-44|pI|vvlVn(LT)ma*DQOyu||(=4fo`Qe!}{4oZocOz@|WWK;38 z9%&L=W$%Re)GUqsNAa_?0))nyq=Nt=Sz6Z*y#D<-(|E~&FbOX`Co4GyJxPj<+am

ZxcjwZ0Ix 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 z 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�gzxH>XR@G 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 JS1YjO{15&)U={!X literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/font/jetbrains_mono_regular.ttf" "b/Variant \342\200\224 0.30/app/src/main/res/font/jetbrains_mono_regular.ttf" new file mode 100644 index 0000000000000000000000000000000000000000..dff66cc50702c75abd025dcf49f62a4dcc2d72de GIT binary patch literal 273900 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≦fXo=WUuIA1w6wc ze~u{Wb9+aAvsl~X_C7Z%y?9g7;~Om*Y2NJVomZXf_|uD${+1m5eV$(Co5AnzN_)iO zk$!cK{^^8XB#Pf|ReI_g>7U8bAN2I%hmHA_(u)Ts{h=KF;e=lO6#e&@)F53$FBT-#1w4#e0(;y$~(rx=ejI`&Up%eY&ep_joO?K6-ez zZ;d?Mke@c%aGy@gbI z$L}*w?_iv6ru7>UdX)z)CFBucK4MkIU7z>Mf*0FI{6)F)w4$V?KO%liwtvCJ4iDcg z_;DVu;}uA3opm|*k{o|O|GA?ff6V`+eY%R!`k5wvrmK&BobZjlK387X$m+d`=PH@I z1;!toyoHn8@fYEq2fJvuUK2j-C3r;2RiWTX`D8x+2T$P{G9~{PKo*R{csXgi_yk`1;L;*n zu4#}j9#7NcqBqxpaA`dSl2aGmRf-4W=y;mTgpbg>zPP&F$jOQ>C&$L>91@1kp|t3N z?%3F$zRbhesr_e;#?JhVV~%+OK(AA~5aQvF4JLDA#UKi02W>~F;z{`Rx8t1_?57GGZHnfb25qGv4sLJr1xj<;J* zqciQp$t?S)+RpMgw@K(#%d_;qaP;19yxs5vskO00GBWE{AL;y5%O`g0SgJmL6Tsx` z@K9HueoMdv!y5FQL1)mnE4|<-U#ym#UG;WW`YSra{^E>6@syzG5%C3u1Wx3UnrAxa z$RF!G(Ca)SKR=%2V$2)T8gFTS=EhQSe^Q+4g*ojYT|MH4inCsg9fIx`{H#%kbBo-R z+L&t;a=P?sl?V5yls5UPU&L5=U7$ROk=Al7vpB+94p9T9WKJlZ zuSe#nXszbEdW1f|PiRlHz^~sij&6Q4rbXG}om=?y^OQMN#611nq^(VBlh?nGJ)cAa zk18M9O=+DmpCtYEwgMzlm+BDf!cNA?MkAMA0v-Ylb}7=wWKS?7)jl1Ol>aizg<7@I zm=zga`JTh64cO+!&i9eE`2NA3s|9!3tkNf?$lr}iddz)nk8vr#H)VPs>Xh~)O|8=! zc&mYFMh0El*?-B`(|Dy34fgc3Zl0bidhI`aTQXwmS+dq + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" new file mode 100644 index 0000000..af9e637 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" new file mode 100644 index 0000000..af9e637 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_bdk_round.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" new file mode 100644 index 0000000..eca70cf --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher.png" new file mode 100644 index 0000000000000000000000000000000000000000..a571e60098c92c2baca8a5df62f2929cbff01b52 GIT binary patch literal 3593 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 P00000NkvXXu0mjfP=x?Y literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_bdk.png" new file mode 100644 index 0000000000000000000000000000000000000000..b94c1ed5984ee5f0fff4ddf2e42bc68162ddcf42 GIT binary patch literal 1971 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 FV1fnoo5TPB literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..07db04c2b305a44d58b9c215106527f4f17e3248 GIT binary patch literal 4051 zcmV;^4=nJBP)7xL@^kn5>Y`^ga-FDE^!y!7rH@l zMGWXPPEM>h zVA9rxU>xHduBq<_#&4#0LGl+ z95JnlwN1%XVq{3iM81=B4aoHMxq-?3)Qg<#*w#-Hx6DZ#j z|Azx3gf32C)T~;QWO)vmOv(CMNGupQU02mFO21QBj8CNgPb1-9GYc6cnRL4#qf+K# zC$W&Pc1u%wO1B^gger>oQdA6C3=bJ@+RcbL&&7hqLX>uvK=PTm`MF2Pq83Ws3QVGg@Yb%cf?y|ShB63_ zUGK3d`oIUtXsk~gr>!7FTa z5~;@bqEu>|M+Vo5j0<`dIN<0N$?V*fn=Iw{6_#{3t;88}oW7L7C zK5F?GrLJa^X!g9cn;gis{=lSp)j5MEC$M7|GuXUMM_9n*cs4LvU*Zforms1`<$`=_ znRz2j$)?|g^?!5=n)!iJXR}D$O!Y%te%3R1>Q;8?`W+TDXS>n0l4QsOxgekV8kp-u zslRVX%ob9W?{unQFipbT`cK%uxgekVnqboJFYoY; ztn2W3Zc5!>Ng`W785NB+Y=vc4d#p{$97?Ch9k8!c@60(mlIIqm5OrUv|__ry)C+t4|~lvv~<+4stMM{G(o z*S)}R0zg97KEaE369y(W{pGJ|+yb;U$RF?HW^>#NtOf|?Iv`qRL+7vO$3b&;GXLnD za|PjnlM?tmIlBs`*%E++oAnJ{^}yB5r?wIkP6DyMp)u{HZGl&3E+wl0T9R;rB_6oK zS-0;8HgVZLet!CzgY0hBZ)`>4X`?yJWxpsr+py;XyPf%%Mac8!#g+gh%^m+2vYA^z zR99f3(Q0$tO!%B<*qRVa+zYG*=)jqu+5KOiu}e2H*`51O_-Ej>L>96ziKU*t!J=bQ z+1T&*urxXkW!3ZL$1~O*WcyBDXCvqCG`gl_%K_58K!4VK=7pf72$Y3b=(ghXS1UhZn7~8lK8lAvWVqdPq8Vh zQVs42Fk-fyW^*?jX8x0;o(e$Yo*~l{S=gez9Plx8ZbjlLzNV1NQh-Fd|8m5FIAD^NfZ#oSMlCr(SX9WtMGi&|4i4{-iQT}>=B9YCDS+;g;`>isXXmcnH`LVrjaE9p#7(AaCbZZ<2`oy=le{%Vm}4o9c*%JD$9KMl)EIXWZS{Zd@S~Q z)BwSa=f@qRc~A0nHzi->a##uw{|cO})+1y^x}BX}WrOjEqUe)eU)LlPd%$ltGlPLm z0R#mmF5Smwtv|%>QD8oDK7$_%fN%`}?L2&yjUYg-W@NFmSMG2N!5jed!J}*r2C~*l zax>hIPc=Xo8$xc1IdNW>@&lj4Vt@<R z0T{RtECF$3s=|Vl0096z_4~g*Wf#bja1K@l*Mw`qvS1mP=yUY^-Ng@3*y`+-J%%V_ksGD(K#l7nUf}xbU1xdRK^cHe zt}zRC^ZO5-PiH$0U*WEXzzs``+jo%#f47SV`}IlZx#eNbI4Ubu3$PT2^2CH+3r zlgW>my~Ai+akHfWDO~LL4?p+*rvV_5#ZY4VM8*|KkVf1&Oo90t#RtTZgJ;uuu_(s) zMInBF|UY=o9rAm$507)QK z>OX$nQE5Qo3Pk}B{zef9fZ|irc%_Se>>yRx$XqDwP$Pk1b&KOqP!K*$_dMYNUcHtj zY$-sZQ0x`7@DyQDMS+W<)u`wh61zd%Y&?N!&JUoC)NcVGWSjL#=lJopn_0X#MD=_; z?G|rCP%&Rk&tfO&Z&b#}TI#hd;er5!R-=31taxCNYs*7!%qmbH5?&O|>YdCdY%R4A zNV}+{(L#)*v>dZtD)^RA)jMHnGIufbTNoF+{S2>@aDB5}4Ht$j1qjV5HqAQvMoa}3 zrkd5aI{1w5YU=CSSFsu(#22^`fB~mn&*YUc;txQ&@Y65cQbcHbw;V4+cNcgVhG-QdGd>idLm%)}sbGnpD7?9YJI{a@~*CVgdC|h)v<-hRO{z>>Z)2FKh+_TL_R8phqpss@ue+5wOU$VFr>BtLh#S zvqKtao|~xw3SGE|KuY1~v1sVRBo;+YC@dtDS_ot{0HdC#sM#WbWmCUtn}75V-}q1(n7^B;0TNjZ&FLBH(9yJt8VEdLaWWf3 zwazGNJc}wIn_{y867Ds6*`vB2IOD}C8zc7;irc?-+t0wis<#<5NVwR-3-V_=%(Y-Zc4%U9hn$eay) zQvf|6#ZlwjrgV?(QE@LeyZ{P1{AF8D^5c_fw~NKi%mOG<#~W1YzgTmPhdXpP8Gn@I z)VVW$qgAVS@RI$~M6b3YQvhN66P56Ns*Vwlur+~e0w8Qjlnxh@bn6;8;|S?oTh{&6 zBqLb4Ri^+C6i)eBktu-0roBETO=?`JwLrQrRR9U=8M}(P{L9N1I=co2nh4G&$U&od zhd%1`96oOw(%-9Ipvns%v>M;c+|G_(yvc#klSQG|DlGs>ui?cpw}DakHnondvw7s< z;el9G+0mtKThDQ;v-x-Rd1SOQ`G%RCxq6RUnq9ZCYkTOb(P&;Bd(`Bh@du){H2uT0 zcnixfD(ClEN*3=Z;+?=U@s1*IEA%hC#;s+a_8dM9I@*8iQBkeGIaJQBabtY_;n;oX zti3Qtn57yZFy1D`Tcs(-FSDdWX(i5(!{l481dgv(axF^h`$@NkvW}+fp8QBQyXuvy zRdb=NmX1YC#Ur@j*E14%N>{(LToMd9AdkB7mVT9_XFZ0^&9JRn)fKwAy1JSdnDe4K zuH9|v*KN`S|M{SSQ}cE`dXAW%Ay?ZkQCk=ZSyGHThh*aK`+PGe zqkhx2y&$tJd$EBd$lBhSKZW`>wzeO24v0?n8n=dTj>#^UXIoP2Olw01$O4(%21KUV zRIJzvvdS_SJ2-;MRd;m7uZimtH~qBNuqjjqJjD|$5ug;nK!)BU7eD=^`;h4*8-C1N zSC+NNV@`flu1=jgwzhV5ckGlsz2FN1IWLbYzjKr;}Qq7w9Z!C_)%^QEz(WisY1YNIhzt6(g zDLGaJ*1zC@K~d~|N5n}%UdeP$+7|~HV2qK*V=l~zxv@s0mL0KOfmc=>Awy}fn!Kod z4JW56vfBYDXS-VU+qdpKcw#62=)Jv0F1&}`J8Y1nAA(infR+c-J-D}j_y*<`wua)% z_xCytjNXGeF*nx0T38cnLxx-ul~O8?Ca_Y?2C%4l#CT(?S@m~of9CvY&%vMd89s|* zMMAf)XPo#lX#RBy@R{zTS3LF@6Y~s=<37PlGrtU4a2@w_^ovZu7>vanR+6<~&iAo~ z+;El&VAN!7<>d4>3QXDk@a|tj;wHpRZES2lB>o6W*KW|{3;Tx6I)ibHb9AjG?!mqC z7>u>YT)b$dx%nDz2w7V>J6FKdMm77l_Zrr$RH;%eIuCaQa0v4CWyUei)y6%z7h|}k z&>VcO{{!M*cUxgg#nsiuiL3#yB7<>^bNreFMu`R7{{i-aOiop=BM002ovPDHLk FV1i_s-MRn( literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..61da551c5594a1f9d26193983d2cd69189014603 GIT binary patch literal 5339 zcmV<16eR13P)Id|UZ0P}EI-1@)I=X~DGdw1?T_xsK{_uTvL8wG`@xdHSL zi(gOK!kzzrvteWHAo2y%6u%c~FYnJ<{N`T=3@w2g$1Fm|W?3HbvT3QGvT;S=yZYsV z;Ux5#j?uZ!)cIU&lDjT_%=}{Tn4nc%?;kSe8vq_&%eGAXoY=)gfJHN3HRxZ>B(Z_MschsoM6AUCjPu&A03`pU`P@H& z-Hldo)2LhkOv(g+79zsWLK6F$uY^-8!$ow=uuO2jh2SxRvH;PPs;xr%>aSRNI!<*k zq54?efxFGi!}O%x@0qhGX;;FAnHp6DCoZk~0VY&zmNZ7(K!PJ_APP1drc`bP>0_;h z&Qm$bcWJm(}i`WLgp2 zB!Saf;inDgfjrc$$+TEt@mPcR1IsBF%ve$XBbby0fpkyuOahYhptv_F4TPl^cFuY% z?j|wKCAHsATwcEiKD!!=-Rcj*rL{kREWvXSay1%O)$IkoG9;U>9D$AX2iq+}=c!zK zW#~F|y=6S-m(=bSuBh7sp;w||;ji02=~j1>n56y%KZ-d`CU}*Vr4Kbx#$l%nQktf zay7|dPxqqVP#g?4KFBTpC4g94a7d(I?Axdoz50FWHg^b+VQIjj*168V!-BZvwln~A zbKH-RtH}*WGN*#QmN8LoJ=px$01}Vc?i>8J3A9hHnIyNX`EfxD=_YXVIKs{VT3Ndn zW>tOBQlZBH$fP_7=2U+P&b2>w91zzwom{tMxdOJt%p6O<(sru*9vm-yM{=LrGg*A; zdzO^ZUi!GSIH4T8kpm@-mto`OgS_RuFCT{W^#^#*lhAo8$9JBR$l9jsaNtH3yDncj z9=-2VI~SII2{y5Q#*d6e5)(5m5qxJ>5ez6o)AC@Dmht5wuo5#@bKJK+ClNCgSImHK z-n$L4f1hQ)kyUO%%{MT;DuTBj5;{-iWSt||N^Q6Z*Y7p3>zTDvk2$AzYh73y(Ykaq z-S$a`7~Y)6@=WksXsXwxd#=vLpuN{KnDUhFcejffqj+47gj>yxu;Skx*L=&ijF8^lE3`V9ohnj~S&~kFu#to{@S-dohp8hv1H|3H&ftNS7f~Utf0s z-0Ba3@0BRndhI0axt07RCPdAk(OH`c?f>Mvkw)i#6?2gwcRS#Z7G zd>2F_5wA3$3sv9!1Cnl?gV3unFu8II%&++xD(_x{jN2uw{;mRg;AZ(A*EBq*^_OPS zqW3b$^)#DVy#pT1?REno`cCElZvG#G)QHy99*{=~0lSF3y@HHeTsgFs+5^r|WbX5XGTV4F1VJhg!y=hf7Reuqp}5 zpjo-u)jNf=s&|4cp{$jH>RjCOm6?Yz;^2*JxF>3UtZ*dKh{2k!N7v=kX)dSt9Dcop zb81lcyzm@k@zO&sTre7HI`lsiOGC;R*6af7$}J)ahO)%EGMpu4HrV~jI&WLG9e&21 zsJmTC9+#u*QYRowFVdIvCjDi%>vNHH^;Vcw_<5!BNaa2c12vZv4G*(@+qhJ4jaHo2}dFnxWlf-cFM)5Co`@Hf~jXV|1r?XR4QTQ0IB`3a47oVt z|6g6V5B_<=meX43`m1qB(K;T<3&^(kvxbr0HY3{r`e4_B5m;#>1JsFb9^)44eq||r zPuL7M8yn#EKX0t_p#Y8CWhr{I@fJ*t_J%S09bnu6C)j^6u}gryx)1{z z$5(=Sv@^^~4S~O!WMB72Qv<9l`<`YFI~IeALT?Y=U_MF;khm8cvUXB`qZ0oP2Wc83 z#osChA)h-mVaA)Z1=J9Z_Mv4EQKU`0Hs=d~uWLHHTj8F9fi!(vsQuh;Y9yGaXi_p3%9HylQ<{^u|E!Jpr zY4t0U3I+e|NG9!Y>09{qPVF-dsPK9j%*YIZDH(y_R=OYc-^rUv&#w9c?Be_n6N?s8 z9^Am}C9TAD-W?gNlC}N*&tK0ppev0xU{3z$pqt_X^K-X=L7_MAVAb%vKN#(G4ki|| z2CFZAwC7VR2B_UZ-$Otf>JRYdBF~DDeyfUhfnJI$1Eib25%kY`Kj__9fTqtCfnZSN z3+h2LXA+B+vx;J0>)HR4aYLq;ZoMM!gxQvBC!T3I5(z4a1ie%O6wUzYWD+DFsT?SP zO_=Fqx?LS;{=o=h(dLy0j@WC~g~8Fxg5;QT4XloWxSBkOtLCIeEb%q@kX~C136}~W z{!;!!sV!(Bsr5yWTz3}Y>+pMBAtcndmE_Askap!)NVt3&60XRQ-_JnO?`I+V+IdLC z&xu#1<7WJTkCaZW%6ugjd1<_`8UKkBlY z0Le3HPfsN^POO44|8)?{0Y@fde{uqwC=bv&v>e7pE@q z8(`eg?mj^_Z1R%;MZ&a)J+NoLmJOajThV#;*a*1Wppyfh8O(*koU0dg@3+iTmx-3%pq!1D#A~P}?85fI(%ICB387Z+3225a;)w{qpIRI>qdBW1z zFqn4S2W*aeflag*Oo{OpORNt}IpG6SPx^vWVi?R%2m#ypO<Q@c_!eeohr+BJl-$n%^@rJc zVJrtCu`dV*&tLa~{pqb>e+K0&?Y9Z-i?)H~Pa86@&HYs@Enk**Wmz8;Un@HUbREg- z1@g`)8lLw9tyAk@>Tz$-j&g3}R?-3alM`NG7VFx^t)v68d7=kcC;PQ=D@iaWF-&oT zIoY3qPO3`_w|WqasawzTfQ4rwKtIO=-3r|-&;7n`p(ki!T?3by%%?VMEYXl}}eR0u~8-*>a7egC@(77 z0ebnKpj+S})JAty@v{!0HV(4Wd!;iAU3(}SjHJgO!_=c!#v7LSv(=#;ee_JLNvT1y zx^k;{AC~8|mjp6EsR6ujDCRIgc?gIH4#gY;w46o7Xh8+u&ARAjs=MYV(Zd|>5l<)I zq!ydq8;WngK2|GjL#6ng2SIa3pUo2_YEbJuhcaZ!bJ|M+3DA@@K^wP{&U1`1Ji$Jn z0J+J8Lovr7-wPaycQhMdw>~yi0A+MG*48?Xw#eSAWmkVP<>noS@arM=%bUAyX2#;LLWhoZSwe7Dd3P#rU~6 zqIuD8I~kmb8|JQ~HVif#{YH1fk!(F*8$FmR9;Ul?nv-6Z`z>y~#uj9EWSuk(aOv(_ zC;72FM|Kh@4$2eKFze0?lxaBoWI4n7 zst!_O^F5Dg>)A*91N!HK_XgOEvq9IWqHJ6I-g`jDUdcqLQ*%Qw&++2TkjbScru)Lw ztRP-E6myJoykY(s9EfsBAmuqag`OgEwJ`@5SG{TRkuB*wP^|l7e+#rlT(7;8E-aa$zBqnCzNuow4YP46D)HB_>({al(7k>W(V`ap_pTmi-6FrbZPj2 z88Rh-TKHSlukBAMzM`m2y7tw3yq41@CcU9CjNT?5i1N{h&C`OkQeFP0?wq|hUnXc? zTqECW;WlOAY<92p@IexgCuZV676I|WAuBP?^S(d-?6zjTLNCzCaRc>Z&VQ?TTWv<& z=w;r4oUTv&Ut@YGXbkApYlt!}dK{r-q%vvrUWXX!HRzc*`{#wqP@y5u%w&sYz~Yxm zWac@OGI5lj6Cx81rX3=h&oL?Rg#|_1(N)*MhhNNzRZ<^HFYu1&rQEAO>G(9@NN+Fp z`CuUV_F$TGd)LWu(YS+4(mpNPE;7FuBzC=uKoNVag0Q4#2BgKdwz1Fjw1=bRbtuz;rX1c3LE7MhE zk>xL(o*OD8C}=S>MarOPAw;#K&R0K-m=)Q7nkG$G(2|v5z2ENr&a+@OeA^33Ix2lR zwf~Hn)lLp7ENta?tmUvR#BG(^XESLpd z4eagIqL$Z>+GQU%++~u_tHb-5aTYVIm$GtyB^4z~{+^5f5_*9Ky1hSQ7WFPIKcaxy z=iRrAK6D)Kq!YFv%y|FGsF^4IbEc;RmRV)`Uzwa6c*D9N_!fy(j^M_GIFBpi53en= z*uO5v;_H=B8h$gwROT5uQ5~GMP@RLxYL!Q_LG|Pfr5(4%amYp?ni6?hSP#J z>irZI7001yQKOYK-kbQA?r=*I`b@|0oFR%gg(T*i>$J5J1p#4~U6HrAJQS4rYPAy^-!I;eb$Kms1miPp znxu9z(fBqhs4PKV3X42eMfL^am?*ly8X6;V=hyFCxI1@I!=f1d!=3rfz31$AzVkch zp7VX*?j1Mo)#oMtMB>2sS>>u9y+{y;Q4?1|^+Uo-lgUx>5e@WdRZozbvM0%m8E+E& zjRkKC_X0v6qoZ;DkLX5cPgn9y9K?woG4pg)e7W~$bKAG=@-t=M@-yXF2!W6TfI}+35(&+V>#9m}{q7V15swrfqgQl1VStksa9&pOgHMKd~-Qm-SCZ z?FUZ`Kxmd(TGg-o^jTfLhHOaM(jG_+>6}EL#`zf3T%@UpzZWCQyq%NjGwgI>rUEX| zm}93Sne<{E*^&M5Imr+C<9#y@UWRncZce-7vTxrjO={uAC4C?NeF@U!V|2oB?0Q~j2J#&otpvOoP5rT|)SY+M_K^CyIeK-7B zjf!=V=Iu~0vSJ;{q!;VRj_ileNq)#5-4h2NV-^Bh)V)r5OaDA#0B)bInH**;>{;Bg zn;dcx?eBrGsACsab$$pz7O=MSV=QdnVW)fN`UhCnvByqFGU>%SvLpN9bCMtONB6`b zvV)CnE$*G+NC5N%Ue+FPdKJK{0KSI+q^yaogge_O~^OwkSt)o zr543qrFOb^JO7R4*Wb6(kxY6)j$+t-rwpH1svnt?{E$C>9ODpmeJ2*R?r^+`ef2p# zlrfnhgOeLFL7*j%&-RckV14I*Q1i7O^Vt$9=;oPWE-_fv=$bgLLmaw&*vbgESe-U?cKQ`Rhht-`Q@p}56 zi0!jf@^&vp4}`GVK7X$j`L|BtbZ-+nzU@L!e;>Xb=m*DfxIgd!-Thzl`eQv>6y83K zYWCE~?u7>sWggs&4EMj{$vO%ePj+NKrUB4StS}VxP>qI}w{fB7A`l|^9rj-kWJ0*P z7$4oKVA<^(6?p+L-Pr9lOM&}fOMOO2E^!4Aj>2KV> z3x9pi^ACWQ!M$wB6qD+--bTRD7_2y#%Lnsa0rd5MgB4YU2rg6NX5U@A?{-};fmdtV zvo`T}_W*5J=KHtpOM+#!z4uGp>a#dhLSOx_8y)vMp}hv zV{)|CM+=&F?WH|fqAf&(vH0m$p^-{x`|Z-_LS8_={s`t&svx_V1ZivP*!RHBo26*H ztsjB`x-K&sy9|T4Loh;j*No=7CN$nP+R$P#LuYA6lf^WMZWEfj&A8HY9ZfxE8@3sa zA-F0P(y9b_)Fs06TI$#aAZbxz`mt4T`sD9Cd_LO*=L7%1w9i&z+Cg?b^e*JbHpBDy z1~zUroKLKQ^XF?JJ+&FLOXJ{DvK})^H(utKf2o;qYp>99fOoC!*nX zf{{A04z8cChwG{Jke5co?`#6xN;ks&>?WSPrzRR96{(n69u1E#V&HK;7M@jc2&v70 zye1i*wd^TeOys1EO87QsjP37%NPRH^PA6c&aU}wd#lr7+Ec{Qz!T)4DB1%*UEm0z{ zG!cPkk`Qz*8R42VM3t)%tWmP8s}RhHhn!Ex-)ah>s7{BXCIcZCG7)-Fjpf>6L^R|g ztRV;U8nd~1O}SX8%^mw6^^z+p1ePSQ%&)@qBMe7Z^JU|GG8&STth7$9h0E!6eA#%N ziH2`k0%n}s2-mVreA!Uu6|CN=Y}_kj;9eEWmyMz>gKy%Q7ugf5PvAVXNs!eh_Bv%Q z9Q)H~WLpv3OE%ibQ_Xvyis5TsAWtTDC$|6)+J+R z9qR*aBIj`_8FCiDAD>46d|zBi!;G^VZ4K*vIu_EBEp`nnD`RD*Ng5kG1;*Ip5>ppd2QR+CX|Xu zO*%p~sR-1hAh2ACpo*;sugpMHbq?mRnx|zlxHcUjLk+878CPht5OOISA&uEsp=0yu z3J|KxL-^%9F8pdfA})=hi31GT-B0`9sQ1+jp5*MZczBkvENfyQDUX3qMKXff4l6w$ z&u>y*)rqXGlMzv$!x}c3)qDzHHu44~BAWBz*TjB1H>X0TQ*qvx)8OAgfA0QeGDaV-zCDn$*;%0^z10RJkbUBl8kA6B2mmkl*6)jX9=XmbuDuYzYY>jRyV zlU&{k?*>)x)WXG6pBRAf(!go^;@|jQQ{VM7KHCe9fL1ll}^JDk+PzN|`LJh_}kmCs^m#WLmwd60NdohMFX+tTx#?Uz=t1 zsZ;gJ>y=jdh2(D61FMh!!sRV0pYe{qseFy$w-dZ3`%GNms+bt+%wy8fRSd^;PKt>^ zgLoroiVYLzIw>a2bymE=u7rs^MD`1u6%(YBeTfTka`;^_4V)4=l`gU8(aFdDX zKE#!RfV8D8A1ibNT4)PMX$vit!p4_#A4DC_pZ+k%dv4qK_I*p|g!OijlRPQh_uhM+ z=iYP9eLt2gS+o?kEqZ-g24{bSC6I%V*IkX{xQ7wKc2;&zeE1z@YSWW4PQPl$@y6#_ z0DU8ec--Pzw1b>$c|1qiaAvzwKOtWN=3s!WpMLl2J95=Ce6BHu8IQm3 z?JIjJN1^{61>hvYl}I+iLJW|7xaQ8rZ3ou!xyD$u@!j3(bSbBsjSd!0m~8L`ypf$R z;d6~KzJOHSfsD+3FY~#^*#AzzE|m#(tIZ1roKL0{`?)Uy3eQ@huGI|{M#qA|(C!75 zrc>l=!3E?VHG-jI2uO(&Ihzl1$?6+ze#kv$jA>tR0Xv9;s*C*~Ez*fd%m+9h&WrQ& z+ZP209W4r&155;b{AC+_^7SRybE*aMN}AwgO*d>m+8`pw$Ijy>D6MnChbJ1@3m6=| z4$i?zu(_{7!BZYl)pyS&&;>-$GUV7T6!$#@U!C8Bqd+K)o8FB1Ww zsTt_hE1C*Lyd-p2_034yVnD8ZQs2$In8hOW~PQhsX_k-8T!5r8>x zjbkcC?X~VGXcjmHZXJs;8O1xtt#%|HRuaW zlPcqY{^6hK?qHk?=MjR5fL{L;CEG=a<2g{K>w#|H1QnBi+5)F)9JG`QNyP&b0T>q4ne7FS{9U~%=iNH(%#=L{vCghQO8f)(;R1y(*pkYN4 zj!gt+0x(oCQStQcbYB5Y%K#OHp(Gre2uTxw&#d&>HO?D^`5e`pW_l-_oLb*qry7iEvvs=O-q# z$i=i3tJX?3$xE6t4{Bz!4pse;b*TDI_&1q|_$;WL-L$K?`RSEwFnrPy3P6i=SVr)| zbLs0huHNwG`>Qv+{twpQXYhRy-_NG6dkeWBr@NAm8g`UOB#)6lmlHg}7|W5%zb4N& nOqN&V=O1N>ITLo#QpElSn9)z$2KeTa00000NkvXXu0mjf+cjEm literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-mdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..efe98251295a1adbb2866d25150253c5f9d25898 GIT binary patch literal 2556 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 h>B_8 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-xhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..5d4b7d914520d78d18cd9995c85e777e62fba953 GIT binary patch literal 5820 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk.png" new file mode 100644 index 0000000000000000000000000000000000000000..66f997cefa1855fa5338d67086755d2f5d65cf2c GIT binary patch literal 4335 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..ad3ace1506e05f808b51482877692b9dee0d5c48 GIT binary patch literal 9177 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..b216f2d313cc673d8b8c4da591c174ebed52795c GIT binary patch literal 11873 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 literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" "b/Variant \342\200\224 0.30/app/src/main/res/mipmap-xxxhdpi/ic_launcher_bdk_round.png" new file mode 100644 index 0000000000000000000000000000000000000000..28da01a04b39672fc7887d8a5125a07c0c03cde5 GIT binary patch literal 13086 zcmZ8|RX`m}6Xu+Q9o!+fySuwv@IY`25S-xd?k>UIJ-9mw4#9#$a0~7%_ur@8hv|8l zsjB{}x~sb+Lgk|jG6FsV0078xvXW}=@816&2<-c)wrT?h0PKI|B*iq`4Nmpp+%<;q zkpr;TWVa*y!~DJ#8RDAh{Z} zB(zw4%N=x^{p6~^_vK||8*be*YK{%JZd$Lq^$w2x@#i-YjyHGrQSvCphW~HCDyNmF z3+hwhr>EH$5slx<_CkQV6Eo*bleddXb$j<22pFZRy_4@irfI^J*_ zLqda3kwYh4MYLx1GFx75|2RHjSq|W5dm2v_swldtC?}e+9BNA3O%95|O|Eq?+_87b_rZv7bHBgCg5;4V;41SVNl!HzP^Z+@SSXBM2f+4K}t^ zo;MUKH;|pHb{5{RD-Nn5HE1(dmEyt&zQL8tqGpMDuBBMTb??w12Aj1ijVg?0cp;LC zvxy~=?HgK?`o{U<-cjCtqcXr;8{p*H zRJb>swdxbBB9e}Y46t3s9SxmogA z`chXZ%No&zT!D?j=3xIVhCk8CHJW1AeF}W2sV-d`+(W=AR<~iq9NKwz@kbTTJ6rau zEFHViIOqCXL}(g6D(9}Pyc&_*udYs6TAna|e#^bYL;LR7cG2t$3jfbtW7`HHQcg>6 z1FyxCCnudRV2~ZI)+{bGH7p{^jqg1AIm75d!guVM`3N4Ha$X15b;xY%NXYOf3a&HD z^(Dk3do2pZ5*Mc|-l?w=xPLWFZfKP#x^VYKzrrL*k_z|XdfO|DdI@u|Cp)XKrN<(a z3Cxp;Y*A-_A;MYNX_O9#$<4q_&0}v6FpZhWdtSdNvc)ab5qK+(d8dKQ-MCjUG zuc$6D{4Mi14ZQ8)&95g}lC!k99^1c&H$bC2G1@|gl535w@r41H2=;En6Mz1xB$Baw zw?=cBmAB!A@95`k8$QZz036c zsVgd};#inTBk>%`8Ykz{+rJD9-9`j-QeLRD< z~q^FOJ1=OHF;e1k64ZYD!GT-m+Psput;>fjc#XWp(${YE_n~nj>yBbzIZk z8m=>6h!w_=g-yo?t}i|eP4!uvJBYY@(Nm+R;`GN}G0$(ZNu}=o=?$`X1(f3}uP^@P z1QOE=?23^EWn(25x$vP`21SXl@w+TJo01nYZ*<=u3nsq)Nz+E(y?ZX+=J@tVSq`6X zR#d7j!4YO|`_!>fgbX!(OXW&AZS$%YfwzpF_)G<#2{E^O>DUPV@zNWBvHyYNlIDvU z9L+yWJ@XVQRl)p7QoG?)k;fQ)nB2VGaQ_4mM=vL1UF2-oms=yb+^I9 zk-i8M7VsRe-?|q5L-ByFIB0~IjYB3vZo@l&V|pm=l90|dB!qvb2oDpP|Pz;3H8AF|h%+k!YR)j{c+fszrSnfSt55!tT= z7<|58@OgJ`UjYig=PD*9_(Q*$(Kzorb8HnXq@24%cAFW7pW!sF^1Prj>-n}N6seHR z^0<4bIqnzygyvSE)}3Z@qgchI18i(eWDgl4s8jS|AN4eZAGZnM zX#kg(g)occo1!zB1a7oH#g?NT8S(Y{ha!$^5!|Xfm7aCWCN1=JYZ_10SoP;i#0DJ+ zxz|`f1C^dq8q>P9YS!*GA6`c`DD{AOp%tUoVV@?YLDvQ%51t)!8`Z~H{Wf^Q?fYF~ zDFN?%jsB_=&~5V*Spi<Rx6uu`|c;XhokQ#mZq}2#P2iVtMqFc8vkvd@gt?$ z=vDN3UP)eZrNPW$EOUqPpISiWKQZ+drD2N>rLLxW1mI5Ie#WZi_vGf+k-A zo{cM<3&^~px|B!&R~inlbxPNR3n_t#ngjw35KoPk^)C5GpYb3fIR8t=IiC-{Bx?4~}q6a49sc!qHO+~V(dCzxH|ayZayGi7RM@F|oj**vZiLcx~o%?s8m|Q zX;?Tp-8v)a71_>`vfgJ=#YaT>-GfrCAXCQQk#>=ePQR*btCKEUxK^l+229b)SAVGi z?cf!_Hh^2~PhQNRbtJ+K;hs(LThR}{+Yf>wAM_9jE7Hp1an5OIl?y4B&uO1G?}<%ArdgP7LnoWMp6SFgXW;~_y$#z78&v-aFC$)^@Js= zm_9T8rnd5akd&AtlevBM$MS#OQc zNY-N>i@(Y*wDp7i?~_9?tEB?v0qwJU!?269?bbw;X7RTkFZA|I3I9%vx3mG%HI->vhICpvTrZ?ZKp`&&eRr-Y&-%ZXe(v-&3YKH7GQpW<>r;y=Vw0KkF8 zbLC3@zE0|UpIq1zX#6%#QCCf1Cf-R7TeJpC6h71%Cf*D2A(&jIwsp2!*~-U(!{I<> zL@JmQ^h{$n9L4)X)y0=9Y!ELVJWZlU2bjt_&+-?0U7n0>mJDPWGhM?c%Z-k&?fE$za8tUF*p&^uh4EY++m&SH(QywM zY|+@ctpCvyBLRtL9*rndA(jO-^f0b0y zTQubG)A;_YUx62Y5~El2l0eJMFVEZetm514@p;M%iQnH(<+vj(f2s*zpD`wOB9cR# zc+Pk_h7G1;fF|#P7wW1{fdw?B{*6+G1VyyPfq{XnVE5sPah=_Y3z{GTzBQe;6E>UFd_bId3ui>{Dh*?|iDCGlSMv!;l8DSd*$HV|83_>f?jWH|-Lh zfzw}K95Q)AaUs3fTgtGyF#fyMhK4UQ+s61>J#SJTo=;EIcR)h!*n=pa<6h+D(8GB$ z4{A2q)K9lyV{=hnS>(x!g)NSsXo%-K2#Owi$bT;^(vsD2Yv^RcSy-KJ{#@(9{Nwi$ zRR&M@=gV*Wn|k?^|91bup+!|AdBRteP6^0iJDgJf_TvS0iQeCI5H_dLxToPD#O>?3 zyFQvY%HdjhYunT2ASMnBK6zFc45*F+;lsM{w@*A^AQZFIXEsvkT7T%>oP6K`bCvZT zZK4$_<6&a8JOM8Mc>Z_Vg%=4>t!5X#yXR7rHJJ#)O6$ zJ(R|LpLnrh2Ud}-XlLr|Y8#Gw>HY?8QuMC6-*mAk*8JTdpqP$*$(?IDgDCsT)%e{d zUHwd~3c`^KDx0`Gx%;|%^ebvHu7QZv<-^>c_0j@^?iZ*p8wpN7;YL{0YHt@8to6+LKTgus;ZhJ)`)5M6h4~+lZ=DNV2${?8qYB;&OP} zZqW{bB|+Fd2r2oilU`3+w9!c(BJlxZDtbU2;1AJH`|;HwS%jDH!v}45 zne^p1q1n_XDxTMDgkC93Bcx`8JW@UK*!p5qpA#yelcc|NdtXozWF%?SGlTE#dP{$! zxpZfX4)8T2yvV&GE|tYW3U1Y6-^q2->=*3I{vp- z3S4P_zzY#58NI6Y5l3C$Id`N1RgDWshEPNTT{Jm}Ra6Dyac#GMDRwuMy#5{Y_^N-z zOoF8x+$bERGy$h8W_=nLjyiuhy~!;fbB^t-EjIAH>tiWD4Dwnc2OguXMdtiu=8q9P za_&7A2u8+_@Tb26+LREEexgE}cY*#$N*UX#$t{tvjGNumyMwC{^hD!Syj`5!o8kO9PW~V+{-oSxiBmi2 z$%&4*%$q@0F|@?&x@Q;uj31}fJJi&Kz26<1AwbE(us+G0TfZf^;VKuZV?*T2r$zr) zXi*BW7Ib)o*o@GW{J%CB{)XDxpD$ayZ65ciDjs&8Z{EmlumM?UFT6<#n>7wYLmq3R zrB$1+gW1r4HYQBq6|FE7ifts!NXphd-c1z~ESghJT`ZgnFmluGaPA`T`>s(6IAU~r z^)fb5d4Ay~Gw?PPEd}Q(khfEgYonrA>oI2mf*K=z0(Os4f37$GGe!S6aGwUir<~Pg z@(p=BdinTn#`=WJpT^L8YS#&n>5M%81yzFW_rjyal-m~KwUey)sv}u)k--FB@|kXO z8zBs|jBLvQ4rUMHcb97e2Jq7m$p9B*v~CSD--U&ia)4d`7=XG(1Ar$&3a}qCpbnKQ zAP<Tz%FKlB;yVE-0PbZ@209EBnLE1l~UAQIR^ zyy3^aA1?>NC_zAh?AHdFB99Q{DuBwsqWx7D$uPNEWhz_34s9y=DoVf?l4Bfo4l;_T zYYG~R$<%39bMkA^mpcQlca(BvePNT!WB`{6 zNrw;yFeEkEO=O7C35E0j72+720sM4{#@`5DJ@9nI1-6f$y8$nVf0w-&M-@^hPzTu0 z?75{NrYYs>qp|9|dui)0SS_cj2%?z40|DRBA%POV)DKXaV>)6hlf#+`-Ctbp%uvyw zof0y{)u|yRAbk)_$M$eVOoq5{H{FJEN_>j}032}E{&gT3Bz|=tQqqf0s$Lkv@anVN)@T z0*Fk`Naq4famxBoXdbsEVoog|SQE><9Z@{8&fdT^}{EcdTad zcUK>q%Lj~!hyC+_^NU4R8r|R=m}!fX$R3?gN*9B+P_)mUd1ZWnQ19Q~a0rWo?q>UtS|)s+LVp#?Zs=PQIGz^bi6eT> zHua2YNe@)s!Xz&!lAh-+m7ii-?7#l~2=>>HyP){w5xLZKjM@H%dwjYjsPj#S3IR?C zk@VX*haa4C6e3(27v?BG$P(AfEi!wadM1A7)5kh4RZ<{ddKb0-W?P7|D$EYXD9;Q0 zYPG=EF3_sSQHMqWV2Y~r{9_6SeCcDsM!n>%iyLpVTXfJ-4A+eQqpH7rzpk($EEgcs z02_IvR^T5;d{v)K%qQK3Y>7posgrMs_^dJF(&|tivHbbb7Z_|0QEzl*n&8qLn_>QE zNNfmz7yS-Lv!Sya$S8viC({^2cnKBp&PrA#{R9nzA4k+YcGmQM+y0pAD+z=dS03>7 z^-YId`QFzzqoRYnx6Z)8!%PQ7D2h55L-A|MPpg62M?@ zW-u;CoD#Z_-GSX~sI6t;cR7ac=+EemJzb&MUS z#W>XccPwg(5Q(>(g)?Y;zGlTS{fv5trVQ-hIOZsM%vd%EeuI93OKJ0{>7JcG=p zn|w9~YZG4nv90Rc3O&fE`6TD)cO^xK-H(Iv?+qFttXv{vByAIi=cYEgU?tiUd^6KO zk9(!&))(kP{ehgm0R)O=OkS}w2E+nw%{?xwW?fzQfE8+B@vGt=e3eiZK4s4!h@FFEllu6=61qzi%UA0RDe}KK}r6 z!Dg=|FXndxR==opQB^o#5LfOw$-}eOF!tJXKZV2c>bhqB zN;Y7$V*#;B*_{T5SVE2zyj6~ED&YG#!{db|h0k2y=GikpEN0IYtjYoQ+Dimkjd!j8 z-XkB1X*i|>2x{?-Q(FYPoj(1$_$MnSGn7}Vn_Bz~G5ka4V)9b29k}6iAx(7KUPsvc z*uA#9Fjk9hoEW>GstG=5!)GnD`YejWsC22Kg~reu2kj48Q~3X(9;TNCWP_N`24L!7 z&~xL+gj&^@sSe0%0j4sbv6I{E! zW(x|dv<{R3E0Zc=Q>}G7Y;H3wUcHGPB5D7A_&n*kl5nu5-JFFaO#%I>jnU#G=oSaK z+>6R60NGfM>@Qh((Tuc^ioW{}Fn1EMVJB=vSsh;38&5dm^48$pJjXRPkc!VnZaZeL z#D5(D9ahO>C8-=W^FEcpDEY+-O+-w%lxJP&Cz|mUUoq4KQZEExk_kgIV(|HS)oq?{ zm@5_9-xAeTV-4P&80T-jg)t|Z5>aR2fp#TI)5G}!hcgXeE8*>a)Nk)Y0AnQLP@KtS z-S7qN6FgAd6vmGSE3z4oevP}X8usN*ISysJ&@Hr(ZtqSKf^`W089(tW!-mGBpQ&$Z zZ*ZxbdLS+|Z;v+w^KQV0$u{1?f11!GKAR$+0pzeB?4mS&pYG6t^4Eckx=*`rh?52F zL6^d6w*AH#+F|Yr#JUAzfkmepPpmKa76ob(l=-$FV%*mBp&+{g*^g zKRTw)R(C4(I#6V}+^OplJ+x8icAyGCmDp$mnwIVbbl`_o=Rljn;HH(UwJ>*k8`dT$ z&=63FF*^s_V*7LPKKyo*-)n#N=|QUd{g43e;^l4|Q10#48wU@#j&R_8yYn%p20UxE zM7V#+KpXYcb}$dlWdNJN#u<-q$}IP{LGu6ZFTazFsxF*BzXMH6uI0@H2J{Xf0^$Hf z!54H{D`gJ3vgr54Rn~`&Z^1N=N*_fy4^y1n_5sp)O}ODDee2}(I~VlxXh14(>CW?A z(#%gZc?u_@4lNbAB;)Rt`+&BpMUdusTZP~8bjd%wKa(9R=*=wvTD4dx%)fLE^twZ` zz`)t$i#rJel7CNvpLV^CE{Pa_VouRG&>TnuD@d&R&}j{umlAQ!Hi&09t{BnS_y{*D z6k;jx#L*u&o{Yf=DS{Xhz^0W*G^kJJUN znMemVVq0?s0tiGPlMv}ZPMU&83XmA+Ut@#b5nQV{;7wNsfS@tVqnB_e$4zzZ_E_KLc5YE=0*^!>v<{LMEKIdp0=A=aeVkJp zg+*}q0;{g?!|mN6g0dhc`gaMMaf=iMc4snR0yJDN+vli$=h^!TXQBDjGmXN^P(g9B zr8-$^{$jOjKXH-#kfezTL3QaSF^U1|ydNrmiKxu7ljfGl>Z~GuRlPq3c$-g(K5UN4 z%?*9it`W3PI&9OY!h1vmbb-67*$Nr@?Kdul)$_0z)^rea6Vy0@Q?L-j(<3>Cv!Cc< zdR}nGpKiAlJhK>pF+^7SJ?s3#7_ z6+;CZ9s7Br_-xa>;jDQERHhuw2b}*r@%s+#Fa83cy2v17{UzY~vZh;u5VoQKv`Xvk z!cMCbw#{LH2)_rbic!7UI}7{Un`H_6?QOeY8lBhP8w_DHs$*n} z>KZ}z9eOtEDtCYo<2)qWWZNf_L5~HndR+~DnBzA&Fmce>q2H^sX@2``>#W!TF>wI4Zfh_8jdE=Mgn!iBGyxE91SL4XuB!a!$AFF8sTsY zNT9kqwnE1BtBfp(YknK|mZt79-o9e+bb-kG7NinrO4GBGpDA+ZvD6A~%IhB|WjTK$ zt`U1(IK&t5;mkteN8oi-tD*(FGoMQoGEMoHO+9J}x0`bFGHML4n-gDP0+I=nhTL~l z@$R^bTWu$1soMxz2&8_O$6u-HbY~eI<~rKXUp6a-m&xy5X@?ywha$1d@iboYL*tOs zn-4jWBlu^K8s1~eMdpW_d_}Zvx{=N&6lgtRsvtB9N%D{S_h&VCZf@@ZTJP6fvCycy zg-csxyT>x8Pf`eeI`kEIyIWg3n$@mKmv>w5Spauw0vKl&K%uwKaodea3}JKfJ%kFm zdyLjCZ#qu8CFd=7#Hxz6R4O)nj?ylyLUjOKtvDG%&^B927o&lwg%<-C5MFUhf z#dgJzh{GpR|4X4W_dgOEpbv97@AkP<;w|6082_zK9EJ;~9m>n^(`B|XYMlJv%7tLy z=tqpALR3!kLvvx8+#d8*Z%m&@_l$say_ z473(MKX=&IV)T|x&Y}8LqZZS?TkE%YfBj`CtI95YtiDnr`ZTP{Ee$*k_ny?^0_EAB z_|}mS8uk|(P^8f@c_E2)le{&goDDQsNRsslg@p+t(s#0`lzTs1rsI}r4gcx*T-#JU zvTbh0XBIIy#BfwGSyehA$XDwP|S z&UA3fHq`u)wBbWe!)C6utta_%O3yIc_~T^)Ng4zgGBfbsd~Nvh%f#Jkn#p+YiZ!H+ z#b`to@N%l>Bf^fAs5oy`IC9I9TUcxibOZ-y6;u!Py1k>0?85jD|TqR!9Q<58}<{W>%>Vf_2Hks9d>^ zN0BD9o8BSfK^ejvE%f;kdoL}0J3`X_3c>1e{<`=hy>})+t?0_&% zX5%)F*1yx(xy?9EVcJAB7u!k_>NtdX`Kpw24M}v+MU3vBJ+?#KQdYZiRnPKPbOmbiBVtIL5A@6jf=rKIGLfQ4ug>L^BBS(CcHC7`FA;B{?|A?4ULC2dcL_ zdLz=SP}?K?W;|A($bGh5qNj9p&t+qH4Yajj@e?gb@8$jTy*L;p=gMv8wu>f^1K+Lg zC6&j=dFviWV_cCeP$x%NcN|`fe8u1uZ&RyT z9Y_|S4|BGE3=feCIberJbqPdj)`JQ(U&G+I+hQyoMBywI>myB#SN+yftOZI zw3MC8k7kQqx2N#9A0eo5CXwHB_$5>p=X8nSy(>Q1&b>R}*U_0@*zK;PeRQ}~CrGx& z1gV{p(b`o_=NylD$|>}x)6GROGc#{J7_|ej8r-s5$Dr5IzQ>z~8(GIZ7F*#lYj6`qZBN3z`%Z9~qL08fl?!hoo} zn@8Sq^dw!fu}~4+P^#MBCq8@c!FPcbG}{PnCiMJ|x`-@bZqsNNvQg0C{^6+-g(RBT zz=Cm5$6#r$WV@itcPjSjv6)`FX-}VdkJWKTnB#i^DP>;Go-eZWE3mdjKd@6d3s0v* zZ9=sY-VcbsNytSo)h8)w{hbT@xs{-xtum!kSSKqjTFgP6wFyxC%1Zpp8RzNmVxW z48G=#Ax2d`#NavoFl#BP?3HuIlWLxjEw=OMLHgRmcE~cl~LpOI%{c#Cx%5EMK@4nA@$ zbZG&RJDhLM1$G_Oiaj_VGV2oOJs4^hWx|s(1T86=ut^RRc3bN6W>o^lS$fqzn_~zm z8bxE|(^Q<^Y1g{?NOxgzo4t}Oc`L`+sD;_kL0gO2ddJ*zHf2;_6ZFW#<8kiCHFt%c zSLw6l@hl#j%0an0&$M->p^{PHS7^cd?=>-(!lLbatSR!+Zg^6Ofq zt$(xV_dMI8u5*9#Oi4zKpK-7^LS0?xRDqB(w9MvXA!b_7*)8G$ob|zf{73ENA0e5h zS_NciBz@4%`0od@)srQ^)r3%6FC|utT)-u|ec>qU=8?zX^Mb(0Js+sx740GjCd-FRA0bvuxqTGH5S2>bE8%J{B!l<8 zXyx$za&?c3!l7?qtfIx98Qzx-LzYO~W9ym|xK3>TG0s?d?TAp|M)B8$*fBAwi;1|m z3m(*o_xN4`vubIXF3uME!1u&wX4+><(oCr(qlsrICCK_jXJ_YhuLk6=kM|1K(X^NR zQ+MH=GeNo|wi7%lEOH^f<*fd1Ne5i9@L;V80{=&mCA-Lt@Qsz4sZpVr6`7AxM6BC$ z?W#&d(%$C#h0Ib;GPjTX^v{<5WO&BB+Ix#Dp-y?v$8+tZI9U`5pRjJzJ0Tpx#=O0O z7*EG8AD|i$&2VCM#M65ok3#qe!zHpk1)Vq>XND0Yq*ogHx6H-G#ohI_jr>6A0}6-i zOeZXvtmr-{)U|8Q)lErO1UIMsLV0OS`&x?VK+#Fe=r+S{11p3~oU(x`d}9o5jl4qm z7sgg2mf4@6!VS}d0+IK1Clauh2M=#@vH1(wY>MU`Q>{xaT#LuM-?9LI7765 zR1YqCXVlP3^$xpeJvGMx@x+AYM;EG?y^=^Nm1`uybZ9^qVx#MXtNtG9ny8SvbCHVqMe$&>jmHy7_ZoK;V%(eN z&uda*TLKQ)iGb%zSI3codbD5GkgZ!Z?(Ti=ALIYv;h-EXE)*v6pmnh6!2?;I+FW*r z>-F-yOeyH$_DG=NgjyuS8Fq7fKXHFr1~m_J1noi*VK^R13%$qKctIyZ zPuhKY+&3s{V`5IdHLvgyX&4h}z}oFrG}I zzg?0odA@3Ev{zi$=hTf%z<#IWe)LSzuZFVPxAV^ode1)-2ZJ)#E!A281gek;G3C6u$Ek$+XRoj(c)Fni2bgY7tW;F zWc53oOr2h+jBOTk>|IY4_$q&E0 zH&%S6lSN`hPoL_A?vsWvLI-^YZNDqJ7LmOG4wlVFNF$MawqLT}pZGi68{Ru67y5>% zHwLXVXE7F=pWUf*V%&^`1Std?5C5GdUN>O1UzpTULb%2KEm;}RxS>Ha$Nlw^s7NLS zJg{`2~P=-)j%v^j$>~4iZlq v4hk+P8D$B{KV&c^=mfhP%DD@qyg}vdad0nj8G66>y#R7jA0=zVjROAD)b2?jxVyVsk)p-j-5rV+cZc8GGY5%N`)qq>0%lm8H1uS zrdQ3<#fnm=+YqTy#qn+McW{6Nihq7Z%e?^;q5A?s$#eedqJriK_0fw%PWwIn2(QJCG|R zma%s1hZS$wg$RPFr;`@@oHqFnTgJs^f|N}7y)BROi2PG7Z`I^f3&-^cBK>#d0vX|3BeajwXf_ z)j5U~=eY+eVY^!~Xi7h8=*EXHwV9nP};_?~c{#{?CH^oz@I@oeyA*pCWq zw2e#6in8t6VUg~3Fa&usGc3uUi`HwI8+pFV13Xc|MXc`&C~b;JS1rj~QNxgMew1nB z4D7_d;*5Jbetta2!F8;T+(Ah#V>?ty2MFS6m6!<7mjssNi9{{Jd6I@mONNHezENXl zm{#X~@>eZ-wi)$l+aKLnZ2t9gmg+|&I7jf48W7C)9)&jHBVmI}LsCPnYKEx&wW^VE zk_3I6Gz;n!XV3;6E?$whGo9~QBJ*mamzN?lAAM2Z4##_ND)HcXvtF(%>8NKz?UEE7 z?rLi929wAH*}Huek?7#OH9uDR4r4^!8 z!+gxw8yooRJ9R2gT&#u1ip(KfX%ZPD1Itr{km7v6<~ij(mB;Bl>MGf)sg^~Y0&dEE z#jWUQy1G&(W2h^+1%V_jB8^WDOj>ccmDoPAwDo4W>ZW)X17o$#|!LpDQEjR{+@%F;CNwQpbc zB&8N0M*~3Y(j31o2D+X~GVwA~fpbLt){>Oy*EQ|ti6O=2AeMa0bkTZp=5}8qH9C+Q z)!f4wQMt#uQe08ZqjVMvz>g*=u!sV=m|~a>$aBCW%zE4~9)Vkv!7nZN>}OGF7M&&U z$9Ixf(P|^!>m1XHitm*4XvJ}eeQ`7@bP=-I+erOa?-J-(`Zm$} zF<@@r4$ienzdE>v(!MbukitTUz5knc2hpuUPVoh~^3=n&#$4MsQ>|%MXh%Wyw3;Lc;%mI@i9@)W#Xg-2d^JJUX z&~w&rf_aYhCEa*bztc-(zwJ3V?3Zdid|1Z^p{R#y0mB@CKH^fF0JdLmoAQ!CBD!aA zH(hG-<9ec^3IF^y>>_1~G;E-+nJ_m*CrhTt#>(o-<`u^eA;|X61@utYA?h#B8<`&9 zlOihJ2^g-wYZsEa3g!N2YrnuitM(`ixg2I^P2DLf^5|iizv$Ndw|5~I+5+os3<|WQ zNe`R0z-@R^Gpv|v8kDp{=x=PpkL+5!`Ip{bk#dPaVEL;dW&5qXS|7ZG*Zh}2%bO^sQ zRZp&#l~(^~BpJ^=RO5lj(Vs_7TB}3bJ}{CZatr-DylRxD)fKHJ*}4Y$@8uzmlTdSNLC-=#x*qinNNdsti|E&#<_>gdGl#&xN0zplKnw zc{7i+`iFZT@HicD(p39DwfCUBR%9fzNdNE&BEEMS-5-UA4vVkY zK8b37zeRds)B-+MadU0|0jB$KV1lk`XDa7dZYcpm%r4=?U?K``7nh!}!PiG*Dl}S1@NdjmWipaWmOme@#>Sqa> zU7c~ErR-P1Z_^JhP0W3JSpY4-V#yp;zVTmiSl|faj&}H;tS?d((}FQ+=wzv}{tTo~ zSB@lFKq)|wC+#;&@HJ$`?)Wnk;~;gax{mFb%n8?lxcUD)j&Mg-E5XXH!BSd8e!WDn zRVvQZ_B(VxbNp^And`q1mup(`;z`zVtlpmYvPp%I@`{uYGwJ&v2v3MCC=Se`n2DN* z=F=rA@$IJLJtn^aqADzbm+5v*pT%TYiU7(2eU&3^G_pt`^)j$_GsaUlAHP@ok4c0S z4j4Tz+VcwVA%HES+4{n@USMIhH7XMB316QN8I3_)jbmt(^cAD34uk>VjP3WBEa2%T5 z?e9T7(kD6id^PQe`Vwc8v-d_83T?Ebb0P6OE_p43-*cEc)U|!Ci6Jy-lH-dV5mpRS z;JH1zTW>Q32jb&{`XG0CTTicx0NcQK=>U;^K9CS=QsVcujRm0U_;VWtV(sC+*(5p- z_BHjg2L$M%nt%(4>r;C}7^Vn1fr4%v`BM@;n&3TgCQySCP`X|z>FX;H)vH2R_WPX{ zz+or$2Q}q62=ZbZ5>p)J+V6bXRDmYRi;iO<>DC)f=-DtvFI{(X;CA-TJoKon7MDn) zHGDYZGq#X-8J#32uaN?fMh?b<6J*3HIkb{ z!q>07-hB&0EF`ZFU&K4g=Ti(~4w)=IjksgKvRFFjRph))2}uY^3`q*9I|@j3%19UJ zi`y8!_<_t{+0z$Snh!C}Z4V=j{eUp|yO0_oKJl%vgG5z?EotRu-$%uzt9v%iiISs$ z%fS*sEj$p7d-EVzQ@UWCc^iWwkQ~x!9{XkY`Tu&-xT|lt`FHHZfO67xd=Szap|3U92aA!?O1 zheL&W8p?FKNvPt*EV- zty)SrPzD8-1<(p*Zck)|O7$wXrB~>8Z&8V|lEaYOSVlF#K`>cm6m~n30zXefVzM2V;gS5NNcITZli$)d{hZ z$u*se_D@8bWq#j5)Rm%qLe+MoaQUeDG^+lj=a`Z!j5vhLHk>Ipj|%CHxM}Q!t=`6% z5J%#^e+C9N6c)i}655NIiKfND`I}f$3xAF8USJfVFP7vVa%|eW?8BYQKFiJc)(_+Dd_GUGu1kc?Sw?w4 zte+9lcOQw`0C`bE1Xk*z36A7i|In_Z$4yQ1p9 zXIkrsPieLFTyy+rrZocx7%OM!g(sDZnsUHWD~r41(iI;^sBc88loByuk3@=S+&gzm zzG~*qH%60Hc+wdvNW9um7M6@NORc6DdzQV0!1I@SOei|YB35Rx{M9s=MC3HB`2&g_ zW=(KtatzVmP=Dp|r>(1X-T`ewl3HbE>2FV)s6OU0>%SoybQqI=WGlOAn)Jdh+h+e} z*iMnlg=R5Zy(a{8%tVm!cM|=KI_M3IrqJx4H$1PP4-*DXNg)VOht<7&ck6;0$JX=juH0!J$fGM`N)ijC;R(Z?3t%tvk<5f1l_Hx z+%aFtq-B`n&ZG_dB+By2)C73oGKsFSY>$;4UZ2dFjIVF=71H)VOQUYB*i3KI3$i&pNg|u#aTrTTm@L z1+3toJ-o7oq;h%>I(*L>^RYqP%|OiGAh+*+;(fe?H zJy0=(cL~&mOmaQ5N&C=kU&8D|-D9wF1*kLaK$g0;R}+@+G_v(U8;Pxlwm2aR+9C)x zm^Ay8q2u)3-E+{^*JQdR63{2lWpRW2AdP@7Msf&^&7BTDBGi|6WR>T6+Jca)w$FaZ z-iO&`R)@<|7anx2$tEW!8fN{r`W2Nn_IuzCWC{~LeHJ8|W(EVEm(D(~RXyqusl&*# zC)A(G&I|7ZM*oatC1+X|l15Qb61IUw{x)1opM9lxmT$T16>cf|j@@zE9Ze{y?}!7O z#SF0FI=*y29>u*%L8dMm%pdJ^Foat#jnhdjzooCGK#xwb=x&4ZF=#Tor`qLb*Z1Ow zo{~>;Ku#&NRa{@@^g3~!M6auYOT2e*|Irx&W5)YM{N_b+1igeVA`3IRRo9lVzX;h%`N94c2r_U10SXKEC^2_G3AKv)G{udqY~DTUCV!wU*5NmISYb z0S2_=#5n0cZ4=8>yKD>6#~N|5GXtCmM?$(s!Gn&}XqJ~{oJNdt0Ljmf3i2Pb>0s!X zsyIXQhg{JdTuYjY8~ZF;PybYS-Prtl61p(Y#=mMR)!BdpI1rWfOob zT~&5Eck1aXD}_AcB3_g@bWh9a@PS5sB<6bH=`CNzF~-kDDK2(;sM}Jz<2NQMgiwL* z<9`hdC_o$HSpX$dy55hz)UQ<`x*xzK>08M6_I6@VR??%sW45*wR_eg6Ne$`mk?X<- zFEwI7U!X6QGR&eL=GOzvGP(}L z|8Ruo|C!D$+MHdVroGT(8_ozbCr}y3?^mu2e#ZX!JPtK+`?+zps*rl|mwfCy-sjq{ ze2!D8ytcauy1>x8LmY=Ei?^$xA*mCFzZ&|$4t*Sy2J@@@{fU!65nP5L&*>LQR982N zXN2d)l>QBTtQlCJDz`W{LQH{YOhMZ#O}fn2mzBL?kc9fbk^SLymYyqQ9fd8?JhXq@ zpFJ>a&=}rvu){j>^seKL0ZIfH-j7SSXDOz2ZafXvQV>mfI;ac&Bs^Co?pO*;j<1`+ z_LI43#ida`P8=8isC!@B7L-m9#3a?(t<%Tl{PsOLEDZf0_z9oSaPmXnT{EF`dysL1 zQ$Zjlve}vA5r*ZBkvafbA=ZrH4`(}cC9zkwgJS0~0g3mP$?=+uD%N~w5u4%@raSvH zq3gQs|LDF9p=|67qD1d3N{kmj1ibP8SI;dK*;e!?eD}ASrSGEIl^s+?fSP>y-(jq& zomz1OD)ebvnRDUAN>#neL!G;4gHE|_;Zv35igN z19B?4=HLC@ubJK;Y811$q~D80>Knz|K<|3`OR0)&QNRql(f9$5)M>IhEx?a3!}nV< z8mU7lL+K2b)0_u$!>y~HnxoUtz!=C!ou3SmG`W=v(4cl$)-i-gi1O0ja9 zo6iixEu8IqUtbJkC3>+91;;L(2BcGm^YuL=_eYouo-gxrV>UyAwdBnAG}B&1734l$ zj(WsYD1Vg92SW2!Yrlsvc2|F>0s{b@_GX0-a2oF*zb1CNL@|2%O(A5aIu<)yYMpSqM#GIzb_SwrnvR zuSMKg`ABd;y2XMkIZ8v$9d9SA33qVrUaSYMWPW(Ulb*0naHX_6;pUh<=U_E@@M|j_ zQITFFy8hQxBzOfBO?iyH1U57fudPACUln(ujfFGsPN_}O205}b@%q|CLNGmE+5YGW zSHDW=v zt5_0tgTUHT1BC_#zsyOTtlKS;8y`L!jcx8l9$>(e#7EDiv0BAPE?o-VlrYQF^Ju2|jij})B5B*~ePB&; z54u5O;J}mzVfb&DaQrH{V4S6ER3_rG8QRB_v{whTo@Y+u5lBXbQP{wBqW5>5&z4`E zaBZdEXc`G*ks@c{KN+>M% zl+68+IY>@AQxhY>l#aGn7SIv}MNP)48|=;De8Hi!T*uAg;~gN!$VxJfU$Yf9)i(m2 zFM{8ZyX3!ifRl$JB=K{?N5*9fJm_O*klY7~B_`*L)FS-8=Fj|J!Nqh9(Nh=6(L^9m ze2a8J(V45Jvo7)Nv`&6ZpDMN{BpP~PA*c>EC&btNe*9SHe23}wcY-R=e)x1^u_(uz zsp+iL%|Zy|y`ilEtii=5pUV<~&nReCSS7GXFnsO87$O}99#7A;Z|MCp%@8wCqu=ot zrxhRNXukfpkmq$R)~`e*_pfjxlvR8SY=}AnOBCY9Y%JT!MxilQ2RLB3F;?ihM4;Q! z6LG<=;@hcjISBJ{o^9euKuC2wFk{Cy+T&33$Boupg%sqEc80ve2n0KAKBZWftft2w z2;P<~>e&l}YBJHF8qbQ#EQC+s6NWt56@nz~KK`C$l6SNDF zo7M%P>+w#o>*cy}rjNpZZ7zXz>T!L0S{gL{65bsn(ieu*QXp}KA3R2|L6%ER`!wi8 zLfT|%eawyrrMuKI)pKQ%1m!SvL@aMEr-YqUI7Q^^@q-yY5+w=fX0o-6^^!m1?fRCp zKxS?W1#8_c@xQ7^1kgTfn{Lw6xJA_=|BdV3pnhU*H~lRiCO?V2y~##RZW-!N6}Oaw z-ipXIyGl#*EL0Q!2BS6YBZ=$r*AJ&)o8W{dL#act4l1EL4ggTC25m79aMDu z6>d1CchA|i9IiW7gI1!L_X;-*ujM7JDe>v0AWPXTexJgMv-VOC<7kno=;jC3bjz?~ zOr8|@9t4Y)QgaoN>6EBsIh{<9TlWAoW0>HFML>uPVHcSvD0Y`A{}TO0m6phk;toA7r;<(k&G+hcSZ01(~pv zI0y{|x!xf~Hi_nc%wQJDFJd2tP`N+Q#j5Dfyct8?i+LD4n6d2&4i$GMh@d{&ISH9M zNkjFC;rf8KQKj>|V-F8=TyKYQSe;(xf*iL6D7Ig2*xOz#DDNx$2`MZC6bw59J4Z-R z?=2EwA(LvZo!vNrM0eV3hys$G^jT~f)I0hDwvn41FA%rloty1->~1E@G}esSWZlMW$BQ{H?03Lg3g&cKB8D=AEWi zQW71pnIs5>6pM2#CTD6fp9J@_WGKZ2BUs3pQ3&=0P+w{QpX;K-JchE-`qbSo>F*J* z5NYPerqO-!iUI2YFbfK7&}fGi%=PFn zbCt58p^})8o5FZT?Se@#{}Y{N#G^KdBMnUwXi@<4Zs~yXZ)0YIK`4r$?*Xp*s59ad zL}rQPJ8h6Zy4}BXE4&d@O9XFhKQ18{Y9bxcPi6eXxA|`#-)FLTuOY!`6pZThSrVUK z{Y7>^2HlVw=6(FgAS6Nj6GOX#3nx$JG{u-rE|d*ghQ$qIUzY6ArDyniO3au)MRFc3SR`E&`4Z*N#d@#XT?GDB>dJIQp^`At0Vwn<4?obElYPV zZPA3#*L=-(Y8bIw$@5lZIwT7w8uA1OrE-NAF6&ezQEa1W3YvFv^n{cU;oISX{p z$oJX$Q&CTSg78AEU~*xSI`R})nj`*;HWlTm6on(YbSNq4(UDUKb|J0_=x71^UGvhR z>cE_gzSM03I^=(q$U&U{s0$bnH-eW?#O}bF>5q#3HLtCL=iYl_7j+*-{81nKp`3L5 zn8JB@Re)30t18s|F0yJKqv}tIR?wFB+OYd)oF-`1tFevAl2>VPu=t>p2t+YS&_e^b zZz6O7>5L*Ynx!`yAc8FTw${Y*7-avqZ88OTAk%GBNy1Bf5<2VCCM^^fKXv8Wm8x)B z{;<$uC;i=M-Y}aVG@P|;gyai#DR!C2wT|~bE&N}Ub3mE}8}!r6 zX{@ z9v+8j=Ua0hB;p%F>cSnfgG*K&O<1Rvq;L7q%Y_me-nu8pUir>!KT0DJ`?tp#%JN)& zf7gJy3dlsRm5hFpo5>g`l%m0w!a|#6U($-75RDSjO2jZhN^V@W3fwU^?hjA-Q^KVk zb>aR?FW%kY0RL=+CL&fb>J3KRWfVlPHGJ@g*}2ms?*aZUR!FHB%e}TgZ(N#8O*Z1w z7Ea-e#2;07Wgfk@S#M8u{@H#LllZUWz@}6D z4O*3@(TJnaITPN$t{yb1>Evo}ti|iHjhsM$83qmE|rmtSPOwY9Y;py5YYv#5P`darC>}fjMe7WO!95 z$K9S1-#asy*PF20G2 zJ8@9hfW*%VRS3xqyh;;BqF$%r(XSStaHef)ea=odBNI==GqiMV% zmN++CeB`UdkI3i?(Wb*@G=hQ;~k-EO;Ssu6pN8f-v zVTgkHUuu7({KI&2Cadt|s^Egy2-}q@a6mFLr4#Rq9*$Ukyd=>GhLR3pNM9+Se6*kn zsc(n!lfp)$9#E{WCPrau1E*H^{Jh6&ONe50W*@%7gt^nGgB&{D*j_gryi1^{IhXl? z(i*c%-rOIghCp3*?UKttk2h=z0(Ap^993%~HY9l1u-8 z5E_NXJ#7OHJiUJj4dDJyoNXA^`(gDho)tD1cM6 z8bo-sc$cOhrc-wHF`Lg+soHZ_#QCN+>)zfTd6rVxhKO6wQ=+m1ktP=v1r%H0UXffU z3xLxt=%AASmv)pmm4k6o;ZEN-l12fq$6gxHBX=B=Id^SJj;q09{BiWfqaegRYnbYU~~^v9gfy~qW>Xh z94f8&|7eg6s%g;h-WEc`4I@M=hVBS5?Fh#Ej0wb>A_lH92j5#oq%nHdN&i5@T&`l= zO?Y=bO^ElYNfLIMGz%|??OzWTjK`_)U4O`d%yR-mJ8zDyAAd#I$3#MYXyOoSFpF02ST5rV3U=JFA76iOs^j;RW6%=VN+RzPwmkdN zS<28GtoWfvr6&0IJGC);uit8KpAs7u%J9hT;+27ROM%z3vFRF$m-HP4yQq?wJC)$} z0eom5{EFiBDZwNjQPc2J1<^f{85)uJICR0E+%oMLGy@Jbo*_Sedj0A)q^08ew*|&+ zb3)*?!4A6aT$LVZ5t5fxYyO4v@Z@d^bt=mLEEmEP9j^@-I-}p>)6hoKNrb>&Gei46 zy`zOQws=Gu0$AGl)4-Y`s0Qah+M$KTeKmq45Ae8JFiC`th}dj3wVhL@8May*A>>_I zG)W@}TZA0XBKGR@%XrV*pV_m;-^Y!ys2{cTgOFCS7 zfpdI(YGncGbU0T3;O2T4y|JU<6^jq`86f%sT+;SxWz=WFaWvw@x_(b_(tyv)z?#S~ zTzr`jMlep|V=&0nCo(`3grWpL%C47)smL(W%0+Qx2$a@|az7k7O~+Vo;!rc0&||H) z7?;-cef1Z;GH@OGqiL%ze@J8opIf6N9;^FO+Gq461mIv3_Y_cpsP6`_8*j0Nbc^%?D?8nu7PVUj`T#Htas$=|XLa>zLZM(jW z$4kT%c*R+KCuTRaqB$UP_2?J0)S8o%o98HgL7V;ivY;tNJEjt z{7=xpqSUk{a({w8E!?!tX@y|3YiTGO3;Lv>v5cZT@g37z!IYQ3VPzuf3S7AAPm^a# z`<|h%t*@sGSieVA9A#FUeIl(}fM;);Vn(2|1mEe|bl1R^0xNH{@Txj;<^I?CNiLy% z0T8*2N>gbwWU7dff&Z%(Rb)J$(O@9-(JXTqa{Cd&(Efro@1W^Ioj9=6qa-x zV{;1X&PQ%msPcRvnMuRV1i8|1N9)RDDO>!g&Q-H80_W|I}Z)-B*_ewVmyf)h)k@_Bw&wZwRjGYGF#v^2AuK=;EO z0Z1`80$pFZ@->{Ao3j!^$&UUN19l2HaH0;kUN~<@#Mx#Rf_XHW0Qo{$@)FtIK z`-TK+7UUr~C$&VE+i|Z5p=Fl4XfSwx87@^kga&}&+Q|Y z%a32lzLlEEbwWCiHMiA@9#v_{2usI3SFXcXnpe03v3tle?!f7~sA>ezA&L$gv*I-> z0zlt+3{H%7-HO3+*Rh4P$q~f0(xqNt66#KE_e(yoyEUS_2^;WsI z0VA-1Zi4kmqamn+I*{=d#ETAG!gG9qW$d|oJKw?<((4pKP6EN@Ehw1Spg?9n@cx4q zXx3c$NrlP$Ux@@c9haesM_R0kz*m%J5Pf{W4p}@mbz;Q+;C!53v%6jq`;?_>r~pK8*sSb)SKpE zj!xaKqUQI)5n9<6kaMj+OCJ;4!0Rb^77a%MUEMOaZ>jL$;(oV+V7hqrd8yz`$qXr@ zO}BS%1fAm4Zt@9xW+Lj8;#8B$PFTO2BxAK+RJOz&m3b6FTRmR2{85n6>^bd2(7 zwc>*XvK-$;!WLXqNoxRATzNQ^Vc0RdBK4NzHwc`n?p?E27l-xbdly)USn9PcWIE}) z4!hRZ>S&)nN8BNpzQ2*rBwuhy!b<61GN6h}9)h_Ml=ppKE#z(z~Hc@=5- zvWjAu<)OUm#lg^^_8TEw`m_s-!BN~gzeM}a) zjF>FwH(RPVfrmYKLQc-Qx3XO#S=21=1_9@3N=uJ(KJJZ~oK3$YJD!;RfMJETXdYG=YOK?3Qvys-Tyn zG-uE$#@7*`lOkTZlQt?MDf%oU&nWs(-@`caOp4 z`LmJJfX-15k!(}6KOox0_+4gN9=At3q8D$-8mQUM6Sp0{^cWJi%omyX*z1z>@>oer zIbyx;#JA%%=@kgOcy?=69`E;y|0c&9yiwHbq+3BZL;W=Iw=B6sOujQisL)8dH>rnP z-QD~c@gT}`ic6&50jUI5mRzbAH$H@shffJ~*9oDTH>1r;e8+cobB#p3s7560#F=xJF^R1@7vL=NEFr;b>bocxNMt^!P^Dt83dGZXG)w6* z&z4j;v(CAhVV_qzFVz#;Vu!cRk7*eAZ&P?SfEBJ72VLjqoz{>a+JD~u;u)`fZ`!WY z*_>ga<=>3g*&mJzdV{Zf*Hh7W7Bee_H1wfQOaE7Tf*dVijLbTlIkMMigDM|9F9m1T zV|v`#_)tkWD0qYt^hHFS!c&K?JJSQb!(@dLotS8~=OKjn%Fkq(*Zw>8o2feXIAC^=kA^yn zwpCL9qh$=UJzWs}_)^UrW=^+3u{~m(*<#}8=%j=DI?q*H$L)3}_JBC&kI%H$?r<<% zHKsobKXyc>>rwgyx%aEk0pSVyTA(2u(ApNNBYw+13~RoSHG@zkSxc0~Wf~&WMuyR&}_9F|k)9kO{)0ZW|509D6jrHD3J=KFIa9!2QuE+)m zu%bCh{#@k2HPO!If4`Dht68Gc#3_$4F+9{hL^r>6TBVKXSC})uw+@S259UiWgc!(iwJ9+4 z;?c2;RtztE5E?Z${vp&0DC8q;Csw2$3R3yGSdA7dm5*_-ae>_VKzJ<;RtXaKab2sC^@S#8URnXUaa)E43AuQ<@a=7R8 zvcHT>((`0(${jg#F~4V>o;O|f{R(`;Y-=fpY@9<}VDl$YGao#rg82Px=Q}*%tdgw> zTKmI_3tS2K@@|ddFlPt%{>D{tXnAKNUnVTJkS6eVi2TOnO0}@V+2Vp;4Bp;D%C!3! zQ6-vz^7i`=Sd-K#mq=tD=gW=aDuT}X_FmB1cr=|PK^q|C6^9?r_KTdmvIrMi{om|C*WFLb5_hhor--}Z1t>l~Dn+4ROFkf;CZMXIwNGqqy+n)7w)mK9NE!3$g)ShF)3~co>B|{AzrF`(R9^u(&P6+K#Utex?$6 zzHY{)xKx`dnWVJbz{*1T&80s&ToPz~{vbi_-Xo>MOWs^=r}atsbm_|q5Iqz0`H8m^NRpxWG)nx$~$KA$oB}T+Q^7x#1i9|0;r)0Ep z`=-o|x~h!EejO4_&3WT+>@-(Jr54aC9yU)blRqp(Ui{lAAxZqT^^a10lH83)1d3si zq+_v9+m}4daONBQNu$EgxHb{9NPF#eOiK^tJDQ|5RtXAP&Mzg1y9?iSvb#>+V+=(p z@vi39=mz;Bu~aOLQ{N(X3mVByN5Mor^Xk(=2-};jCSP%WKjX$db^6vMr$!g9w|ttG zNnJoCP~_*^qqyf>;o>$wwB}3d%(`vfbLS@yd0)aRUGB{|ja4N2H!Caf*!s;&5M(b| z=*Y>TT=663px!178Iyr8B8zC7Ubp)5w8(@mM#~$1((?>Gjp;phc|=d^zTAGHKWTYN zvKW)fO%bGEEfSFX9!@+>FQNH+fbMrOKCL(ePhx8-MQ?vTHWAzBkNNrsvLL@mXq4aWychS&o?VRf#rE6kC+$$+&hc{5Ne&rE zKG|$k`5GkOiPLU(lSo^{Q#V7u0_lhrk<7lbL3+cBEOOd#XAriVQ@+3@qb}HTuxDN^ zv)x~#Gl4^0lq>p%{FmcY(?u8ya3Ob@ZAm+CMJb$UAy`5y=AFaNgH_Z;QYHA=<Los^P4615`ATU{7m+Ws9*b#7eE9VF@ST`9htx%yTH(kV3I7kb02<`cmiAxi=ap zua~WEG}`!eGE}=q%y=89y43C4XRnVW=FdjNVxz7JFGwdm?bP{NF+*)u%aau!f4++P z?!4AP)CnETRq)m?R_BW^@s)du_o-^z|EMGsq5o{*a}_fvqV6DE*%tI>di|fTDWCX| z`_+7q7?x4@{q~2^*!9RR2biZSye6`b`sB(H^Zb6ovX9b@#D5(biRodW_yZvZ)tyqf z1amz!T**d2(NMWf>>o;VtSd2*^y1uA|H)@U3}I_*ncL-%gRjGvda-)jXDud|L2+jT zQbA#bKL@)*dt31@{%~_fx&6_tQ7;VV^JqRCA#iQppUi)0bkRz3Ay2#eWQvmCG#RY{ zYm$~BtG|)0h0`_~!?xoc!vOPSL?>-ebef z!i7>Tf;{u=k~zl)n!=Y5Fz!w)sV$;dzmme`^|TmmsbL%Zcu> zZ)H4KiklB{_n7KziFNl1|IClB zP%IL<_pAOBU`}y5T-Ikjvj@Y-r)eiG6>!pjOyTDVwH&{rSD75)Q2KZ-JFsaleEw3; z`cP1`%VM!O=86iIRCBvT6WU2sy9m$9AKyGQVhJnk;S--&}4|e zN literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/app/src/main/res/values/colors.xml" "b/Variant \342\200\224 0.30/app/src/main/res/values/colors.xml" new file mode 100644 index 0000000..a66aa6b --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/values/colors.xml" @@ -0,0 +1,4 @@ + + + #203b46 + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/values/strings.xml" "b/Variant \342\200\224 0.30/app/src/main/res/values/strings.xml" new file mode 100644 index 0000000..6817bce --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/values/strings.xml" @@ -0,0 +1,3 @@ + + BDK Android Sample Wallet + diff --git "a/Variant \342\200\224 0.30/app/src/main/res/values/themes.xml" "b/Variant \342\200\224 0.30/app/src/main/res/values/themes.xml" new file mode 100644 index 0000000..6e1c488 --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/main/res/values/themes.xml" @@ -0,0 +1,11 @@ + + + + + + diff --git "a/Variant \342\200\224 0.30/app/src/test/java/com/goldenraven/devkitwallet/ExampleUnitTest.kt" "b/Variant \342\200\224 0.30/app/src/test/java/com/goldenraven/devkitwallet/ExampleUnitTest.kt" new file mode 100644 index 0000000..b8c38be --- /dev/null +++ "b/Variant \342\200\224 0.30/app/src/test/java/com/goldenraven/devkitwallet/ExampleUnitTest.kt" @@ -0,0 +1,12 @@ +package com.goldenraven.devkitwallet + +import org.junit.Test + +import org.junit.Assert.* + +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git "a/Variant \342\200\224 0.30/build.gradle.kts" "b/Variant \342\200\224 0.30/build.gradle.kts" new file mode 100644 index 0000000..3e7b674 --- /dev/null +++ "b/Variant \342\200\224 0.30/build.gradle.kts" @@ -0,0 +1,4 @@ +plugins { + id("com.android.application").version("8.2.0").apply(false) + id("org.jetbrains.kotlin.android").version("1.9.20").apply(false) +} diff --git "a/Variant \342\200\224 0.30/gradle.properties" "b/Variant \342\200\224 0.30/gradle.properties" new file mode 100644 index 0000000..a69daa6 --- /dev/null +++ "b/Variant \342\200\224 0.30/gradle.properties" @@ -0,0 +1,7 @@ +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +android.useAndroidX=true +kotlin.code.style=official +android.enableJetifier=true +android.defaults.buildfeatures.buildconfig=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false diff --git "a/Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.jar" "b/Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..7454180f2ae8848c63b8b4dea2cb829da983f2fa GIT binary patch literal 59536 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 QuEJmfE|#`Dqx|px0L@K;Y5)KL literal 0 HcmV?d00001 diff --git "a/Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.properties" "b/Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.properties" new file mode 100644 index 0000000..15de902 --- /dev/null +++ "b/Variant \342\200\224 0.30/gradle/wrapper/gradle-wrapper.properties" @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git "a/Variant \342\200\224 0.30/gradlew" "b/Variant \342\200\224 0.30/gradlew" new file mode 100755 index 0000000..744e882 --- /dev/null +++ "b/Variant \342\200\224 0.30/gradlew" @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git "a/Variant \342\200\224 0.30/gradlew.bat" "b/Variant \342\200\224 0.30/gradlew.bat" new file mode 100644 index 0000000..107acd3 --- /dev/null +++ "b/Variant \342\200\224 0.30/gradlew.bat" @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git "a/Variant \342\200\224 0.30/settings.gradle.kts" "b/Variant \342\200\224 0.30/settings.gradle.kts" new file mode 100644 index 0000000..a8febb5 --- /dev/null +++ "b/Variant \342\200\224 0.30/settings.gradle.kts" @@ -0,0 +1,23 @@ +rootProject.name = "BDK Android Example Wallet" +include("app") + +pluginManagement { + repositories { + google() + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + + // snapshot repository + maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + + // Local Maven (~/.m2/repository/) + // mavenLocal() + } +}

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 z