feat: Improved LNBits multi currency support
This commit is contained in:
parent
19c877a254
commit
7cd4c8dd37
3 changed files with 108 additions and 12 deletions
|
@ -4,24 +4,22 @@
|
||||||
#include <emscripten/bind.h>
|
#include <emscripten/bind.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
char getCurrencySymbol(char input)
|
char getCurrencySymbol(char input)
|
||||||
{
|
{
|
||||||
switch (input)
|
switch (input)
|
||||||
{
|
{
|
||||||
case CURRENCY_EUR:
|
case CURRENCY_EUR:
|
||||||
return '[';
|
return '[';
|
||||||
break;
|
|
||||||
case CURRENCY_GBP:
|
case CURRENCY_GBP:
|
||||||
return ']';
|
return ']';
|
||||||
break;
|
|
||||||
case CURRENCY_JPY:
|
case CURRENCY_JPY:
|
||||||
return '^';
|
return '^';
|
||||||
break;
|
// Dollar symbol currencies
|
||||||
case CURRENCY_AUD:
|
case CURRENCY_AUD:
|
||||||
case CURRENCY_CAD:
|
case CURRENCY_CAD:
|
||||||
case CURRENCY_USD:
|
case CURRENCY_USD:
|
||||||
return '$';
|
return '$';
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return input;
|
return input;
|
||||||
}
|
}
|
||||||
|
@ -33,22 +31,16 @@ std::string getCurrencyCode(char input)
|
||||||
{
|
{
|
||||||
case CURRENCY_EUR:
|
case CURRENCY_EUR:
|
||||||
return CURRENCY_CODE_EUR;
|
return CURRENCY_CODE_EUR;
|
||||||
break;
|
|
||||||
case CURRENCY_GBP:
|
case CURRENCY_GBP:
|
||||||
return CURRENCY_CODE_GBP;
|
return CURRENCY_CODE_GBP;
|
||||||
break;
|
|
||||||
case CURRENCY_JPY:
|
case CURRENCY_JPY:
|
||||||
return CURRENCY_CODE_JPY;
|
return CURRENCY_CODE_JPY;
|
||||||
break;
|
|
||||||
case CURRENCY_AUD:
|
case CURRENCY_AUD:
|
||||||
return CURRENCY_CODE_AUD;
|
return CURRENCY_CODE_AUD;
|
||||||
break;
|
|
||||||
case CURRENCY_CAD:
|
case CURRENCY_CAD:
|
||||||
return CURRENCY_CODE_CAD;
|
return CURRENCY_CODE_CAD;
|
||||||
break;
|
|
||||||
case CURRENCY_USD:
|
case CURRENCY_USD:
|
||||||
return CURRENCY_CODE_USD;
|
return CURRENCY_CODE_USD;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
return CURRENCY_CODE_UNKNOWN;
|
return CURRENCY_CODE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
@ -67,7 +59,41 @@ char getCurrencyChar(const std::string& input)
|
||||||
else if (input == "CAD")
|
else if (input == "CAD")
|
||||||
return CURRENCY_CAD;
|
return CURRENCY_CAD;
|
||||||
else if (input == "USD")
|
else if (input == "USD")
|
||||||
return CURRENCY_USD; // Assuming USD is the default for unknown inputs
|
return CURRENCY_USD;
|
||||||
|
else if (input == "ALL")
|
||||||
|
return CURRENCY_ALL;
|
||||||
|
else if (input == "BWP")
|
||||||
|
return CURRENCY_BWP;
|
||||||
|
else if (input == "HNL")
|
||||||
|
return CURRENCY_HNL;
|
||||||
|
else if (input == "HTG")
|
||||||
|
return CURRENCY_HTG;
|
||||||
|
else if (input == "MWK")
|
||||||
|
return CURRENCY_MWK;
|
||||||
|
else if (input == "MZN")
|
||||||
|
return CURRENCY_MZN;
|
||||||
|
else if (input == "NAD")
|
||||||
|
return CURRENCY_NAD;
|
||||||
|
else if (input == "PYG")
|
||||||
|
return CURRENCY_PYG;
|
||||||
|
else if (input == "RON")
|
||||||
|
return CURRENCY_RON;
|
||||||
|
else if (input == "SZL")
|
||||||
|
return CURRENCY_SZL;
|
||||||
|
else if (input == "ZAR")
|
||||||
|
return CURRENCY_ZAR;
|
||||||
|
else if (input == "ZMW")
|
||||||
|
return CURRENCY_ZMW;
|
||||||
|
// Map dollar-symbol currencies to USD character code
|
||||||
|
else if (input == "NZD" || input == "SGD" || input == "HKD" ||
|
||||||
|
input == "BND" || input == "FJD" || input == "SBD" ||
|
||||||
|
input == "TTD" || input == "XCD" || input == "KYD" ||
|
||||||
|
input == "GYD" || input == "BBD" || input == "BSD" ||
|
||||||
|
input == "BMD" || input == "LRD" || input == "ZWL" ||
|
||||||
|
input == "ARS" || input == "CLP" || input == "COP" ||
|
||||||
|
input == "MXN" || input == "UYU" || input == "DOP" ||
|
||||||
|
input == "SVC" || input == "SRD")
|
||||||
|
return CURRENCY_USD;
|
||||||
else
|
else
|
||||||
return ' ';
|
return ' ';
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,41 @@ const char CURRENCY_GBP = ']';
|
||||||
const char CURRENCY_JPY = '^';
|
const char CURRENCY_JPY = '^';
|
||||||
const char CURRENCY_AUD = '_';
|
const char CURRENCY_AUD = '_';
|
||||||
const char CURRENCY_CAD = '`';
|
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_USD = "USD";
|
||||||
const std::string CURRENCY_CODE_EUR = "EUR";
|
const std::string CURRENCY_CODE_EUR = "EUR";
|
||||||
|
@ -21,6 +56,41 @@ const std::string CURRENCY_CODE_GBP = "GBP";
|
||||||
const std::string CURRENCY_CODE_JPY = "JPY";
|
const std::string CURRENCY_CODE_JPY = "JPY";
|
||||||
const std::string CURRENCY_CODE_AUD = "AUD";
|
const std::string CURRENCY_CODE_AUD = "AUD";
|
||||||
const std::string CURRENCY_CODE_CAD = "CAD";
|
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 = " ";
|
const std::string CURRENCY_CODE_UNKNOWN = " ";
|
||||||
|
|
||||||
// Public methods
|
// Public methods
|
||||||
|
|
|
@ -277,7 +277,7 @@ void test_Mcap1TrillionJpySmallChars(void)
|
||||||
|
|
||||||
void test_PriceDataWithCurrencyCode(void)
|
void test_PriceDataWithCurrencyCode(void)
|
||||||
{
|
{
|
||||||
std::array<std::string, NUM_SCREENS> output = parsePriceData(100000, "PYG", false, false, false);
|
std::array<std::string, NUM_SCREENS> output = parsePriceData(10000, "PYG", false, false, false);
|
||||||
TEST_ASSERT_EQUAL_STRING("BTC/PYG", output[0].c_str());
|
TEST_ASSERT_EQUAL_STRING("BTC/PYG", output[0].c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue