Calling this will instantiate the currency conversion class chosen via config. Each currency conversion class will need to implement the same class, that defined the standard methods (in the same way that flysystem works).
By default, I think we should include a config based rates selector? We could have something like this in config.yml:
SilverCommerce\CurrencySwitcher\RateFromConfig # This is a fictitious class
default_currency: GBP # you could probably also get this from siteconfig
currencies: # currency codes and associated names
- GBP: Pounds
- USD: Dollars
- EUR: Euros
rates: # conversion rates to GBP (current default)
- USD: 1.32016
- EUR: 1.13009
We could also then create another module to use the cloud service you found last week.