pub enum Miniscript {
Show 14 variants
Pk([u8; 33]),
PkH([u8; 20]),
Older(u32),
After(u32),
Sha256([u8; 32]),
Ripemd160([u8; 20]),
Hash160([u8; 20]),
AndV(Box<Miniscript>, Box<Miniscript>),
OrB(Box<Miniscript>, Box<Miniscript>),
OrI(Box<Miniscript>, Box<Miniscript>),
ThreshM(usize, Vec<[u8; 33]>),
Thresh(usize, Vec<Miniscript>),
True,
False,
}Expand description
A Miniscript fragment that maps directly to Bitcoin Script.
Variants§
Pk([u8; 33])
<key> OP_CHECKSIG
PkH([u8; 20])
OP_DUP OP_HASH160 <hash> OP_EQUALVERIFY OP_CHECKSIG
Older(u32)
<n> OP_CSV OP_VERIFY
After(u32)
<n> OP_CLTV OP_VERIFY
Sha256([u8; 32])
OP_SIZE <32> OP_EQUALVERIFY OP_SHA256 <hash> OP_EQUAL
Ripemd160([u8; 20])
OP_SIZE <32> OP_EQUALVERIFY OP_RIPEMD160 <hash> OP_EQUAL
Hash160([u8; 20])
OP_SIZE <32> OP_EQUALVERIFY OP_HASH160 <hash> OP_EQUAL
AndV(Box<Miniscript>, Box<Miniscript>)
[X] [Y] OP_VERIFY — both must succeed
OrB(Box<Miniscript>, Box<Miniscript>)
[X] [Y] OP_BOOLOR — either may succeed
OrI(Box<Miniscript>, Box<Miniscript>)
OP_IF [X] OP_ELSE [Y] OP_ENDIF — branching OR
ThreshM(usize, Vec<[u8; 33]>)
<k> <key1> ... <keyn> <n> OP_CHECKMULTISIG
Thresh(usize, Vec<Miniscript>)
General threshold of sub-fragments with OP_ADD
True
OP_1 — always true
False
OP_0 — always false
Implementations§
Source§impl Miniscript
impl Miniscript
Sourcepub fn script_size(&self) -> usize
pub fn script_size(&self) -> usize
Estimate the script size in bytes.
Sourcepub fn max_satisfaction_witness_elements(&self) -> usize
pub fn max_satisfaction_witness_elements(&self) -> usize
Maximum number of witness stack elements needed to satisfy this fragment.
Sourcepub fn max_satisfaction_size(&self) -> usize
pub fn max_satisfaction_size(&self) -> usize
Maximum witness size in bytes (approximate).
Trait Implementations§
Source§impl Clone for Miniscript
impl Clone for Miniscript
Source§fn clone(&self) -> Miniscript
fn clone(&self) -> Miniscript
Returns a duplicate 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 Miniscript
impl Debug for Miniscript
Source§impl PartialEq for Miniscript
impl PartialEq for Miniscript
impl Eq for Miniscript
impl StructuralPartialEq for Miniscript
Auto Trait Implementations§
impl Freeze for Miniscript
impl RefUnwindSafe for Miniscript
impl Send for Miniscript
impl Sync for Miniscript
impl Unpin for Miniscript
impl UnsafeUnpin for Miniscript
impl UnwindSafe for Miniscript
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