btcpayserver/BTCPayServer/Payments/LNURLPay/LNURLPayPaymentMethodDetails.cs
Nicolas Dorier 516efe56f4
Refactor: Dot not make LNURLPaymentMethodDetails depends on BTCPayInvoiceId (#4864)
* Refactor: Dot not make LNURLPaymentMethodDetails depends on BTCPayInvoiceId

* Abstract PaymentProof

* fix bug

* Make the selenium container resolves the btcpay host name
2023-04-10 16:38:49 +09:00

48 lines
1.6 KiB
C#

using System.Collections.Generic;
using BTCPayServer.Client.JsonConverters;
using BTCPayServer.Lightning;
using BTCPayServer.Payments.Lightning;
using BTCPayServer.Services.Invoices;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace BTCPayServer.Payments
{
public class LNURLPayPaymentMethodDetails : LightningLikePaymentMethodDetails
{
public LightningSupportedPaymentMethod LightningSupportedPaymentMethod { get; set; }
[JsonConverter(typeof(LightMoneyJsonConverter))]
public LightMoney GeneratedBoltAmount { get; set; }
public bool Bech32Mode { get; set; }
public string ProvidedComment { get; set; }
public string ConsumedLightningAddress { get; set; }
public override PaymentType GetPaymentType()
{
return LNURLPayPaymentType.Instance;
}
public override string GetAdditionalDataPartialName()
{
if (string.IsNullOrEmpty(ProvidedComment) && string.IsNullOrEmpty(ConsumedLightningAddress))
{
return null;
}
return "LNURL/AdditionalPaymentMethodDetails";
}
public override JObject GetAdditionalData()
{
var result = base.GetAdditionalData();
if (!string.IsNullOrEmpty(ProvidedComment))
result.Add("providedComment", new JValue(ProvidedComment));
if (!string.IsNullOrEmpty(ConsumedLightningAddress))
result.Add("consumedLightningAddress", new JValue(ConsumedLightningAddress));
return result;
}
}
}