Move parse_subaddress_lookahead() from simplewallet.cpp to util.cpp

This commit is contained in:
stoffu 2018-06-04 16:54:35 +09:00
parent 8fc0cdb96f
commit 248310de06
No known key found for this signature in database
GPG Key ID: 41DAB8343A9EC012
3 changed files with 24 additions and 14 deletions

View File

@ -827,4 +827,22 @@ std::string get_nix_version_display_string()
return false; return false;
return true; return true;
} }
boost::optional<std::pair<uint32_t, uint32_t>> parse_subaddress_lookahead(const std::string& str)
{
auto pos = str.find(":");
bool r = pos != std::string::npos;
uint32_t major;
r = r && epee::string_tools::get_xtype_from_string(major, str.substr(0, pos));
uint32_t minor;
r = r && epee::string_tools::get_xtype_from_string(minor, str.substr(pos + 1));
if (r)
{
return std::make_pair(major, minor);
}
else
{
return {};
}
}
} }

View File

@ -32,6 +32,7 @@
#include <boost/thread/locks.hpp> #include <boost/thread/locks.hpp>
#include <boost/thread/mutex.hpp> #include <boost/thread/mutex.hpp>
#include <boost/optional.hpp>
#include <system_error> #include <system_error>
#include <csignal> #include <csignal>
#include <cstdio> #include <cstdio>
@ -214,4 +215,6 @@ namespace tools
bool sha256sum(const std::string &filename, crypto::hash &hash); bool sha256sum(const std::string &filename, crypto::hash &hash);
bool is_hdd(const char *path); bool is_hdd(const char *path);
boost::optional<std::pair<uint32_t, uint32_t>> parse_subaddress_lookahead(const std::string& str);
} }

View File

@ -379,21 +379,10 @@ namespace
boost::optional<std::pair<uint32_t, uint32_t>> parse_subaddress_lookahead(const std::string& str) boost::optional<std::pair<uint32_t, uint32_t>> parse_subaddress_lookahead(const std::string& str)
{ {
auto pos = str.find(":"); auto r = tools::parse_subaddress_lookahead(str);
bool r = pos != std::string::npos; if (!r)
uint32_t major;
r = r && epee::string_tools::get_xtype_from_string(major, str.substr(0, pos));
uint32_t minor;
r = r && epee::string_tools::get_xtype_from_string(minor, str.substr(pos + 1));
if (r)
{
return std::make_pair(major, minor);
}
else
{
fail_msg_writer() << tr("invalid format for subaddress lookahead; must be <major>:<minor>"); fail_msg_writer() << tr("invalid format for subaddress lookahead; must be <major>:<minor>");
return {}; return r;
}
} }
void handle_transfer_exception(const std::exception_ptr &e, bool trusted_daemon) void handle_transfer_exception(const std::exception_ptr &e, bool trusted_daemon)