btcpayserver/BTCPayServer.Rating
Andrew Camilleri 6049fa23a7
Support pluginable rate providers (#5777)
* Support pluginable rate providers

This PR allows plugins to provide custom rate providers, that can be contextual to a store. For example, if you use the upcoming fiat offramp plugin, or the Blink plugin, you'll probably want to configure the fetch the rates from them since they are determining the actual fiat rrate to you. However, they require API keys. This PR enables these scenarios, even much more advanced ones, but for example:
* Install fiat offramp plugin
* Configure it
* You can now use the fiat offramp rate provider (no additional config steps beyond selecting the rate source from the select, or maybe the plugin would automatically set it for you once configured)

* Apply suggestions from code review

* Simplify

* Do not use BackgroundFetcherRateProvider for contextual rate prov

---------

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2024-04-30 18:31:15 +09:00
..
Providers Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
Services Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
BTCPayServer.Rating.csproj Bump libraries 2024-01-17 22:11:30 +09:00
Currencies.json remove decimals for Colombian (COP) and Argentina's Peso (ARS) (#5710) 2024-02-02 17:16:13 +09:00
CurrencyNameTable.cs remove decimals for Colombian (COP) and Argentina's Peso (ARS) (#5710) 2024-02-02 17:16:13 +09:00
CurrencyPair.cs fix lq errors and tests (#5371) 2023-10-11 21:12:33 +09:00
ExchangeRates.cs Use ArgumentNullException.ThrowIfNull everywhere (#3239) 2021-12-28 17:39:54 +09:00
Extensions.cs Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
MultiValueDictionary.cs Removing unused usings, readonly fields where possible 2020-06-28 22:07:48 -05:00
RateRules.cs Fix typo: "Prioriy" -> "Priority" (#3103) 2021-11-15 13:09:15 +09:00
RateSourceInfo.cs Remove some useless intermediary type from Rate Source (#5351) 2023-09-26 16:37:40 +09:00