mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-30 18:35:54 +02:00
Merge #15452: Replace CScriptID and CKeyID in CTxDestination with dedicated types
78e407ad0cGetKeyBirthTimes should return key ids, not destinations (Gregory Sanders)70946e7feeReplace CScriptID and CKeyID in CTxDestination with dedicated types (Gregory Sanders) Pull request description: The current usage seems to be an overloading of meanings. `CScriptID` is used in the wallet as a lookup key, as well as a destination, and `CKeyID` likewise. Instead, have all destinations be dedicated types. New types: `CScriptID`->`ScriptHash` `CKeyID`->`PKHash` ACKs for commit 78e407: ryanofsky: utACK78e407ad0c. Only changes are removing extra CScriptID()s and fixing the test case. Sjors: utACK78e407ameshcollider: utACK78e407ad0cTree-SHA512: 437f59fc3afb83a40540da3351507aef5aed44e3a7f15b01ddad6226854edeee762ff0b0ef336fe3654c4cd99a205cef175211de8b639abe1130c8a6313337b9
This commit is contained in:
@@ -550,13 +550,14 @@ static UniValue signmessage(const JSONRPCRequest& request)
|
||||
throw JSONRPCError(RPC_TYPE_ERROR, "Invalid address");
|
||||
}
|
||||
|
||||
const CKeyID *keyID = boost::get<CKeyID>(&dest);
|
||||
if (!keyID) {
|
||||
const PKHash *pkhash = boost::get<PKHash>(&dest);
|
||||
if (!pkhash) {
|
||||
throw JSONRPCError(RPC_TYPE_ERROR, "Address does not refer to key");
|
||||
}
|
||||
|
||||
CKey key;
|
||||
if (!pwallet->GetKey(*keyID, key)) {
|
||||
CKeyID keyID(*pkhash);
|
||||
if (!pwallet->GetKey(keyID, key)) {
|
||||
throw JSONRPCError(RPC_WALLET_ERROR, "Private key not available");
|
||||
}
|
||||
|
||||
@@ -2897,7 +2898,7 @@ static UniValue listunspent(const JSONRPCRequest& request)
|
||||
}
|
||||
|
||||
if (scriptPubKey.IsPayToScriptHash()) {
|
||||
const CScriptID& hash = boost::get<CScriptID>(address);
|
||||
const CScriptID& hash = CScriptID(boost::get<ScriptHash>(address));
|
||||
CScript redeemScript;
|
||||
if (pwallet->GetCScript(hash, redeemScript)) {
|
||||
entry.pushKV("redeemScript", HexStr(redeemScript.begin(), redeemScript.end()));
|
||||
@@ -3537,8 +3538,9 @@ public:
|
||||
|
||||
UniValue operator()(const CNoDestination& dest) const { return UniValue(UniValue::VOBJ); }
|
||||
|
||||
UniValue operator()(const CKeyID& keyID) const
|
||||
UniValue operator()(const PKHash& pkhash) const
|
||||
{
|
||||
CKeyID keyID(pkhash);
|
||||
UniValue obj(UniValue::VOBJ);
|
||||
CPubKey vchPubKey;
|
||||
if (pwallet && pwallet->GetPubKey(keyID, vchPubKey)) {
|
||||
@@ -3548,8 +3550,9 @@ public:
|
||||
return obj;
|
||||
}
|
||||
|
||||
UniValue operator()(const CScriptID& scriptID) const
|
||||
UniValue operator()(const ScriptHash& scripthash) const
|
||||
{
|
||||
CScriptID scriptID(scripthash);
|
||||
UniValue obj(UniValue::VOBJ);
|
||||
CScript subscript;
|
||||
if (pwallet && pwallet->GetCScript(scriptID, subscript)) {
|
||||
|
||||
Reference in New Issue
Block a user