Files
gocryptotrader/currency/currency.go
Adrian Gallagher f0d45aa1d2 golangci-lint/CI: Bump versions and introduce new linters (#798)
* golangci-lint/CI: Bump versions

Fix remaining linter issues

* Specifically set AppVeyor version

* Fix the infamous typos 👀

* Add go env cmd to AppVeyor

* Add go version cmd to AppVeyor

* Specify AppVeyor image, adjust linters

* Update go get to go install due to deprecation

* Bump golangci-lint timeout time for AppVeyor

* Change NW contract to NQ

* Address nitters

* GetRandomPair -> Pair{}

* Address nits

* Address time nitterinos plus additional tweaks

* More time inception upgrades!

* Bending time and space
2021-10-14 16:38:53 +11:00

131 lines
3.6 KiB
Go

package currency
// GetDefaultExchangeRates returns the currency exchange rates based off the
// default fiat values
func GetDefaultExchangeRates() (Conversions, error) {
return storage.GetDefaultForeignExchangeRates()
}
// GetExchangeRates returns the full fiat currency exchange rates base off
// configuration parameters supplied to the currency storage
func GetExchangeRates() (Conversions, error) {
return storage.GetExchangeRates()
}
// UpdateBaseCurrency updates storage base currency
func UpdateBaseCurrency(c Code) error {
return storage.UpdateBaseCurrency(c)
}
// GetBaseCurrency returns the storage base currency
func GetBaseCurrency() Code {
return storage.GetBaseCurrency()
}
// GetDefaultBaseCurrency returns storage default base currency
func GetDefaultBaseCurrency() Code {
return storage.GetDefaultBaseCurrency()
}
// GetCryptocurrencies returns the storage enabled cryptocurrencies
func GetCryptocurrencies() Currencies {
return storage.GetCryptocurrencies()
}
// GetDefaultCryptocurrencies returns a list of default cryptocurrencies
func GetDefaultCryptocurrencies() Currencies {
return storage.GetDefaultCryptocurrencies()
}
// GetFiatCurrencies returns the storage enabled fiat currencies
func GetFiatCurrencies() Currencies {
return storage.GetFiatCurrencies()
}
// GetDefaultFiatCurrencies returns a list of default fiat currencies
func GetDefaultFiatCurrencies() Currencies {
return storage.GetDefaultFiatCurrencies()
}
// UpdateCurrencies updates the local cryptocurrency or fiat currency store
func UpdateCurrencies(c Currencies, isCryptocurrency bool) {
if isCryptocurrency {
storage.UpdateEnabledCryptoCurrencies(c)
return
}
storage.UpdateEnabledFiatCurrencies(c)
}
// ConvertCurrency converts an amount from one currency to another
func ConvertCurrency(amount float64, from, to Code) (float64, error) {
return storage.ConvertCurrency(amount, from, to)
}
// SeedForeignExchangeData seeds FX data with the currencies supplied
func SeedForeignExchangeData(c Currencies) error {
return storage.SeedForeignExchangeRatesByCurrencies(c)
}
// GetTotalMarketCryptocurrencies returns the full market cryptocurrencies
func GetTotalMarketCryptocurrencies() ([]Code, error) {
return storage.GetTotalMarketCryptocurrencies()
}
// RunStorageUpdater runs a new foreign exchange updater instance
func RunStorageUpdater(o BotOverrides, m *MainConfiguration, filepath string) error {
return storage.RunUpdater(o, m, filepath)
}
// ShutdownStorageUpdater cleanly shuts down and saves to currency.json
func ShutdownStorageUpdater() error {
return storage.Shutdown()
}
// CopyPairFormat copies the pair format from a list of pairs once matched
func CopyPairFormat(p Pair, pairs []Pair, exact bool) Pair {
for x := range pairs {
if exact {
if p.Equal(pairs[x]) {
return pairs[x]
}
}
if p.EqualIncludeReciprocal(pairs[x]) {
return pairs[x]
}
}
return Pair{}
}
// FormatPairs formats a string array to a list of currency pairs with the
// supplied currency pair format
func FormatPairs(pairs []string, delimiter, index string) (Pairs, error) {
var result Pairs
for x := range pairs {
if pairs[x] == "" {
continue
}
var p Pair
var err error
if delimiter != "" {
p, err = NewPairDelimiter(pairs[x], delimiter)
if err != nil {
return nil, err
}
} else {
if index != "" {
p, err = NewPairFromIndex(pairs[x], index)
if err != nil {
return Pairs{}, err
}
} else {
p, err = NewPairFromStrings(pairs[x][0:3], pairs[x][3:])
if err != nil {
return Pairs{}, err
}
}
}
result = append(result, p)
}
return result, nil
}