pub struct LegacyCovSatisfier<'tx, 'ptx> { /* private fields */ }
Expand description
A satisfier for Covenant descriptors that can do transaction introspection ’tx denotes the lifetime of the transaction being satisfied and ’ptx denotes the lifetime of the previous transaction inputs
Implementations§
Source§impl<'tx, 'ptx> LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> LegacyCovSatisfier<'tx, 'ptx>
Sourcepub fn new_segwitv0(
tx: &'tx Transaction,
idx: u32,
value: Value,
script_code: &'ptx Script,
hash_type: EcdsaSighashType,
) -> Self
pub fn new_segwitv0( tx: &'tx Transaction, idx: u32, value: Value, script_code: &'ptx Script, hash_type: EcdsaSighashType, ) -> Self
Create a new Covsatisfier for v0 spends Panics if idx is out of bounds
Sourcepub fn segwit_sighash(&self) -> Result<Sighash, CovError>
pub fn segwit_sighash(&self) -> Result<Sighash, CovError>
Easy way to get sighash since we already have all the required information. Note that this does not do any caching, so it will be slightly inefficient as compared to using sighash
Trait Implementations§
Source§impl<'tx, 'ptx> Clone for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> Clone for LegacyCovSatisfier<'tx, 'ptx>
Source§fn clone(&self) -> LegacyCovSatisfier<'tx, 'ptx>
fn clone(&self) -> LegacyCovSatisfier<'tx, 'ptx>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'tx, 'ptx> Debug for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> Debug for LegacyCovSatisfier<'tx, 'ptx>
Source§impl<'tx, 'ptx> PartialEq for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> PartialEq for LegacyCovSatisfier<'tx, 'ptx>
Source§fn eq(&self, other: &LegacyCovSatisfier<'tx, 'ptx>) -> bool
fn eq(&self, other: &LegacyCovSatisfier<'tx, 'ptx>) -> bool
Tests for
self
and other
values to be equal, and is used by ==
.Source§impl<'tx, 'ptx, Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx, Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for LegacyCovSatisfier<'tx, 'ptx>
Source§fn lookup_nversion(&self) -> Option<u32>
fn lookup_nversion(&self) -> Option<u32>
Introspection Data for Covenant support
#1 Version
Source§fn lookup_hashprevouts(&self) -> Option<Hash>
fn lookup_hashprevouts(&self) -> Option<Hash>
Item 2: hashprevouts
Source§fn lookup_hashsequence(&self) -> Option<Hash>
fn lookup_hashsequence(&self) -> Option<Hash>
Item 3: hashsequence
Source§fn lookup_hashissuances(&self) -> Option<Hash>
fn lookup_hashissuances(&self) -> Option<Hash>
ELEMENTS EXTRA: Item 3b: hashsequence
Source§fn lookup_outpoint(&self) -> Option<OutPoint>
fn lookup_outpoint(&self) -> Option<OutPoint>
Item 4: outpoint
Source§fn lookup_scriptcode(&self) -> Option<&Script>
fn lookup_scriptcode(&self) -> Option<&Script>
Item 5: scriptcode
Source§fn lookup_value(&self) -> Option<Value>
fn lookup_value(&self) -> Option<Value>
Item 6: value
Source§fn lookup_nsequence(&self) -> Option<u32>
fn lookup_nsequence(&self) -> Option<u32>
Item 7: sequence
Source§fn lookup_outputs(&self) -> Option<&[TxOut]>
fn lookup_outputs(&self) -> Option<&[TxOut]>
Item 8: hashoutputs
Source§fn lookup_nlocktime(&self) -> Option<u32>
fn lookup_nlocktime(&self) -> Option<u32>
Item 9: nlocktime
Source§fn lookup_sighashu32(&self) -> Option<u32>
fn lookup_sighashu32(&self) -> Option<u32>
Item 10: sighash type as u32
Source§fn lookup_ecdsa_sig(&self, _: &Pk) -> Option<ElementsSig>
fn lookup_ecdsa_sig(&self, _: &Pk) -> Option<ElementsSig>
Given a public key, look up an ECDSA signature with that key
Source§fn lookup_tap_key_spend_sig(&self) -> Option<SchnorrSig>
fn lookup_tap_key_spend_sig(&self) -> Option<SchnorrSig>
Lookup the tap key spend sig
Source§fn lookup_tap_leaf_script_sig(
&self,
_: &Pk,
_: &TapLeafHash,
) -> Option<SchnorrSig>
fn lookup_tap_leaf_script_sig( &self, _: &Pk, _: &TapLeafHash, ) -> Option<SchnorrSig>
Given a public key and a associated leaf hash, look up an schnorr signature with that key
Source§fn lookup_tap_control_block_map(
&self,
) -> Option<&BTreeMap<ControlBlock, (Script, LeafVersion)>>
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_pk(&self, _: &Hash) -> Option<PublicKey>
fn lookup_raw_pkh_pk(&self, _: &Hash) -> Option<PublicKey>
Given a raw
Pkh
, lookup corresponding bitcoin::PublicKey
Source§fn lookup_raw_pkh_x_only_pk(&self, _: &Hash) -> Option<XOnlyPublicKey>
fn lookup_raw_pkh_x_only_pk(&self, _: &Hash) -> Option<XOnlyPublicKey>
Given a raw
Pkh
, lookup corresponding bitcoin::key::XOnlyPublicKey
Source§fn lookup_raw_pkh_ecdsa_sig(&self, _: &Hash) -> Option<(PublicKey, ElementsSig)>
fn lookup_raw_pkh_ecdsa_sig(&self, _: &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 lookup_raw_pkh_tap_leaf_script_sig(
&self,
_: &(Hash, TapLeafHash),
) -> Option<(XOnlyPublicKey, SchnorrSig)>
fn lookup_raw_pkh_tap_leaf_script_sig( &self, _: &(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_sha256(&self, _: &Pk::Sha256) -> Option<Preimage32>
fn lookup_sha256(&self, _: &Pk::Sha256) -> Option<Preimage32>
Given a SHA256 hash, look up its preimage
Source§fn lookup_hash256(&self, _: &Pk::Hash256) -> Option<Preimage32>
fn lookup_hash256(&self, _: &Pk::Hash256) -> Option<Preimage32>
Given a HASH256 hash, look up its preimage
Source§fn lookup_ripemd160(&self, _: &Pk::Ripemd160) -> Option<Preimage32>
fn lookup_ripemd160(&self, _: &Pk::Ripemd160) -> Option<Preimage32>
Given a RIPEMD160 hash, look up its preimage
Source§fn lookup_hash160(&self, _: &Pk::Hash160) -> Option<Preimage32>
fn lookup_hash160(&self, _: &Pk::Hash160) -> Option<Preimage32>
Given a HASH160 hash, look up its preimage
Source§fn check_older(&self, _: Sequence) -> bool
fn check_older(&self, _: Sequence) -> bool
Assert whether an relative locktime is satisfied
Source§fn check_after(&self, _: LockTime) -> bool
fn check_after(&self, _: LockTime) -> bool
Assert whether a absolute locktime is satisfied
Source§fn lookup_tx(&self) -> Option<&Transaction>
fn lookup_tx(&self) -> Option<&Transaction>
Lookup spending transaction. Required for introspection
Source§fn lookup_spent_utxos(&self) -> Option<&[TxOut]>
fn lookup_spent_utxos(&self) -> Option<&[TxOut]>
Lookup spent txouts. Required for introspection
Source§fn lookup_curr_inp(&self) -> Option<usize>
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>
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)>
fn lookup_price_oracle_sig( &self, _pk: &XOnlyPublicKey, _time: u64, ) -> Option<(Signature, i64, u64)>
Lookup price oracle signature
impl<'tx, 'ptx> Eq for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> StructuralPartialEq for LegacyCovSatisfier<'tx, 'ptx>
Auto Trait Implementations§
impl<'tx, 'ptx> Freeze for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> RefUnwindSafe for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> Send for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> Sync for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> Unpin for LegacyCovSatisfier<'tx, 'ptx>
impl<'tx, 'ptx> UnwindSafe for LegacyCovSatisfier<'tx, 'ptx>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more