mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 14:34:23 +01:00
Add setup links for LN URL integration (#3046)
This commit is contained in:
@@ -5,8 +5,10 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using BTCPayServer.Payments;
|
||||
using BTCPayServer.Services.Rates;
|
||||
using NBitcoin;
|
||||
using NBXplorer;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using BTCPayServer.Payments.Lightning;
|
||||
|
||||
namespace BTCPayServer.Data
|
||||
{
|
||||
@@ -146,5 +148,49 @@ namespace BTCPayServer.Data
|
||||
storeData.DerivationStrategies = strategies.ToString();
|
||||
#pragma warning restore CS0618
|
||||
}
|
||||
|
||||
public static bool IsLightningEnabled(this StoreData storeData, BTCPayNetworkProvider networks)
|
||||
{
|
||||
var paymentMethods = storeData.GetSupportedPaymentMethods(networks);
|
||||
var lightningByCryptoCode = paymentMethods
|
||||
.OfType<LightningSupportedPaymentMethod>()
|
||||
.Where(method => method.PaymentId.PaymentType == LightningPaymentType.Instance)
|
||||
.ToDictionary(c => c.CryptoCode.ToUpperInvariant());
|
||||
var excludeFilters = storeData.GetStoreBlob().GetExcludedPaymentMethods();
|
||||
var isLightningEnabled = false;
|
||||
foreach (var paymentMethod in paymentMethods)
|
||||
{
|
||||
var paymentMethodId = paymentMethod.PaymentId;
|
||||
switch (paymentMethodId.PaymentType)
|
||||
{
|
||||
// LNURLPayPaymentType is a subclass of LightningPaymentType, skip it
|
||||
case LNURLPayPaymentType lnurlPayPaymentType:
|
||||
break;
|
||||
case LightningPaymentType _:
|
||||
var lightning = lightningByCryptoCode.TryGet(paymentMethodId.CryptoCode);
|
||||
isLightningEnabled = !excludeFilters.Match(paymentMethodId) && lightning != null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return isLightningEnabled;
|
||||
}
|
||||
|
||||
public static bool IsLNUrlEnabled(this StoreData storeData, BTCPayNetworkProvider networks)
|
||||
{
|
||||
var paymentMethods = storeData.GetSupportedPaymentMethods(networks);
|
||||
var excludeFilters = storeData.GetStoreBlob().GetExcludedPaymentMethods();
|
||||
var isLNUrlEnabled = false;
|
||||
foreach (var paymentMethod in paymentMethods)
|
||||
{
|
||||
var paymentMethodId = paymentMethod.PaymentId;
|
||||
if (paymentMethodId.PaymentType is LNURLPayPaymentType)
|
||||
{
|
||||
isLNUrlEnabled = !excludeFilters.Match(paymentMethodId);
|
||||
}
|
||||
}
|
||||
|
||||
return isLNUrlEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user