Struct psbt::Input

source · []
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 | 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.

Returns TxOut reference returned by resolver, if any, or reports specific matching error prevented from getting the output

Adds information about DBC P2C public key to PSBT input

Finds a tweak for the provided bitcoin public key, if is known

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

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Returns the “default value” for a type. Read more

Converts to this type from the input type.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Decode with the given std::io::Read instance; must either construct an instance or return implementation-specific error type. Read more

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

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

Encode with the given std::io::Write instance; must return result with either amount of bytes encoded – or implementation-specific error type. Read more

Serializes data as a byte array using StrictEncode::strict_encode function Read more

Saves data to a file at a given path. If the file does not exists, attempts to create the file. If the file already exists, it gets truncated. 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.

Verifies commit-equivalence of two instances of the same type.