![]() |
Bitcoin Core
26.1.0
P2P Digital Currency
|
#include <script/sign.h>#include <consensus/amount.h>#include <key.h>#include <policy/policy.h>#include <primitives/transaction.h>#include <script/keyorigin.h>#include <script/miniscript.h>#include <script/script.h>#include <script/signingprovider.h>#include <script/solver.h>#include <uint256.h>#include <util/translation.h>#include <util/vector.h>Go to the source code of this file.
Classes | |
| struct | Satisfier< Pk > |
| Context for solving a Miniscript. More... | |
| struct | WshSatisfier |
| Miniscript satisfier specific to P2WSH context. More... | |
| struct | TapSatisfier |
| Miniscript satisfier specific to Tapscript context. More... | |
Typedefs | |
| typedef std::vector< unsigned char > | valtype |
Functions | |
| static bool | GetCScript (const SigningProvider &provider, const SignatureData &sigdata, const CScriptID &scriptid, CScript &script) |
| static bool | GetPubKey (const SigningProvider &provider, const SignatureData &sigdata, const CKeyID &address, CPubKey &pubkey) |
| static bool | CreateSig (const BaseSignatureCreator &creator, SignatureData &sigdata, const SigningProvider &provider, std::vector< unsigned char > &sig_out, const CPubKey &pubkey, const CScript &scriptcode, SigVersion sigversion) |
| static bool | CreateTaprootScriptSig (const BaseSignatureCreator &creator, SignatureData &sigdata, const SigningProvider &provider, std::vector< unsigned char > &sig_out, const XOnlyPubKey &pubkey, const uint256 &leaf_hash, SigVersion sigversion) |
| template<typename M , typename K , typename V > | |
| miniscript::Availability | MsLookupHelper (const M &map, const K &key, V &value) |
| static bool | SignTaprootScript (const SigningProvider &provider, const BaseSignatureCreator &creator, SignatureData &sigdata, int leaf_version, Span< const unsigned char > script_bytes, std::vector< valtype > &result) |
| static bool | SignTaproot (const SigningProvider &provider, const BaseSignatureCreator &creator, const WitnessV1Taproot &output, SignatureData &sigdata, std::vector< valtype > &result) |
| static bool | SignStep (const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &scriptPubKey, std::vector< valtype > &ret, TxoutType &whichTypeRet, SigVersion sigversion, SignatureData &sigdata) |
| Sign scriptPubKey using signature made with creator. More... | |
| static CScript | PushAll (const std::vector< valtype > &values) |
| bool | ProduceSignature (const SigningProvider &provider, const BaseSignatureCreator &creator, const CScript &fromPubKey, SignatureData &sigdata) |
| Produce a script signature using a generic signature creator. More... | |
| SignatureData | DataFromTransaction (const CMutableTransaction &tx, unsigned int nIn, const CTxOut &txout) |
| Extract signature data from a transaction input, and insert it. More... | |
| void | UpdateInput (CTxIn &input, const SignatureData &data) |
| 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). More... | |
| bool | SignSignature (const SigningProvider &provider, const CTransaction &txFrom, CMutableTransaction &txTo, unsigned int nIn, int nHashType, SignatureData &sig_data) |
| bool | IsSegWitOutput (const SigningProvider &provider, const CScript &script) |
| Check whether a scriptPubKey is known to be segwit. More... | |
| bool | SignTransaction (CMutableTransaction &mtx, const SigningProvider *keystore, const std::map< COutPoint, Coin > &coins, int nHashType, std::map< int, bilingual_str > &input_errors) |
| Sign the CMutableTransaction. More... | |
Variables | |
| const BaseSignatureChecker & | DUMMY_CHECKER = DummySignatureChecker() |
| A signature checker that accepts all signatures. More... | |
| const BaseSignatureCreator & | DUMMY_SIGNATURE_CREATOR = DummySignatureCreator(32, 32) |
| A signature creator that just produces 71-byte empty signatures. More... | |
| const BaseSignatureCreator & | DUMMY_MAXIMUM_SIGNATURE_CREATOR = DummySignatureCreator(33, 32) |
| A signature creator that just produces 72-byte empty signatures. More... | |
|
static |
|
static |
| SignatureData DataFromTransaction | ( | const CMutableTransaction & | tx, |
| unsigned int | nIn, | ||
| const CTxOut & | txout | ||
| ) |
|
static |
|
static |
| bool IsSegWitOutput | ( | const SigningProvider & | provider, |
| const CScript & | script | ||
| ) |
| miniscript::Availability MsLookupHelper | ( | const M & | map, |
| const K & | key, | ||
| V & | value | ||
| ) |
| bool ProduceSignature | ( | const SigningProvider & | provider, |
| const BaseSignatureCreator & | creator, | ||
| const CScript & | scriptPubKey, | ||
| SignatureData & | sigdata | ||
| ) |
| 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).
| provider | Utility containing the information necessary to solve a script. |
| fromPubKey | The script to produce a satisfaction for. |
| txTo | The spending transaction. |
| nIn | The index of the input in txTo referring the output being spent. |
| amount | The value of the output being spent. |
| nHashType | Signature hash type. |
| sig_data | Additional data provided to solve a script. Filled with the resulting satisfying script and whether the satisfaction is complete. |
fromPubKey. Definition at line 694 of file sign.cpp.
| bool SignSignature | ( | const SigningProvider & | provider, |
| const CTransaction & | txFrom, | ||
| CMutableTransaction & | txTo, | ||
| unsigned int | nIn, | ||
| int | nHashType, | ||
| SignatureData & | sig_data | ||
| ) |
|
static |
Sign scriptPubKey using signature made with creator.
Signatures are returned in scriptSigRet (or returns false if scriptPubKey can't be signed), unless whichTypeRet is TxoutType::SCRIPTHASH, in which case scriptSigRet is the redemption script. Returns false if scriptPubKey could not be completely satisfied.
Definition at line 401 of file sign.cpp.
|
static |
|
static |
| bool SignTransaction | ( | CMutableTransaction & | mtx, |
| const SigningProvider * | keystore, | ||
| const std::map< COutPoint, Coin > & | coins, | ||
| int | nHashType, | ||
| std::map< int, bilingual_str > & | input_errors | ||
| ) |
Sign the CMutableTransaction.
Definition at line 784 of file sign.cpp.
| void UpdateInput | ( | CTxIn & | input, |
| const SignatureData & | data | ||
| ) |
| const BaseSignatureChecker& DUMMY_CHECKER = DummySignatureChecker() |
| const BaseSignatureCreator& DUMMY_MAXIMUM_SIGNATURE_CREATOR = DummySignatureCreator(33, 32) |
| const BaseSignatureCreator& DUMMY_SIGNATURE_CREATOR = DummySignatureCreator(32, 32) |
1.8.14