From ce4e7633f11f1ef2a94b0705ceb3de3897777a1b Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 14 Aug 2025 13:10:07 +0200 Subject: [PATCH] bumpdump21 --- .../Crypto/Random/RandomExtensions.cs | 4 - GingerCommon/Static/HttpUtils.cs | 5 - GingerCommon/Static/JsonUtils.cs | 5 - GingerCommon/Static/TypeUtils.cs | 4 - WalletWasabi.Backend/Extensions.cs | 1 - WalletWasabi.Backend/Global.cs | 2 - WalletWasabi.Daemon/BuySell/BuySellClient.cs | 1 - .../FeeRateProviders/FeeRateProvider.cs | 1 + WalletWasabi.Daemon/PersistentConfig.cs | 10 + .../AdvancedRecoveryOptionsViewModel.cs | 2 +- .../Create/ConfirmRecoveryWordsViewModel.cs | 6 +- .../CreatePasswordDialogViewModel.cs | 8 +- .../ViewModels/WelcomePageViewModel.cs | 11 +- .../AddWallet/Views/AddWalletPageView.axaml | 14 +- .../AddWallet/Views/AddedWalletPageView.axaml | 2 +- .../Views/AdvancedRecoveryOptionsView.axaml | 8 +- .../Create/ConfirmRecoveryWordsView.axaml | 21 +- .../Views/Create/RecoveryWordsView.axaml | 16 +- .../Views/CreatePasswordDialogView.axaml | 22 +- .../AddWallet/Views/RecoverWalletView.axaml | 30 +-- .../AddWallet/Views/WalletNamePageView.axaml | 11 +- .../AddWallet/Views/WelcomePageView.axaml | 4 +- .../Announcement/Views/AnnouncementIcon.axaml | 5 +- WalletWasabi.Fluent/App.axaml | 11 +- WalletWasabi.Fluent/App.axaml.cs | 11 +- .../ApplicationStateManager.cs | 4 + .../Behaviors/FocusNextItemBehavior.cs | 27 +- .../Behaviors/FocusNextWhenValidBehavior.cs | 8 +- .../Behaviors/HideFlyoutOnClickBehavior.cs | 5 +- .../Behaviors/HistoryItemTypeClassBehavior.cs | 1 + .../Behaviors/PasteButtonFlashBehavior.cs | 4 +- .../SelectingItemsControlBehavior.cs | 243 +++++++++--------- .../ViewModels/CoinDetailsViewModel.cs | 26 ++ .../CoinList/ViewModels/CoinListViewModel.cs | 49 ++-- .../CoinList/ViewModels/CoinViewModel.cs | 10 +- .../CoinList/Views/CoinDetailsView.axaml | 118 ++++++--- .../CoinList/Views/CoinListView.axaml.cs | 1 + .../Core/Cells/AnonymityScoreCellView.axaml | 3 +- .../Views/Core/Cells/IndicatorsCellView.axaml | 8 +- .../Views/Core/Cells/SelectionCellView.axaml | 10 +- .../Views/SelectCoinsDialogView.axaml | 3 +- .../Common/ViewModels/ApplicationViewModel.cs | 2 +- .../DialogBase/DialogScreenViewModel.cs | 13 +- .../DialogViewModelBaseOfTResult.cs | 5 +- .../Common/ViewModels/MainViewModel.cs | 4 +- .../ViewModels/ShuttingDownViewModel.cs | 31 ++- .../Common/Views/Shell/Dialogs.axaml | 45 ++-- .../Common/Views/Shell/MainScreen.axaml | 8 +- .../Common/Views/Shell/Shell.axaml | 2 +- .../Common/Views/Shell/TitleBar.axaml | 27 +- .../Common/Views/Shell/WelcomeBg.axaml | 1 - .../Common/Views/ShowErrorDialogView.axaml | 9 +- .../Common/Views/SuccessAnimationView.axaml | 4 +- .../Controls/AdorningContentControl.axaml | 4 +- .../Controls/AmountControl.axaml | 10 +- .../Controls/AnimatedButton.axaml | 18 +- WalletWasabi.Fluent/Controls/Button.axaml | 9 +- .../Controls/CaptionButtons.axaml | 18 +- WalletWasabi.Fluent/Controls/ChatTextBox.cs | 2 +- .../Controls/ClipboardCopyButton.axaml | 8 +- .../Controls/ContentArea.axaml.cs | 1 - .../Controls/CurrencyEntryBox.axaml | 14 +- .../Controls/CurrencyEntryBox.axaml.cs | 4 +- WalletWasabi.Fluent/Controls/Dialog.axaml.cs | 20 +- .../Controls/DummyRowsControl.axaml | 10 +- .../Controls/DummyRowsControl.axaml.cs | 2 +- .../Controls/FadeOutTextControl.axaml | 9 +- .../Controls/LabelsItemsPresenter.axaml | 7 +- WalletWasabi.Fluent/Controls/LabelsPanel.cs | 1 + WalletWasabi.Fluent/Controls/LineChart.cs | 96 +++---- .../Controls/LoadingContentControl.axaml | 1 - .../Controls/NotificationCard.axaml | 54 ++-- .../Controls/PreviewItem.axaml | 15 +- .../Controls/PreviewMessageItem.axaml | 31 ++- .../Controls/PreviewMessageItem.axaml.cs | 6 +- WalletWasabi.Fluent/Controls/PrivacyBar.axaml | 2 +- .../Controls/PrivacyContentControl.axaml | 17 +- .../Controls/PrivacyContentControl.axaml.cs | 1 - .../Controls/ProgressRingArc.axaml.cs | 10 +- WalletWasabi.Fluent/Controls/ScrollBar.axaml | 48 ++-- .../Controls/SearchBarPopup.cs | 218 ++++++++-------- .../Controls/Sorting/SortControl.axaml | 8 +- .../Controls/Spectrum/SpectrumControl.cs | 114 ++++---- .../Controls/Spectrum/SpectrumDrawHandler.cs | 1 - .../Spectrum/SpectrumDrawOperation.cs | 1 + .../Controls/SplitButton.axaml | 14 +- WalletWasabi.Fluent/Controls/StatusItem.axaml | 3 +- .../Controls/SubActionButton.axaml | 4 +- .../Controls/SuggestionItem.axaml | 16 +- WalletWasabi.Fluent/Controls/TagControl.axaml | 3 +- WalletWasabi.Fluent/Controls/TagsBox.axaml | 150 +++++------ WalletWasabi.Fluent/Controls/TagsBox.axaml.cs | 7 +- .../Controls/TagsBoxAutoCompleteBox.axaml | 149 +++++------ WalletWasabi.Fluent/Controls/TextBox.axaml | 117 +++++---- WalletWasabi.Fluent/Controls/ThemeImage.cs | 6 +- .../Controls/TileControl.axaml | 3 +- .../Controls/ToggleRadioButton.axaml | 3 +- .../Controls/TreeDataGrid.axaml | 18 +- .../Controls/WalletIconControl.axaml | 4 +- .../Converters/MoneyConverters.cs | 2 +- .../TextToInlineCollectionConverter.cs | 138 +++++----- .../ViewModels/CrashReportWindowViewModel.cs | 5 +- .../CrashReport/Views/CrashReportWindow.axaml | 28 +- .../Diagnostics/DiagnosticsWindow.axaml | 6 +- .../Extensions/CurrencyExtensions.cs | 2 +- .../Extensions/EnumerableExtension.cs | 2 +- .../Extensions/ObservableExtensions.cs | 66 ++--- .../ViewModels/AboutViewModel.cs | 108 ++++---- .../HelpAndSupport/Views/LinkView.axaml | 8 +- .../Helpers/ApplicationHelper.cs | 2 +- WalletWasabi.Fluent/Helpers/LambdaComparer.cs | 42 +-- .../Helpers/MacOsStartupHelper.cs | 32 +-- .../Helpers/TransactionFeeHelper.cs | 1 + .../Helpers/TransactionHelpers.cs | 3 +- WalletWasabi.Fluent/Helpers/WalletHelpers.cs | 4 +- .../BuySell/Controls/OffersView.axaml | 18 +- .../HomeScreen/BuySell/Models/BuySellModel.cs | 1 - .../BuySell/ViewModels/BuyOffersViewModel.cs | 1 - .../BuySell/ViewModels/BuyViewModel.cs | 3 +- .../BuySell/ViewModels/OffersViewModel.cs | 2 +- .../BuySell/ViewModels/OrdersViewModel.cs | 16 +- .../HomeScreen/BuySell/Views/BuyView.axaml | 2 +- .../Columns/OrderActionsColumnView.axaml | 3 +- .../BuySell/Views/OrderDetailsView.axaml | 6 +- .../HomeScreen/BuySell/Views/OrdersView.axaml | 3 +- .../BuySell/Views/SelectCountryView.axaml | 2 +- .../BuySell/Views/SellSuccessView.axaml | 12 +- .../BuySell/Views/SellSuccessView.axaml.cs | 1 - .../HomeScreen/BuySell/Views/SellView.axaml | 8 +- .../View/CoinjoinPlayerControlView.axaml | 12 +- .../View/ExcludedCoinsView.axaml | 3 +- .../ViewModel/CoinjoinPlayerViewModel.cs | 31 +-- .../Actions/CoinJoinDetailsViewModel.cs | 6 +- .../Actions/CoinJoinsDetailsViewModel.cs | 8 +- .../Actions/TransactionDetailsViewModel.cs | 8 +- .../Actions/TransactionDetailsView.axaml | 3 +- .../Views/Columns/IndicatorsColumnView.axaml | 9 +- .../Others/Views/WalletCoinsView.axaml | 3 +- .../ViewModels/ReceiveAddressViewModel.cs | 13 +- .../ReceiveAddressesDataGridSource.cs | 1 - .../ViewModels/ReceiveAddressesViewModel.cs | 6 +- .../Receive/Views/AddressLabelEditView.axaml | 30 +-- .../Views/Columns/ActionsColumnView.axaml | 3 +- .../Views/Columns/AddressColumnView.axaml | 2 +- .../Views/Columns/TypeColumnView.axaml | 2 +- .../Views/ConfirmHideAddressView.axaml | 9 +- .../Receive/Views/ReceiveAddressView.axaml | 2 +- .../Receive/Views/ReceiveAddressesView.axaml | 3 +- .../Receive/Views/ReceiveView.axaml | 7 +- .../Send/ViewModels/FeeChartViewModel.cs | 4 +- .../ManualControlDialogViewModel.cs | 22 +- .../PrivacySuggestionsFlyoutViewModel.cs | 1 + .../Send/ViewModels/SendViewModel.cs | 22 +- .../ViewModels/ShowQrCameraDialogViewModel.cs | 8 +- .../ViewModels/TransactionPreviewViewModel.cs | 139 +++++----- .../Send/Views/ManualControlDialogView.axaml | 2 +- .../Send/Views/PrivacyWarningsView.axaml | 14 +- .../HomeScreen/Send/Views/SendFeeView.axaml | 3 +- .../Send/Views/SendSuccessView.axaml | 4 +- .../HomeScreen/Send/Views/SendView.axaml | 2 +- .../Send/Views/TransactionPreviewView.axaml | 3 +- .../ViewModels/PrivacyRingItemViewModel.cs | 4 +- .../ViewModels/PrivacyRingViewModel.cs | 36 +-- .../Views/PrivacyRingDetailsView.axaml | 12 +- .../Views/PrivacyRingItemDetailsView.axaml | 12 +- .../Tiles/Views/BtcPriceTileView.axaml | 6 +- .../Tiles/Views/PrivacyControlTileView.axaml | 6 +- .../CoinjoinCoinSelectorSettingsViewModel.cs | 1 + .../WalletCoinJoinSettingsViewModel.cs | 8 +- .../ViewModels/WalletSettingsViewModel.cs | 1 - .../Views/ConfirmCoinjoinSettingsView.axaml | 5 +- .../Views/ResyncWalletView.axaml | 4 +- .../Views/WalletCoinJoinSettingsView.axaml | 12 +- .../Views/WalletGeneralSettingsView.axaml | 3 +- .../Views/WalletVerifyRecoveryWordsView.axaml | 18 +- .../Wallets/ViewModels/WalletPageViewModel.cs | 8 +- .../Wallets/ViewModels/WalletViewModel.cs | 66 ++++- .../HomeScreen/Wallets/Views/WalletView.axaml | 20 ++ WalletWasabi.Fluent/Icons/Icons.axaml | 4 +- .../Login/Views/LoginView.axaml | 13 +- WalletWasabi.Fluent/MathNet/CubicSpline.cs | 6 +- .../MathNet/Precision.Equality.cs | 2 +- WalletWasabi.Fluent/MathNet/Precision.cs | 2 +- .../MathNet/SplineBoundaryCondition.cs | 2 +- .../Models/BrowserTypeDropdownListEnum.cs | 9 +- WalletWasabi.Fluent/Models/FeeDisplayUnit.cs | 3 +- .../Models/TransactionBroadcasterModel.cs | 16 +- .../Models/Transactions/PrivacySuggestion.cs | 8 +- .../Transactions/PrivacySuggestionsModel.cs | 13 +- .../Models/Transactions/SendFlowModel.cs | 8 +- .../Models/UI/ApplicationSettings.cs | 28 +- WalletWasabi.Fluent/Models/UI/QrCodeReader.cs | 49 ++-- .../Models/UI/TorStatusCheckerModel.cs | 2 +- WalletWasabi.Fluent/Models/UI/UiClipboard.cs | 2 +- .../Models/Wallets/AddressesModel.cs | 10 + WalletWasabi.Fluent/Models/Wallets/Amount.cs | 4 +- .../Models/Wallets/CoinModel.cs | 44 +++- .../Models/Wallets/HardwareWalletModel.cs | 25 ++ .../Models/Wallets/HealthMonitor.cs | 42 +-- .../Models/Wallets/SpeedupTransaction.cs | 2 +- .../Models/Wallets/TransactionTreeBuilder.cs | 10 +- .../Wallets/UserSelectionCoinListModel.cs | 4 +- .../Models/Wallets/WalletCoinjoinModel.cs | 34 +-- .../Models/Wallets/WalletLoadWorkflow.cs | 25 +- .../Models/Wallets/WalletModel.cs | 14 +- .../Models/Wallets/WalletPrivacyModel.cs | 6 +- .../Models/Wallets/WalletRepository.cs | 43 ++-- .../Models/Wallets/WalletStatsModel.cs | 18 +- .../Models/Wallets/WalletTransactionsModel.cs | 1 + .../NavBar/Interfaces/INavBarButton.cs | 1 + .../NavBar/Interfaces/INavBarItem.cs | 1 + .../NavBar/Interfaces/INavBarToggle.cs | 1 + .../NavBar/Models/NavBarPosition.cs | 1 + .../NavBar/Models/NavBarSelectionMode.cs | 1 + .../NavBar/Models/NavigationTarget.cs | 1 + .../NavBar/ViewModels/NavBarItemViewModel.cs | 1 + .../NavBar/ViewModels/NavBarViewModel.cs | 16 +- WalletWasabi.Fluent/NavBar/Views/NavBar.axaml | 9 +- .../Navigation/ViewModels/NavigationStack.cs | 2 + .../ViewModels/RoutableViewModel.cs | 8 +- .../ViewModels/OpenWalletsFolderViewModel.cs | 3 +- WalletWasabi.Fluent/Screenshot/Capture.cs | 9 +- .../SearchBar/Models/ValueObject.cs | 14 +- .../ViewModels/SearchBarDesignViewModel.cs | 13 +- .../ViewModels/SearchBarViewModel.cs | 17 +- .../Sources/TransactionsSearchSource.cs | 9 +- .../SearchBar/Views/RestartView.axaml | 3 +- .../SearchBar/Views/SearchBar.axaml | 5 +- .../SearchBar/Views/SearchBarDropdown.axaml | 34 ++- .../ViewModels/SettingsPageViewModel.cs | 8 +- .../Views/AppearanceSettingsTabView.axaml | 24 +- .../Views/BitcoinTabSettingsView.axaml | 2 +- .../Views/GeneralSettingsTabView.axaml | 5 +- .../Views/SecuritySettingsTabView.axaml | 7 +- .../Settings/Views/SettingsPageView.axaml | 9 +- .../HardwareWalletMessageSigningViewModel.cs | 43 ++++ .../ViewModels/SignMessageViewModel.cs | 187 ++++++++++++++ .../HardwareWalletMessageSigningView.axaml | 30 +++ .../HardwareWalletMessageSigningView.axaml.cs | 17 ++ .../SignMessage/Views/SignMessageView.axaml | 126 +++++++++ .../Views/SignMessageView.axaml.cs | 17 ++ .../Status/ViewModels/StatusIconViewModel.cs | 11 +- .../Status/Views/StatusIcon.axaml | 8 +- .../Styles/CopyablePasswordTextBox.axaml | 6 +- .../Styles/CuedScrollViewer.axaml | 10 +- WalletWasabi.Fluent/Styles/Dialog.axaml | 6 +- WalletWasabi.Fluent/Styles/Markdown.axaml | 30 +-- WalletWasabi.Fluent/Styles/RadioButton.axaml | 3 +- WalletWasabi.Fluent/Styles/ScrollBar.axaml | 2 +- .../Styles/SettingsLayout.axaml | 3 +- WalletWasabi.Fluent/Styles/TagsBox.axaml | 3 +- WalletWasabi.Fluent/Styles/Themes/Base.axaml | 6 +- WalletWasabi.Fluent/Styles/Themes/Dark.axaml | 6 +- WalletWasabi.Fluent/Styles/Themes/Light.axaml | 6 +- WalletWasabi.Fluent/Styles/ToggleSwitch.axaml | 12 +- .../Views/BroadcastTransactionView.axaml | 32 +-- .../TreeDataGrid/PlainTextElementFactory.cs | 8 +- .../TreeDataGrid/TreeDataGridPlainTextCell.cs | 1 + .../TreeDataGridPrivacyTextCell.cs | 4 +- .../Controls/TwoFactorEntryBox.axaml | 58 ++--- .../Controls/TwoFactorEntryBox.axaml.cs | 2 +- .../TwoFactoryAuthenticationDialogView.axaml | 3 +- ...fyTwoFactoryAuthenticationDialogView.axaml | 2 +- WalletWasabi.Fluent/Validation/Validations.cs | 3 +- WalletWasabi.Fluent/ViewLocator.cs | 3 +- .../WalletWasabi.Fluent.csproj | 34 +-- .../WalletWasabi.Fluent.csproj.DotSettings | 2 +- WalletWasabi.Fluent/WebBrowserService.cs | 32 ++- WalletWasabi.Packager/Program.cs | 4 - .../RegressionTests/BackendTests.cs | 2 +- .../UnitTests/KeyManagementTests.cs | 1 - .../UnitTests/StandaloneTests/ConfigTests.cs | 1 + .../StartWasabiOnSystemStartupTests.cs | 1 - WalletWasabi.Tests/UnitTests/TestWallet.cs | 5 + .../WabiSabi/Backend/CoinVerifierTests.cs | 2 +- .../Backend/OffenderSerializationTests.cs | 5 +- .../PostRequests/RegisterInputFailureTests.cs | 2 +- .../PostRequests/RegisterOutputTests.cs | 1 - .../UnitTests/WabiSabi/Backend/PrisonTests.cs | 50 ++-- .../WabiSabi/Backend/UtxoPrisonWardenTests.cs | 11 +- .../WabiSabi/Backend/WhitelistTests.cs | 1 - .../WabiSabi/Client/KeyChainTests.cs | 150 +++++++++++ .../Client/PaymentAwareOutputProviderTests.cs | 1 - .../Integration/StuttererHttpClient.cs | 2 - .../WabiSabiHttpApiIntegrationTests.cs | 2 +- .../WabiSabi/Models/ConstructionStateTests.cs | 1 - .../Wallet/WalletSynchronizationTests.cs | 1 - WalletWasabi/Announcer/AnnouncementManager.cs | 2 - .../Responses/TwoFactorSetupResponse.cs | 2 - WalletWasabi/Blockchain/Keys/HdPubKey.cs | 1 - .../TransactionOutputs/SmartCoin.cs | 9 + .../Extensions/KeyManagerExtension.cs | 136 ++++++++++ WalletWasabi/Filter/FilterChecker.cs | 1 - WalletWasabi/Hwi/HwiClient.cs | 16 ++ WalletWasabi/Hwi/Parsers/HwiParser.cs | 16 ++ .../DecimalSeparatorJsonConverter.cs | 3 +- .../DisplayLanguageJsonConverter.cs | 1 - .../GetOrderResponseItemJsonConverter.cs | 2 - .../GroupSeparatorJsonConverter.cs | 3 +- WalletWasabi/Lang/LocalizationExtension.cs | 1 - WalletWasabi/Lang/Models/DecimalSeparator.cs | 1 - WalletWasabi/Lang/Models/GroupSeparator.cs | 1 - WalletWasabi/Lang/Resources.Designer.cs | 199 ++++++++++++++ WalletWasabi/Lang/Resources.de.resx | 66 +++++ WalletWasabi/Lang/Resources.es.resx | 66 +++++ WalletWasabi/Lang/Resources.fr.resx | 66 +++++ WalletWasabi/Lang/Resources.hu.resx | 66 +++++ WalletWasabi/Lang/Resources.it.resx | 66 +++++ WalletWasabi/Lang/Resources.pt.resx | 66 +++++ WalletWasabi/Lang/Resources.resx | 66 +++++ WalletWasabi/Lang/Resources.tr.resx | 66 +++++ WalletWasabi/Lang/Resources.zh.resx | 66 +++++ WalletWasabi/Models/TorMode.cs | 2 - .../Nostr/CoordinatorNostrPublisher.cs | 1 - WalletWasabi/Nostr/NostrExtensions.cs | 1 - WalletWasabi/Tor/TorProcessManager.cs | 1 - WalletWasabi/Userfacing/CurrencyInput.cs | 1 - .../WabiSabi/Backend/Banning/ApiResponse.cs | 2 +- .../WabiSabi/Backend/Banning/CoinVerifier.cs | 18 +- .../Backend/Banning/CoinVerifierApiClient.cs | 2 +- .../Backend/DoSPrevention/DoSConfiguration.cs | 1 + .../Backend/DoSPrevention/Offender.cs | 115 ++++++++- .../WabiSabi/Backend/DoSPrevention/Prison.cs | 38 ++- .../Models/InputBannedExceptionData.cs | 6 +- .../WabiSabi/Backend/Rounds/Arena.Partial.cs | 9 +- WalletWasabi/WabiSabi/Backend/Rounds/Arena.cs | 6 +- .../Backend/Rounds/RoundParameters.cs | 1 - .../WabiSabi/Backend/WabiSabiConfig.cs | 5 + .../WabiSabi/Client/Banning/CoinPrison.cs | 25 +- .../Client/Banning/PrisonedCoinRecord.cs | 5 +- .../Client/CoinJoin/Client/CoinJoinClient.cs | 3 +- .../CoinJoinProgressEvents/CoinBanned.cs | 5 +- .../Client/CoinSelectionStatistics.cs | 4 - .../Client/DependencyGraphTaskScheduler.cs | 1 - .../CoinJoin/Manager/CoinJoinManager.cs | 2 +- WalletWasabi/WabiSabi/Client/IKeyChain.cs | 3 +- WalletWasabi/WabiSabi/Client/KeyChain.cs | 5 + .../RoundStateAwaiters/RoundStateHolder.cs | 2 - .../WabiSabi/Models/InputBannedReasonEnum.cs | 36 +++ .../Models/ReadyToSignRequestRequest.cs | 1 - WalletWasabi/WabiSabi/Models/RoundState.cs | 1 - WalletWasabi/WabiSabi/WabiSabiCoordinator.cs | 17 +- WalletWasabi/Wallets/P2PNodesManager.cs | 28 +- WalletWasabi/Wallets/WalletFilterProcessor.cs | 1 - WalletWasabi/Wallets/WalletManager.cs | 10 +- .../Bitstamp/BitstampExchangeRateProvider.cs | 1 - .../CoinGeckoExchangeRateProvider.cs | 1 - .../Coingate/CoingateExchangeRateProvider.cs | 1 - .../Gemini/GeminiExchangeRateProvider.cs | 1 - 349 files changed, 4151 insertions(+), 2088 deletions(-) create mode 100644 WalletWasabi.Fluent/SignMessage/ViewModels/HardwareWalletMessageSigningViewModel.cs create mode 100644 WalletWasabi.Fluent/SignMessage/ViewModels/SignMessageViewModel.cs create mode 100644 WalletWasabi.Fluent/SignMessage/Views/HardwareWalletMessageSigningView.axaml create mode 100644 WalletWasabi.Fluent/SignMessage/Views/HardwareWalletMessageSigningView.axaml.cs create mode 100644 WalletWasabi.Fluent/SignMessage/Views/SignMessageView.axaml create mode 100644 WalletWasabi.Fluent/SignMessage/Views/SignMessageView.axaml.cs create mode 100644 WalletWasabi/Extensions/KeyManagerExtension.cs create mode 100644 WalletWasabi/WabiSabi/Models/InputBannedReasonEnum.cs diff --git a/GingerCommon/Crypto/Random/RandomExtensions.cs b/GingerCommon/Crypto/Random/RandomExtensions.cs index 34cd6d6ea2..e670106ae6 100644 --- a/GingerCommon/Crypto/Random/RandomExtensions.cs +++ b/GingerCommon/Crypto/Random/RandomExtensions.cs @@ -1,8 +1,4 @@ -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace GingerCommon.Crypto.Random; diff --git a/GingerCommon/Static/HttpUtils.cs b/GingerCommon/Static/HttpUtils.cs index 05d971a42f..20937a2cd4 100644 --- a/GingerCommon/Static/HttpUtils.cs +++ b/GingerCommon/Static/HttpUtils.cs @@ -1,10 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.Http.Headers; using System.Net.Http; -using System.Text; -using System.Text.Json; using System.Threading; using System.Threading.Tasks; using System.Net; diff --git a/GingerCommon/Static/JsonUtils.cs b/GingerCommon/Static/JsonUtils.cs index d01f0fdeef..77c63a031d 100644 --- a/GingerCommon/Static/JsonUtils.cs +++ b/GingerCommon/Static/JsonUtils.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; using System.Text.Json; -using System.Threading.Tasks; namespace GingerCommon.Static; diff --git a/GingerCommon/Static/TypeUtils.cs b/GingerCommon/Static/TypeUtils.cs index 8f75a8f858..7dc31ae9f2 100644 --- a/GingerCommon/Static/TypeUtils.cs +++ b/GingerCommon/Static/TypeUtils.cs @@ -1,9 +1,5 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; namespace GingerCommon.Static; diff --git a/WalletWasabi.Backend/Extensions.cs b/WalletWasabi.Backend/Extensions.cs index ab7b1a6714..993ea1ebd5 100644 --- a/WalletWasabi.Backend/Extensions.cs +++ b/WalletWasabi.Backend/Extensions.cs @@ -1,4 +1,3 @@ -using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System.Linq; diff --git a/WalletWasabi.Backend/Global.cs b/WalletWasabi.Backend/Global.cs index a77f4ff83c..c257684fdb 100644 --- a/WalletWasabi.Backend/Global.cs +++ b/WalletWasabi.Backend/Global.cs @@ -1,7 +1,6 @@ using GingerCommon.Logging; using Microsoft.Extensions.Logging; using NBitcoin; -using NBitcoin.Secp256k1; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; @@ -21,7 +20,6 @@ using WalletWasabi.WabiSabi; using WalletWasabi.WabiSabi.Backend; using WalletWasabi.WabiSabi.Backend.Banning; -using WalletWasabi.WabiSabi.Backend.Rounds; using WalletWasabi.WabiSabi.Backend.Rounds.CoinJoinStorage; using WalletWasabi.WabiSabi.Backend.Statistics; using WalletWasabi.WabiSabi.Recommendation; diff --git a/WalletWasabi.Daemon/BuySell/BuySellClient.cs b/WalletWasabi.Daemon/BuySell/BuySellClient.cs index 9229e5b11e..3164323629 100644 --- a/WalletWasabi.Daemon/BuySell/BuySellClient.cs +++ b/WalletWasabi.Daemon/BuySell/BuySellClient.cs @@ -1,4 +1,3 @@ -using System; using System.Net.Http; using System.Text; using System.Text.Json; diff --git a/WalletWasabi.Daemon/FeeRateProviders/FeeRateProvider.cs b/WalletWasabi.Daemon/FeeRateProviders/FeeRateProvider.cs index 7ade825529..ce40d567d1 100644 --- a/WalletWasabi.Daemon/FeeRateProviders/FeeRateProvider.cs +++ b/WalletWasabi.Daemon/FeeRateProviders/FeeRateProvider.cs @@ -82,6 +82,7 @@ public void Initialize(RpcFeeRateProvider? rpcFeeRateProvider) /// public FeeRateProvider(WasabiHttpClientFactory httpClientFactory, Network network) : this(httpClientFactory, FeeRateProviderSource.BlockstreamInfo, network) { + Initialize(null); } public AllFeeEstimate GetAllFeeEstimate() diff --git a/WalletWasabi.Daemon/PersistentConfig.cs b/WalletWasabi.Daemon/PersistentConfig.cs index 1ab95b09e5..31167e6c23 100644 --- a/WalletWasabi.Daemon/PersistentConfig.cs +++ b/WalletWasabi.Daemon/PersistentConfig.cs @@ -252,6 +252,16 @@ static public bool Migrate(bool readFromWasabi, [NotNullWhen(true)] ref Persiste }; } + // Previous imports from Wasabi could increase this to 100. We do want to check and change this, even if we are not readFromWasabi. + if (config.AbsoluteMinInputCount > Constants.DefaultAbsoluteMinInputCount) + { + hasChanged = true; + config = config with + { + AbsoluteMinInputCount = Constants.DefaultAbsoluteMinInputCount + }; + } + if (readFromWasabi) { var torMode = Config.ObjectToTorMode(config.UseTor); diff --git a/WalletWasabi.Fluent/AddWallet/ViewModels/AdvancedRecoveryOptionsViewModel.cs b/WalletWasabi.Fluent/AddWallet/ViewModels/AdvancedRecoveryOptionsViewModel.cs index 01cecbd5da..77b4419b91 100644 --- a/WalletWasabi.Fluent/AddWallet/ViewModels/AdvancedRecoveryOptionsViewModel.cs +++ b/WalletWasabi.Fluent/AddWallet/ViewModels/AdvancedRecoveryOptionsViewModel.cs @@ -32,7 +32,7 @@ public AdvancedRecoveryOptionsViewModel(int minGapLimit) private void ValidateMinGapLimit(IValidationErrors errors) { if (!int.TryParse(MinGapLimit, out var minGapLimit) || - minGapLimit is < KeyManager.AbsoluteMinGapLimit or > KeyManager.MaxGapLimit) + minGapLimit is < KeyManager.AbsoluteMinGapLimit or > KeyManager.MaxGapLimit) { errors.Add( ErrorSeverity.Error, diff --git a/WalletWasabi.Fluent/AddWallet/ViewModels/Create/ConfirmRecoveryWordsViewModel.cs b/WalletWasabi.Fluent/AddWallet/ViewModels/Create/ConfirmRecoveryWordsViewModel.cs index aa69788d82..39e7ad88a8 100644 --- a/WalletWasabi.Fluent/AddWallet/ViewModels/Create/ConfirmRecoveryWordsViewModel.cs +++ b/WalletWasabi.Fluent/AddWallet/ViewModels/Create/ConfirmRecoveryWordsViewModel.cs @@ -55,9 +55,9 @@ protected override void OnNavigatedTo(bool isInHistory, CompositeDisposable disp var nextCommandCanExecute = confirmationWordsSourceList - .Connect() - .WhenValueChanged(x => x.IsConfirmed) - .Select(_ => confirmationWordsSourceList.Items.All(x => x.IsConfirmed)); + .Connect() + .WhenValueChanged(x => x.IsConfirmed) + .Select(_ => confirmationWordsSourceList.Items.All(x => x.IsConfirmed)); NextCommand = ReactiveCommand.CreateFromTask(OnNextAsync, nextCommandCanExecute); diff --git a/WalletWasabi.Fluent/AddWallet/ViewModels/CreatePasswordDialogViewModel.cs b/WalletWasabi.Fluent/AddWallet/ViewModels/CreatePasswordDialogViewModel.cs index 47d387cf38..e3acfe95a8 100644 --- a/WalletWasabi.Fluent/AddWallet/ViewModels/CreatePasswordDialogViewModel.cs +++ b/WalletWasabi.Fluent/AddWallet/ViewModels/CreatePasswordDialogViewModel.cs @@ -41,10 +41,10 @@ public CreatePasswordDialogViewModel(string title, string caption = "", bool ena this.RaisePropertyChanged(nameof(ConfirmPassword)); return IsDialogOpen && - ((enableEmpty && string.IsNullOrEmpty(Password) && - string.IsNullOrEmpty(ConfirmPassword)) || - (!string.IsNullOrEmpty(Password) && !string.IsNullOrEmpty(ConfirmPassword) && - !Validations.Any)); + ((enableEmpty && string.IsNullOrEmpty(Password) && + string.IsNullOrEmpty(ConfirmPassword)) || + (!string.IsNullOrEmpty(Password) && !string.IsNullOrEmpty(ConfirmPassword) && + !Validations.Any)); }) .ObserveOn(RxApp.MainThreadScheduler); diff --git a/WalletWasabi.Fluent/AddWallet/ViewModels/WelcomePageViewModel.cs b/WalletWasabi.Fluent/AddWallet/ViewModels/WelcomePageViewModel.cs index 4c1e5f1f0d..30637f6882 100644 --- a/WalletWasabi.Fluent/AddWallet/ViewModels/WelcomePageViewModel.cs +++ b/WalletWasabi.Fluent/AddWallet/ViewModels/WelcomePageViewModel.cs @@ -35,12 +35,11 @@ public WelcomePageViewModel() _selectedDisplayLanguage = Settings.SelectedDisplayLanguage; this.WhenAnyValue(x => x.SelectedIndex) - .Subscribe( - x => - { - NextLabel = x < NumberOfPages - 1 ? Resources.Continue : Resources.GetStarted; - EnableNextKey = x < NumberOfPages - 1; - }); + .Subscribe(x => + { + NextLabel = x < NumberOfPages - 1 ? Resources.Continue : Resources.GetStarted; + EnableNextKey = x < NumberOfPages - 1; + }); this.WhenAnyValue(x => x.IsActive) .Skip(1) diff --git a/WalletWasabi.Fluent/AddWallet/Views/AddWalletPageView.axaml b/WalletWasabi.Fluent/AddWallet/Views/AddWalletPageView.axaml index 14db3a19cb..6078f6f3d7 100644 --- a/WalletWasabi.Fluent/AddWallet/Views/AddWalletPageView.axaml +++ b/WalletWasabi.Fluent/AddWallet/Views/AddWalletPageView.axaml @@ -16,16 +16,16 @@ EnableNext="False"> - - - - + + + + + CancelContent="{x:Static lang:Resources.Cancel}" + EnableCancel="{Binding EnableCancel}" + EnableBack="{Binding EnableBack}" + EnableNext="True" NextContent="OK"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WalletWasabi.Fluent/CoinList/Views/CoinListView.axaml.cs b/WalletWasabi.Fluent/CoinList/Views/CoinListView.axaml.cs index 425bee1010..20a1a07faf 100644 --- a/WalletWasabi.Fluent/CoinList/Views/CoinListView.axaml.cs +++ b/WalletWasabi.Fluent/CoinList/Views/CoinListView.axaml.cs @@ -2,6 +2,7 @@ using Avalonia.Markup.Xaml; namespace WalletWasabi.Fluent.CoinList.Views; + public class CoinListView : UserControl { public CoinListView() diff --git a/WalletWasabi.Fluent/CoinList/Views/Core/Cells/AnonymityScoreCellView.axaml b/WalletWasabi.Fluent/CoinList/Views/Core/Cells/AnonymityScoreCellView.axaml index d74bc134ed..88b52447cf 100644 --- a/WalletWasabi.Fluent/CoinList/Views/Core/Cells/AnonymityScoreCellView.axaml +++ b/WalletWasabi.Fluent/CoinList/Views/Core/Cells/AnonymityScoreCellView.axaml @@ -8,7 +8,8 @@ x:DataType="viewModels:CoinListItem" x:CompileBindings="True" x:Class="WalletWasabi.Fluent.CoinList.Views.Core.Cells.AnonymityScoreCellView"> - + diff --git a/WalletWasabi.Fluent/CoinList/Views/Core/Cells/IndicatorsCellView.axaml b/WalletWasabi.Fluent/CoinList/Views/Core/Cells/IndicatorsCellView.axaml index f8ae14adfa..37a6fb7ccb 100644 --- a/WalletWasabi.Fluent/CoinList/Views/Core/Cells/IndicatorsCellView.axaml +++ b/WalletWasabi.Fluent/CoinList/Views/Core/Cells/IndicatorsCellView.axaml @@ -31,8 +31,8 @@ - - + + - - + + diff --git a/WalletWasabi.Fluent/CoinList/Views/Core/Cells/SelectionCellView.axaml b/WalletWasabi.Fluent/CoinList/Views/Core/Cells/SelectionCellView.axaml index e1f6944ac4..05aa08f02a 100644 --- a/WalletWasabi.Fluent/CoinList/Views/Core/Cells/SelectionCellView.axaml +++ b/WalletWasabi.Fluent/CoinList/Views/Core/Cells/SelectionCellView.axaml @@ -19,8 +19,8 @@ - - + + @@ -37,12 +37,14 @@ - - + diff --git a/WalletWasabi.Fluent/CoinList/Views/SelectCoinsDialogView.axaml b/WalletWasabi.Fluent/CoinList/Views/SelectCoinsDialogView.axaml index 50e51eb80e..b5f8128cfd 100644 --- a/WalletWasabi.Fluent/CoinList/Views/SelectCoinsDialogView.axaml +++ b/WalletWasabi.Fluent/CoinList/Views/SelectCoinsDialogView.axaml @@ -18,7 +18,8 @@ IsBusy="{Binding IsBusy}" ScrollViewer.VerticalScrollBarVisibility="Disabled"> - + + - - - - - + + + + + diff --git a/WalletWasabi.Fluent/Controls/PreviewItem.axaml b/WalletWasabi.Fluent/Controls/PreviewItem.axaml index 744e8829be..8d781ecb92 100644 --- a/WalletWasabi.Fluent/Controls/PreviewItem.axaml +++ b/WalletWasabi.Fluent/Controls/PreviewItem.axaml @@ -6,7 +6,7 @@ + CopyableContent="Text to copy" /> @@ -19,17 +19,18 @@ Data="{TemplateBinding Icon}" Margin="0 0 20 0" Foreground="{DynamicResource SystemAccentCustomColorLight}" - DockPanel.Dock="Left" IsVisible="{TemplateBinding Icon, Converter={x:Static ObjectConverters.IsNotNull}}" /> + DockPanel.Dock="Left" + IsVisible="{TemplateBinding Icon, Converter={x:Static ObjectConverters.IsNotNull}}" /> + IsVisible="{Binding !!$self.Text}" /> + ToolTip.Tip="{x:Static lang:Resources.Copy}" + DockPanel.Dock="Right" Width="30" + Text="{Binding Path=CopyableContent, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static conv:StringConverters.AsString}}" + ShowCopyButton="{TemplateBinding IsCopyButtonVisible}" /> + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:conv="using:WalletWasabi.Fluent.Converters" + xmlns:lang="clr-namespace:WalletWasabi.Lang;assembly=WalletWasabi"> + CopyableContent="Text to copy" /> @@ -16,13 +16,13 @@ + ToolTip.Tip="{x:Static lang:Resources.Copy}" + DockPanel.Dock="{TemplateBinding CopyButtonPlacement}" + Width="30" + Text="{Binding Path=CopyableContent, RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static conv:StringConverters.AsString}}" + ShowCopyButton="{TemplateBinding IsCopyButtonVisible}" + VerticalAlignment="Center" + HorizontalAlignment="Center" /> diff --git a/WalletWasabi.Fluent/Controls/TagsBox.axaml b/WalletWasabi.Fluent/Controls/TagsBox.axaml index 723fbef825..cb6032d12a 100644 --- a/WalletWasabi.Fluent/Controls/TagsBox.axaml +++ b/WalletWasabi.Fluent/Controls/TagsBox.axaml @@ -1,8 +1,7 @@ + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:generic="clr-namespace:System.Collections.Generic;assembly=System.Collections" + xmlns:system="clr-namespace:System;assembly=System.Runtime"> @@ -16,7 +15,7 @@ - + @@ -40,71 +39,71 @@ - - - - - - - - - - - - diff --git a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/Columns/OrderActionsColumnView.axaml b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/Columns/OrderActionsColumnView.axaml index c630b04e7b..78ad1da1db 100644 --- a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/Columns/OrderActionsColumnView.axaml +++ b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/Columns/OrderActionsColumnView.axaml @@ -8,7 +8,8 @@ x:DataType="viewModels:OrderViewModel" x:CompileBindings="True" x:Class="WalletWasabi.Fluent.HomeScreen.BuySell.Views.Columns.OrderActionsColumnView"> - + diff --git a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml index 71c0501fb5..b117dd9a03 100644 --- a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml +++ b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml @@ -34,11 +34,14 @@ - + - + - + @@ -47,7 +50,7 @@ FontWeight="Bold" Text="{Binding Provider}" Foreground="{DynamicResource SystemAccentCustomColorDark}" - Opacity="0.8"/> + Opacity="0.8" /> @@ -55,4 +58,3 @@ - diff --git a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml.cs b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml.cs index f3ebba2faa..c1a45303b0 100644 --- a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml.cs +++ b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellSuccessView.axaml.cs @@ -15,4 +15,3 @@ private void InitializeComponent() AvaloniaXamlLoader.Load(this); } } - diff --git a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellView.axaml b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellView.axaml index 1c62140d68..449aeceb20 100644 --- a/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellView.axaml +++ b/WalletWasabi.Fluent/HomeScreen/BuySell/Views/SellView.axaml @@ -23,7 +23,7 @@ Theme="{StaticResource OutlineButton}"> + IsVisible="{Binding SelectedCountry.StateName, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" /> @@ -55,7 +55,8 @@