bool to_currency(Currency& currency, std::string const& code) { if (code.empty () || !code.compare (systemCurrencyCode())) { currency = beast::zero; return true; } static const int CURRENCY_CODE_LENGTH = 3; if (code.size () == CURRENCY_CODE_LENGTH) { Blob codeBlob (CURRENCY_CODE_LENGTH); std::transform (code.begin (), code.end (), codeBlob.begin (), [](auto c) { return ::toupper(static_cast<unsigned char>(c)); }); Serializer s; s.addZeros (96 / 8); s.addRaw (codeBlob); s.addZeros (16 / 8); s.addZeros (24 / 8); s.get160 (currency, 0); return true; } if (40 == code.size ()) return currency.SetHex (code); return false; }