text: // Copyright (c) 2019-2021 Fango Developers
  // Copyright (c) 2018-2021 Fandom Gold Society
  // Copyright (c) 2018-2019 Conceal Network & Conceal Devs
  // Copyright (c) 2016-2019 The Karbowanec developers
  // Copyright (c) 2012-2018 The CryptoNote developers
  //
  // This file is part of Fango.
  //
  // Fango is free software distributed in the hope that it
  // will be useful, but WITHOUT ANY WARRANTY; without even the
  // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  // PURPOSE. You can redistribute it and/or modify it under the terms
  // of the GNU General Public License v3 or later versions as published
  // by the Free Software Foundation. Fango includes elements written 
  // by third parties. See file labeled LICENSE for more details.
  // You should have received a copy of the GNU General Public License
  // along with Fango. If not, see <https://www.gnu.org/licenses/>.
  
  #pragma once
  
  #include <string>
  #include <stdexcept>
  #include <cstdint>
  
  #include <boost/program_options.hpp>
  
  namespace PaymentService {
  
  class ConfigurationError : public std::runtime_error {
  public:
    ConfigurationError(const char* desc) : std::runtime_error(desc) {}
  };
  
  struct Configuration {
    Configuration();
  
    void init(const boost::program_options::variables_map& options);
    static void initOptions(boost::program_options::options_description& desc);
  
    std::string bindAddress;
    uint16_t bindPort;
    std::string rpcUser;
    std::string rpcPassword;
    std::string secretSpendKey;
    std::string secretViewKey;  
  
    std::string containerFile;
    std::string containerPassword;
    std::string logFile;
    std::string serverRoot;
  
    bool generateNewContainer;
    bool daemonize;
    bool registerService;
    bool unregisterService;
    bool testnet;
    bool printAddresses;
  
    size_t logLevel;
  };
  
  } //namespace PaymentService
  