mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
* Currency: Do not use a default forex provider exchangerate.host now requires an API key. Instead of finding a new Free (for now) default, this change simply disables the currency exchange when nothing is enabled. * SyncManager: Report ?.?? for an unknown forex amount In a situation where we thought forex was available but we got an error, this avoids showing 0.00 when there was actually an error. * Currency: Tests for no default forex * Currency: Use mock provider for tests * Currency: Add API key to exchangerate.host * Currency: Remove Exchangerate.host Exchangerate.host was bought by apilayer, the old API deprecated, and replaced with a proxy to the apilayer api. We already have currencylayer support, so ther's no reason to keep exh. Worth noting: New ERH keys actually work on currencylayer * Currencies: Add test coverage for currency layer * fixup! Currency: Tests for no default forex Remove duplicate assignment Fixes [review comment](https://github.com/thrasher-corp/gocryptotrader/pull/1395#discussion_r1395178513) * fixup! Currency: Add API key to exchangerate.host Remove unused ErrVar Fixes [review comment](https://github.com/thrasher-corp/gocryptotrader/pull/1395#discussion_r1396647418) * fixup! Currency: Tests for no default forex Fix spelling of override in test Fixes [review comment](https://github.com/thrasher-corp/gocryptotrader/pull/1395#discussion_r1396701476) * fixup! SyncManager: Report ?.?? for an unknown forex amount Fix display of non-positive currency conversions. Fixes [review comment](https://github.com/thrasher-corp/gocryptotrader/pull/1395/files#r1398527134)
83 lines
2.5 KiB
Go
83 lines
2.5 KiB
Go
package currency
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/thrasher-corp/gocryptotrader/currency/coinmarketcap"
|
|
)
|
|
|
|
// Config holds all the information needed for currency related manipulation
|
|
type Config struct {
|
|
ForexProviders AllFXSettings `json:"forexProviders"`
|
|
CryptocurrencyProvider Provider `json:"cryptocurrencyProvider"`
|
|
CurrencyPairFormat *PairFormat `json:"currencyPairFormat"`
|
|
FiatDisplayCurrency Code `json:"fiatDisplayCurrency"`
|
|
CurrencyFileUpdateDuration time.Duration `json:"currencyFileUpdateDuration"`
|
|
ForeignExchangeUpdateDuration time.Duration `json:"foreignExchangeUpdateDuration"`
|
|
}
|
|
|
|
// Provider defines coinmarketcap tools
|
|
type Provider struct {
|
|
Name string `json:"name"`
|
|
Enabled bool `json:"enabled"`
|
|
Verbose bool `json:"verbose"`
|
|
APIKey string `json:"apiKey"`
|
|
AccountPlan string `json:"accountPlan"`
|
|
}
|
|
|
|
// BotOverrides defines a bot overriding factor for quick running currency
|
|
// subsystems
|
|
type BotOverrides struct {
|
|
Coinmarketcap bool
|
|
CurrencyConverter bool
|
|
CurrencyLayer bool
|
|
ExchangeRates bool
|
|
Fixer bool
|
|
OpenExchangeRates bool
|
|
}
|
|
|
|
// CoinmarketcapSettings refers to settings
|
|
type CoinmarketcapSettings coinmarketcap.Settings
|
|
|
|
// SystemsSettings defines incoming system settings
|
|
type SystemsSettings struct {
|
|
Coinmarketcap coinmarketcap.Settings
|
|
Currencyconverter FXSettings
|
|
Currencylayer FXSettings
|
|
Fixer FXSettings
|
|
Openexchangerates FXSettings
|
|
}
|
|
|
|
// AllFXSettings defines all the foreign exchange settings
|
|
type AllFXSettings []FXSettings
|
|
|
|
// FXSettings defines foreign exchange requester settings
|
|
type FXSettings struct {
|
|
Name string `json:"name"`
|
|
Enabled bool `json:"enabled"`
|
|
Verbose bool `json:"verbose"`
|
|
APIKey string `json:"apiKey"`
|
|
APIKeyLvl int `json:"apiKeyLvl"`
|
|
PrimaryProvider bool `json:"primaryProvider"`
|
|
}
|
|
|
|
// File defines a full currency file generated by the currency storage
|
|
// analysis system
|
|
type File struct {
|
|
LastMainUpdate interface{} `json:"lastMainUpdate"`
|
|
Cryptocurrency []*Item `json:"cryptocurrencies"`
|
|
FiatCurrency []*Item `json:"fiatCurrencies"`
|
|
UnsetCurrency []*Item `json:"unsetCurrencies"`
|
|
Contracts []*Item `json:"contracts"`
|
|
Token []*Item `json:"tokens"`
|
|
Stable []*Item `json:"stableCurrencies"`
|
|
}
|
|
|
|
// Const here are packaged defined delimiters
|
|
const (
|
|
UnderscoreDelimiter = "_"
|
|
DashDelimiter = "-"
|
|
ForwardSlashDelimiter = "/"
|
|
ColonDelimiter = ":"
|
|
)
|