From eac49073eb7c5d630dd9a285e36f743fa902c0ee Mon Sep 17 00:00:00 2001 From: Gregory Sanders Date: Tue, 14 Jan 2020 15:05:53 -0500 Subject: [PATCH] Don't allow implementers to think ScriptHash(Witness*()) results in nesting computation Github-Pull: #17924 Rebased-From: 6dd59d2e491bc11ab26498668543e65440a3a931 --- src/script/standard.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/script/standard.h b/src/script/standard.h index e45e2d92cc1..0c344c77330 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -81,9 +81,14 @@ struct PKHash : public uint160 using uint160::uint160; }; +struct WitnessV0KeyHash; struct ScriptHash : public uint160 { ScriptHash() : uint160() {} + // These don't do what you'd expect. + // Use ScriptHash(GetScriptForDestination(...)) instead. + explicit ScriptHash(const WitnessV0KeyHash& hash) = delete; + explicit ScriptHash(const PKHash& hash) = delete; explicit ScriptHash(const uint160& hash) : uint160(hash) {} explicit ScriptHash(const CScript& script); using uint160::uint160;