[−][src]Trait miniscript::miniscript::satisfy::Satisfier
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
pub fn lookup_sig(&self, _: &Pk, _to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
Given a public key, look up a signature with that key
to_pk_ctx
denotes the ToPkCtx required for deriving bitcoin::PublicKey
from MiniscriptKey using ToPublicKey.
If MiniscriptKey is already is bitcoin::PublicKey, then the context
would be NullCtx and [descriptor.DescriptorPublicKeyCtx] if MiniscriptKey is [descriptor.DescriptorPublicKey]
In general, this is defined by generic for the trait ToPublicKey
pub fn lookup_pkh_pk(&self, _: &Pk::Hash) -> Option<Pk>
[src]
Given a Pkh
, lookup corresponding Pk
pub fn lookup_pkh_sig(
&self,
_: &Pk::Hash,
_to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
_: &Pk::Hash,
_to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
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.
to_pk_ctx
denotes the ToPkCtx required for deriving bitcoin::PublicKey
from MiniscriptKey using ToPublicKey.
If MiniscriptKey is already is bitcoin::PublicKey, then the context
would be NullCtx and [descriptor.DescriptorPublicKeyCtx] if MiniscriptKey is [descriptor.DescriptorPublicKey]
In general, this is defined by generic for the trait ToPublicKey
pub fn lookup_sha256(&self, _: Hash) -> Option<[u8; 32]>
[src]
Given a SHA256 hash, look up its preimage
pub fn lookup_hash256(&self, _: Hash) -> Option<[u8; 32]>
[src]
Given a HASH256 hash, look up its preimage
pub fn lookup_ripemd160(&self, _: Hash) -> Option<[u8; 32]>
[src]
Given a RIPEMD160 hash, look up its preimage
pub fn lookup_hash160(&self, _: Hash) -> Option<[u8; 32]>
[src]
Given a HASH160 hash, look up its preimage
pub fn check_older(&self, _: u32) -> bool
[src]
Assert whether an relative locktime is satisfied
pub fn check_after(&self, _: u32) -> bool
[src]
Assert whether a absolute locktime is satisfied
Implementations on Foreign Types
impl<ToPkCtx: Copy, Pk: MiniscriptKey + ToPublicKey<ToPkCtx>> Satisfier<ToPkCtx, Pk> for ()
[src]
impl<ToPkCtx: Copy, Pk: MiniscriptKey + ToPublicKey<ToPkCtx>> Satisfier<ToPkCtx, Pk> for HashMap<Pk, BitcoinSig>
[src]
pub fn lookup_sig(&self, key: &Pk, _to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
impl<ToPkCtx: Copy, Pk: MiniscriptKey + ToPublicKey<ToPkCtx>> Satisfier<ToPkCtx, Pk> for HashMap<Pk::Hash, (Pk, BitcoinSig)> where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
pub fn lookup_sig(&self, key: &Pk, _to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_pk(&self, pk_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_pkh_sig(
&self,
pk_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
pk_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
impl<'a, ToPkCtx: Copy, Pk: MiniscriptKey + ToPublicKey<ToPkCtx>, S: Satisfier<ToPkCtx, Pk>> Satisfier<ToPkCtx, Pk> for &'a S
[src]
pub fn lookup_sig(&self, p: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_pk(&self, pkh: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_pkh_sig(
&self,
pkh: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
pkh: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, t: u32) -> bool
[src]
pub fn check_after(&self, t: u32) -> bool
[src]
impl<'a, ToPkCtx: Copy, Pk: MiniscriptKey + ToPublicKey<ToPkCtx>, S: Satisfier<ToPkCtx, Pk>> Satisfier<ToPkCtx, Pk> for &'a mut S
[src]
pub fn lookup_sig(&self, p: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_pk(&self, pkh: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_pkh_sig(
&self,
pkh: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
pkh: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, t: u32) -> bool
[src]
pub fn check_after(&self, t: u32) -> bool
[src]
impl<A, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A,) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, C, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B, C) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, C, D, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B, C, D) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, C, D, E, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B, C, D, E) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, C, D, E, F, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B, C, D, E, F) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
F: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
F: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, C, D, E, F, G, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B, C, D, E, F, G) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
F: Satisfier<ToPkCtx, Pk>,
G: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
F: Satisfier<ToPkCtx, Pk>,
G: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
impl<A, B, C, D, E, F, G, H, ToPkCtx: Copy, Pk> Satisfier<ToPkCtx, Pk> for (A, B, C, D, E, F, G, H) where
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
F: Satisfier<ToPkCtx, Pk>,
G: Satisfier<ToPkCtx, Pk>,
H: Satisfier<ToPkCtx, Pk>,
[src]
Pk: MiniscriptKey + ToPublicKey<ToPkCtx>,
A: Satisfier<ToPkCtx, Pk>,
B: Satisfier<ToPkCtx, Pk>,
C: Satisfier<ToPkCtx, Pk>,
D: Satisfier<ToPkCtx, Pk>,
E: Satisfier<ToPkCtx, Pk>,
F: Satisfier<ToPkCtx, Pk>,
G: Satisfier<ToPkCtx, Pk>,
H: Satisfier<ToPkCtx, Pk>,
pub fn lookup_sig(&self, key: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
key_hash: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
pub fn lookup_pkh_pk(&self, key_hash: &Pk::Hash) -> Option<Pk>
[src]
pub fn lookup_sha256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash256(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_ripemd160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn lookup_hash160(&self, h: Hash) -> Option<[u8; 32]>
[src]
pub fn check_older(&self, n: u32) -> bool
[src]
pub fn check_after(&self, n: u32) -> bool
[src]
Implementors
impl<'psbt, ToPkCtx: Copy, Pk: MiniscriptKey + ToPublicKey<ToPkCtx>> Satisfier<ToPkCtx, Pk> for PsbtInputSatisfier<'psbt>
[src]
pub fn lookup_sig(&self, pk: &Pk, to_pk_ctx: ToPkCtx) -> Option<BitcoinSig>
[src]
pub fn lookup_pkh_sig(
&self,
pkh: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>
[src]
&self,
pkh: &Pk::Hash,
to_pk_ctx: ToPkCtx
) -> Option<(PublicKey, BitcoinSig)>