Skip to content

Commit fe0f71e

Browse files
committed
Fix protocol_electrum::extract_scripthash().
1 parent 65ad17d commit fe0f71e

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

src/protocols/electrum/protocol_electrum_addresses.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,19 +121,27 @@ void protocol_electrum::handle_blockchain_address_subscribe(const code& ec,
121121
// utilities
122122
// ----------------------------------------------------------------------------
123123
// A p2pk output does not produce a bitcoin payment address, as there is no
124-
// form of a p2pk bitcoin payment address. However a
124+
// form of a p2pk bitcoin payment address.
125125

126+
// A failed parse or default initialized script returns null_hash.
126127
hash_digest protocol_electrum::extract_scripthash(
127128
const std::string& address) const NOEXCEPT
128129
{
129-
// A failed parse or default initialized script hashes to null_hash.
130-
return payment_address(address).output_script(p2kh_, p2sh_).hash();
130+
const auto payment = payment_address(address);
131+
if (!payment)
132+
return {};
133+
134+
const auto script = payment.output_script(p2kh_, p2sh_);
135+
if (!script.is_valid())
136+
return {};
137+
138+
return script.hash();
131139
}
132140

141+
// A failure to parse as p2sh or p2kh returns invalid object.
133142
payment_address protocol_electrum::extract_address(
134143
const chain::script& script) const NOEXCEPT
135144
{
136-
// A failure to parse as p2sh or p2kh returns invalid object.
137145
return payment_address::extract_output(script, p2kh_, p2sh_);
138146
}
139147

0 commit comments

Comments
 (0)