pub struct Input {Show 25 fields
pub previous_outpoint: OutPoint,
pub sequence_number: Option<SeqNo>,
pub required_time_locktime: Option<LockTimestamp>,
pub required_height_locktime: Option<LockHeight>,
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>>,
/* private fields */
}
Fields
previous_outpoint: OutPoint
Previous transaction outpoint to spent.
sequence_number: Option<SeqNo>
Sequence number of this input. If omitted, the sequence number is assumed to be the final sequence number (0xffffffff).
required_time_locktime: Option<LockTimestamp>
32 bit unsigned little endian integer greater than or equal to 500000000 representing the minimum Unix timestamp that this input requires to be set as the transaction’s lock time.
required_height_locktime: Option<LockHeight>
32 bit unsigned little endian integer less than 500000000 representing the minimum block height that this input requires to be set as the transaction’s lock time.
non_witness_utxo: Option<Transaction>
The non-witness transaction this input spends from. Should only be
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 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
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
sourceimpl Input
impl Input
pub fn new(index: usize, txin: TxIn) -> Result<Self, TxinError>
pub fn with(index: usize, v0: InputV0, txin: TxIn) -> Self
pub fn index(&self) -> usize
pub fn locktime(&self) -> Option<LockTime>
sourcepub fn ecdsa_hash_ty(&self) -> Result<EcdsaSighashType, NonStandardSighashType>
pub fn ecdsa_hash_ty(&self) -> Result<EcdsaSighashType, NonStandardSighashType>
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.
sourcepub fn schnorr_hash_ty(&self) -> Result<SchnorrSighashType, Error>
pub fn schnorr_hash_ty(&self) -> Result<SchnorrSighashType, Error>
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.
sourcepub fn input_prevout(&self) -> Result<&TxOut, InputMatchError>
pub fn input_prevout(&self) -> Result<&TxOut, InputMatchError>
Returns TxOut
reference returned by resolver, if any, or reports
specific matching error prevented from getting the output
pub fn to_unsigned_txin(&self) -> TxIn
pub fn extract_signed_txin(&self) -> TxIn
pub fn split(self) -> (InputV0, TxIn)
sourceimpl Input
impl Input
sourcepub fn composite_descr_type(&self) -> Result<CompositeDescrType, DeductionError>
pub fn composite_descr_type(&self) -> Result<CompositeDescrType, DeductionError>
Deduction of a descriptor type from a scriptPubkey
data and data
inside redeem script and witness scripts.
Errors
The function may DeductionError
Panics
Panics if PSBT integrity is broken and current input does not have an associated previous output data or these data are incorrect.
Trait Implementations
sourceimpl StrictDecode for Input
impl StrictDecode for Input
sourcefn strict_decode<D: Read>(d: D) -> Result<Self, Error>
fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
Decode with the given std::io::Read
instance; must either
construct an instance or return implementation-specific error type. Read more
sourcefn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
Tries to deserialize byte array into the current type using
StrictDecode::strict_decode
. If there are some data remains in the
buffer once deserialization is completed, fails with
Error::DataNotEntirelyConsumed
. Use io::Cursor
over the buffer and
StrictDecode::strict_decode
to avoid such failures. Read more
sourcefn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
Reads data from file at path
and reconstructs object from it. Fails
with Error::DataNotEntirelyConsumed
if file contains remaining
data after the object reconstruction. Read more
sourceimpl StrictEncode for Input
impl StrictEncode for Input
sourcefn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
Encode with the given std::io::Write
instance; must return result
with either amount of bytes encoded – or implementation-specific
error type. Read more
sourcefn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
Serializes data as a byte array using StrictEncode::strict_encode
function Read more
impl Eq for Input
impl StructuralEq for Input
impl StructuralPartialEq for Input
Auto Trait Implementations
impl RefUnwindSafe for Input
impl Send for Input
impl Sync for Input
impl Unpin for Input
impl UnwindSafe for Input
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more