mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2024-11-20 10:40:29 +01:00
65 lines
2.4 KiB
C#
65 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using BTCPayServer.Lightning;
|
|
using NBitcoin;
|
|
|
|
namespace BTCPayServer.Payments.Lightning
|
|
{
|
|
public class LightningSupportedPaymentMethod : ISupportedPaymentMethod
|
|
{
|
|
public string CryptoCode { get; set; }
|
|
|
|
[Obsolete("Use Get/SetLightningUrl")]
|
|
public string Username { get; set; }
|
|
[Obsolete("Use Get/SetLightningUrl")]
|
|
public string Password { get; set; }
|
|
|
|
// This property MUST be after CryptoCode or else JSON serialization fails
|
|
public PaymentMethodId PaymentId => new PaymentMethodId(CryptoCode, PaymentTypes.LightningLike);
|
|
|
|
[Obsolete("Use Get/SetLightningUrl")]
|
|
public string LightningChargeUrl { get; set; }
|
|
|
|
[Obsolete("Use Get/SetLightningUrl")]
|
|
public string LightningConnectionString { get; set; }
|
|
|
|
public LightningConnectionString GetLightningUrl()
|
|
{
|
|
#pragma warning disable CS0618 // Type or member is obsolete
|
|
if (!string.IsNullOrEmpty(LightningConnectionString))
|
|
{
|
|
if (!BTCPayServer.Lightning.LightningConnectionString.TryParse(LightningConnectionString, false, out var connectionString, out var error))
|
|
{
|
|
throw new FormatException(error);
|
|
}
|
|
return connectionString;
|
|
}
|
|
else
|
|
{
|
|
var fullUri = new UriBuilder(LightningChargeUrl) { UserName = Username, Password = Password }.Uri.AbsoluteUri;
|
|
if (!BTCPayServer.Lightning.LightningConnectionString.TryParse(fullUri, true, out var connectionString, out var error))
|
|
{
|
|
throw new FormatException(error);
|
|
}
|
|
return connectionString;
|
|
}
|
|
#pragma warning restore CS0618 // Type or member is obsolete
|
|
}
|
|
|
|
public void SetLightningUrl(LightningConnectionString connectionString)
|
|
{
|
|
if (connectionString == null)
|
|
throw new ArgumentNullException(nameof(connectionString));
|
|
|
|
#pragma warning disable CS0618 // Type or member is obsolete
|
|
LightningConnectionString = connectionString.ToString();
|
|
Username = null;
|
|
Password = null;
|
|
LightningChargeUrl = null;
|
|
#pragma warning restore CS0618 // Type or member is obsolete
|
|
}
|
|
}
|
|
}
|