mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-18 22:35:39 +01:00
Merge bitcoin/bitcoin#22650: Remove -deprecatedrpc=addresses flag and corresponding code/logic
43cd6b8af9doc: add release notes for removal of the -deprecatedrpc=addresses flag (Michael Dietz)2b1fdc2c6crefactor: minor styling, prefer snake case and same line if (Michael Dietz)d64deac7b8refactor: share logic between ScriptPubKeyToUniv and ScriptToUniv (Michael Dietz)8721638daarpc: remove deprecated addresses and reqSigs from rpc outputs (Michael Dietz) Pull request description: Resolves #21797 now that we've branched-off to v23 ("addresses" and "reqSigs" deprecated) "ExtractDestinations" should be removed. `-deprecatedrpc=addresses` was initially added in this PR #20286 (which resolved the original issue #20102). Some chunks of code and logic are no longer used/necessary with the removal of this, and therefore some minor refactoring is done in this PR as well (separated commits) ACKs for top commit: MarcoFalke: re-ACK43cd6b8af9🐉 meshcollider: Code review ACK43cd6b8af9jonatack: ACK43cd6b8af9per `git range-diffa9d0cec92dc5e9 43cd6b8`, also rebased to latest master, debug built + quick re-review of each commit to bring back context, and ran tests locally at the final commit Tree-SHA512: fba83495e396d3c06f0dcf49292f14f4aa6b68fa758f0503941fade1a6e7271cda8378e2734af1faea550d1b43c85a36c52ebcc9dec0732936f9233b4b97901c
This commit is contained in:
@@ -266,47 +266,6 @@ bool ExtractDestination(const CScript& scriptPubKey, CTxDestination& addressRet)
|
||||
assert(false);
|
||||
}
|
||||
|
||||
// TODO: from v23 ("addresses" and "reqSigs" deprecated) "ExtractDestinations" should be removed
|
||||
bool ExtractDestinations(const CScript& scriptPubKey, TxoutType& typeRet, std::vector<CTxDestination>& addressRet, int& nRequiredRet)
|
||||
{
|
||||
addressRet.clear();
|
||||
std::vector<valtype> vSolutions;
|
||||
typeRet = Solver(scriptPubKey, vSolutions);
|
||||
if (typeRet == TxoutType::NONSTANDARD) {
|
||||
return false;
|
||||
} else if (typeRet == TxoutType::NULL_DATA) {
|
||||
// This is data, not addresses
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeRet == TxoutType::MULTISIG)
|
||||
{
|
||||
nRequiredRet = vSolutions.front()[0];
|
||||
for (unsigned int i = 1; i < vSolutions.size()-1; i++)
|
||||
{
|
||||
CPubKey pubKey(vSolutions[i]);
|
||||
if (!pubKey.IsValid())
|
||||
continue;
|
||||
|
||||
CTxDestination address = PKHash(pubKey);
|
||||
addressRet.push_back(address);
|
||||
}
|
||||
|
||||
if (addressRet.empty())
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
nRequiredRet = 1;
|
||||
CTxDestination address;
|
||||
if (!ExtractDestination(scriptPubKey, address))
|
||||
return false;
|
||||
addressRet.push_back(address);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
namespace {
|
||||
class CScriptVisitor
|
||||
{
|
||||
|
||||
@@ -176,27 +176,11 @@ TxoutType Solver(const CScript& scriptPubKey, std::vector<std::vector<unsigned c
|
||||
|
||||
/**
|
||||
* Parse a standard scriptPubKey for the destination address. Assigns result to
|
||||
* the addressRet parameter and returns true if successful. For multisig
|
||||
* scripts, instead use ExtractDestinations. Currently only works for P2PK,
|
||||
* the addressRet parameter and returns true if successful. Currently only works for P2PK,
|
||||
* P2PKH, P2SH, P2WPKH, and P2WSH scripts.
|
||||
*/
|
||||
bool ExtractDestination(const CScript& scriptPubKey, CTxDestination& addressRet);
|
||||
|
||||
/**
|
||||
* Parse a standard scriptPubKey with one or more destination addresses. For
|
||||
* multisig scripts, this populates the addressRet vector with the pubkey IDs
|
||||
* and nRequiredRet with the n required to spend. For other destinations,
|
||||
* addressRet is populated with a single value and nRequiredRet is set to 1.
|
||||
* Returns true if successful.
|
||||
*
|
||||
* Note: this function confuses destinations (a subset of CScripts that are
|
||||
* encodable as an address) with key identifiers (of keys involved in a
|
||||
* CScript), and its use should be phased out.
|
||||
*
|
||||
* TODO: from v23 ("addresses" and "reqSigs" deprecated) "ExtractDestinations" should be removed
|
||||
*/
|
||||
bool ExtractDestinations(const CScript& scriptPubKey, TxoutType& typeRet, std::vector<CTxDestination>& addressRet, int& nRequiredRet);
|
||||
|
||||
/**
|
||||
* Generate a Bitcoin scriptPubKey for the given CTxDestination. Returns a P2PKH
|
||||
* script for a CKeyID destination, a P2SH script for a CScriptID, and an empty
|
||||
|
||||
Reference in New Issue
Block a user