6 #ifndef BITCOIN_SCRIPT_SIGN_H 7 #define BITCOIN_SCRIPT_SIGN_H 63 typedef std::pair<CPubKey, std::vector<unsigned char>>
SigPair;
110 #endif // BITCOIN_SCRIPT_SIGN_H
std::map< std::vector< uint8_t >, std::vector< uint8_t > > ripemd160_preimages
Mapping from a RIPEMD160 hash to its preimage provided to solve a Script.
bool IsSegWitOutput(const SigningProvider &provider, const CScript &script)
Check whether a scriptPubKey is known to be segwit.
std::map< XOnlyPubKey, std::pair< std::set< uint256 >, KeyOriginInfo > > taproot_misc_pubkeys
Miscellaneous Taproot pubkeys involved in this input along with their leaf script hashes and key orig...
CScript witness_script
The witnessScript (if any) for the input. witnessScripts are used in P2WSH outputs.
virtual bool CreateSig(const SigningProvider &provider, std::vector< unsigned char > &vchSig, const CKeyID &keyid, const CScript &scriptCode, SigVersion sigversion) const =0
Create a singular (non-script) signature.
const MutableTransactionSignatureChecker checker
const CMutableTransaction & m_txto
SignatureData DataFromTransaction(const CMutableTransaction &tx, unsigned int nIn, const CTxOut &txout)
Extract signature data from a transaction input, and insert it.
CScript scriptSig
The scriptSig of an input. Contains complete signatures or the traditional partial signatures format...
std::vector< CKeyID > missing_sigs
KeyIDs of pubkeys for signatures which could not be found.
const BaseSignatureCreator & DUMMY_SIGNATURE_CREATOR
A signature creator that just produces 71-byte empty signatures.
Interface for signature creators.
std::vector< CKeyID > missing_pubkeys
KeyIDs of pubkeys which could not be found.
const BaseSignatureChecker & Checker() const override
std::map< std::vector< uint8_t >, std::vector< uint8_t > > sha256_preimages
Mapping from a SHA256 hash to its preimage provided to solve a Script.
std::map< CKeyID, std::pair< CPubKey, KeyOriginInfo > > misc_pubkeys
MutableTransactionSignatureCreator(const CMutableTransaction &tx LIFETIMEBOUND, unsigned int input_idx, const CAmount &amount, int hash_type)
A signature creator for transactions.
uint256 missing_witness_script
SHA256 of the missing witnessScript (if any)
std::map< std::pair< XOnlyPubKey, uint256 >, std::vector< unsigned char > > taproot_script_sigs
Schnorr signature for key path spending.
bool CreateSig(const SigningProvider &provider, std::vector< unsigned char > &vchSig, const CKeyID &keyid, const CScript &scriptCode, SigVersion sigversion) const override
Create a singular (non-script) signature.
bool ProduceSignature(const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &scriptPubKey, SignatureData &sigdata)
Produce a script signature using a generic signature creator.
int64_t CAmount
Amount in satoshis (Can be negative)
SignatureData(const CScript &script)
virtual ~BaseSignatureCreator()=default
void UpdateInput(CTxIn &input, const SignatureData &data)
uint160 missing_redeem_script
ScriptID of the missing redeemScript (if any)
std::map< CKeyID, XOnlyPubKey > tap_pubkeys
Misc Taproot pubkeys involved in this input, by hash. (Equivalent of misc_pubkeys but for Taproot...
An input of a transaction.
virtual bool CreateSchnorrSig(const SigningProvider &provider, std::vector< unsigned char > &sig, const XOnlyPubKey &pubkey, const uint256 *leaf_hash, const uint256 *merkle_root, SigVersion sigversion) const =0
std::optional< TaprootBuilder > tr_builder
Taproot tree used to build tr_spenddata.
std::pair< CPubKey, std::vector< unsigned char > > SigPair
An output of a transaction.
void MergeSignatureData(SignatureData sigdata)
const BaseSignatureCreator & DUMMY_MAXIMUM_SIGNATURE_CREATOR
A signature creator that just produces 72-byte empty signatures.
CScriptWitness scriptWitness
The scriptWitness of an input. Contains complete signatures or the traditional partial signatures for...
std::map< std::vector< uint8_t >, std::vector< uint8_t > > hash256_preimages
Mapping from a HASH256 hash to its preimage provided to solve a Script.
const BaseSignatureChecker & DUMMY_CHECKER
A signature checker that accepts all signatures.
bool SignTransaction(CMutableTransaction &mtx, const SigningProvider *provider, const std::map< COutPoint, Coin > &coins, int sighash, std::map< int, bilingual_str > &input_errors)
Sign the CMutableTransaction.
std::map< std::vector< uint8_t >, std::vector< uint8_t > > hash160_preimages
Mapping from a HASH160 hash to its preimage provided to solve a Script.
An interface to be implemented by keystores that support signing.
Serialized script, used inside transaction inputs and outputs.
bool CreateSchnorrSig(const SigningProvider &provider, std::vector< unsigned char > &sig, const XOnlyPubKey &pubkey, const uint256 *leaf_hash, const uint256 *merkle_root, SigVersion sigversion) const override
A reference to a CKey: the Hash160 of its serialized public key.
A mutable version of CTransaction.
An encapsulated private key.
The basic transaction that is broadcasted on the network and contained in blocks. ...
const PrecomputedTransactionData * m_txdata
std::vector< unsigned char > taproot_key_path_sig
bool complete
Stores whether the scriptSig and scriptWitness are complete.
CScript redeem_script
The redeemScript (if any) for the input.
bool witness
Stores whether the input this SigData corresponds to is a witness input.
std::map< CKeyID, SigPair > signatures
BIP 174 style partial signatures for the input. May contain all signatures necessary for producing a ...
virtual const BaseSignatureChecker & Checker() const =0
TaprootSpendData tr_spenddata
Taproot spending data.