Skip to content

Commit b81ebff

Browse files
committed
Remove ScriptHash from CScriptID constructor
Replaces the constructor in CScriptID that converts a ScriptHash with a function ToScriptID that does the same. This prepares for a move of CScriptID to avoid a circular dependency.
1 parent cba69dd commit b81ebff

File tree

5 files changed

+9
-7
lines changed

5 files changed

+9
-7
lines changed

src/script/signingprovider.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ CKeyID GetKeyForDestination(const SigningProvider& store, const CTxDestination&
205205
}
206206
if (auto script_hash = std::get_if<ScriptHash>(&dest)) {
207207
CScript script;
208-
CScriptID script_id(*script_hash);
208+
CScriptID script_id = ToScriptID(*script_hash);
209209
CTxDestination inner_dest;
210210
if (store.GetCScript(script_id, script) && ExtractDestination(script, inner_dest)) {
211211
if (auto inner_witness_id = std::get_if<WitnessV0KeyHash>(&inner_dest)) {

src/script/standard.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
typedef std::vector<unsigned char> valtype;
1818

1919
CScriptID::CScriptID(const CScript& in) : BaseHash(Hash160(in)) {}
20-
CScriptID::CScriptID(const ScriptHash& in) : BaseHash(static_cast<uint160>(in)) {}
2120

2221
ScriptHash::ScriptHash(const CScript& in) : BaseHash(Hash160(in)) {}
2322
ScriptHash::ScriptHash(const CScriptID& in) : BaseHash(static_cast<uint160>(in)) {}
@@ -38,6 +37,11 @@ CKeyID ToKeyID(const WitnessV0KeyHash& key_hash)
3837
return CKeyID{static_cast<uint160>(key_hash)};
3938
}
4039

40+
CScriptID ToScriptID(const ScriptHash& script_hash)
41+
{
42+
return CScriptID{static_cast<uint160>(script_hash)};
43+
}
44+
4145
WitnessV0ScriptHash::WitnessV0ScriptHash(const CScript& in)
4246
{
4347
CSHA256().Write(in.data(), in.size()).Finalize(begin());

src/script/standard.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ static const bool DEFAULT_ACCEPT_DATACARRIER = true;
2020

2121
class CKeyID;
2222
class CScript;
23-
struct ScriptHash;
2423

2524
/** A reference to a CScript: the Hash160 of its serialization (see script.h) */
2625
class CScriptID : public BaseHash<uint160>
@@ -29,7 +28,6 @@ class CScriptID : public BaseHash<uint160>
2928
CScriptID() : BaseHash() {}
3029
explicit CScriptID(const CScript& in);
3130
explicit CScriptID(const uint160& in) : BaseHash(in) {}
32-
explicit CScriptID(const ScriptHash& in);
3331
};
3432

3533
/**
@@ -80,6 +78,7 @@ struct ScriptHash : public BaseHash<uint160>
8078
explicit ScriptHash(const CScript& script);
8179
explicit ScriptHash(const CScriptID& script);
8280
};
81+
CScriptID ToScriptID(const ScriptHash& script_hash);
8382

8483
struct WitnessV0ScriptHash : public BaseHash<uint256>
8584
{

src/wallet/rpc/addresses.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,10 +440,9 @@ class DescribeWalletAddressVisitor
440440

441441
UniValue operator()(const ScriptHash& scripthash) const
442442
{
443-
CScriptID scriptID(scripthash);
444443
UniValue obj(UniValue::VOBJ);
445444
CScript subscript;
446-
if (provider && provider->GetCScript(scriptID, subscript)) {
445+
if (provider && provider->GetCScript(ToScriptID(scripthash), subscript)) {
447446
ProcessSubScript(subscript, obj);
448447
}
449448
return obj;

src/wallet/rpc/coins.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ RPCHelpMan listunspent()
672672
std::unique_ptr<SigningProvider> provider = pwallet->GetSolvingProvider(scriptPubKey);
673673
if (provider) {
674674
if (scriptPubKey.IsPayToScriptHash()) {
675-
const CScriptID& hash = CScriptID(std::get<ScriptHash>(address));
675+
const CScriptID hash = ToScriptID(std::get<ScriptHash>(address));
676676
CScript redeemScript;
677677
if (provider->GetCScript(hash, redeemScript)) {
678678
entry.pushKV("redeemScript", HexStr(redeemScript));

0 commit comments

Comments
 (0)