Struct Input
pub struct Input {Show 21 fields
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, (Fingerprint, DerivationPath)>,
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>, (Fingerprint, DerivationPath))>,
pub tap_internal_key: Option<XOnlyPublicKey>,
pub tap_merkle_root: Option<TapBranchHash>,
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 std::option::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 std::option::Option::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, (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<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>, (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<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§
§impl Input
impl Input
pub 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.
pub 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.
Trait Implementations§
impl Eq for Input
impl StructuralPartialEq for Input
Auto Trait Implementations§
impl Freeze for Input
impl RefUnwindSafe for Input
impl Send for Input
impl Sync for Input
impl Unpin for Input
impl UnwindSafe for Input
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request