package common import ( "encoding/json" "os" "github.com/juju/errors" ) // Config struct type Config struct { CoinName string `json:"coin_name"` CoinShortcut string `json:"coin_shortcut"` CoinLabel string `json:"coin_label"` Network string `json:"network"` FourByteSignatures string `json:"fourByteSignatures"` FiatRates string `json:"fiat_rates"` FiatRatesParams string `json:"fiat_rates_params"` FiatRatesVsCurrencies string `json:"fiat_rates_vs_currencies"` BlockGolombFilterP uint8 `json:"block_golomb_filter_p"` BlockFilterScripts string `json:"block_filter_scripts"` BlockFilterUseZeroedKey bool `json:"block_filter_use_zeroed_key"` } // GetConfig loads and parses the config file and returns Config struct func GetConfig(configFile string) (*Config, error) { if configFile == "" { return nil, errors.New("Missing blockchaincfg configuration parameter") } configFileContent, err := os.ReadFile(configFile) if err != nil { return nil, errors.Errorf("Error reading file %v, %v", configFile, err) } var cn Config err = json.Unmarshal(configFileContent, &cn) if err != nil { return nil, errors.Annotatef(err, "Error parsing config file ") } return &cn, nil }