pub struct Input {
Show 21 fields pub non_witness_utxo: Option<Transaction>, pub witness_utxo: Option<TxOut>, pub partial_sigs: BTreeMap<PublicKey, EcdsaSig>, pub sighash_type: Option<PsbtSighashType>, pub redeem_script: Option<Script>, pub witness_script: Option<Script>, pub bip32_derivation: BTreeMap<PublicKey, KeySource>, pub final_script_sig: Option<Script>, pub final_script_witness: Option<Witness>, pub ripemd160_preimages: BTreeMap<Hash, Vec<u8>>, pub sha256_preimages: BTreeMap<Hash, Vec<u8>>, pub hash160_preimages: BTreeMap<Hash, Vec<u8>>, pub hash256_preimages: BTreeMap<Hash, Vec<u8>>, pub tap_key_sig: Option<SchnorrSig>, pub tap_script_sigs: BTreeMap<(XOnlyPublicKey, TapLeafHash), SchnorrSig>, pub tap_scripts: BTreeMap<ControlBlock, (Script, LeafVersion)>, pub tap_key_origins: BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, KeySource)>, pub tap_internal_key: Option<XOnlyPublicKey>, pub tap_merkle_root: Option<TapBranchHash>, pub proprietary: BTreeMap<ProprietaryKey, Vec<u8>>, pub unknown: BTreeMap<Key, Vec<u8>>,
}
Expand description

A key-value map for an input of the corresponding index in the unsigned transaction.

Fields

non_witness_utxo: Option<Transaction>

The non-witness transaction this input spends from. Should only be std::option::Option::Some for inputs which spend non-segwit outputs or if it is unknown whether an input spends a segwit output.

witness_utxo: Option<TxOut>

The transaction output this input spends from. Should only be std::option::Option::Some for inputs which spend segwit outputs, including P2SH embedded ones.

partial_sigs: BTreeMap<PublicKey, EcdsaSig>

A map from public keys to their corresponding signature as would be pushed to the stack from a scriptSig or witness for a non-taproot inputs.

sighash_type: Option<PsbtSighashType>

The sighash type to be used for this input. Signatures for this input must use the sighash type.

redeem_script: Option<Script>

The redeem script for this input.

witness_script: Option<Script>

The witness script for this input.

bip32_derivation: BTreeMap<PublicKey, KeySource>

A map from public keys needed to sign this input to their corresponding master key fingerprints and derivation paths.

final_script_sig: Option<Script>

The finalized, fully-constructed scriptSig with signatures and any other scripts necessary for this input to pass validation.

final_script_witness: Option<Witness>

The finalized, fully-constructed scriptWitness with signatures and any other scripts necessary for this input to pass validation.

ripemd160_preimages: BTreeMap<Hash, Vec<u8>>

TODO: Proof of reserves commitment RIPEMD160 hash to preimage map.

sha256_preimages: BTreeMap<Hash, Vec<u8>>

SHA256 hash to preimage map.

hash160_preimages: BTreeMap<Hash, Vec<u8>>

HSAH160 hash to preimage map.

hash256_preimages: BTreeMap<Hash, Vec<u8>>

HAS256 hash to preimage map.

tap_key_sig: Option<SchnorrSig>

Serialized schnorr signature with sighash type for key spend.

tap_script_sigs: BTreeMap<(XOnlyPublicKey, TapLeafHash), SchnorrSig>

Map of | with signature.

tap_scripts: BTreeMap<ControlBlock, (Script, LeafVersion)>

Map of Control blocks to Script version pair.

tap_key_origins: BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, KeySource)>

Map of tap root x only keys to origin info and leaf hashes contained in it.

tap_internal_key: Option<XOnlyPublicKey>

Taproot Internal key.

tap_merkle_root: Option<TapBranchHash>

Taproot Merkle root.

proprietary: BTreeMap<ProprietaryKey, Vec<u8>>

Proprietary key-value pairs for this input.

unknown: BTreeMap<Key, Vec<u8>>

Unknown key-value pairs for this input.

Implementations

Obtains the EcdsaSighashType for this input if one is specified. If no sighash type is specified, returns EcdsaSighashType::All.

Errors

If the sighash_type field is set to a non-standard ECDSA sighash value.

Obtains the SchnorrSighashType for this input if one is specified. If no sighash type is specified, returns SchnorrSighashType::Default.

Errors

If the sighash_type field is set to a invalid Schnorr sighash value.

Combines this Input with other Input (as described by BIP 174).

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Decode an object with a well-defined format. Read more
Decode Self from a size-limited reader. Read more
Returns the “default value” for a type. Read more
Deserialize this value from the given Serde deserializer. Read more
Encode an object with a well-defined format. Returns the number of bytes written on success. Read more
Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.