Don't allow implementers to think ScriptHash(Witness*()) results in nesting computation

Github-Pull: #17924
Rebased-From: 6dd59d2e491bc11ab26498668543e65440a3a931
This commit is contained in:
Gregory Sanders 2020-01-14 15:05:53 -05:00 committed by João Barbosa
parent e2c45d89f7
commit eac49073eb

View file

@ -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;