mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-21 14:04:12 +01:00
MinerFee matching Bitpay API
This commit is contained in:
parent
be33ebc168
commit
a97ef2eee8
4 changed files with 12 additions and 4 deletions
|
@ -1325,6 +1325,8 @@ namespace BTCPayServer.Tests
|
||||||
var repo = tester.PayTester.GetService<InvoiceRepository>();
|
var repo = tester.PayTester.GetService<InvoiceRepository>();
|
||||||
var ctx = tester.PayTester.GetService<ApplicationDbContextFactory>().CreateContext();
|
var ctx = tester.PayTester.GetService<ApplicationDbContextFactory>().CreateContext();
|
||||||
Assert.Equal(0, invoice.CryptoInfo[0].TxCount);
|
Assert.Equal(0, invoice.CryptoInfo[0].TxCount);
|
||||||
|
Assert.True(invoice.MinerFees.ContainsKey("BTC"));
|
||||||
|
Assert.Equal(100m, invoice.MinerFees["BTC"].SatoshiPerBytes);
|
||||||
Eventually(() =>
|
Eventually(() =>
|
||||||
{
|
{
|
||||||
var textSearchResult = tester.PayTester.InvoiceRepository.GetInvoices(new InvoiceQuery()
|
var textSearchResult = tester.PayTester.InvoiceRepository.GetInvoices(new InvoiceQuery()
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||||
<Version>1.0.2.27</Version>
|
<Version>1.0.2.28</Version>
|
||||||
<NoWarn>NU1701,CA1816,CA1308,CA1810,CA2208</NoWarn>
|
<NoWarn>NU1701,CA1816,CA1308,CA1810,CA2208</NoWarn>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -40,8 +40,8 @@
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0-rc1-final" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0-rc1-final" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.2" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Filter" Version="1.1.2" />
|
||||||
<PackageReference Include="Microsoft.NetCore.Analyzers" Version="2.6.0" />
|
<PackageReference Include="Microsoft.NetCore.Analyzers" Version="2.6.0" />
|
||||||
<PackageReference Include="NBitcoin" Version="4.1.1.7" />
|
<PackageReference Include="NBitcoin" Version="4.1.1.8" />
|
||||||
<PackageReference Include="NBitpayClient" Version="1.0.0.23" />
|
<PackageReference Include="NBitpayClient" Version="1.0.0.25" />
|
||||||
<PackageReference Include="DBreeze" Version="1.87.0" />
|
<PackageReference Include="DBreeze" Version="1.87.0" />
|
||||||
<PackageReference Include="NBXplorer.Client" Version="1.0.2.8" />
|
<PackageReference Include="NBXplorer.Client" Version="1.0.2.8" />
|
||||||
<PackageReference Include="NicolasDorier.CommandLine" Version="1.0.0.1" />
|
<PackageReference Include="NicolasDorier.CommandLine" Version="1.0.0.1" />
|
||||||
|
|
|
@ -235,7 +235,7 @@ namespace BTCPayServer.Models
|
||||||
public long AmountPaid { get; set; }
|
public long AmountPaid { get; set; }
|
||||||
|
|
||||||
[JsonProperty("minerFees")]
|
[JsonProperty("minerFees")]
|
||||||
public long MinerFees { get; set; }
|
public Dictionary<string, NBitpayClient.MinerFeeInfo> MinerFees { get; set; }
|
||||||
|
|
||||||
[JsonProperty("exchangeRates")]
|
[JsonProperty("exchangeRates")]
|
||||||
public Dictionary<string, Dictionary<string, decimal>> ExchangeRates { get; set; }
|
public Dictionary<string, Dictionary<string, decimal>> ExchangeRates { get; set; }
|
||||||
|
|
|
@ -13,6 +13,7 @@ using NBXplorer;
|
||||||
using NBXplorer.DerivationStrategy;
|
using NBXplorer.DerivationStrategy;
|
||||||
using BTCPayServer.Payments;
|
using BTCPayServer.Payments;
|
||||||
using NBitpayClient;
|
using NBitpayClient;
|
||||||
|
using BTCPayServer.Payments.Bitcoin;
|
||||||
|
|
||||||
namespace BTCPayServer.Services.Invoices
|
namespace BTCPayServer.Services.Invoices
|
||||||
{
|
{
|
||||||
|
@ -348,6 +349,7 @@ namespace BTCPayServer.Services.Invoices
|
||||||
|
|
||||||
dto.Url = ServerUrl.WithTrailingSlash() + $"invoice?id=" + Id;
|
dto.Url = ServerUrl.WithTrailingSlash() + $"invoice?id=" + Id;
|
||||||
dto.CryptoInfo = new List<NBitpayClient.InvoiceCryptoInfo>();
|
dto.CryptoInfo = new List<NBitpayClient.InvoiceCryptoInfo>();
|
||||||
|
dto.MinerFees = new Dictionary<string, MinerFeeInfo>();
|
||||||
foreach (var info in this.GetPaymentMethods(networkProvider))
|
foreach (var info in this.GetPaymentMethods(networkProvider))
|
||||||
{
|
{
|
||||||
var accounting = info.Calculate();
|
var accounting = info.Calculate();
|
||||||
|
@ -381,6 +383,10 @@ namespace BTCPayServer.Services.Invoices
|
||||||
|
|
||||||
if (paymentId.PaymentType == PaymentTypes.BTCLike)
|
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;
|
var cryptoSuffix = cryptoInfo.CryptoCode == "BTC" ? "" : "/" + cryptoInfo.CryptoCode;
|
||||||
cryptoInfo.PaymentUrls = new NBitpayClient.InvoicePaymentUrls()
|
cryptoInfo.PaymentUrls = new NBitpayClient.InvoicePaymentUrls()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue