#include #include #include #include #include #include #include #include "utils.hpp" const char CURRENCY_USD = '$'; const char CURRENCY_EUR = '['; const char CURRENCY_GBP = ']'; const char CURRENCY_JPY = '^'; const char CURRENCY_AUD = '_'; const char CURRENCY_CAD = '`'; const char CURRENCY_ALL = 'L'; const char CURRENCY_BWP = 'P'; const char CURRENCY_HNL = 'L'; const char CURRENCY_HTG = 'G'; const char CURRENCY_MWK = 'K'; const char CURRENCY_MZN = 'M'; const char CURRENCY_NAD = 'N'; const char CURRENCY_PYG = 'G'; const char CURRENCY_RON = 'L'; const char CURRENCY_SZL = 'E'; const char CURRENCY_ZAR = 'R'; const char CURRENCY_ZMW = 'K'; // const char CURRENCY_NZD = '$'; // const char CURRENCY_SGD = '$'; // const char CURRENCY_HKD = '$'; // const char CURRENCY_BND = '$'; // const char CURRENCY_FJD = '$'; // const char CURRENCY_SBD = '$'; // const char CURRENCY_TTD = '$'; // const char CURRENCY_XCD = '$'; // const char CURRENCY_KYD = '$'; // const char CURRENCY_GYD = '$'; // const char CURRENCY_BBD = '$'; // const char CURRENCY_BSD = '$'; // const char CURRENCY_BMD = '$'; // const char CURRENCY_LRD = '$'; // const char CURRENCY_ZWL = '$'; // const char CURRENCY_ARS = '$'; // const char CURRENCY_CLP = '$'; // const char CURRENCY_COP = '$'; // const char CURRENCY_MXN = '$'; // const char CURRENCY_UYU = '$'; // const char CURRENCY_DOP = '$'; // const char CURRENCY_SVC = '$'; // const char CURRENCY_SRD = '$'; const std::string CURRENCY_CODE_USD = "USD"; const std::string CURRENCY_CODE_EUR = "EUR"; const std::string CURRENCY_CODE_GBP = "GBP"; const std::string CURRENCY_CODE_JPY = "JPY"; const std::string CURRENCY_CODE_AUD = "AUD"; const std::string CURRENCY_CODE_CAD = "CAD"; // const std::string CURRENCY_CODE_ALL = "ALL"; // const std::string CURRENCY_CODE_BWP = "BWP"; // const std::string CURRENCY_CODE_HNL = "HNL"; // const std::string CURRENCY_CODE_HTG = "HTG"; // const std::string CURRENCY_CODE_MWK = "MWK"; // const std::string CURRENCY_CODE_MZN = "MZN"; // const std::string CURRENCY_CODE_NAD = "NAD"; // const std::string CURRENCY_CODE_PYG = "PYG"; // const std::string CURRENCY_CODE_RON = "RON"; // const std::string CURRENCY_CODE_SZL = "SZL"; // const std::string CURRENCY_CODE_ZAR = "ZAR"; // const std::string CURRENCY_CODE_ZMW = "ZMW"; // const std::string CURRENCY_CODE_NZD = "NZD"; // const std::string CURRENCY_CODE_SGD = "SGD"; // const std::string CURRENCY_CODE_HKD = "HKD"; // const std::string CURRENCY_CODE_BND = "BND"; // const std::string CURRENCY_CODE_FJD = "FJD"; // const std::string CURRENCY_CODE_SBD = "SBD"; // const std::string CURRENCY_CODE_TTD = "TTD"; // const std::string CURRENCY_CODE_XCD = "XCD"; // const std::string CURRENCY_CODE_KYD = "KYD"; // const std::string CURRENCY_CODE_GYD = "GYD"; // const std::string CURRENCY_CODE_BBD = "BBD"; // const std::string CURRENCY_CODE_BSD = "BSD"; // const std::string CURRENCY_CODE_BMD = "BMD"; // const std::string CURRENCY_CODE_LRD = "LRD"; // const std::string CURRENCY_CODE_ZWL = "ZWL"; // const std::string CURRENCY_CODE_ARS = "ARS"; // const std::string CURRENCY_CODE_CLP = "CLP"; // const std::string CURRENCY_CODE_COP = "COP"; // const std::string CURRENCY_CODE_MXN = "MXN"; // const std::string CURRENCY_CODE_UYU = "UYU"; // const std::string CURRENCY_CODE_DOP = "DOP"; // const std::string CURRENCY_CODE_SVC = "SVC"; // const std::string CURRENCY_CODE_SRD = "SRD"; const std::string CURRENCY_CODE_UNKNOWN = " "; // Public methods std::array parsePriceData(std::uint32_t price, char currency, bool useSuffixFormat = false, bool mowMode = false, bool shareDot = false); std::array parsePriceData(std::uint32_t price, const std::string& currencyCode, bool useSuffixFormat = false, bool mowMode = false, bool shareDot = false); std::array parseSatsPerCurrency(std::uint32_t price, char currencySymbol, bool withSatsSymbol); std::array parseSatsPerCurrency(std::uint32_t price, const std::string& currencyCode, bool withSatsSymbol); std::array parseBlockHeight(std::uint32_t blockHeight); std::array parseHalvingCountdown(std::uint32_t blockHeight, bool asBlocks); std::array parseMarketCap(std::uint32_t blockHeight, std::uint32_t price, char currencySymbol, bool bigChars); std::array parseBlockFees(std::uint16_t blockFees); char getCurrencySymbol(char input); std::string getCurrencyCode(char input); char getCurrencyChar(const std::string& input); // Private helper methods namespace { std::array formatPriceData(std::uint32_t price, char currencySymbol, const std::string& currencyCode, bool useSuffixFormat, bool mowMode, bool shareDot, bool useSymbol = true); std::array formatSatsPerCurrency(std::uint32_t price, char currencySymbol, const std::string& currencyCode, bool withSatsSymbol, bool alwaysShowSats = false); }