35 std::vector<valtype> vSolutions;
44 addressRet =
PKHash(pubKey);
60 std::vector<CTxDestination> &addressRet,
63 std::vector<valtype> vSolutions;
64 typeRet =
Solver(scriptPubKey, vSolutions);
73 nRequiredRet = vSolutions.front()[0];
74 for (
size_t i = 1; i < vSolutions.size() - 1; i++) {
81 addressRet.push_back(address);
84 if (addressRet.empty()) {
93 addressRet.push_back(address);
100class CScriptVisitor {
116 return std::visit(CScriptVisitor(), dest);
120 return dest.index() != 0;
CScriptID ToScriptID(const ScriptHash &script_hash)
std::vector< uint8_t > valtype
bool ExtractDestination(const CScript &scriptPubKey, CTxDestination &addressRet)
Parse a standard scriptPubKey for the destination address.
bool ExtractDestinations(const CScript &scriptPubKey, TxoutType &typeRet, std::vector< CTxDestination > &addressRet, int &nRequiredRet)
Parse a standard scriptPubKey with one or more destination addresses.
bool IsValidDestination(const CTxDestination &dest)
Check whether a CTxDestination is a CNoDestination.
CScript GetScriptForDestination(const CTxDestination &dest)
Generate a Bitcoin scriptPubKey for the given CTxDestination.
CKeyID ToKeyID(const PKHash &key_hash)
std::variant< CNoDestination, PKHash, ScriptHash > CTxDestination
A txout script template with a specific destination.
A reference to a CKey: the Hash160 of its serialized public key.
An encapsulated public key.
Serialized script, used inside transaction inputs and outputs.
A reference to a CScript: the Hash160 of its serialization.
uint160 Hash160(const T1 &in1)
Compute the 160-bit hash an object.
std::vector< uint8_t > ToByteVector(const T &in)
TxoutType Solver(const CScript &scriptPubKey, std::vector< std::vector< uint8_t > > &vSolutionsRet)
Parse a scriptPubKey and identify script type for standard scripts.