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<RedeemScript>,
pub witness_script: Option<WitnessScript>,
pub bip32_derivation: BTreeMap<PublicKey, KeySource>,
pub final_script_sig: Option<SigScript>,
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<RedeemScript>
The redeem script for this input.
witness_script: Option<WitnessScript>
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<SigScript>
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 xonlypubkey|leafhash
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§
source§impl 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)
Trait Implementations§
source§impl PartialEq<Input> for Input
impl PartialEq<Input> for Input
source§impl StrictDecode for Input
impl StrictDecode for Input
source§fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
fn strict_decode<D: Read>(d: D) -> Result<Self, Error>
std::io::Read
instance; must either
construct an instance or return implementation-specific error type.source§fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>
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.source§fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>
path
and reconstructs object from it. Fails
with Error::DataNotEntirelyConsumed
if file contains remaining
data after the object reconstruction.source§impl StrictEncode for Input
impl StrictEncode for Input
source§fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>
std::io::Write
instance; must return result
with either amount of bytes encoded – or implementation-specific
error type.source§fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>
StrictEncode::strict_encode
function