From a97ef2eee8dfbdf972a8d601501066e6691fe7b3 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Fri, 25 May 2018 22:49:49 +0900 Subject: [PATCH] MinerFee matching Bitpay API --- BTCPayServer.Tests/UnitTest1.cs | 2 ++ BTCPayServer/BTCPayServer.csproj | 6 +++--- BTCPayServer/Models/InvoiceResponse.cs | 2 +- BTCPayServer/Services/Invoices/InvoiceEntity.cs | 6 ++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/BTCPayServer.Tests/UnitTest1.cs b/BTCPayServer.Tests/UnitTest1.cs index 7e5c97ef0..1e8a23067 100644 --- a/BTCPayServer.Tests/UnitTest1.cs +++ b/BTCPayServer.Tests/UnitTest1.cs @@ -1325,6 +1325,8 @@ namespace BTCPayServer.Tests var repo = tester.PayTester.GetService(); var ctx = tester.PayTester.GetService().CreateContext(); Assert.Equal(0, invoice.CryptoInfo[0].TxCount); + Assert.True(invoice.MinerFees.ContainsKey("BTC")); + Assert.Equal(100m, invoice.MinerFees["BTC"].SatoshiPerBytes); Eventually(() => { var textSearchResult = tester.PayTester.InvoiceRepository.GetInvoices(new InvoiceQuery() diff --git a/BTCPayServer/BTCPayServer.csproj b/BTCPayServer/BTCPayServer.csproj index 138963594..5d4874c89 100644 --- a/BTCPayServer/BTCPayServer.csproj +++ b/BTCPayServer/BTCPayServer.csproj @@ -2,7 +2,7 @@ Exe netcoreapp2.1 - 1.0.2.27 + 1.0.2.28 NU1701,CA1816,CA1308,CA1810,CA2208 @@ -40,8 +40,8 @@ - - + + diff --git a/BTCPayServer/Models/InvoiceResponse.cs b/BTCPayServer/Models/InvoiceResponse.cs index 116252c96..47eeb58b6 100644 --- a/BTCPayServer/Models/InvoiceResponse.cs +++ b/BTCPayServer/Models/InvoiceResponse.cs @@ -235,7 +235,7 @@ namespace BTCPayServer.Models public long AmountPaid { get; set; } [JsonProperty("minerFees")] - public long MinerFees { get; set; } + public Dictionary MinerFees { get; set; } [JsonProperty("exchangeRates")] public Dictionary> ExchangeRates { get; set; } diff --git a/BTCPayServer/Services/Invoices/InvoiceEntity.cs b/BTCPayServer/Services/Invoices/InvoiceEntity.cs index de174c628..c770e4a27 100644 --- a/BTCPayServer/Services/Invoices/InvoiceEntity.cs +++ b/BTCPayServer/Services/Invoices/InvoiceEntity.cs @@ -13,6 +13,7 @@ using NBXplorer; using NBXplorer.DerivationStrategy; using BTCPayServer.Payments; using NBitpayClient; +using BTCPayServer.Payments.Bitcoin; namespace BTCPayServer.Services.Invoices { @@ -348,6 +349,7 @@ namespace BTCPayServer.Services.Invoices dto.Url = ServerUrl.WithTrailingSlash() + $"invoice?id=" + Id; dto.CryptoInfo = new List(); + dto.MinerFees = new Dictionary(); foreach (var info in this.GetPaymentMethods(networkProvider)) { var accounting = info.Calculate(); @@ -381,6 +383,10 @@ namespace BTCPayServer.Services.Invoices if (paymentId.PaymentType == PaymentTypes.BTCLike) { + var minerInfo = new MinerFeeInfo(); + minerInfo.TotalFee = accounting.NetworkFee.Satoshi; + minerInfo.SatoshiPerBytes = ((BitcoinLikeOnChainPaymentMethod)info.GetPaymentMethodDetails()).FeeRate.GetFee(1).Satoshi; + dto.MinerFees.TryAdd(paymentId.CryptoCode, minerInfo); var cryptoSuffix = cryptoInfo.CryptoCode == "BTC" ? "" : "/" + cryptoInfo.CryptoCode; cryptoInfo.PaymentUrls = new NBitpayClient.InvoicePaymentUrls() {