Trait sapio_miniscript::miniscript::satisfy::Satisfier
source · pub trait Satisfier<Pk: MiniscriptKey + ToPublicKey> {
Show 14 methods
// Provided methods
fn lookup_ecdsa_sig(&self, _: &Pk) -> Option<EcdsaSig> { ... }
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_pkh_pk(&self, _: &Pk::Hash) -> Option<Pk> { ... }
fn lookup_pkh_ecdsa_sig(
&self,
_: &Pk::Hash
) -> Option<(PublicKey, EcdsaSig)> { ... }
fn lookup_pkh_tap_leaf_script_sig(
&self,
_: &(Pk::Hash, TapLeafHash)
) -> Option<(XOnlyPublicKey, SchnorrSig)> { ... }
fn lookup_sha256(&self, _: Hash) -> Option<Preimage32> { ... }
fn lookup_hash256(&self, _: Hash) -> Option<Preimage32> { ... }
fn lookup_ripemd160(&self, _: Hash) -> Option<Preimage32> { ... }
fn lookup_hash160(&self, _: Hash) -> Option<Preimage32> { ... }
fn check_older(&self, _: u32) -> bool { ... }
fn check_after(&self, _: u32) -> bool { ... }
fn check_tx_template(&self, _: Hash) -> bool { ... }
}
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<EcdsaSig>
fn lookup_ecdsa_sig(&self, _: &Pk) -> Option<EcdsaSig>
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_pkh_pk(&self, _: &Pk::Hash) -> Option<Pk>
fn lookup_pkh_pk(&self, _: &Pk::Hash) -> Option<Pk>
Given a Pkh
, lookup corresponding Pk
sourcefn lookup_pkh_ecdsa_sig(&self, _: &Pk::Hash) -> Option<(PublicKey, EcdsaSig)>
fn lookup_pkh_ecdsa_sig(&self, _: &Pk::Hash) -> Option<(PublicKey, EcdsaSig)>
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_pkh_tap_leaf_script_sig(
&self,
_: &(Pk::Hash, TapLeafHash)
) -> Option<(XOnlyPublicKey, SchnorrSig)>
fn lookup_pkh_tap_leaf_script_sig( &self, _: &(Pk::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, _: Hash) -> Option<Preimage32>
fn lookup_sha256(&self, _: Hash) -> Option<Preimage32>
Given a SHA256 hash, look up its preimage
sourcefn lookup_hash256(&self, _: Hash) -> Option<Preimage32>
fn lookup_hash256(&self, _: Hash) -> Option<Preimage32>
Given a HASH256 hash, look up its preimage
sourcefn lookup_ripemd160(&self, _: Hash) -> Option<Preimage32>
fn lookup_ripemd160(&self, _: Hash) -> Option<Preimage32>
Given a RIPEMD160 hash, look up its preimage
sourcefn lookup_hash160(&self, _: Hash) -> Option<Preimage32>
fn lookup_hash160(&self, _: Hash) -> Option<Preimage32>
Given a HASH160 hash, look up its preimage
sourcefn check_older(&self, _: u32) -> bool
fn check_older(&self, _: u32) -> bool
Assert whether an relative locktime is satisfied
sourcefn check_after(&self, _: u32) -> bool
fn check_after(&self, _: u32) -> bool
Assert whether a absolute locktime is satisfied
sourcefn check_tx_template(&self, _: Hash) -> bool
fn check_tx_template(&self, _: Hash) -> bool
Assert if tx template is satisfied