[][src]Trait miniscript::miniscript::satisfy::Satisfier

pub trait Satisfier<Pk: MiniscriptKey + ToPublicKey> {
    fn lookup_sig(&self, _: &Pk) -> Option<BitcoinSig> { ... }
fn lookup_pkh_pk(&self, _: &Pk::Hash) -> Option<Pk> { ... }
fn lookup_pkh_sig(&self, _: &Pk::Hash) -> Option<(PublicKey, BitcoinSig)> { ... }
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 { ... } }

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

fn lookup_sig(&self, _: &Pk) -> Option<BitcoinSig>[src]

Given a public key, look up a signature with that key

fn lookup_pkh_pk(&self, _: &Pk::Hash) -> Option<Pk>[src]

Given a Pkh, lookup corresponding Pk

fn lookup_pkh_sig(&self, _: &Pk::Hash) -> Option<(PublicKey, BitcoinSig)>[src]

Given a keyhash, look up the 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.

fn lookup_sha256(&self, _: Hash) -> Option<Preimage32>[src]

Given a SHA256 hash, look up its preimage

fn lookup_hash256(&self, _: Hash) -> Option<Preimage32>[src]

Given a HASH256 hash, look up its preimage

fn lookup_ripemd160(&self, _: Hash) -> Option<Preimage32>[src]

Given a RIPEMD160 hash, look up its preimage

fn lookup_hash160(&self, _: Hash) -> Option<Preimage32>[src]

Given a HASH160 hash, look up its preimage

fn check_older(&self, _: u32) -> bool[src]

Assert whether an relative locktime is satisfied

fn check_after(&self, _: u32) -> bool[src]

Assert whether a absolute locktime is satisfied

Loading content...

Implementations on Foreign Types

impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for ()[src]

impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for HashMap<Pk, BitcoinSig>[src]

impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for HashMap<Pk::Hash, (Pk, BitcoinSig)> where
    Pk: MiniscriptKey + ToPublicKey
[src]

impl<'a, Pk: MiniscriptKey + ToPublicKey, S: Satisfier<Pk>> Satisfier<Pk> for &'a S[src]

impl<'a, Pk: MiniscriptKey + ToPublicKey, S: Satisfier<Pk>> Satisfier<Pk> for &'a mut S[src]

impl<A, Pk> Satisfier<Pk> for (A,) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>, 
[src]

impl<A, B, Pk> Satisfier<Pk> for (A, B) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>, 
[src]

impl<A, B, C, Pk> Satisfier<Pk> for (A, B, C) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>,
    C: Satisfier<Pk>, 
[src]

impl<A, B, C, D, Pk> Satisfier<Pk> for (A, B, C, D) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>,
    C: Satisfier<Pk>,
    D: Satisfier<Pk>, 
[src]

impl<A, B, C, D, E, Pk> Satisfier<Pk> for (A, B, C, D, E) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>,
    C: Satisfier<Pk>,
    D: Satisfier<Pk>,
    E: Satisfier<Pk>, 
[src]

impl<A, B, C, D, E, F, Pk> Satisfier<Pk> for (A, B, C, D, E, F) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>,
    C: Satisfier<Pk>,
    D: Satisfier<Pk>,
    E: Satisfier<Pk>,
    F: Satisfier<Pk>, 
[src]

impl<A, B, C, D, E, F, G, Pk> Satisfier<Pk> for (A, B, C, D, E, F, G) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>,
    C: Satisfier<Pk>,
    D: Satisfier<Pk>,
    E: Satisfier<Pk>,
    F: Satisfier<Pk>,
    G: Satisfier<Pk>, 
[src]

impl<A, B, C, D, E, F, G, H, Pk> Satisfier<Pk> for (A, B, C, D, E, F, G, H) where
    Pk: MiniscriptKey + ToPublicKey,
    A: Satisfier<Pk>,
    B: Satisfier<Pk>,
    C: Satisfier<Pk>,
    D: Satisfier<Pk>,
    E: Satisfier<Pk>,
    F: Satisfier<Pk>,
    G: Satisfier<Pk>,
    H: Satisfier<Pk>, 
[src]

Loading content...

Implementors

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

impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for After[src]

impl<Pk: MiniscriptKey + ToPublicKey> Satisfier<Pk> for Older[src]

Loading content...