From 163ef031b97e43a449c4b78ba97c211aecfcb91b Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Thu, 7 Nov 2019 13:35:47 +0900 Subject: [PATCH] Make sure the recommended fees are different from the network fee rate --- BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs b/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs index 5ad1f131c..778ac69d7 100644 --- a/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs +++ b/BTCPayServer/Payments/Bitcoin/BitcoinLikePaymentHandler.cs @@ -34,6 +34,7 @@ namespace BTCPayServer.Payments.Bitcoin class Prepare { public Task GetFeeRate; + public Task GetNetworkFeeRate; public Task ReserveAddress; } @@ -105,6 +106,8 @@ namespace BTCPayServer.Payments.Bitcoin return new Prepare() { GetFeeRate = _FeeRateProviderFactory.CreateFeeProvider(network).GetFeeRateAsync(storeBlob.RecommendedFeeBlockTarget), + GetNetworkFeeRate = storeBlob.NetworkFeeMode == NetworkFeeMode.Never ? null + : _FeeRateProviderFactory.CreateFeeProvider(network).GetFeeRateAsync(), ReserveAddress = _WalletProvider.GetWallet(network) .ReserveAddressAsync(supportedPaymentMethod.AccountDerivation) }; @@ -126,7 +129,7 @@ namespace BTCPayServer.Payments.Bitcoin switch (onchainMethod.NetworkFeeMode) { case NetworkFeeMode.Always: - onchainMethod.NextNetworkFee = onchainMethod.FeeRate.GetFee(100); // assume price for 100 bytes + onchainMethod.NextNetworkFee = (await prepare.GetNetworkFeeRate).GetFee(100); // assume price for 100 bytes break; case NetworkFeeMode.Never: case NetworkFeeMode.MultiplePaymentsOnly: