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: