Make sure the recommended fees are different from the network fee rate

This commit is contained in:
nicolas.dorier
2019-11-07 13:35:47 +09:00
parent 1cfdd1489b
commit 163ef031b9

View File

@@ -34,6 +34,7 @@ namespace BTCPayServer.Payments.Bitcoin
class Prepare
{
public Task<FeeRate> GetFeeRate;
public Task<FeeRate> GetNetworkFeeRate;
public Task<BitcoinAddress> 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: