From f6b7fc349ccf9cfbeb7e91e19c20e2a2fcc9026f Mon Sep 17 00:00:00 2001 From: Pieter Wuille Date: Fri, 27 Jul 2018 12:21:12 -0700 Subject: Support h instead of ' in hardened descriptor paths --- src/script/descriptor.cpp | 4 ++-- src/script/descriptor.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'src/script') diff --git a/src/script/descriptor.cpp b/src/script/descriptor.cpp index bbeabab372..f366b99ec3 100644 --- a/src/script/descriptor.cpp +++ b/src/script/descriptor.cpp @@ -436,7 +436,7 @@ bool ParseKeyPath(const std::vector>& split, KeyPath& out) for (size_t i = 1; i < split.size(); ++i) { Span elem = split[i]; bool hardened = false; - if (elem.size() > 0 && elem[elem.size() - 1] == '\'') { + if (elem.size() > 0 && (elem[elem.size() - 1] == '\'' || elem[elem.size() - 1] == 'h')) { elem = elem.first(elem.size() - 1); hardened = true; } @@ -472,7 +472,7 @@ std::unique_ptr ParsePubkey(const Span& sp, bool per if (split.back() == MakeSpan("*").first(1)) { split.pop_back(); type = DeriveType::UNHARDENED; - } else if (split.back() == MakeSpan("*'").first(2)) { + } else if (split.back() == MakeSpan("*'").first(2) || split.back() == MakeSpan("*h").first(2)) { split.pop_back(); type = DeriveType::HARDENED; } diff --git a/src/script/descriptor.h b/src/script/descriptor.h index d7c7ccbfb6..e079c72e92 100644 --- a/src/script/descriptor.h +++ b/src/script/descriptor.h @@ -68,6 +68,7 @@ // * X // * E/I: unhardened child // * E/I': hardened child +// * E/Ih: hardened child (alternative notation) // // The top level is S. -- cgit v1.2.3