aboutsummaryrefslogtreecommitdiff
path: root/src/script
diff options
context:
space:
mode:
authorBen Woosley <ben.woosley@gmail.com>2020-01-15 13:41:25 -0800
committerBen Woosley <ben.woosley@gmail.com>2020-06-19 12:14:08 -0700
commitf32c1e07fd6c174ff3f6406a619550d2f6c19360 (patch)
tree12c70ed12c60e6feea3e6228c15bf12a7c64a6df /src/script
parent2c54217f913967703b404747133be67cf2f4feac (diff)
downloadbitcoin-f32c1e07fd6c174ff3f6406a619550d2f6c19360.tar.xz
Use explicit conversion from WitnessV0KeyHash -> CKeyID
These types are equivalent, in data etc, so they need only their data cast across.
Diffstat (limited to 'src/script')
-rw-r--r--src/script/signingprovider.cpp4
-rw-r--r--src/script/standard.cpp5
-rw-r--r--src/script/standard.h1
3 files changed, 8 insertions, 2 deletions
diff --git a/src/script/signingprovider.cpp b/src/script/signingprovider.cpp
index a4eb0a8399..2d8dc7d471 100644
--- a/src/script/signingprovider.cpp
+++ b/src/script/signingprovider.cpp
@@ -183,7 +183,7 @@ CKeyID GetKeyForDestination(const SigningProvider& store, const CTxDestination&
return ToKeyID(*id);
}
if (auto witness_id = boost::get<WitnessV0KeyHash>(&dest)) {
- return CKeyID(*witness_id);
+ return ToKeyID(*witness_id);
}
if (auto script_hash = boost::get<ScriptHash>(&dest)) {
CScript script;
@@ -191,7 +191,7 @@ CKeyID GetKeyForDestination(const SigningProvider& store, const CTxDestination&
CTxDestination inner_dest;
if (store.GetCScript(script_id, script) && ExtractDestination(script, inner_dest)) {
if (auto inner_witness_id = boost::get<WitnessV0KeyHash>(&inner_dest)) {
- return CKeyID(*inner_witness_id);
+ return ToKeyID(*inner_witness_id);
}
}
}
diff --git a/src/script/standard.cpp b/src/script/standard.cpp
index 4b408d82e3..a47ccef842 100644
--- a/src/script/standard.cpp
+++ b/src/script/standard.cpp
@@ -28,6 +28,11 @@ CKeyID ToKeyID(const PKHash& key_hash)
return CKeyID{static_cast<uint160>(key_hash)};
}
+CKeyID ToKeyID(const WitnessV0KeyHash& key_hash)
+{
+ return CKeyID{static_cast<uint160>(key_hash)};
+}
+
WitnessV0ScriptHash::WitnessV0ScriptHash(const CScript& in)
{
CSHA256().Write(in.data(), in.size()).Finalize(begin());
diff --git a/src/script/standard.h b/src/script/standard.h
index 1c630744be..6c882e92a1 100644
--- a/src/script/standard.h
+++ b/src/script/standard.h
@@ -106,6 +106,7 @@ struct WitnessV0KeyHash : public uint160
explicit WitnessV0KeyHash(const uint160& hash) : uint160(hash) {}
explicit WitnessV0KeyHash(const CPubKey& pubkey);
};
+CKeyID ToKeyID(const WitnessV0KeyHash& key_hash);
//! CTxDestination subtype to encode any future Witness version
struct WitnessUnknown