Struct sapio_miniscript::miniscript::types::malleability::Malleability
source · pub struct Malleability {
pub dissat: Dissat,
pub safe: bool,
pub non_malleable: bool,
}
Expand description
Structure representing the type properties of a fragment which have relevance to malleability analysis
Fields§
§dissat: Dissat
Properties of dissatisfying inputs
safe: bool
true
if satisfactions cannot be created by any 3rd party
who has not yet seen a satisfaction. (Hash preimages and
signature checks are safe; timelocks are not.) Affects
malleability.
non_malleable: bool
Whether a non-malleable satisfaction is guaranteed to exist for the fragment
Implementations§
source§impl Malleability
impl Malleability
sourcepub fn is_subtype(&self, other: Self) -> bool
pub fn is_subtype(&self, other: Self) -> bool
Check whether the self
is a subtype of other
argument .
This checks whether the argument other
has attributes which are present
in the given Type
. This returns true
on same arguments
a.is_subtype(a)
is true
.
Trait Implementations§
source§impl Clone for Malleability
impl Clone for Malleability
source§fn clone(&self) -> Malleability
fn clone(&self) -> Malleability
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Malleability
impl Debug for Malleability
source§impl Hash for Malleability
impl Hash for Malleability
source§impl Ord for Malleability
impl Ord for Malleability
source§fn cmp(&self, other: &Malleability) -> Ordering
fn cmp(&self, other: &Malleability) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq for Malleability
impl PartialEq for Malleability
source§fn eq(&self, other: &Malleability) -> bool
fn eq(&self, other: &Malleability) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for Malleability
impl PartialOrd for Malleability
source§fn partial_cmp(&self, other: &Malleability) -> Option<Ordering>
fn partial_cmp(&self, other: &Malleability) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl Property for Malleability
impl Property for Malleability
source§fn from_false() -> Self
fn from_false() -> Self
Type property of the
False
fragmentsource§fn from_multi(_: usize, _: usize) -> Self
fn from_multi(_: usize, _: usize) -> Self
Type property of a
Multi
fragmentsource§fn from_txtemplate() -> Self
fn from_txtemplate() -> Self
Type property of a
TxTemplate
hash. Default implementation simply
passes through to from_txtemplate
source§fn cast_check(self) -> Result<Self, ErrorKind>
fn cast_check(self) -> Result<Self, ErrorKind>
Cast using the
Check
wrappersource§fn cast_dupif(self) -> Result<Self, ErrorKind>
fn cast_dupif(self) -> Result<Self, ErrorKind>
Cast using the
DupIf
wrappersource§fn cast_verify(self) -> Result<Self, ErrorKind>
fn cast_verify(self) -> Result<Self, ErrorKind>
Cast using the
Verify
wrappersource§fn cast_nonzero(self) -> Result<Self, ErrorKind>
fn cast_nonzero(self) -> Result<Self, ErrorKind>
Cast using the
NonZero
wrappersource§fn cast_zeronotequal(self) -> Result<Self, ErrorKind>
fn cast_zeronotequal(self) -> Result<Self, ErrorKind>
Cast using the
ZeroNotEqual
wrappersource§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])
source§fn and_b(left: Self, right: Self) -> Result<Self, ErrorKind>
fn and_b(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
AndB
fragmentsource§fn and_v(left: Self, right: Self) -> Result<Self, ErrorKind>
fn and_v(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
AndV
fragmentsource§fn or_b(left: Self, right: Self) -> Result<Self, ErrorKind>
fn or_b(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
OrB
fragmentsource§fn or_d(left: Self, right: Self) -> Result<Self, ErrorKind>
fn or_d(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
OrD
fragmentsource§fn or_c(left: Self, right: Self) -> Result<Self, ErrorKind>
fn or_c(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
OrC
fragmentsource§fn or_i(left: Self, right: Self) -> Result<Self, ErrorKind>
fn or_i(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
OrI
fragmentsource§fn and_or(a: Self, b: Self, c: Self) -> Result<Self, ErrorKind>
fn and_or(a: Self, b: Self, c: Self) -> Result<Self, ErrorKind>
Computes the type of an
AndOr
fragmentsource§fn threshold<S>(k: usize, n: usize, sub_ck: S) -> Result<Self, ErrorKind>
fn threshold<S>(k: usize, n: usize, sub_ck: S) -> Result<Self, ErrorKind>
Computes the type of an
Thresh
fragmentsource§fn sanity_checks(&self)
fn sanity_checks(&self)
Any extra sanity checks/assertions that should be applied after
typechecking
source§fn from_multi_a(k: usize, n: usize) -> Self
fn from_multi_a(k: usize, n: usize) -> Self
Type property of a
MultiA
fragmentsource§fn from_sha256() -> Self
fn from_sha256() -> Self
Type property of a
Sha256
hash. Default implementation simply
passes through to from_hash
source§fn from_hash256() -> Self
fn from_hash256() -> Self
Type property of a
Hash256
hash. Default implementation simply
passes through to from_hash
source§fn from_ripemd160() -> Self
fn from_ripemd160() -> Self
Type property of a
Ripemd160
hash. Default implementation simply
passes through to from_hash
source§fn from_hash160() -> Self
fn from_hash160() -> Self
Type property of a
Hash160
hash. Default implementation simply
passes through to from_hash
source§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
source§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
source§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
source§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
source§fn and_n(left: Self, right: Self) -> Result<Self, ErrorKind>
fn and_n(left: Self, right: Self) -> Result<Self, ErrorKind>
Computes the type of an
AndN
fragmentimpl Copy for Malleability
impl Eq for Malleability
impl StructuralEq for Malleability
impl StructuralPartialEq for Malleability
Auto Trait Implementations§
impl RefUnwindSafe for Malleability
impl Send for Malleability
impl Sync for Malleability
impl Unpin for Malleability
impl UnwindSafe for Malleability
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more