Trait sapio_miniscript::miniscript::types::Property
source · [−]pub trait Property: Sized {
Show 37 methods
fn from_true() -> Self;
fn from_false() -> Self;
fn from_pk_k() -> Self;
fn from_pk_h() -> Self;
fn from_multi(k: usize, n: usize) -> Self;
fn from_hash() -> Self;
fn from_txtemplate() -> Self;
fn from_time(t: u32) -> Self;
fn cast_alt(self) -> Result<Self, ErrorKind>;
fn cast_swap(self) -> Result<Self, ErrorKind>;
fn cast_check(self) -> Result<Self, ErrorKind>;
fn cast_dupif(self) -> Result<Self, ErrorKind>;
fn cast_verify(self) -> Result<Self, ErrorKind>;
fn cast_nonzero(self) -> Result<Self, ErrorKind>;
fn cast_zeronotequal(self) -> Result<Self, ErrorKind>;
fn cast_true(self) -> Result<Self, ErrorKind>;
fn cast_or_i_false(self) -> Result<Self, ErrorKind>;
fn and_b(left: Self, right: Self) -> Result<Self, ErrorKind>;
fn and_v(left: Self, right: Self) -> Result<Self, ErrorKind>;
fn or_b(left: Self, right: Self) -> Result<Self, ErrorKind>;
fn or_d(left: Self, right: Self) -> Result<Self, ErrorKind>;
fn or_c(left: Self, right: Self) -> Result<Self, ErrorKind>;
fn or_i(left: Self, right: Self) -> Result<Self, ErrorKind>;
fn and_or(a: Self, b: Self, c: Self) -> Result<Self, ErrorKind>;
fn threshold<S>(k: usize, n: usize, sub_ck: S) -> Result<Self, ErrorKind>
where
S: FnMut(usize) -> Result<Self, ErrorKind>;
fn sanity_checks(&self) { ... }
fn from_multi_a(k: usize, n: usize) -> Self { ... }
fn from_sha256() -> Self { ... }
fn from_hash256() -> Self { ... }
fn from_ripemd160() -> Self { ... }
fn from_hash160() -> Self { ... }
fn from_after(t: u32) -> Self { ... }
fn from_older(t: u32) -> Self { ... }
fn cast_unlikely(self) -> Result<Self, ErrorKind> { ... }
fn cast_likely(self) -> Result<Self, ErrorKind> { ... }
fn and_n(left: Self, right: Self) -> Result<Self, ErrorKind> { ... }
fn type_check<Pk, Ctx, C>(
fragment: &Terminal<Pk, Ctx>,
child: C
) -> Result<Self, Error<Pk, Ctx>>
where
C: FnMut(usize) -> Option<Self>,
Pk: MiniscriptKey,
Ctx: ScriptContext,
{ ... }
}Expand description
Trait representing a type property, which defines how the property propagates from terminals to the root of a Miniscript
Required methods
fn from_false() -> Self
fn from_false() -> Self
Type property of the False fragment
fn from_multi(k: usize, n: usize) -> Self
fn from_multi(k: usize, n: usize) -> Self
Type property of a Multi fragment
fn from_txtemplate() -> Self
fn from_txtemplate() -> Self
Type property of a TxTemplate hash. Default implementation simply
passes through to from_txtemplate
fn cast_check(self) -> Result<Self, ErrorKind>
fn cast_check(self) -> Result<Self, ErrorKind>
Cast using the Check wrapper
fn cast_dupif(self) -> Result<Self, ErrorKind>
fn cast_dupif(self) -> Result<Self, ErrorKind>
Cast using the DupIf wrapper
fn cast_verify(self) -> Result<Self, ErrorKind>
fn cast_verify(self) -> Result<Self, ErrorKind>
Cast using the Verify wrapper
fn cast_nonzero(self) -> Result<Self, ErrorKind>
fn cast_nonzero(self) -> Result<Self, ErrorKind>
Cast using the NonZero wrapper
fn cast_zeronotequal(self) -> Result<Self, ErrorKind>
fn cast_zeronotequal(self) -> Result<Self, ErrorKind>
Cast using the ZeroNotEqual wrapper
fn cast_or_i_false(self) -> Result<Self, ErrorKind>
fn cast_or_i_false(self) -> Result<Self, ErrorKind>
Cast by changing [X] to or_i([X], 0) or or_i(0, [X])
Computes the type of an AndB fragment
Computes the type of an AndV fragment
Computes the type of an OrB fragment
Computes the type of an OrD fragment
Computes the type of an OrC fragment
Computes the type of an OrI fragment
Computes the type of an AndOr fragment
Provided methods
fn sanity_checks(&self)
fn sanity_checks(&self)
Any extra sanity checks/assertions that should be applied after typechecking
fn from_multi_a(k: usize, n: usize) -> Self
fn from_multi_a(k: usize, n: usize) -> Self
Type property of a MultiA fragment
fn from_sha256() -> Self
fn from_sha256() -> Self
Type property of a Sha256 hash. Default implementation simply
passes through to from_hash
fn from_hash256() -> Self
fn from_hash256() -> Self
Type property of a Hash256 hash. Default implementation simply
passes through to from_hash
fn from_ripemd160() -> Self
fn from_ripemd160() -> Self
Type property of a Ripemd160 hash. Default implementation simply
passes through to from_hash
fn from_hash160() -> Self
fn from_hash160() -> Self
Type property of a Hash160 hash. Default implementation simply
passes through to from_hash
fn from_after(t: u32) -> Self
fn from_after(t: u32) -> Self
Type property of a relative timelock. Default implementation simply
passes through to from_time
fn from_older(t: u32) -> Self
fn from_older(t: u32) -> Self
Type property of an absolute timelock. Default implementation simply
passes through to from_time
fn cast_unlikely(self) -> Result<Self, ErrorKind>
fn cast_unlikely(self) -> Result<Self, ErrorKind>
Cast by changing [X] to or_i([X], 0). Default implementation
simply passes through to cast_or_i_false
fn cast_likely(self) -> Result<Self, ErrorKind>
fn cast_likely(self) -> Result<Self, ErrorKind>
Cast by changing [X] to or_i(0, [X]). Default implementation
simply passes through to cast_or_i_false
Computes the type of an AndN fragment
fn type_check<Pk, Ctx, C>(
fragment: &Terminal<Pk, Ctx>,
child: C
) -> Result<Self, Error<Pk, Ctx>> where
C: FnMut(usize) -> Option<Self>,
Pk: MiniscriptKey,
Ctx: ScriptContext,
fn type_check<Pk, Ctx, C>(
fragment: &Terminal<Pk, Ctx>,
child: C
) -> Result<Self, Error<Pk, Ctx>> where
C: FnMut(usize) -> Option<Self>,
Pk: MiniscriptKey,
Ctx: ScriptContext,
Compute the type of a fragment, given a function to look up the types of its children, if available and relevant for the given fragment