diff --git a/BTCPayServer/Controllers/StoresController.cs b/BTCPayServer/Controllers/StoresController.cs index ff7f3bd1f..5303549b4 100644 --- a/BTCPayServer/Controllers/StoresController.cs +++ b/BTCPayServer/Controllers/StoresController.cs @@ -499,13 +499,16 @@ namespace BTCPayServer.Controllers case BitcoinPaymentType _: var strategy = derivationByCryptoCode.TryGet(paymentMethodId.CryptoCode); var network = _NetworkProvider.GetNetwork(paymentMethodId.CryptoCode); + var value = strategy?.ToPrettyString() ?? string.Empty; + vm.DerivationSchemes.Add(new StoreViewModel.DerivationScheme() { Crypto = paymentMethodId.CryptoCode, WalletSupported = network.WalletSupported, - Value = strategy?.ToPrettyString() ?? string.Empty, + Value = value, WalletId = new WalletId(store.Id, paymentMethodId.CryptoCode), - Enabled = !excludeFilters.Match(paymentMethodId) && strategy != null + Enabled = !excludeFilters.Match(paymentMethodId) && strategy != null, + Collapsed = network is ElementsBTCPayNetwork elementsBTCPayNetwork && elementsBTCPayNetwork.NetworkCryptoCode != elementsBTCPayNetwork.CryptoCode && string.IsNullOrEmpty(value) }); break; case LightningPaymentType _: diff --git a/BTCPayServer/Models/StoreViewModels/StoreViewModel.cs b/BTCPayServer/Models/StoreViewModels/StoreViewModel.cs index db3764b4a..6475b4d15 100644 --- a/BTCPayServer/Models/StoreViewModels/StoreViewModel.cs +++ b/BTCPayServer/Models/StoreViewModels/StoreViewModel.cs @@ -14,6 +14,7 @@ namespace BTCPayServer.Models.StoreViewModels public WalletId WalletId { get; set; } public bool WalletSupported { get; set; } public bool Enabled { get; set; } + public bool Collapsed { get; set; } } public class AdditionalPaymentMethod diff --git a/BTCPayServer/Views/Stores/UpdateStore.cshtml b/BTCPayServer/Views/Stores/UpdateStore.cshtml index fd147ad4b..f7f91ba78 100644 --- a/BTCPayServer/Views/Stores/UpdateStore.cshtml +++ b/BTCPayServer/Views/Stores/UpdateStore.cshtml @@ -97,9 +97,9 @@ - @foreach(var scheme in Model.DerivationSchemes) + @foreach(var scheme in Model.DerivationSchemes.OrderBy(scheme => scheme.Collapsed)) { - + @scheme.Crypto @scheme.Value @@ -121,6 +121,13 @@ } + + @if (Model.DerivationSchemes.Any(scheme => scheme.Collapsed)) + { + + + + } @@ -250,4 +257,14 @@ @section Scripts { @await Html.PartialAsync("_ValidationScriptsPartial") + + }