[#PSBTInput]
= PSBTInput
:mrdocs:

A structure for PSBTs which contain per&hyphen;input information

== Synopsis

Declared in `&lt;psbt&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class PSBTInput;
----

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:PSBTInput/2constructor-08.adoc[`PSBTInput`]         [.small]#[constructor]#
| Constructors
| xref:PSBTInput/FillSignatureData.adoc[`FillSignatureData`] 
| Populate signature data from this input&apos;s fields&period;
| xref:PSBTInput/FromSignatureData.adoc[`FromSignatureData`] 
| Copy relevant fields from the given signature data into this input&period;
| xref:PSBTInput/GetOutPoint.adoc[`GetOutPoint`] 
| Return the outpoint this input spends&period;
| xref:PSBTInput/GetUTXO.adoc[`GetUTXO`] 
| Retrieves the UTXO for this input
| xref:PSBTInput/GetVersion.adoc[`GetVersion`] 
| Return the PSBT version of this input&period;
| xref:PSBTInput/HasSignatures.adoc[`HasSignatures`] 
| Report whether this input carries any signatures&period;
| xref:PSBTInput/Merge.adoc[`Merge`] 
| Merge another input&apos;s fields into this one&period;
| xref:PSBTInput/Serialize.adoc[`Serialize`] 
| Serialize this input to a stream&period;
| xref:PSBTInput/Unserialize.adoc[`Unserialize`] 
| Deserialize this input from a stream&period;
| xref:PSBTInput/operator_eq.adoc[`operator&equals;&equals;`] 
| Compare two inputs for equality field by field&period;
|===


== Data Members

[cols="1,4"]
|===
| Name| Description
| xref:PSBTInput/final_script_sig.adoc[`final&lowbar;script&lowbar;sig`] 
| The finalized scriptSig for this input&period;
| xref:PSBTInput/final_script_witness.adoc[`final&lowbar;script&lowbar;witness`] 
| The finalized script witness for this input&period;
| xref:PSBTInput/hash160_preimages.adoc[`hash160&lowbar;preimages`] 
| HASH160 preimages keyed by their hash&period;
| xref:PSBTInput/hash256_preimages.adoc[`hash256&lowbar;preimages`] 
| HASH256 preimages keyed by their hash&period;
| xref:PSBTInput/hd_keypaths.adoc[`hd&lowbar;keypaths`] 
| BIP32 derivation paths keyed by public key&period;
| xref:PSBTInput/height_locktime.adoc[`height&lowbar;locktime`] 
| The required height&hyphen;based locktime for this input (PSBTv2)&period;
| xref:PSBTInput/m_musig2_partial_sigs.adoc[`m&lowbar;musig2&lowbar;partial&lowbar;sigs`] 
| MuSig2 partial signatures&semi; keyed by aggregate pubkey and script leaf hash, valued by participant pubkey to partial signature&period;
| xref:PSBTInput/m_musig2_participants.adoc[`m&lowbar;musig2&lowbar;participants`] 
| MuSig2 participant public keys keyed by aggregate public key&period;
| xref:PSBTInput/m_musig2_pubnonces.adoc[`m&lowbar;musig2&lowbar;pubnonces`] 
| MuSig2 public nonces&semi; keyed by aggregate pubkey and script leaf hash, valued by participant pubkey to pubnonce&period;
| xref:PSBTInput/m_proprietary.adoc[`m&lowbar;proprietary`] 
| Proprietary key&hyphen;value records&period;
| xref:PSBTInput/m_tap_bip32_paths.adoc[`m&lowbar;tap&lowbar;bip32&lowbar;paths`] 
| Taproot BIP32 derivation paths keyed by x&hyphen;only public key&period;
| xref:PSBTInput/m_tap_internal_key.adoc[`m&lowbar;tap&lowbar;internal&lowbar;key`] 
| Taproot internal key&period;
| xref:PSBTInput/m_tap_key_sig.adoc[`m&lowbar;tap&lowbar;key&lowbar;sig`] 
| Taproot key&hyphen;path signature&period;
| xref:PSBTInput/m_tap_merkle_root.adoc[`m&lowbar;tap&lowbar;merkle&lowbar;root`] 
| Taproot merkle root&period;
| xref:PSBTInput/m_tap_script_sigs.adoc[`m&lowbar;tap&lowbar;script&lowbar;sigs`] 
| Taproot script&hyphen;path signatures keyed by output key and leaf hash&period;
| xref:PSBTInput/m_tap_scripts.adoc[`m&lowbar;tap&lowbar;scripts`] 
| Taproot leaf scripts keyed by control block and leaf version&period;
| xref:PSBTInput/non_witness_utxo.adoc[`non&lowbar;witness&lowbar;utxo`] 
| The full previous transaction for a non&hyphen;witness UTXO&period;
| xref:PSBTInput/partial_sigs.adoc[`partial&lowbar;sigs`] 
| Partial signatures keyed by key id&period;
| xref:PSBTInput/prev_out.adoc[`prev&lowbar;out`] 
| The previous output index spent by this input (PSBTv2)&period;
| xref:PSBTInput/prev_txid.adoc[`prev&lowbar;txid`] 
| The previous transaction id spent by this input (PSBTv2)&period;
| xref:PSBTInput/redeem_script.adoc[`redeem&lowbar;script`] 
| The redeem script for a P2SH input&period;
| xref:PSBTInput/ripemd160_preimages.adoc[`ripemd160&lowbar;preimages`] 
| RIPEMD160 preimages keyed by their hash&period;
| xref:PSBTInput/sequence.adoc[`sequence`] 
| The input sequence number (PSBTv2)&period;
| xref:PSBTInput/sha256_preimages.adoc[`sha256&lowbar;preimages`] 
| SHA256 preimages keyed by their hash&period;
| xref:PSBTInput/sighash_type.adoc[`sighash&lowbar;type`] 
| The sighash type requested for this input&period;
| xref:PSBTInput/time_locktime.adoc[`time&lowbar;locktime`] 
| The required time&hyphen;based locktime for this input (PSBTv2)&period;
| xref:PSBTInput/unknown.adoc[`unknown`] 
| Unknown key&hyphen;value pairs preserved across round&hyphen;trips&period;
| xref:PSBTInput/witness_script.adoc[`witness&lowbar;script`] 
| The witness script for a P2WSH input&period;
| xref:PSBTInput/witness_utxo.adoc[`witness&lowbar;utxo`] 
| The spent output for a witness UTXO&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:PSBTInputSigned.adoc[`PSBTInputSigned`]
| Checks whether a PSBTInput is already signed by checking for non&hyphen;null finalized fields&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
