Struct PsbtInputSatisfier

Source
pub struct PsbtInputSatisfier<'psbt> {
    pub psbt: &'psbt PartiallySignedTransaction,
    pub index: usize,
}
Expand description

Psbt satisfier for at inputs at a particular index Takes in &psbt because multiple inputs will share the same psbt structure All operations on this structure will panic if index is more than number of inputs in pbst This does not support satisfaction for Covenant transactoins You are probably looking for finalizer::finalize method or PsbtCovInputSatisfier

Fields§

§psbt: &'psbt PartiallySignedTransaction

pbst

§index: usize

input index

Implementations§

Source§

impl<'psbt> PsbtInputSatisfier<'psbt>

Source

pub fn new(psbt: &'psbt Psbt, index: usize) -> Self

create a new PsbtInputsatisfier from psbt and index

Trait Implementations§

Source§

impl<'psbt, Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for PsbtInputSatisfier<'psbt>

Source§

fn lookup_tap_key_spend_sig(&self) -> Option<SchnorrSig>

Lookup the tap key spend sig
Source§

fn lookup_tap_leaf_script_sig( &self, pk: &Pk, lh: &TapLeafHash, ) -> Option<SchnorrSig>

Given a public key and a associated leaf hash, look up an schnorr signature with that key
Source§

fn lookup_raw_pkh_pk(&self, pkh: &Hash) -> Option<PublicKey>

Given a raw Pkh, lookup corresponding bitcoin::PublicKey
Source§

fn lookup_tap_control_block_map( &self, ) -> Option<&BTreeMap<ControlBlock, (Script, LeafVersion)>>

Obtain a reference to the control block for a ver and script
Source§

fn lookup_raw_pkh_tap_leaf_script_sig( &self, pkh: &(Hash, TapLeafHash), ) -> Option<(XOnlyPublicKey, SchnorrSig)>

Given a keyhash, look up the schnorr signature and the associated key Even if signatures for public key Hashes are not available, the users can use this map to provide pkh -> pk mapping which can be useful for dissatisfying pkh.
Source§

fn lookup_ecdsa_sig(&self, pk: &Pk) -> Option<ElementsSig>

Given a public key, look up an ECDSA signature with that key
Source§

fn lookup_raw_pkh_ecdsa_sig( &self, pkh: &Hash, ) -> Option<(PublicKey, ElementsSig)>

Given a keyhash, look up the EC signature and the associated key Even if signatures for public key Hashes are not available, the users can use this map to provide pkh -> pk mapping which can be useful for dissatisfying pkh.
Source§

fn check_after(&self, n: LockTime) -> bool

Assert whether a absolute locktime is satisfied
Source§

fn check_older(&self, n: Sequence) -> bool

Assert whether an relative locktime is satisfied
Source§

fn lookup_hash160(&self, h: &Pk::Hash160) -> Option<Preimage32>

Given a HASH160 hash, look up its preimage
Source§

fn lookup_sha256(&self, h: &Pk::Sha256) -> Option<Preimage32>

Given a SHA256 hash, look up its preimage
Source§

fn lookup_hash256(&self, h: &Pk::Hash256) -> Option<Preimage32>

Given a HASH256 hash, look up its preimage
Source§

fn lookup_ripemd160(&self, h: &Pk::Ripemd160) -> Option<Preimage32>

Given a RIPEMD160 hash, look up its preimage
Source§

fn lookup_raw_pkh_x_only_pk(&self, _: &Hash) -> Option<XOnlyPublicKey>

Given a raw Pkh, lookup corresponding bitcoin::key::XOnlyPublicKey
Source§

fn lookup_nversion(&self) -> Option<u32>

Introspection Data for Covenant support #1 Version
Source§

fn lookup_hashprevouts(&self) -> Option<Hash>

Item 2: hashprevouts
Source§

fn lookup_hashsequence(&self) -> Option<Hash>

Item 3: hashsequence
Source§

fn lookup_hashissuances(&self) -> Option<Hash>

ELEMENTS EXTRA: Item 3b: hashsequence
Source§

fn lookup_outpoint(&self) -> Option<OutPoint>

Item 4: outpoint
Source§

fn lookup_scriptcode(&self) -> Option<&Script>

Item 5: scriptcode
Source§

fn lookup_value(&self) -> Option<Value>

Item 6: value
Source§

fn lookup_nsequence(&self) -> Option<u32>

Item 7: sequence
Source§

fn lookup_outputs(&self) -> Option<&[TxOut]>

Item 8: hashoutputs
Source§

fn lookup_nlocktime(&self) -> Option<u32>

Item 9: nlocktime
Source§

fn lookup_sighashu32(&self) -> Option<u32>

Item 10: sighash type as u32
Source§

fn lookup_tx(&self) -> Option<&Transaction>

Lookup spending transaction. Required for introspection
Source§

fn lookup_spent_utxos(&self) -> Option<&[TxOut]>

Lookup spent txouts. Required for introspection
Source§

fn lookup_curr_inp(&self) -> Option<usize>

Lookup spent txouts. Required for introspection
Source§

fn lookup_csfs_sig( &self, _pk: &XOnlyPublicKey, _msg: &CsfsMsg, ) -> Option<Signature>

Lookup (msg, sig) for CSFS fragment
Source§

fn lookup_price_oracle_sig( &self, _pk: &XOnlyPublicKey, _time: u64, ) -> Option<(Signature, i64, u64)>

Lookup price oracle signature

Auto Trait Implementations§

§

impl<'psbt> Freeze for PsbtInputSatisfier<'psbt>

§

impl<'psbt> RefUnwindSafe for PsbtInputSatisfier<'psbt>

§

impl<'psbt> Send for PsbtInputSatisfier<'psbt>

§

impl<'psbt> Sync for PsbtInputSatisfier<'psbt>

§

impl<'psbt> Unpin for PsbtInputSatisfier<'psbt>

§

impl<'psbt> UnwindSafe for PsbtInputSatisfier<'psbt>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V