Struct Input
pub struct Input {Show 21 fields
pub non_witness_utxo: Option<Transaction>,
pub witness_utxo: Option<TxOut>,
pub partial_sigs: BTreeMap<PublicKey, Signature>,
pub sighash_type: Option<PsbtSighashType>,
pub redeem_script: Option<ScriptBuf>,
pub witness_script: Option<ScriptBuf>,
pub bip32_derivation: BTreeMap<PublicKey, (Fingerprint, DerivationPath)>,
pub final_script_sig: Option<ScriptBuf>,
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<Signature>,
pub tap_script_sigs: BTreeMap<(XOnlyPublicKey, TapLeafHash), Signature>,
pub tap_scripts: BTreeMap<ControlBlock, (ScriptBuf, LeafVersion)>,
pub tap_key_origins: BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, (Fingerprint, DerivationPath))>,
pub tap_internal_key: Option<XOnlyPublicKey>,
pub tap_merkle_root: Option<TapNodeHash>,
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
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
Option::Some
for inputs which spend segwit outputs,
including P2SH embedded ones.
partial_sigs: BTreeMap<PublicKey, Signature>
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<ScriptBuf>
The redeem script for this input.
witness_script: Option<ScriptBuf>
The witness script for this input.
bip32_derivation: BTreeMap<PublicKey, (Fingerprint, DerivationPath)>
A map from public keys needed to sign this input to their corresponding master key fingerprints and derivation paths.
final_script_sig: Option<ScriptBuf>
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>>
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<Signature>
Serialized taproot signature with sighash type for key spend.
tap_script_sigs: BTreeMap<(XOnlyPublicKey, TapLeafHash), Signature>
Map of <xonlypubkey>|<leafhash>
with signature.
tap_scripts: BTreeMap<ControlBlock, (ScriptBuf, LeafVersion)>
Map of Control blocks to Script version pair.
tap_key_origins: BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, (Fingerprint, DerivationPath))>
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<TapNodeHash>
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§
§impl Input
impl Input
pub fn ecdsa_hash_ty(
&self,
) -> Result<EcdsaSighashType, NonStandardSighashTypeError>
pub fn ecdsa_hash_ty( &self, ) -> Result<EcdsaSighashType, NonStandardSighashTypeError>
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.
pub fn taproot_hash_ty(&self) -> Result<TapSighashType, InvalidSighashTypeError>
pub fn taproot_hash_ty(&self) -> Result<TapSighashType, InvalidSighashTypeError>
Obtains the TapSighashType
for this input if one is specified. If no sighash type is
specified, returns TapSighashType::Default
.
§Errors
If the sighash_type
field is set to a invalid Taproot sighash value.