Bitcoin ABC 0.26.3
P2P Digital Currency
|
#include <node/transaction.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 class | PSBTRole { CREATOR , UPDATER , SIGNER , FINALIZER , EXTRACTOR } |
Functions | |
std::string | PSBTRoleName (PSBTRole role) |
bool | PSBTInputSigned (const PSBTInput &input) |
Checks whether a PSBTInput is already signed. | |
bool | SignPSBTInput (const SigningProvider &provider, PartiallySignedTransaction &psbt, int index, SigHashType sighash=SigHashType(), SignatureData *out_sigdata=nullptr, bool use_dummy=false) |
Signs a PSBTInput, verifying that all provided data matches what is being signed. | |
void | UpdatePSBTOutput (const SigningProvider &provider, PartiallySignedTransaction &psbt, int index) |
Updates a PSBTOutput with information from provider. | |
bool | FinalizePSBT (PartiallySignedTransaction &psbtx) |
Finalizes a PSBT if possible, combining partial signatures. | |
bool | FinalizeAndExtractPSBT (PartiallySignedTransaction &psbtx, CMutableTransaction &result) |
Finalizes a PSBT if possible, and extracts it to a CMutableTransaction if it could be finalized. | |
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. | |
bool | DecodeBase64PSBT (PartiallySignedTransaction &decoded_psbt, const std::string &base64_psbt, std::string &error) |
Decode a base64ed PSBT into a PartiallySignedTransaction. | |
bool | DecodeRawPSBT (PartiallySignedTransaction &decoded_psbt, Span< const std::byte > raw_psbt, std::string &error) |
Decode a raw (binary blob) PSBT into a PartiallySignedTransaction. | |
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_UTXO = 0x00 |
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_BIP32_DERIVATION = 0x06 |
static constexpr uint8_t | PSBT_IN_SCRIPTSIG = 0x07 |
static constexpr uint8_t | PSBT_OUT_REDEEMSCRIPT = 0x00 |
static constexpr uint8_t | PSBT_OUT_BIP32_DERIVATION = 0x02 |
static constexpr uint8_t | PSBT_SEPARATOR = 0x00 |
const std::streamsize | MAX_FILE_SIZE_PSBT = 100000000 |
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 264 of file psbt.cpp.
bool DecodeBase64PSBT | ( | PartiallySignedTransaction & | decoded_psbt, |
const std::string & | base64_psbt, | ||
std::string & | error | ||
) |
Decode a base64ed PSBT into a PartiallySignedTransaction.
Definition at line 296 of file psbt.cpp.
bool DecodeRawPSBT | ( | PartiallySignedTransaction & | decoded_psbt, |
Span< const std::byte > | raw_psbt, | ||
std::string & | error | ||
) |
Decode a raw (binary blob) PSBT into a PartiallySignedTransaction.
Definition at line 306 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 247 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 232 of file psbt.cpp.
std::string PSBTRoleName | ( | PSBTRole | role | ) |
bool SignPSBTInput | ( | const SigningProvider & | provider, |
PartiallySignedTransaction & | psbt, | ||
int | index, | ||
SigHashType | sighash = SigHashType() , |
||
SignatureData * | out_sigdata = nullptr , |
||
bool | use_dummy = false |
||
) |
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 164 of file psbt.cpp.
const std::streamsize MAX_FILE_SIZE_PSBT = 100000000 |