pub trait Satisfier<Pk: MiniscriptKey + ToPublicKey> {
Show 30 methods
// Provided methods
fn lookup_ecdsa_sig(&self, _: &Pk) -> Option<ElementsSig> { ... }
fn lookup_tap_key_spend_sig(&self) -> Option<SchnorrSig> { ... }
fn lookup_tap_leaf_script_sig(
&self,
_: &Pk,
_: &TapLeafHash,
) -> Option<SchnorrSig> { ... }
fn lookup_tap_control_block_map(
&self,
) -> Option<&BTreeMap<ControlBlock, (Script, LeafVersion)>> { ... }
fn lookup_raw_pkh_pk(&self, _: &Hash) -> Option<PublicKey> { ... }
fn lookup_raw_pkh_x_only_pk(&self, _: &Hash) -> Option<XOnlyPublicKey> { ... }
fn lookup_raw_pkh_ecdsa_sig(
&self,
_: &Hash,
) -> Option<(PublicKey, ElementsSig)> { ... }
fn lookup_raw_pkh_tap_leaf_script_sig(
&self,
_: &(Hash, TapLeafHash),
) -> Option<(XOnlyPublicKey, SchnorrSig)> { ... }
fn lookup_sha256(&self, _: &Pk::Sha256) -> Option<Preimage32> { ... }
fn lookup_hash256(&self, _: &Pk::Hash256) -> Option<Preimage32> { ... }
fn lookup_ripemd160(&self, _: &Pk::Ripemd160) -> Option<Preimage32> { ... }
fn lookup_hash160(&self, _: &Pk::Hash160) -> Option<Preimage32> { ... }
fn check_older(&self, _: Sequence) -> bool { ... }
fn check_after(&self, _: LockTime) -> bool { ... }
fn lookup_nversion(&self) -> Option<u32> { ... }
fn lookup_hashprevouts(&self) -> Option<Hash> { ... }
fn lookup_hashsequence(&self) -> Option<Hash> { ... }
fn lookup_hashissuances(&self) -> Option<Hash> { ... }
fn lookup_outpoint(&self) -> Option<OutPoint> { ... }
fn lookup_scriptcode(&self) -> Option<&Script> { ... }
fn lookup_value(&self) -> Option<Value> { ... }
fn lookup_nsequence(&self) -> Option<u32> { ... }
fn lookup_outputs(&self) -> Option<&[TxOut]> { ... }
fn lookup_nlocktime(&self) -> Option<u32> { ... }
fn lookup_sighashu32(&self) -> Option<u32> { ... }
fn lookup_tx(&self) -> Option<&Transaction> { ... }
fn lookup_spent_utxos(&self) -> Option<&[TxOut]> { ... }
fn lookup_curr_inp(&self) -> Option<usize> { ... }
fn lookup_csfs_sig(
&self,
_pk: &XOnlyPublicKey,
_msg: &CsfsMsg,
) -> Option<Signature> { ... }
fn lookup_price_oracle_sig(
&self,
_pk: &XOnlyPublicKey,
_time: u64,
) -> Option<(Signature, i64, u64)> { ... }
}
Expand description
Trait describing a lookup table for signatures, hash preimages, etc.
Every method has a default implementation that simply returns None
on every query. Users are expected to override the methods that they
have data for.
Provided Methods§
Sourcefn 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
Sourcefn lookup_tap_key_spend_sig(&self) -> Option<SchnorrSig>
fn lookup_tap_key_spend_sig(&self) -> Option<SchnorrSig>
Lookup the tap key spend sig
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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
Sourcefn 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.
Sourcefn 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.
Sourcefn lookup_sha256(&self, _: &Pk::Sha256) -> Option<Preimage32>
fn lookup_sha256(&self, _: &Pk::Sha256) -> Option<Preimage32>
Given a SHA256 hash, look up its preimage
Sourcefn lookup_hash256(&self, _: &Pk::Hash256) -> Option<Preimage32>
fn lookup_hash256(&self, _: &Pk::Hash256) -> Option<Preimage32>
Given a HASH256 hash, look up its preimage
Sourcefn lookup_ripemd160(&self, _: &Pk::Ripemd160) -> Option<Preimage32>
fn lookup_ripemd160(&self, _: &Pk::Ripemd160) -> Option<Preimage32>
Given a RIPEMD160 hash, look up its preimage
Sourcefn lookup_hash160(&self, _: &Pk::Hash160) -> Option<Preimage32>
fn lookup_hash160(&self, _: &Pk::Hash160) -> Option<Preimage32>
Given a HASH160 hash, look up its preimage
Sourcefn check_older(&self, _: Sequence) -> bool
fn check_older(&self, _: Sequence) -> bool
Assert whether an relative locktime is satisfied
Sourcefn check_after(&self, _: LockTime) -> bool
fn check_after(&self, _: LockTime) -> bool
Assert whether a absolute locktime is satisfied
Sourcefn lookup_nversion(&self) -> Option<u32>
fn lookup_nversion(&self) -> Option<u32>
Introspection Data for Covenant support #1 Version
Sourcefn lookup_hashprevouts(&self) -> Option<Hash>
fn lookup_hashprevouts(&self) -> Option<Hash>
Item 2: hashprevouts
Sourcefn lookup_hashsequence(&self) -> Option<Hash>
fn lookup_hashsequence(&self) -> Option<Hash>
Item 3: hashsequence
Sourcefn lookup_hashissuances(&self) -> Option<Hash>
fn lookup_hashissuances(&self) -> Option<Hash>
ELEMENTS EXTRA: Item 3b: hashsequence
Sourcefn lookup_outpoint(&self) -> Option<OutPoint>
fn lookup_outpoint(&self) -> Option<OutPoint>
Item 4: outpoint
Sourcefn lookup_scriptcode(&self) -> Option<&Script>
fn lookup_scriptcode(&self) -> Option<&Script>
Item 5: scriptcode
Sourcefn lookup_value(&self) -> Option<Value>
fn lookup_value(&self) -> Option<Value>
Item 6: value
Sourcefn lookup_nsequence(&self) -> Option<u32>
fn lookup_nsequence(&self) -> Option<u32>
Item 7: sequence
Sourcefn lookup_outputs(&self) -> Option<&[TxOut]>
fn lookup_outputs(&self) -> Option<&[TxOut]>
Item 8: hashoutputs
Sourcefn lookup_nlocktime(&self) -> Option<u32>
fn lookup_nlocktime(&self) -> Option<u32>
Item 9: nlocktime
Sourcefn lookup_sighashu32(&self) -> Option<u32>
fn lookup_sighashu32(&self) -> Option<u32>
Item 10: sighash type as u32
Sourcefn lookup_tx(&self) -> Option<&Transaction>
fn lookup_tx(&self) -> Option<&Transaction>
Lookup spending transaction. Required for introspection
Sourcefn lookup_spent_utxos(&self) -> Option<&[TxOut]>
fn lookup_spent_utxos(&self) -> Option<&[TxOut]>
Lookup spent txouts. Required for introspection
Sourcefn lookup_curr_inp(&self) -> Option<usize>
fn lookup_curr_inp(&self) -> Option<usize>
Lookup spent txouts. Required for introspection
Sourcefn 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
Sourcefn 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