Implement multi-currency support with MsgPack
This commit is contained in:
parent
a4ff5a2f75
commit
c276d32807
18 changed files with 528 additions and 541 deletions
|
@ -32,25 +32,41 @@ std::string getCurrencyCode(char input)
|
|||
switch (input)
|
||||
{
|
||||
case CURRENCY_EUR:
|
||||
return "EUR";
|
||||
return CURRENCY_CODE_EUR;
|
||||
break;
|
||||
case CURRENCY_GBP:
|
||||
return "GBP";
|
||||
return CURRENCY_CODE_GBP;
|
||||
break;
|
||||
case CURRENCY_JPY:
|
||||
return "YEN";
|
||||
return CURRENCY_CODE_JPY;
|
||||
break;
|
||||
case CURRENCY_AUD:
|
||||
return "AUD";
|
||||
return CURRENCY_CODE_AUD;
|
||||
break;
|
||||
case CURRENCY_CAD:
|
||||
return "CAD";
|
||||
return CURRENCY_CODE_CAD;
|
||||
break;
|
||||
default:
|
||||
return "USD";
|
||||
return CURRENCY_CODE_USD;
|
||||
}
|
||||
}
|
||||
|
||||
char getCurrencyChar(const std::string& input)
|
||||
{
|
||||
if (input == "EUR")
|
||||
return CURRENCY_EUR;
|
||||
else if (input == "GBP")
|
||||
return CURRENCY_GBP;
|
||||
else if (input == "JPY")
|
||||
return CURRENCY_JPY;
|
||||
else if (input == "AUD")
|
||||
return CURRENCY_AUD;
|
||||
else if (input == "CAD")
|
||||
return CURRENCY_CAD;
|
||||
else
|
||||
return CURRENCY_USD; // Assuming USD is the default for unknown inputs
|
||||
}
|
||||
|
||||
std::array<std::string, NUM_SCREENS> parsePriceData(std::uint32_t price, char currencySymbol, bool useSuffixFormat)
|
||||
{
|
||||
std::array<std::string, NUM_SCREENS> ret;
|
||||
|
@ -205,14 +221,8 @@ std::array<std::string, NUM_SCREENS> parseMarketCap(std::uint32_t blockHeight, s
|
|||
std::uint32_t firstIndex = 0;
|
||||
double supply = getSupplyAtBlock(blockHeight);
|
||||
int64_t marketCap = static_cast<std::int64_t>(supply * double(price));
|
||||
if (currencySymbol == '[')
|
||||
{
|
||||
ret[0] = "EUR/MCAP";
|
||||
}
|
||||
else
|
||||
{
|
||||
ret[0] = "USD/MCAP";
|
||||
}
|
||||
|
||||
ret[0] = getCurrencyCode(currencySymbol) + "/MCAP";
|
||||
|
||||
if (bigChars)
|
||||
{
|
||||
|
|
|
@ -12,6 +12,13 @@ const char CURRENCY_JPY = '^';
|
|||
const char CURRENCY_AUD = '_';
|
||||
const char CURRENCY_CAD = '`';
|
||||
|
||||
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";
|
||||
|
||||
std::array<std::string, NUM_SCREENS> parsePriceData(std::uint32_t price, char currency, bool useSuffixFormat = false);
|
||||
std::array<std::string, NUM_SCREENS> parseSatsPerCurrency(std::uint32_t price, char currencySymbol, bool withSatsSymbol);
|
||||
std::array<std::string, NUM_SCREENS> parseBlockHeight(std::uint32_t blockHeight);
|
||||
|
@ -20,4 +27,5 @@ std::array<std::string, NUM_SCREENS> parseMarketCap(std::uint32_t blockHeight, s
|
|||
std::array<std::string, NUM_SCREENS> parseBlockFees(std::uint16_t blockFees);
|
||||
|
||||
char getCurrencySymbol(char input);
|
||||
std::string getCurrencyCode(char input);
|
||||
std::string getCurrencyCode(char input);
|
||||
char getCurrencyChar(const std::string& input);
|
Loading…
Add table
Add a link
Reference in a new issue