From 864bcbb6755b470b71b75d3d63572b1bfe94bf54 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Tue, 4 Jun 2019 01:24:15 +0900 Subject: [PATCH] Move back GetCryptoPaymentData logic inside PaymentEntity --- .../Bitcoin/BitcoinLikePaymentHandler.cs | 26 ---------------- .../Payments/IPaymentMethodHandler.cs | 3 -- .../Lightning/LightningLikePaymentHandler.cs | 6 ---- .../Services/Invoices/InvoiceEntity.cs | 31 ++++++++++++++++++- Version.csproj | 2 +- 5 files changed, 31 insertions(+), 37 deletions(-) diff --git a/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs b/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs index f316cbe62..d2f3524a0 100644 --- a/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs +++ b/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs @@ -99,32 +99,6 @@ namespace BTCPayServer.Payments.Bitcoin .Select(network => new PaymentMethodId(network.CryptoCode, PaymentTypes.BTCLike)); } - public override CryptoPaymentData GetCryptoPaymentData(PaymentEntity paymentEntity) - { -#pragma warning disable CS0618 - - BitcoinLikePaymentData paymentData; - if (string.IsNullOrEmpty(paymentEntity.CryptoPaymentDataType)) - { - // For invoices created when CryptoPaymentDataType was not existing, we just consider that it is a RBFed payment for safety - paymentData = new BitcoinLikePaymentData(); - paymentData.Outpoint = paymentEntity.Outpoint; - paymentData.Output = paymentEntity.Output; - paymentData.RBF = true; - paymentData.ConfirmationCount = 0; - paymentData.Legacy = true; - return paymentData; - } - - paymentData = - JsonConvert.DeserializeObject(paymentEntity.CryptoPaymentData); - // legacy - paymentData.Output = paymentEntity.Output; - paymentData.Outpoint = paymentEntity.Outpoint; -#pragma warning restore CS0618 - return paymentData; - } - private string GetPaymentMethodName(BTCPayNetworkBase network) { return network.DisplayName; diff --git a/BTCPayServer/Payments/IPaymentMethodHandler.cs b/BTCPayServer/Payments/IPaymentMethodHandler.cs index 152df89b0..381da589d 100644 --- a/BTCPayServer/Payments/IPaymentMethodHandler.cs +++ b/BTCPayServer/Payments/IPaymentMethodHandler.cs @@ -54,8 +54,6 @@ namespace BTCPayServer.Payments IEnumerable GetSupportedPaymentMethods(); - CryptoPaymentData GetCryptoPaymentData(PaymentEntity paymentEntity); - ISupportedPaymentMethod DeserializeSupportedPaymentMethod(PaymentMethodId paymentMethodId, JToken value); IPaymentMethodDetails DeserializePaymentMethodDetails(JObject jobj); string GetTransactionLink(PaymentMethodId paymentMethodId, params object[] args); @@ -91,7 +89,6 @@ namespace BTCPayServer.Payments Dictionary> rate, Money amount, PaymentMethodId paymentMethodId); public abstract IEnumerable GetSupportedPaymentMethods(); - public abstract CryptoPaymentData GetCryptoPaymentData(PaymentEntity paymentEntity); public abstract ISupportedPaymentMethod DeserializeSupportedPaymentMethod(PaymentMethodId paymentMethodId, JToken value); public abstract IPaymentMethodDetails DeserializePaymentMethodDetails(JObject jobj); diff --git a/BTCPayServer/Payments/Lightning/LightningLikePaymentHandler.cs b/BTCPayServer/Payments/Lightning/LightningLikePaymentHandler.cs index 1d1cc0c69..7406d142c 100644 --- a/BTCPayServer/Payments/Lightning/LightningLikePaymentHandler.cs +++ b/BTCPayServer/Payments/Lightning/LightningLikePaymentHandler.cs @@ -167,12 +167,6 @@ namespace BTCPayServer.Payments.Lightning } return "The amount of the invoice is too high to be paid with lightning"; } - public override CryptoPaymentData GetCryptoPaymentData(PaymentEntity paymentEntity) - { -#pragma warning disable CS0618 - return JsonConvert.DeserializeObject(paymentEntity.CryptoPaymentData); -#pragma warning restore CS0618 - } public override ISupportedPaymentMethod DeserializeSupportedPaymentMethod(PaymentMethodId paymentMethodId, JToken value) { diff --git a/BTCPayServer/Services/Invoices/InvoiceEntity.cs b/BTCPayServer/Services/Invoices/InvoiceEntity.cs index fa16cfceb..57d149d55 100644 --- a/BTCPayServer/Services/Invoices/InvoiceEntity.cs +++ b/BTCPayServer/Services/Invoices/InvoiceEntity.cs @@ -912,7 +912,36 @@ namespace BTCPayServer.Services.Invoices public CryptoPaymentData GetCryptoPaymentData() { var paymentMethodId = GetPaymentMethodId(); - return PaymentMethodHandlerDictionary[paymentMethodId].GetCryptoPaymentData(this); + if (paymentMethodId.PaymentType == PaymentTypes.LightningLike) +#pragma warning disable CS0618 // Type or member is obsolete + return JsonConvert.DeserializeObject(CryptoPaymentData); +#pragma warning restore CS0618 // Type or member is obsolete + else + { +#pragma warning disable CS0618 + + BitcoinLikePaymentData paymentData; + if (string.IsNullOrEmpty(CryptoPaymentDataType)) + { + // For invoices created when CryptoPaymentDataType was not existing, we just consider that it is a RBFed payment for safety + paymentData = new BitcoinLikePaymentData(); + paymentData.Outpoint = Outpoint; + paymentData.Output = Output; + paymentData.RBF = true; + paymentData.ConfirmationCount = 0; + paymentData.Legacy = true; + return paymentData; + } + + paymentData = + JsonConvert.DeserializeObject(CryptoPaymentData); + // legacy + paymentData.Output = Output; + paymentData.Outpoint = Outpoint; +#pragma warning restore CS0618 + return paymentData; + } + } public PaymentEntity SetCryptoPaymentData(CryptoPaymentData cryptoPaymentData) diff --git a/Version.csproj b/Version.csproj index e7c4737e4..7628e1a95 100644 --- a/Version.csproj +++ b/Version.csproj @@ -1,5 +1,5 @@ - 1.0.3.109 + 1.0.3.110