Skip to content

Commit f22dc3a

Browse files
committed
miniscript: use new TRUE/FALSE constants throughout the codebase
This eliminates a bunch of error paths, which is nice.
1 parent be41d8b commit f22dc3a

File tree

3 files changed

+9
-49
lines changed

3 files changed

+9
-49
lines changed

src/interpreter/inner.rs

+2-6
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,8 @@ fn script_from_stack_elem<Ctx: ScriptContext>(
4646
Miniscript::parse_with_ext(bitcoin::Script::from_bytes(sl), &ExtParams::allow_all())
4747
.map_err(Error::from)
4848
}
49-
stack::Element::Satisfied => {
50-
Miniscript::from_ast(crate::Terminal::True).map_err(Error::from)
51-
}
52-
stack::Element::Dissatisfied => {
53-
Miniscript::from_ast(crate::Terminal::False).map_err(Error::from)
54-
}
49+
stack::Element::Satisfied => Ok(Miniscript::TRUE),
50+
stack::Element::Dissatisfied => Ok(Miniscript::FALSE),
5551
}
5652
}
5753

src/miniscript/astelem.rs

+4-19
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ impl<Pk: crate::FromStrKey, Ctx: ScriptContext> crate::expression::FromTree for
331331
("and_n", 2) => Ok(Terminal::AndOr(
332332
expression::FromTree::from_tree(&top.args[0])?,
333333
expression::FromTree::from_tree(&top.args[1])?,
334-
Arc::new(Miniscript::from_ast(Terminal::False)?),
334+
Arc::new(Miniscript::FALSE),
335335
)),
336336
("andor", 3) => Ok(Terminal::AndOr(
337337
expression::FromTree::from_tree(&top.args[0])?,
@@ -400,24 +400,9 @@ impl<Pk: crate::FromStrKey, Ctx: ScriptContext> crate::expression::FromTree for
400400
'v' => unwrapped = Terminal::Verify(Arc::new(ms)),
401401
'j' => unwrapped = Terminal::NonZero(Arc::new(ms)),
402402
'n' => unwrapped = Terminal::ZeroNotEqual(Arc::new(ms)),
403-
't' => {
404-
unwrapped = Terminal::AndV(
405-
Arc::new(ms),
406-
Arc::new(Miniscript::from_ast(Terminal::True)?),
407-
)
408-
}
409-
'u' => {
410-
unwrapped = Terminal::OrI(
411-
Arc::new(ms),
412-
Arc::new(Miniscript::from_ast(Terminal::False)?),
413-
)
414-
}
415-
'l' => {
416-
unwrapped = Terminal::OrI(
417-
Arc::new(Miniscript::from_ast(Terminal::False)?),
418-
Arc::new(ms),
419-
)
420-
}
403+
't' => unwrapped = Terminal::AndV(Arc::new(ms), Arc::new(Miniscript::TRUE)),
404+
'u' => unwrapped = Terminal::OrI(Arc::new(ms), Arc::new(Miniscript::FALSE)),
405+
'l' => unwrapped = Terminal::OrI(Arc::new(Miniscript::FALSE), Arc::new(ms)),
421406
x => return Err(Error::UnknownWrapper(x)),
422407
}
423408
}

src/policy/compiler.rs

+3-24
Original file line numberDiff line numberDiff line change
@@ -704,27 +704,13 @@ fn all_casts<Pk: MiniscriptKey, Ctx: ScriptContext>() -> [Cast<Pk, Ctx>; 10] {
704704
},
705705
Cast {
706706
ext_data: types::ExtData::cast_likely,
707-
node: |ms| {
708-
Terminal::OrI(
709-
Arc::new(
710-
Miniscript::from_ast(Terminal::False).expect("False Miniscript creation"),
711-
),
712-
ms,
713-
)
714-
},
707+
node: |ms| Terminal::OrI(Arc::new(Miniscript::FALSE), ms),
715708
ast_type: types::Type::cast_likely,
716709
comp_ext_data: CompilerExtData::cast_likely,
717710
},
718711
Cast {
719712
ext_data: types::ExtData::cast_unlikely,
720-
node: |ms| {
721-
Terminal::OrI(
722-
ms,
723-
Arc::new(
724-
Miniscript::from_ast(Terminal::False).expect("False Miniscript creation"),
725-
),
726-
)
727-
},
713+
node: |ms| Terminal::OrI(ms, Arc::new(Miniscript::FALSE)),
728714
ast_type: types::Type::cast_unlikely,
729715
comp_ext_data: CompilerExtData::cast_unlikely,
730716
},
@@ -742,14 +728,7 @@ fn all_casts<Pk: MiniscriptKey, Ctx: ScriptContext>() -> [Cast<Pk, Ctx>; 10] {
742728
},
743729
Cast {
744730
ext_data: types::ExtData::cast_true,
745-
node: |ms| {
746-
Terminal::AndV(
747-
ms,
748-
Arc::new(
749-
Miniscript::from_ast(Terminal::True).expect("True Miniscript creation"),
750-
),
751-
)
752-
},
731+
node: |ms| Terminal::AndV(ms, Arc::new(Miniscript::TRUE)),
753732
ast_type: types::Type::cast_true,
754733
comp_ext_data: CompilerExtData::cast_true,
755734
},

0 commit comments

Comments
 (0)