// Rust Bitcoin Library // Written by // The Rust Bitcoin developers // // To the extent possible under law, the author(s) have dedicated all // copyright and related and neighboring rights to this software to // the public domain worldwide. This software is distributed without // any warranty. // // You should have received a copy of the CC0 Public Domain Dedication // along with this software. // If not, see . // use std::collections::BTreeMap; use blockdata::script::Script; use blockdata::transaction::{SigHashType, Transaction, TxOut}; use consensus::encode; use hashes::{Hash, hash160, ripemd160, sha256, sha256d}; use util::bip32::{DerivationPath, Fingerprint}; use util::key::PublicKey; use util::psbt; use util::psbt::map::Map; use util::psbt::raw; use util::psbt::Error; /// A key-value map for an input of the corresponding index in the unsigned /// transaction. #[derive(Clone, Default, Debug, PartialEq)] pub struct Input { /// 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. pub non_witness_utxo: Option, /// The transaction output this input spends from. Should only be /// [std::option::Option::Some] for inputs which spend segwit outputs, /// including P2SH embedded ones. pub witness_utxo: Option, /// A map from public keys to their corresponding signature as would be /// pushed to the stack from a scriptSig or witness. pub partial_sigs: BTreeMap>, /// The sighash type to be used for this input. Signatures for this input /// must use the sighash type. pub sighash_type: Option, /// The redeem script for this input. pub redeem_script: Option