13bool ParseHDKeypath(
const std::string& keypath_str, std::vector<uint32_t>& keypath)
15 std::stringstream ss(keypath_str);
18 while (std::getline(ss, item,
'/')) {
19 if (item.compare(
"m") == 0) {
28 size_t pos = item.find(
'\'');
29 if (pos != std::string::npos) {
31 if (pos != item.size() - 1) {
35 item = item.substr(0, item.size() - 1);
39 if (item.find_first_not_of(
"0123456789" ) != std::string::npos) {
48 keypath.push_back(path);
59 if (i >> 31)
ret += apostrophe ?
'\'' :
'h';
64std::string
WriteHDKeypath(
const std::vector<uint32_t>& keypath,
bool apostrophe)
bool ParseHDKeypath(const std::string &keypath_str, std::vector< uint32_t > &keypath)
Parse an HD keypaths like "m/7/0'/2000".
std::string FormatHDKeypath(const std::vector< uint32_t > &path, bool apostrophe)
std::string WriteHDKeypath(const std::vector< uint32_t > &keypath, bool apostrophe)
Write HD keypaths as strings.
bool ParseUInt32(std::string_view str, uint32_t *out)
Convert decimal string to unsigned 32-bit integer with strict parse error feedback.