Bitcoin Core 28.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
sign.h File Reference
#include <attributes.h>
#include <coins.h>
#include <hash.h>
#include <pubkey.h>
#include <script/interpreter.h>
#include <script/keyorigin.h>
#include <script/signingprovider.h>
#include <uint256.h>
Include dependency graph for sign.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  BaseSignatureCreator
 Interface for signature creators. More...
 
class  MutableTransactionSignatureCreator
 A signature creator for transactions. More...
 
struct  SignatureData
 

Typedefs

typedef std::pair< CPubKey, std::vector< unsigned char > > SigPair
 

Functions

bool ProduceSignature (const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &scriptPubKey, SignatureData &sigdata)
 Produce a script signature using a generic signature creator.
 
bool SignSignature (const SigningProvider &provider, const CScript &fromPubKey, CMutableTransaction &txTo, unsigned int nIn, const CAmount &amount, int nHashType, SignatureData &sig_data)
 Produce a satisfying script (scriptSig or witness).
 
bool SignSignature (const SigningProvider &provider, const CTransaction &txFrom, CMutableTransaction &txTo, unsigned int nIn, int nHashType, SignatureData &sig_data)
 
SignatureData DataFromTransaction (const CMutableTransaction &tx, unsigned int nIn, const CTxOut &txout)
 Extract signature data from a transaction input, and insert it.
 
void UpdateInput (CTxIn &input, const SignatureData &data)
 
bool IsSegWitOutput (const SigningProvider &provider, const CScript &script)
 Check whether a scriptPubKey is known to be segwit.
 
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.
 

Variables

const BaseSignatureCheckerDUMMY_CHECKER
 A signature checker that accepts all signatures.
 
const BaseSignatureCreatorDUMMY_SIGNATURE_CREATOR
 A signature creator that just produces 71-byte empty signatures.
 
const BaseSignatureCreatorDUMMY_MAXIMUM_SIGNATURE_CREATOR
 A signature creator that just produces 72-byte empty signatures.
 

Typedef Documentation

◆ SigPair

typedef std::pair<CPubKey, std::vector<unsigned char> > SigPair

Definition at line 63 of file sign.h.

Function Documentation

◆ DataFromTransaction()

SignatureData DataFromTransaction ( const CMutableTransaction & tx,
unsigned int nIn,
const CTxOut & txout )

Extract signature data from a transaction input, and insert it.

Definition at line 610 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsSegWitOutput()

bool IsSegWitOutput ( const SigningProvider & provider,
const CScript & script )

Check whether a scriptPubKey is known to be segwit.

Definition at line 768 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProduceSignature()

bool ProduceSignature ( const SigningProvider & provider,
const BaseSignatureCreator & creator,
const CScript & scriptPubKey,
SignatureData & sigdata )

Produce a script signature using a generic signature creator.

Definition at line 502 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SignSignature() [1/2]

bool SignSignature ( const SigningProvider & provider,
const CScript & fromPubKey,
CMutableTransaction & txTo,
unsigned int nIn,
const CAmount & amount,
int nHashType,
SignatureData & sig_data )

Produce a satisfying script (scriptSig or witness).

Parameters
providerUtility containing the information necessary to solve a script.
fromPubKeyThe script to produce a satisfaction for.
txToThe spending transaction.
nInThe index of the input in txTo referring the output being spent.
amountThe value of the output being spent.
nHashTypeSignature hash type.
sig_dataAdditional data provided to solve a script. Filled with the resulting satisfying script and whether the satisfaction is complete.
Returns
True if the produced script is entirely satisfying fromPubKey.

Definition at line 697 of file sign.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SignSignature() [2/2]

bool SignSignature ( const SigningProvider & provider,
const CTransaction & txFrom,
CMutableTransaction & txTo,
unsigned int nIn,
int nHashType,
SignatureData & sig_data )

Definition at line 708 of file sign.cpp.

Here is the call graph for this function:

◆ SignTransaction()

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.

Definition at line 787 of file sign.cpp.

Here is the call graph for this function:

◆ UpdateInput()

void UpdateInput ( CTxIn & input,
const SignatureData & data )

Definition at line 675 of file sign.cpp.

Here is the caller graph for this function:

Variable Documentation

◆ DUMMY_CHECKER

const BaseSignatureChecker& DUMMY_CHECKER
extern

A signature checker that accepts all signatures.

Definition at line 731 of file sign.cpp.

◆ DUMMY_MAXIMUM_SIGNATURE_CREATOR

const BaseSignatureCreator& DUMMY_MAXIMUM_SIGNATURE_CREATOR
extern

A signature creator that just produces 72-byte empty signatures.

Definition at line 766 of file sign.cpp.

◆ DUMMY_SIGNATURE_CREATOR

const BaseSignatureCreator& DUMMY_SIGNATURE_CREATOR
extern

A signature creator that just produces 71-byte empty signatures.

Definition at line 765 of file sign.cpp.