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);
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;
std::string ToString() const
const unsigned char * data() const
const unsigned char * begin() const
bool operator==(const BaseHash< HashType > &other) const noexcept
bool operator!=(const BaseHash< HashType > &other) const noexcept
BaseHash(const HashType &in)
const unsigned char * end() const
bool operator<(const BaseHash< HashType > &other) const noexcept
A reference to a CKey: the Hash160 of its serialized public key.
friend bool operator<(const CNoDestination &a, const CNoDestination &b)
friend bool operator==(const CNoDestination &a, const CNoDestination &b)
An encapsulated public key.
Serialized script, used inside transaction inputs and outputs.
A reference to a CScript: the Hash160 of its serialization (see script.h)
CScriptID(const uint160 &in)
static const unsigned int MANDATORY_SCRIPT_VERIFY_FLAGS
Mandatory script verification flags that all new blocks must comply with for them to be valid.
static const unsigned int MAX_OP_RETURN_RELAY
Default setting for nMaxDatacarrierBytes.
TxoutType Solver(const CScript &scriptPubKey, std::vector< std::vector< unsigned char >> &vSolutionsRet)
Parse a scriptPubKey and identify script type for standard scripts.
bool fAcceptDatacarrier
A data carrying output is an unspendable output containing data.
CScript GetScriptForMultisig(int nRequired, const std::vector< CPubKey > &keys)
Generate a multisig script.
CScript GetScriptForRawPubKey(const CPubKey &pubkey)
Generate a P2PK script for the given pubkey.
bool ExtractDestination(const CScript &scriptPubKey, CTxDestination &addressRet)
Parse a standard scriptPubKey for the destination address.
unsigned nMaxDatacarrierBytes
Maximum size of TxoutType::NULL_DATA scripts that this node considers standard.
std::string GetTxnOutputType(TxoutType t)
Get the name of a TxoutType as a string.
@ WITNESS_UNKNOWN
Only for Witness versions not already defined above.
@ NULL_DATA
unspendable OP_RETURN script that carries data
static const bool DEFAULT_ACCEPT_DATACARRIER
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.
boost::variant< CNoDestination, PKHash, ScriptHash, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown > CTxDestination
A txout script template with a specific destination.
CKeyID ToKeyID(const PKHash &key_hash)
PKHash(const uint160 &hash)
ScriptHash(const WitnessV0KeyHash &hash)=delete
ScriptHash(const uint160 &hash)
ScriptHash(const PKHash &hash)=delete
CTxDestination subtype to encode any future Witness version.
friend bool operator<(const WitnessUnknown &w1, const WitnessUnknown &w2)
unsigned char program[40]
friend bool operator==(const WitnessUnknown &w1, const WitnessUnknown &w2)
WitnessV0KeyHash(const uint160 &hash)
WitnessV0ScriptHash(const uint256 &hash)