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