diff --git a/src/psbt.h b/src/psbt.h --- a/src/psbt.h +++ b/src/psbt.h @@ -484,21 +484,38 @@ enum class PSBTRole { UPDATER, SIGNER, FINALIZER, EXTRACTOR }; +/** + * Holds an analysis of one input from a PSBT + */ struct PSBTInputAnalysis { + //! Whether we have UTXO information for this input bool has_utxo; + //! Whether the input has all required information including signatures bool is_final; + //! Which of the BIP 174 roles needs to handle this input next PSBTRole next; + //! Pubkeys whose BIP32 derivation path is missing std::vector missing_pubkeys; + //! Pubkeys whose signatures are missing std::vector missing_sigs; + //! Hash160 of redeem script, if missing uint160 missing_redeem_script; }; +/** + * Holds the results of AnalyzePSBT (miscellaneous information about a PSBT) + */ struct PSBTAnalysis { + //! Estimated weight of the transaction Optional estimated_vsize; + //! Estimated feerate (fee / weight) of the transaction Optional estimated_feerate; + //! Amount of fee being paid by the transaction Optional fee; + //! More information about the individual inputs of the transaction std::vector inputs; + //! Which of the BIP 174 roles needs to handle the transaction next PSBTRole next; };