diff --git a/BTCPayServer/Plugins/Altcoins/Zcash/AltcoinsPlugin.Zcash.cs b/BTCPayServer/Plugins/Altcoins/Zcash/AltcoinsPlugin.Zcash.cs index ffc10f248..e70e00cb2 100644 --- a/BTCPayServer/Plugins/Altcoins/Zcash/AltcoinsPlugin.Zcash.cs +++ b/BTCPayServer/Plugins/Altcoins/Zcash/AltcoinsPlugin.Zcash.cs @@ -80,7 +80,7 @@ public partial class AltcoinsPlugin foreach (var ZcashLikeSpecificBtcPayNetwork in supportedNetworks) { var daemonUri = - configuration.GetOrDefault($"{ZcashLikeSpecificBtcPayNetwork.CryptoCode}_daemon_uri", + configuration.GetOrDefault($"{ZcashLikeSpecificBtcPayNetwork.CryptoCode}_daemon_uri", null); var walletDaemonUri = configuration.GetOrDefault( diff --git a/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs index 137a32770..6e824c20e 100644 --- a/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs +++ b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs @@ -28,7 +28,6 @@ namespace BTCPayServer.Services.Altcoins.Monero.Payments { public class MoneroLikePaymentMethodHandler : IPaymentMethodHandler { - internal static PaymentType MoneroLike => MoneroPaymentType.Instance; private readonly MoneroLikeSpecificBtcPayNetwork _network; public MoneroLikeSpecificBtcPayNetwork Network => _network; public JsonSerializer Serializer { get; } @@ -38,7 +37,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Payments public MoneroLikePaymentMethodHandler(MoneroLikeSpecificBtcPayNetwork network, MoneroRPCProvider moneroRpcProvider) { - PaymentMethodId = MoneroLike.GetPaymentMethodId(network.CryptoCode); + PaymentMethodId = PaymentTypes.CHAIN.GetPaymentMethodId(network.CryptoCode); _network = network; Serializer = BlobSerializer.CreateSerializer().Serializer; _moneroRpcProvider = moneroRpcProvider; diff --git a/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroPaymentType.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroPaymentType.cs deleted file mode 100644 index 4de6197a8..000000000 --- a/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroPaymentType.cs +++ /dev/null @@ -1,17 +0,0 @@ -#if ALTCOINS -using System.Globalization; -using BTCPayServer.Payments; -using BTCPayServer.Plugins.Altcoins; -using BTCPayServer.Services.Invoices; -using NBitcoin; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace BTCPayServer.Services.Altcoins.Monero.Payments -{ - internal class MoneroPaymentType - { - internal static readonly PaymentType Instance = new("MoneroLike"); - } -} -#endif diff --git a/BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs index 4d4896b3f..aff07a2ae 100644 --- a/BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs +++ b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs @@ -157,7 +157,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services var moneroWalletRpcClient = _moneroRpcProvider.WalletRpcClients[cryptoCode]; var network = _networkProvider.GetNetwork(cryptoCode); - var paymentId = MoneroPaymentType.Instance.GetPaymentMethodId(network.CryptoCode); + var paymentId = PaymentTypes.CHAIN.GetPaymentMethodId(network.CryptoCode); var handler = (MoneroLikePaymentMethodHandler)_handlers[paymentId]; //get all the required data in one list (invoice, its existing payments and the current payment method details) @@ -273,7 +273,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services private async Task OnTransactionUpdated(string cryptoCode, string transactionHash) { - var paymentMethodId = MoneroPaymentType.Instance.GetPaymentMethodId(cryptoCode); + var paymentMethodId = PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode); var transfer = await _moneroRpcProvider.WalletRpcClients[cryptoCode] .SendCommandAsync( "get_transfer_by_txid", @@ -324,7 +324,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services BlockingCollection<(PaymentEntity Payment, InvoiceEntity invoice)> paymentsToUpdate) { var network = _networkProvider.GetNetwork(cryptoCode); - var pmi = MoneroPaymentType.Instance.GetPaymentMethodId(network.CryptoCode); + var pmi = PaymentTypes.CHAIN.GetPaymentMethodId(network.CryptoCode); var handler = (MoneroLikePaymentMethodHandler)_handlers[pmi]; var promptDetails = handler.ParsePaymentPromptDetails(invoice.GetPaymentPrompt(pmi).Details); var details = new MoneroLikePaymentData() @@ -397,7 +397,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services var invoices = await _invoiceRepository.GetPendingInvoices(); if (!invoices.Any()) return; - var paymentMethodId = MoneroPaymentType.Instance.GetPaymentMethodId(cryptoCode); + var paymentMethodId = PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode); invoices = invoices.Where(entity => entity.GetPaymentPrompt(paymentMethodId)?.Activated is true).ToArray(); await UpdatePaymentStates(cryptoCode, invoices); } @@ -405,7 +405,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.Services private IEnumerable GetAllMoneroLikePayments(InvoiceEntity invoice, string cryptoCode) { return invoice.GetPayments(false) - .Where(p => p.PaymentMethodId == MoneroPaymentType.Instance.GetPaymentMethodId(cryptoCode)); + .Where(p => p.PaymentMethodId == PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode)); } } } diff --git a/BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs b/BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs index bfac948ab..d8d05ee9f 100644 --- a/BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs +++ b/BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs @@ -99,7 +99,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.UI var monero = storeData.GetPaymentMethodConfigs(_handlers) .Where(s => s.Value is MoneroPaymentPromptDetails) .Select(s => (PaymentMethodId: s.Key, Details: (MoneroPaymentPromptDetails)s.Value)); - var pmi = MoneroPaymentType.Instance.GetPaymentMethodId(cryptoCode); + var pmi = PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode); var settings = monero.Where(method => method.PaymentMethodId == pmi).Select(m => m.Details).SingleOrDefault(); _MoneroRpcProvider.Summaries.TryGetValue(cryptoCode, out var summary); _MoneroLikeConfiguration.MoneroLikeConfigurationItems.TryGetValue(cryptoCode, @@ -127,7 +127,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.UI WalletFileFound = System.IO.File.Exists(fileAddress), Enabled = settings != null && - !excludeFilters.Match(MoneroPaymentType.Instance.GetPaymentMethodId(cryptoCode)), + !excludeFilters.Match(PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode)), Summary = summary, CryptoCode = cryptoCode, AccountIndex = settings?.AccountIndex ?? accountsResponse?.SubaddressAccounts?.FirstOrDefault()?.AccountIndex ?? 0, @@ -278,7 +278,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.UI var storeData = StoreData; var blob = storeData.GetStoreBlob(); - storeData.SetPaymentMethodConfig(_handlers[MoneroPaymentType.Instance.GetPaymentMethodId(cryptoCode)], new MoneroPaymentPromptDetails() + storeData.SetPaymentMethodConfig(_handlers[PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode)], new MoneroPaymentPromptDetails() { AccountIndex = viewModel.AccountIndex, InvoiceSettledConfirmationThreshold = viewModel.SettlementConfirmationThresholdChoice switch @@ -291,7 +291,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.UI } }); - blob.SetExcluded(MoneroPaymentType.Instance.GetPaymentMethodId(viewModel.CryptoCode), !viewModel.Enabled); + blob.SetExcluded(PaymentTypes.CHAIN.GetPaymentMethodId(viewModel.CryptoCode), !viewModel.Enabled); storeData.SetStoreBlob(blob); await _StoreRepository.UpdateStore(storeData); return RedirectToAction("GetStoreMoneroLikePaymentMethods", @@ -343,7 +343,7 @@ namespace BTCPayServer.Services.Altcoins.Monero.UI public IFormFile WalletKeysFile { get; set; } [Display(Name = "Wallet Password")] public string WalletPassword { get; set; } - [Display(Name = "Consider the invoice settled when the payment transaction �")] + [Display(Name = "Consider the invoice settled when the payment transaction �")] public MoneroLikeSettlementThresholdChoice SettlementConfirmationThresholdChoice { get; set; } [Display(Name = "Required Confirmations"), Range(0, 100)] public long? CustomSettlementConfirmationThreshold { get; set; } diff --git a/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashLikePaymentMethodHandler.cs b/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashLikePaymentMethodHandler.cs index ca122da94..720849eea 100644 --- a/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashLikePaymentMethodHandler.cs +++ b/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashLikePaymentMethodHandler.cs @@ -26,7 +26,6 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Payments { public class ZcashLikePaymentMethodHandler : IPaymentMethodHandler { - internal static PaymentType ZcashLike => ZcashPaymentType.Instance; private readonly ZcashLikeSpecificBtcPayNetwork _network; public ZcashLikeSpecificBtcPayNetwork Network => _network; public JsonSerializer Serializer { get; } @@ -35,7 +34,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Payments public ZcashLikePaymentMethodHandler(BTCPayNetworkBase network, ZcashRPCProvider ZcashRpcProvider) { _network = (ZcashLikeSpecificBtcPayNetwork)network; - PaymentMethodId = ZcashLike.GetPaymentMethodId(_network.CryptoCode); + PaymentMethodId = PaymentTypes.CHAIN.GetPaymentMethodId(_network.CryptoCode); Serializer = BlobSerializer.CreateSerializer().Serializer; _ZcashRpcProvider = ZcashRpcProvider; } diff --git a/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashPaymentType.cs b/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashPaymentType.cs deleted file mode 100644 index 47be90310..000000000 --- a/BTCPayServer/Services/Altcoins/Zcash/Payments/ZcashPaymentType.cs +++ /dev/null @@ -1,17 +0,0 @@ -#if ALTCOINS -using System.Globalization; -using BTCPayServer.Payments; -using BTCPayServer.Plugins.Altcoins; -using BTCPayServer.Services.Invoices; -using NBitcoin; -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; - -namespace BTCPayServer.Services.Altcoins.Zcash.Payments -{ - internal class ZcashPaymentType - { - internal static readonly PaymentType Instance = new("ZcashLike"); - } -} -#endif diff --git a/BTCPayServer/Services/Altcoins/Zcash/Services/ZcashListener.cs b/BTCPayServer/Services/Altcoins/Zcash/Services/ZcashListener.cs index 436137a84..8904b3f14 100644 --- a/BTCPayServer/Services/Altcoins/Zcash/Services/ZcashListener.cs +++ b/BTCPayServer/Services/Altcoins/Zcash/Services/ZcashListener.cs @@ -155,7 +155,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Services var ZcashWalletRpcClient = _ZcashRpcProvider.WalletRpcClients[cryptoCode]; var network = _networkProvider.GetNetwork(cryptoCode); - var paymentId = ZcashPaymentType.Instance.GetPaymentMethodId(network.CryptoCode); + var paymentId = PaymentTypes.CHAIN.GetPaymentMethodId(network.CryptoCode); var handler = (ZcashLikePaymentMethodHandler)_handlers[paymentId]; //get all the required data in one list (invoice, its existing payments and the current payment method details) @@ -271,7 +271,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Services private async Task OnTransactionUpdated(string cryptoCode, string transactionHash) { - var paymentMethodId = ZcashPaymentType.Instance.GetPaymentMethodId(cryptoCode); + var paymentMethodId = PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode); var transfer = await _ZcashRpcProvider.WalletRpcClients[cryptoCode] .SendCommandAsync( "get_transfer_by_txid", @@ -322,7 +322,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Services BlockingCollection<(PaymentEntity Payment, InvoiceEntity invoice)> paymentsToUpdate) { var network = _networkProvider.GetNetwork(cryptoCode); - var pmi = ZcashPaymentType.Instance.GetPaymentMethodId(network.CryptoCode); + var pmi = PaymentTypes.CHAIN.GetPaymentMethodId(network.CryptoCode); var handler = (ZcashLikePaymentMethodHandler)_handlers[pmi]; var details = new ZcashLikePaymentData() @@ -385,7 +385,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Services var invoices = await _invoiceRepository.GetPendingInvoices(); if (!invoices.Any()) return; - var paymentMethodId = ZcashPaymentType.Instance.GetPaymentMethodId(cryptoCode); + var paymentMethodId = PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode); invoices = invoices.Where(entity => entity.GetPaymentPrompt(paymentMethodId).Activated).ToArray(); await UpdatePaymentStates(cryptoCode, invoices); } @@ -393,7 +393,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Services private IEnumerable GetAllZcashLikePayments(InvoiceEntity invoice, string cryptoCode) { return invoice.GetPayments(false) - .Where(p => p.PaymentMethodId == ZcashPaymentType.Instance.GetPaymentMethodId(cryptoCode)); + .Where(p => p.PaymentMethodId == PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode)); } } } diff --git a/BTCPayServer/Services/Altcoins/Zcash/UI/ZcashLikeStoreController.cs b/BTCPayServer/Services/Altcoins/Zcash/UI/ZcashLikeStoreController.cs index 0676e4ab5..7541ecabe 100644 --- a/BTCPayServer/Services/Altcoins/Zcash/UI/ZcashLikeStoreController.cs +++ b/BTCPayServer/Services/Altcoins/Zcash/UI/ZcashLikeStoreController.cs @@ -106,7 +106,7 @@ namespace BTCPayServer.Services.Altcoins.Zcash.UI WalletFileFound = System.IO.File.Exists(fileAddress), Enabled = settings != null && - !excludeFilters.Match(ZcashPaymentType.Instance.GetPaymentMethodId(cryptoCode)), + !excludeFilters.Match(PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode)), Summary = summary, CryptoCode = cryptoCode, AccountIndex = settings?.AccountIndex ?? accountsResponse?.SubaddressAccounts?.FirstOrDefault()?.AccountIndex ?? 0, @@ -249,13 +249,13 @@ namespace BTCPayServer.Services.Altcoins.Zcash.UI var storeData = StoreData; var blob = storeData.GetStoreBlob(); - var pmi = ZcashPaymentType.Instance.GetPaymentMethodId(cryptoCode); + var pmi = PaymentTypes.CHAIN.GetPaymentMethodId(cryptoCode); storeData.SetPaymentMethodConfig(_handlers[pmi], new ZcashPaymentMethodConfig() { AccountIndex = viewModel.AccountIndex }); - blob.SetExcluded(ZcashPaymentType.Instance.GetPaymentMethodId(viewModel.CryptoCode), !viewModel.Enabled); + blob.SetExcluded(PaymentTypes.CHAIN.GetPaymentMethodId(viewModel.CryptoCode), !viewModel.Enabled); storeData.SetStoreBlob(blob); await _StoreRepository.UpdateStore(storeData); return RedirectToAction("GetStoreZcashLikePaymentMethods",