std::string decodeBase58TokenBitcoin( std::string const& s, int type) { return decodeBase58Token( s, type, bitcoinInverse); }
std::string decodeBase58Token( std::string const& s, int type) { return decodeBase58Token( s, type, rippleInverse); }
boost::optional<PublicKey> parseBase58 (TokenType type, std::string const& s) { auto const result = decodeBase58Token(s, type); auto const pks = makeSlice(result); if (!publicKeyType(pks)) return boost::none; return PublicKey(pks); }
boost::optional<PublicKey> parseBase58 (TokenType type, std::string const& s) { auto const result = decodeBase58Token(s, type); if (result.empty()) return boost::none; if (result.size() != 33) return boost::none; return PublicKey(makeSlice(result)); }
boost::optional<Seed> parseBase58 (std::string const& s) { auto const result = decodeBase58Token( s, TokenType::TOKEN_FAMILY_SEED); if (result.empty()) return boost::none; if (result.size() != 16) return boost::none; return Seed(makeSlice(result)); }
boost::optional<AccountID> parseBase58 (std::string const& s) { auto const result = decodeBase58Token( s, TOKEN_ACCOUNT_ID); if (result.empty()) return boost::none; AccountID id; if (result.size() != id.size()) return boost::none; std::memcpy(id.data(), result.data(), result.size()); return id; }