Recommended exchange to be resolved during Invoice Creation (#5976)

* Recommended Exchange Rate Selection during Invoice Creation

* Make Recommended exchanges pluginifiable
This commit is contained in:
Nicolas Dorier
2024-05-13 22:29:42 +09:00
committed by GitHub
parent b0da802abe
commit d96b066658
26 changed files with 255 additions and 166 deletions

View File

@@ -73,7 +73,7 @@ namespace BTCPayServer.Controllers
private readonly PayjoinClient _payjoinClient;
private readonly LabelService _labelService;
private readonly PaymentMethodHandlerDictionary _handlers;
private readonly IEnumerable<DefaultRates> _defaultRates;
private readonly DefaultRulesCollection _defaultRules;
private readonly Dictionary<PaymentMethodId, IPaymentModelExtension> _paymentModelExtensions;
private readonly TransactionLinkProviders _transactionLinkProviders;
private readonly PullPaymentHostedService _pullPaymentHostedService;
@@ -100,14 +100,14 @@ namespace BTCPayServer.Controllers
IServiceProvider serviceProvider,
PullPaymentHostedService pullPaymentHostedService,
LabelService labelService,
IEnumerable<DefaultRates> defaultRates,
DefaultRulesCollection defaultRules,
PaymentMethodHandlerDictionary handlers,
Dictionary<PaymentMethodId, IPaymentModelExtension> paymentModelExtensions,
TransactionLinkProviders transactionLinkProviders)
{
_currencyTable = currencyTable;
_labelService = labelService;
_defaultRates = defaultRates;
_defaultRules = defaultRules;
_handlers = handlers;
_paymentModelExtensions = paymentModelExtensions;
_transactionLinkProviders = transactionLinkProviders;
@@ -459,7 +459,7 @@ namespace BTCPayServer.Controllers
if (network == null || network.ReadonlyWallet)
return NotFound();
var storeData = store.GetStoreBlob();
var rateRules = store.GetStoreBlob().GetRateRules(_defaultRates);
var rateRules = store.GetStoreBlob().GetRateRules(_defaultRules);
rateRules.Spread = 0.0m;
var currencyPair = new Rating.CurrencyPair(walletId.CryptoCode, storeData.DefaultCurrency);
double.TryParse(defaultAmount, out var amount);