6 #ifndef BITCOIN_SCRIPT_STANDARD_H
7 #define BITCOIN_SCRIPT_STANDARD_H
12 #include <boost/variant.hpp>
23 template<
typename HashType>
38 const unsigned char*
begin()
const
48 const unsigned char*
end()
const
53 operator std::vector<unsigned char>()
const
55 return std::vector<unsigned char>{
m_hash.begin(),
m_hash.end()};
65 return m_hash == other.m_hash;
70 return !(
m_hash == other.m_hash);
73 bool operator<(const BaseHash<HashType>& other)
const noexcept
75 return m_hash < other.m_hash;
84 const unsigned char*
data()
const {
return m_hash.data(); }
214 typedef boost::variant<CNoDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown>
CTxDestination;
268 #endif // BITCOIN_SCRIPT_STANDARD_H
WitnessV0KeyHash(const uint160 &hash)
bool ExtractDestination(const CScript &scriptPubKey, CTxDestination &addressRet)
Parse a standard scriptPubKey for the destination address.
unsigned char program[40]
static const unsigned int MAX_OP_RETURN_RELAY
Default setting for nMaxDatacarrierBytes.
static const bool DEFAULT_ACCEPT_DATACARRIER
bool IsValidDestination(const CTxDestination &dest)
Check whether a CTxDestination is a CNoDestination.
bool fAcceptDatacarrier
A data carrying output is an unspendable output containing data.
CScript GetScriptForRawPubKey(const CPubKey &pubKey)
Generate a P2PK script for the given pubkey.
friend bool operator==(const CNoDestination &a, const CNoDestination &b)
unspendable OP_RETURN script that carries data
const unsigned char * end() const
std::string ToString() const
friend bool operator<(const CNoDestination &a, const CNoDestination &b)
std::string GetTxnOutputType(TxoutType t)
Get the name of a TxoutType as a string.
CTxDestination subtype to encode any future Witness version.
An encapsulated public key.
bool operator!=(const BaseHash< HashType > &other) const noexcept
PKHash(const uint160 &hash)
CScript GetScriptForDestination(const CTxDestination &dest)
Generate a Bitcoin scriptPubKey for the given CTxDestination.
CScriptID(const uint160 &in)
WitnessV0ScriptHash(const uint256 &hash)
const unsigned char * begin() const
bool ExtractDestinations(const CScript &scriptPubKey, TxoutType &typeRet, std::vector< CTxDestination > &addressRet, int &nRequiredRet)
Parse a standard scriptPubKey with one or more destination addresses.
friend bool operator==(const WitnessUnknown &w1, const WitnessUnknown &w2)
Serialized script, used inside transaction inputs and outputs.
A reference to a CKey: the Hash160 of its serialized public key.
TxoutType Solver(const CScript &scriptPubKey, std::vector< std::vector< unsigned char >> &vSolutionsRet)
Parse a scriptPubKey and identify script type for standard scripts.
Only for Witness versions not already defined above.
friend bool operator<(const WitnessUnknown &w1, const WitnessUnknown &w2)
A reference to a CScript: the Hash160 of its serialization (see script.h)
CScript GetScriptForMultisig(int nRequired, const std::vector< CPubKey > &keys)
Generate a multisig script.
BaseHash(const HashType &in)
bool operator==(const BaseHash< HashType > &other) const noexcept
boost::variant< CNoDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown > CTxDestination
A txout script template with a specific destination.
static const unsigned int MANDATORY_SCRIPT_VERIFY_FLAGS
Mandatory script verification flags that all new blocks must comply with for them to be valid...
unsigned nMaxDatacarrierBytes
Maximum size of TxoutType::NULL_DATA scripts that this node considers standard.
CKeyID ToKeyID(const PKHash &key_hash)
ScriptHash(const uint160 &hash)
const unsigned char * data() const