Changeset View
Changeset View
Standalone View
Standalone View
src/psbt.h
Show First 20 Lines • Show All 483 Lines • ▼ Show 20 Lines | |||||
enum class PSBTRole { | enum class PSBTRole { | ||||
UPDATER, | UPDATER, | ||||
SIGNER, | SIGNER, | ||||
FINALIZER, | FINALIZER, | ||||
EXTRACTOR, | EXTRACTOR, | ||||
}; | }; | ||||
/** | |||||
* Holds an analysis of one input from a PSBT | |||||
*/ | |||||
struct PSBTInputAnalysis { | struct PSBTInputAnalysis { | ||||
//! Whether we have UTXO information for this input | |||||
bool has_utxo; | bool has_utxo; | ||||
//! Whether the input has all required information including signatures | |||||
bool is_final; | bool is_final; | ||||
//! Which of the BIP 174 roles needs to handle this input next | |||||
PSBTRole next; | PSBTRole next; | ||||
//! Pubkeys whose BIP32 derivation path is missing | |||||
std::vector<CKeyID> missing_pubkeys; | std::vector<CKeyID> missing_pubkeys; | ||||
//! Pubkeys whose signatures are missing | |||||
std::vector<CKeyID> missing_sigs; | std::vector<CKeyID> missing_sigs; | ||||
//! Hash160 of redeem script, if missing | |||||
uint160 missing_redeem_script; | uint160 missing_redeem_script; | ||||
}; | }; | ||||
/** | |||||
* Holds the results of AnalyzePSBT (miscellaneous information about a PSBT) | |||||
*/ | |||||
struct PSBTAnalysis { | struct PSBTAnalysis { | ||||
//! Estimated weight of the transaction | |||||
Optional<size_t> estimated_vsize; | Optional<size_t> estimated_vsize; | ||||
//! Estimated feerate (fee / weight) of the transaction | |||||
Optional<CFeeRate> estimated_feerate; | Optional<CFeeRate> estimated_feerate; | ||||
//! Amount of fee being paid by the transaction | |||||
Optional<Amount> fee; | Optional<Amount> fee; | ||||
//! More information about the individual inputs of the transaction | |||||
std::vector<PSBTInputAnalysis> inputs; | std::vector<PSBTInputAnalysis> inputs; | ||||
//! Which of the BIP 174 roles needs to handle the transaction next | |||||
PSBTRole next; | PSBTRole next; | ||||
}; | }; | ||||
std::string PSBTRoleName(PSBTRole role); | std::string PSBTRoleName(PSBTRole role); | ||||
/** Checks whether a PSBTInput is already signed. */ | /** Checks whether a PSBTInput is already signed. */ | ||||
bool PSBTInputSigned(const PSBTInput &input); | bool PSBTInputSigned(const PSBTInput &input); | ||||
▲ Show 20 Lines • Show All 61 Lines • Show Last 20 Lines |