![]() |
Bitcoin Core
22.0.0
P2P Digital Currency
|
#include <attributes.h>#include <node/transaction.h>#include <policy/feerate.h>#include <primitives/transaction.h>#include <pubkey.h>#include <script/sign.h>#include <script/signingprovider.h>#include <optional>Go to the source code of this file.
Classes | |
| struct | PSBTInput |
| A structure for PSBTs which contain per-input information. More... | |
| struct | PSBTOutput |
| A structure for PSBTs which contains per output information. More... | |
| struct | PartiallySignedTransaction |
| A version of CTransaction with the PSBT format. More... | |
Enumerations | |
| enum | PSBTRole { PSBTRole::CREATOR, PSBTRole::UPDATER, PSBTRole::SIGNER, PSBTRole::FINALIZER, PSBTRole::EXTRACTOR } |
Functions | |
| std::string | PSBTRoleName (PSBTRole role) |
| PrecomputedTransactionData | PrecomputePSBTData (const PartiallySignedTransaction &psbt) |
| Compute a PrecomputedTransactionData object from a psbt. More... | |
| bool | PSBTInputSigned (const PSBTInput &input) |
| Checks whether a PSBTInput is already signed. More... | |
| bool | SignPSBTInput (const SigningProvider &provider, PartiallySignedTransaction &psbt, int index, const PrecomputedTransactionData *txdata, int sighash=SIGHASH_ALL, SignatureData *out_sigdata=nullptr) |
| Signs a PSBTInput, verifying that all provided data matches what is being signed. More... | |
| size_t | CountPSBTUnsignedInputs (const PartiallySignedTransaction &psbt) |
| Counts the unsigned inputs of a PSBT. More... | |
| void | UpdatePSBTOutput (const SigningProvider &provider, PartiallySignedTransaction &psbt, int index) |
| Updates a PSBTOutput with information from provider. More... | |
| bool | FinalizePSBT (PartiallySignedTransaction &psbtx) |
| Finalizes a PSBT if possible, combining partial signatures. More... | |
| bool | FinalizeAndExtractPSBT (PartiallySignedTransaction &psbtx, CMutableTransaction &result) |
| Finalizes a PSBT if possible, and extracts it to a CMutableTransaction if it could be finalized. More... | |
| TransactionError | CombinePSBTs (PartiallySignedTransaction &out, const std::vector< PartiallySignedTransaction > &psbtxs) |
| Combines PSBTs with the same underlying transaction, resulting in a single PSBT with all partial signatures from each input. More... | |
| bool | DecodeBase64PSBT (PartiallySignedTransaction &decoded_psbt, const std::string &base64_psbt, std::string &error) |
| Decode a base64ed PSBT into a PartiallySignedTransaction. More... | |
| bool | DecodeRawPSBT (PartiallySignedTransaction &decoded_psbt, const std::string &raw_psbt, std::string &error) |
| Decode a raw (binary blob) PSBT into a PartiallySignedTransaction. More... | |
Variables | |
| static constexpr uint8_t | PSBT_MAGIC_BYTES [5] = {'p', 's', 'b', 't', 0xff} |
| static constexpr uint8_t | PSBT_GLOBAL_UNSIGNED_TX = 0x00 |
| static constexpr uint8_t | PSBT_IN_NON_WITNESS_UTXO = 0x00 |
| static constexpr uint8_t | PSBT_IN_WITNESS_UTXO = 0x01 |
| static constexpr uint8_t | PSBT_IN_PARTIAL_SIG = 0x02 |
| static constexpr uint8_t | PSBT_IN_SIGHASH = 0x03 |
| static constexpr uint8_t | PSBT_IN_REDEEMSCRIPT = 0x04 |
| static constexpr uint8_t | PSBT_IN_WITNESSSCRIPT = 0x05 |
| static constexpr uint8_t | PSBT_IN_BIP32_DERIVATION = 0x06 |
| static constexpr uint8_t | PSBT_IN_SCRIPTSIG = 0x07 |
| static constexpr uint8_t | PSBT_IN_SCRIPTWITNESS = 0x08 |
| static constexpr uint8_t | PSBT_OUT_REDEEMSCRIPT = 0x00 |
| static constexpr uint8_t | PSBT_OUT_WITNESSSCRIPT = 0x01 |
| static constexpr uint8_t | PSBT_OUT_BIP32_DERIVATION = 0x02 |
| static constexpr uint8_t | PSBT_SEPARATOR = 0x00 |
| const std::streamsize | MAX_FILE_SIZE_PSBT = 100000000 |
|
strong |
| TransactionError CombinePSBTs | ( | PartiallySignedTransaction & | out, |
| const std::vector< PartiallySignedTransaction > & | psbtxs | ||
| ) |
Combines PSBTs with the same underlying transaction, resulting in a single PSBT with all partial signatures from each input.
| [out] | out | the combined PSBT, if successful |
| [in] | psbtxs | the PSBTs to combine |
Definition at line 349 of file psbt.cpp.
| size_t CountPSBTUnsignedInputs | ( | const PartiallySignedTransaction & | psbt | ) |
| bool DecodeBase64PSBT | ( | PartiallySignedTransaction & | decoded_psbt, |
| const std::string & | base64_psbt, | ||
| std::string & | error | ||
| ) |
Decode a base64ed PSBT into a PartiallySignedTransaction.
Definition at line 374 of file psbt.cpp.
| bool DecodeRawPSBT | ( | PartiallySignedTransaction & | decoded_psbt, |
| const std::string & | raw_psbt, | ||
| std::string & | error | ||
| ) |
Decode a raw (binary blob) PSBT into a PartiallySignedTransaction.
Definition at line 385 of file psbt.cpp.
| bool FinalizeAndExtractPSBT | ( | PartiallySignedTransaction & | psbtx, |
| CMutableTransaction & | result | ||
| ) |
Finalizes a PSBT if possible, and extracts it to a CMutableTransaction if it could be finalized.
| [in] | psbtx | PartiallySignedTransaction |
| [out] | result | CMutableTransaction representing the complete transaction, if successful |
Definition at line 333 of file psbt.cpp.
| bool FinalizePSBT | ( | PartiallySignedTransaction & | psbtx | ) |
Finalizes a PSBT if possible, combining partial signatures.
| [in,out] | psbtx | PartiallySignedTransaction to finalize return True if the PSBT is now complete, false otherwise |
Definition at line 318 of file psbt.cpp.
| PrecomputedTransactionData PrecomputePSBTData | ( | const PartiallySignedTransaction & | psbt | ) |
Compute a PrecomputedTransactionData object from a psbt.
Definition at line 233 of file psbt.cpp.
| bool PSBTInputSigned | ( | const PSBTInput & | input | ) |
| std::string PSBTRoleName | ( | PSBTRole | role | ) |
| bool SignPSBTInput | ( | const SigningProvider & | provider, |
| PartiallySignedTransaction & | psbt, | ||
| int | index, | ||
| const PrecomputedTransactionData * | txdata, | ||
| int | sighash = SIGHASH_ALL, |
||
| SignatureData * | out_sigdata = nullptr |
||
| ) |
Signs a PSBTInput, verifying that all provided data matches what is being signed.
txdata should be the output of PrecomputePSBTData (which can be shared across multiple SignPSBTInput calls). If it is nullptr, a dummy signature will be created.
Definition at line 250 of file psbt.cpp.
| void UpdatePSBTOutput | ( | const SigningProvider & | provider, |
| PartiallySignedTransaction & | psbt, | ||
| int | index | ||
| ) |
Updates a PSBTOutput with information from provider.
This fills in the redeem_script, witness_script, and hd_keypaths where possible.
Definition at line 213 of file psbt.cpp.
|
static |
1.8.14