btcpayserver/BTCPayServer
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
..
Blazor Minor cleanups (#5460) 2023-11-20 11:18:19 +01:00
Components Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
Configuration Remove MySQL and Sqlite deps (#5910) 2024-04-15 19:08:25 +09:00
Controllers Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
Data Cleanup data from the InvoiceEvents table (#5904) 2024-04-25 14:09:01 +09:00
Events The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Extensions The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Fido2 Start using JSONB column instead of app side compressed data (#4574) 2023-02-21 15:06:34 +09:00
Filters Domain mapping constraint: Fix .onion case (#5948) 2024-04-24 11:24:00 +09:00
Forms Support Admin being able to view stores (#5782) 2024-03-14 10:25:40 +01:00
HostedServices Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
Hosting Avoid timeouts during EF migrations (#5937) 2024-04-25 17:27:45 +09:00
JsonConverters The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Logging Run dotnet format (#3244) 2021-12-31 16:59:02 +09:00
ModelBinders The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Models Show Lightning node availability in navigation (#5951) 2024-04-26 08:30:34 +02:00
PaymentRequest The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Payments Support pluginable rate providers (#5777) 2024-04-30 18:31:15 +09:00
PayoutProcessors The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Plugins Remove some legacy code 2024-04-24 17:24:15 +09:00
Properties Guard against running current master (#5959) 2024-04-30 18:29:05 +09:00
Security Support Admin being able to view stores (#5782) 2024-03-14 10:25:40 +01:00
Services Remove migrations prior to 1.0.3.162 (#5939) 2024-04-25 14:09:21 +09:00
SSH Use ArgumentNullException.ThrowIfNull everywhere (#3239) 2021-12-28 17:39:54 +09:00
Storage POS fixes (#5228) 2023-08-05 10:44:59 +02:00
TagHelpers Do not show cheatmode in release, fix warnigns 2023-07-25 10:50:34 +09:00
Validation Improve email settings validation and UX (#3891) 2022-06-23 13:41:52 +09:00
Views Checkout: Fix copying numeric values to clipboard (#5962) 2024-04-30 18:26:27 +09:00
wwwroot Checkout: Fix copying numeric values to clipboard (#5962) 2024-04-30 18:26:27 +09:00
_ViewImports.cshtml Do not activate Blazor in Wizard screens (#5435) 2023-10-27 10:16:36 +02:00
APDUVaultTransport.cs Boltcard integration (#5419) 2023-12-06 09:17:58 +09:00
BitpayHttpException.cs Removing unused usings, readonly fields where possible 2020-06-28 22:07:48 -05:00
BTCPayServer.csproj bump NTag424 lib 2024-04-24 21:50:18 +09:00
BTCPayServer.ruleset general code cleanup + add analyzers 2018-02-17 13:18:16 +09:00
BufferizedFormFile.cs Dotnet reformat 2023-04-10 11:07:03 +09:00
ColorPalette.cs Payment Request: Improve public view (#5413) 2023-11-20 10:45:43 +09:00
CorsPolicies.cs Removing unused usings, readonly fields where possible 2020-06-28 22:07:48 -05:00
CurrencyValue.cs [Fix] CurrencyValue parsing shouldn't depend on locale 2021-10-21 19:15:02 +09:00
DerivationSchemeParser.cs Fix wallet import (#5695) 2024-01-24 17:49:15 +09:00
DerivationSchemeSettings.cs The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
EventAggregator.cs Stop spamming logs with event aggregator logging 2023-05-19 15:24:20 +09:00
ExplorerClientProvider.cs Use ArgumentNullException.ThrowIfNull everywhere (#3239) 2021-12-28 17:39:54 +09:00
Extensions.cs The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
FileTypeDetector.cs Checkout v2: Play sound when invoice is paid (#5113) 2023-07-24 22:57:24 +09:00
GitCommitAttribute.cs Show the git commit of the current build of BTCPay (#4320) 2022-11-22 21:37:07 +09:00
IDelay.cs Removing unused usings, readonly fields where possible 2020-06-28 22:07:48 -05:00
IHasAdditionalData.cs Remove JSON in strings from JObjects (#4703) 2023-02-25 23:34:49 +09:00
JsonHttpException.cs Greenfield: Improve error message, do not use internal lightning node on store's lightning API 2021-12-16 14:27:34 +09:00
Program.cs Guard against running current master (#5959) 2024-04-30 18:29:05 +09:00
Roles.cs Dotnet reformat 2023-04-10 11:07:03 +09:00
SearchString.cs Generate unique order IDs for PoS and Crowdfund sales (#5127) 2023-07-20 16:03:39 +09:00
StorePolicies.cs Onboarding: Invite new users on store level (#5719) 2024-03-19 14:58:33 +01:00
TransactionComparer.cs Removing unused usings, readonly fields where possible 2020-06-28 22:07:48 -05:00
UserManagerExtensions.cs Onboarding: Invite new users (#5714) 2024-02-28 20:43:18 +09:00
VaultClient.cs Simplify vault logic by introducing a VaultClient (#5434) 2023-10-27 11:54:15 +09:00
VaultHWITransport.cs Simplify vault logic by introducing a VaultClient (#5434) 2023-10-27 11:54:15 +09:00
WalletId.cs The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
WebsocketExtensions.cs Keep websocket connection alive on notifications and vault 2021-10-05 14:30:01 +09:00
WebSocketHelper.cs Warning if not using 'simple using' 2022-01-14 17:50:29 +09:00
ZoneLimits.cs Add spam rate limits for public invoice endpoints (Fix #3782) (#3889) 2022-06-21 12:33:20 +09:00