mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 06:35:13 +01:00
35 lines
915 B
C#
35 lines
915 B
C#
#nullable enable
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
|
using NBitcoin;
|
|
|
|
namespace BTCPayServer.Services.Fees
|
|
{
|
|
public class FallbackFeeProvider : IFeeProvider
|
|
{
|
|
public FallbackFeeProvider(IFeeProvider[] providers)
|
|
{
|
|
Providers = providers;
|
|
}
|
|
|
|
public IFeeProvider[] Providers { get; }
|
|
|
|
public async Task<FeeRate> GetFeeRateAsync(int blockTarget = 20)
|
|
{
|
|
for (int i = 0; i < Providers.Length; i++)
|
|
{
|
|
try
|
|
{
|
|
return await Providers[i].GetFeeRateAsync(blockTarget);
|
|
}
|
|
catch when (i < Providers.Length - 1)
|
|
{
|
|
}
|
|
}
|
|
throw new NotSupportedException("No provider available");
|
|
}
|
|
}
|
|
}
|