Documentation ¶
Index ¶
- Constants
- Variables
- func ConfirmConfigJSON(file []byte, result interface{}) error
- func ConfirmECS(file []byte) bool
- func DecryptConfigFile(configData, key []byte) ([]byte, error)
- func EncryptConfigFile(configData, key []byte) ([]byte, error)
- func GetFilePath(file string) string
- func PromptForConfigKey() ([]byte, error)
- func RemoveECS(file []byte) []byte
- type Config
- func (c *Config) CheckExchangeConfigValues() error
- func (c *Config) CheckSMSGlobalConfigValues() error
- func (c *Config) CheckWebserverConfigValues() error
- func (c *Config) GetConfigEnabledExchanges() int
- func (c *Config) GetCurrencyPairDisplayConfig() *CurrencyPairFormatConfig
- func (c *Config) GetExchangeConfig(name string) (ExchangeConfig, error)
- func (c *Config) LoadConfig(configPath string) error
- func (c *Config) PromptForConfigEncryption() bool
- func (c *Config) ReadConfig(configPath string) error
- func (c *Config) RetrieveConfigCurrencyPairs() error
- func (c *Config) SaveConfig(configPath string) error
- func (c *Config) UpdateConfig(configPath string, newCfg Config) error
- func (c *Config) UpdateExchangeConfig(e ExchangeConfig) error
- type CurrencyPairFormatConfig
- type ExchangeConfig
- type Post
- type SMSGlobalConfig
- type WebserverConfig
Constants ¶
const ( EncryptedConfigFile = "config.dat" ConfigFile = "config.json" ConfigTestFile = "../testdata/configtest.json" )
Constants declared here are filename strings and test strings
const ( // EncryptConfirmString has a the general confirmation string to allow us to // see if the file is correctly encrypted EncryptConfirmString = "THORS-HAMMER" )
Variables ¶
var ( ErrExchangeNameEmpty = "Exchange #%d in config: Exchange name is empty." ErrExchangeAvailablePairsEmpty = "Exchange %s: Available pairs is empty." ErrExchangeEnabledPairsEmpty = "Exchange %s: Enabled pairs is empty." ErrExchangeBaseCurrenciesEmpty = "Exchange %s: Base currencies is empty." ErrExchangeNotFound = "Exchange %s: Not found." ErrNoEnabledExchanges = "No Exchanges enabled." ErrCryptocurrenciesEmpty = "Cryptocurrencies variable is empty." ErrFailureOpeningConfig = "Fatal error opening %s file. Error: %s" ErrCheckingConfigValues = "Fatal error checking config values. Error: %s" ErrSavingConfigBytesMismatch = "Config file %q bytes comparison doesn't match, read %s expected %s." WarningSMSGlobalDefaultOrEmptyValues = "WARNING -- SMS Support disabled due to default or empty Username/Password values." WarningSSMSGlobalSMSContactDefaultOrEmptyValues = "WARNING -- SMS contact #%d Name/Number disabled due to default or empty values." WarningSSMSGlobalSMSNoContacts = "WARNING -- SMS Support disabled due to no enabled contacts." WarningWebserverCredentialValuesEmpty = "WARNING -- Webserver support disabled due to empty Username/Password values." WarningWebserverListenAddressInvalid = "WARNING -- Webserver support disabled due to invalid listen address." WarningWebserverRootWebFolderNotFound = "WARNING -- Webserver support disabled due to missing web folder." WarningExchangeAuthAPIDefaultOrEmptyValues = "WARNING -- Exchange %s: Authenticated API support disabled due to default/empty APIKey/Secret/ClientID values." WarningCurrencyExchangeProvider = "WARNING -- Currency exchange provider invalid valid. Reset to Fixer." Cfg Config )
Variables here are mainly alerts and a configuration object
Functions ¶
func ConfirmConfigJSON ¶
ConfirmConfigJSON confirms JSON in file
func ConfirmECS ¶
ConfirmECS confirms that the encryption confirmation string is found
func DecryptConfigFile ¶
DecryptConfigFile decrypts configuration data with the supplied key and returns the un-encrypted file as a byte array with an error
func EncryptConfigFile ¶
EncryptConfigFile encrypts configuration data that is parsed in with a key and returns it as a byte array with an error
func GetFilePath ¶
GetFilePath returns the desired config file or the default config file name based on if the application is being run under test or normal mode.
func PromptForConfigKey ¶
PromptForConfigKey asks for configuration key
Types ¶
type Config ¶
type Config struct { Name string EncryptConfig int Cryptocurrencies string CurrencyExchangeProvider string CurrencyPairFormat *CurrencyPairFormatConfig `json:"CurrencyPairFormat"` FiatDisplayCurrency string Portfolio portfolio.Base `json:"PortfolioAddresses"` SMS SMSGlobalConfig `json:"SMSGlobal"` Webserver WebserverConfig `json:"Webserver"` Exchanges []ExchangeConfig `json:"Exchanges"` }
Config is the overarching object that holds all the information for prestart management of portfolio, SMSGlobal, webserver and enabled exchange
func (*Config) CheckExchangeConfigValues ¶
CheckExchangeConfigValues returns configuation values for all enabled exchanges
func (*Config) CheckSMSGlobalConfigValues ¶
CheckSMSGlobalConfigValues checks concurrent SMSGlobal configurations
func (*Config) CheckWebserverConfigValues ¶
CheckWebserverConfigValues checks information before webserver starts and returns an error if values are incorrect.
func (*Config) GetConfigEnabledExchanges ¶
GetConfigEnabledExchanges returns the number of exchanges that are enabled.
func (*Config) GetCurrencyPairDisplayConfig ¶
func (c *Config) GetCurrencyPairDisplayConfig() *CurrencyPairFormatConfig
GetCurrencyPairDisplayConfig retrieves the currency pair display preference
func (*Config) GetExchangeConfig ¶
func (c *Config) GetExchangeConfig(name string) (ExchangeConfig, error)
GetExchangeConfig returns your exchange configurations by its indivdual name
func (*Config) LoadConfig ¶
LoadConfig loads your configuration file into your configuration object
func (*Config) PromptForConfigEncryption ¶
PromptForConfigEncryption asks for encryption key
func (*Config) ReadConfig ¶
ReadConfig verifies and checks for encryption and verifies the unencrypted file contains JSON.
func (*Config) RetrieveConfigCurrencyPairs ¶
RetrieveConfigCurrencyPairs splits, assigns and verifies enabled currency pairs either cryptoCurrencies or fiatCurrencies
func (*Config) SaveConfig ¶
SaveConfig saves your configuration to your desired path
func (*Config) UpdateConfig ¶
UpdateConfig updates the config with a supplied config file
func (*Config) UpdateExchangeConfig ¶
func (c *Config) UpdateExchangeConfig(e ExchangeConfig) error
UpdateExchangeConfig updates exchange configurations
type CurrencyPairFormatConfig ¶
type CurrencyPairFormatConfig struct { Uppercase bool Delimiter string `json:",omitempty"` Separator string `json:",omitempty"` Index string `json:",omitempty"` }
CurrencyPairFormatConfig stores the users preferred currency pair display
type ExchangeConfig ¶
type ExchangeConfig struct { Name string Enabled bool Verbose bool Websocket bool UseSandbox bool RESTPollingDelay time.Duration AuthenticatedAPISupport bool APIKey string APISecret string ClientID string `json:",omitempty"` AvailablePairs string EnabledPairs string BaseCurrencies string AssetTypes string ConfigCurrencyPairFormat *CurrencyPairFormatConfig `json:"ConfigCurrencyPairFormat"` RequestCurrencyPairFormat *CurrencyPairFormatConfig `json:"RequestCurrencyPairFormat"` }
ExchangeConfig holds all the information needed for each enabled Exchange.