mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-05 23:16:53 +00:00
Currency package update (#247)
* Initial currency overhaul before service system implementation * Remove redundant currency string in orderbook.Base Unexport lastupdated field in orderbook.Base as it was being instantiated multiple times Add error handling for process orderbook * Remove redundant currency string in ticker.Price Unexport lastupdated field in ticker.Price Add error handling for process ticker function and fix tests * Phase Two Update * Update translations to use map type - thankyou to kempeng for spotting this * Change pair method name from Display -> Format for better readability * Fixes misspelling and tests * Implement requested changes from GloriousCode * Remove reduntant function and streamlined return in currency_translation.go * Revert pair method naming conventions * Change currency naming conventions * Changed code type to exported Item type with underlying string to reduce complexity * Added interim orderbook process method to orderbook.Base type * Changed feebuilder struct field to currency.Pair * Adds fall over system for backup fx providers * deprecate function and children and fix linter issue with btcmarkets * Fixed requested changes * Fix bug and move mtx for rates * Fixed after rebase oopsies * Fix linter issues * Fixes race conditions in testing functions * Final phase coinmarketcap update * fix linter issues * Implement requested changes * Adds configuration variables to increase/decrease time durations between updating currency file and fetching new currency rates * Add a collection of tests to improve codecov * After rebase oopsy fixes for btse * Fix requested changes * fix after rebase oopsies and add more efficient comparison checks within currency pair * Fix linter issues
This commit is contained in:
committed by
Adrian Gallagher
parent
ed760e184e
commit
0990f9d118
59
main.go
59
main.go
@@ -15,7 +15,6 @@ import (
|
||||
"github.com/thrasher-/gocryptotrader/config"
|
||||
"github.com/thrasher-/gocryptotrader/currency"
|
||||
"github.com/thrasher-/gocryptotrader/currency/coinmarketcap"
|
||||
"github.com/thrasher-/gocryptotrader/currency/forexprovider"
|
||||
exchange "github.com/thrasher-/gocryptotrader/exchanges"
|
||||
log "github.com/thrasher-/gocryptotrader/logger"
|
||||
"github.com/thrasher-/gocryptotrader/portfolio"
|
||||
@@ -61,6 +60,12 @@ func main() {
|
||||
version := flag.Bool("version", false, "retrieves current GoCryptoTrader version")
|
||||
verbosity := flag.Bool("verbose", false, "increases logging verbosity for GoCryptoTrader")
|
||||
|
||||
Coinmarketcap := flag.Bool("c", false, "overrides config and runs currency analaysis")
|
||||
FxCurrencyConverter := flag.Bool("fxa", false, "overrides config and sets up foreign exchange Currency Converter")
|
||||
FxCurrencyLayer := flag.Bool("fxb", false, "overrides config and sets up foreign exchange Currency Layer")
|
||||
FxFixer := flag.Bool("fxc", false, "overrides config and sets up foreign exchange Fixer.io")
|
||||
FxOpenExchangeRates := flag.Bool("fxd", false, "overrides config and sets up foreign exchange Open Exchange Rates")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
if *version {
|
||||
@@ -119,40 +124,30 @@ func main() {
|
||||
bot.comms = communications.NewComm(&cfg)
|
||||
bot.comms.GetEnabledCommunicationMediums()
|
||||
|
||||
if bot.config.GetCryptocurrencyProviderConfig().Enabled {
|
||||
log.Debug("Seeding full market data...")
|
||||
err = currency.SeedCryptocurrencyMarketData(coinmarketcap.Settings(bot.config.GetCryptocurrencyProviderConfig()))
|
||||
if err != nil {
|
||||
log.Warnf("Failure seeding cryptocurrency market data %s", err)
|
||||
} else if *verbosity {
|
||||
log.Debugf("Total market cryptocurrencies: %d",
|
||||
len(currency.GetTotalMarketCryptocurrencies()))
|
||||
}
|
||||
|
||||
err = currency.SeedExchangeMarketData(coinmarketcap.Settings(bot.config.GetCryptocurrencyProviderConfig()))
|
||||
if err != nil {
|
||||
log.Warnf("Failure seeding exchange market data %s", err)
|
||||
} else if *verbosity {
|
||||
log.Debugf("Total market exchanges: %d",
|
||||
len(currency.GetTotalMarketExchanges()))
|
||||
}
|
||||
} else {
|
||||
log.Debug("Cryptocurrency provider not enabled.")
|
||||
var newFxSettings []currency.FXSettings
|
||||
for _, d := range bot.config.Currency.ForexProviders {
|
||||
newFxSettings = append(newFxSettings, currency.FXSettings(d))
|
||||
}
|
||||
|
||||
log.Debugf("Fiat display currency: %s.", bot.config.Currency.FiatDisplayCurrency)
|
||||
currency.BaseCurrency = bot.config.Currency.FiatDisplayCurrency
|
||||
currency.FXProviders = forexprovider.StartFXService(bot.config.GetCurrencyConfig().ForexProviders)
|
||||
log.Debugf("Primary forex conversion provider: %s.\n", bot.config.GetPrimaryForexProvider())
|
||||
err = bot.config.RetrieveConfigCurrencyPairs(true)
|
||||
err = currency.RunStorageUpdater(currency.BotOverrides{
|
||||
Coinmarketcap: *Coinmarketcap,
|
||||
FxCurrencyConverter: *FxCurrencyConverter,
|
||||
FxCurrencyLayer: *FxCurrencyLayer,
|
||||
FxFixer: *FxFixer,
|
||||
FxOpenExchangeRates: *FxOpenExchangeRates,
|
||||
},
|
||||
currency.MainConfiguration{
|
||||
ForexProviders: newFxSettings,
|
||||
CryptocurrencyProvider: coinmarketcap.Settings(bot.config.Currency.CryptocurrencyProvider),
|
||||
Cryptocurrencies: bot.config.Currency.Cryptocurrencies,
|
||||
FiatDisplayCurrency: bot.config.Currency.FiatDisplayCurrency,
|
||||
CurrencyDelay: bot.config.Currency.CurrencyFileUpdateDuration,
|
||||
FxRateDelay: bot.config.Currency.ForeignExchangeUpdateDuration,
|
||||
},
|
||||
bot.dataDir,
|
||||
*verbosity)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to retrieve config currency pairs. Error: %s", err)
|
||||
}
|
||||
log.Debugf("Successfully retrieved config currencies.")
|
||||
log.Debugf("Fetching currency data from forex provider..")
|
||||
err = currency.SeedCurrencyData(common.JoinStrings(currency.FiatCurrencies, ","))
|
||||
if err != nil {
|
||||
log.Fatalf("Unable to fetch forex data. Error: %s", err)
|
||||
log.Warn("currency updater system failed to start", err)
|
||||
}
|
||||
|
||||
bot.portfolio = &portfolio.Portfolio
|
||||
|
||||
Reference in New Issue
Block a user