btcpayserver/BTCPayServer/Payments/Lightning/LightningLikePaymentMethodDetails.cs

60 lines
1.6 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using System.Linq;
using BTCPayServer.Lightning;
using BTCPayServer.Services.Invoices;
using NBitcoin;
2022-02-15 11:36:04 +01:00
using Newtonsoft.Json.Linq;
namespace BTCPayServer.Payments.Lightning
{
public class LightningLikePaymentMethodDetails : IPaymentMethodDetails
{
public string BOLT11 { get; set; }
public uint256 PaymentHash { get; set; }
public uint256 Preimage { get; set; }
public string InvoiceId { get; set; }
public string NodeInfo { get; set; }
public virtual string GetPaymentDestination()
{
return BOLT11;
}
public uint256 GetPaymentHash(Network network)
{
return PaymentHash ?? BOLT11PaymentRequest.Parse(BOLT11, network).PaymentHash;
}
public virtual PaymentType GetPaymentType()
{
return PaymentTypes.LightningLike;
}
2019-01-07 15:35:18 +09:00
public decimal GetNextNetworkFee()
{
return 0.0m;
}
2020-06-28 17:55:27 +09:00
public decimal GetFeeRate()
{
return 0.0m;
}
public bool Activated { get; set; }
public virtual string GetAdditionalDataPartialName()
{
return null;
}
public virtual JObject GetAdditionalData()
{
var result = new JObject();
if (PaymentHash != null && PaymentHash != default)
result.Add("paymentHash", new JValue(PaymentHash.ToString()));
if (Preimage != null && Preimage != default)
result.Add("preimage", new JValue(Preimage.ToString()));
return result;
}
}
}