Skip to content

Commit d2bbdf0

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

File tree

3 files changed

+9
-49
lines changed

3 files changed

+9
-49
lines changed

src/interpreter/inner.rs

Lines changed: 2 additions & 6 deletions
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

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

src/policy/compiler.rs

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -530,27 +530,13 @@ fn all_casts<Pk: MiniscriptKey, Ctx: ScriptContext>() -> [Cast<Pk, Ctx>; 10] {
530530
},
531531
Cast {
532532
ext_data: types::ExtData::cast_likely,
533-
node: |ms| {
534-
Terminal::OrI(
535-
Arc::new(
536-
Miniscript::from_ast(Terminal::False).expect("False Miniscript creation"),
537-
),
538-
ms,
539-
)
540-
},
533+
node: |ms| Terminal::OrI(Arc::new(Miniscript::FALSE), ms),
541534
ast_type: types::Type::cast_likely,
542535
comp_ext_data: CompilerExtData::cast_likely,
543536
},
544537
Cast {
545538
ext_data: types::ExtData::cast_unlikely,
546-
node: |ms| {
547-
Terminal::OrI(
548-
ms,
549-
Arc::new(
550-
Miniscript::from_ast(Terminal::False).expect("False Miniscript creation"),
551-
),
552-
)
553-
},
539+
node: |ms| Terminal::OrI(ms, Arc::new(Miniscript::FALSE)),
554540
ast_type: types::Type::cast_unlikely,
555541
comp_ext_data: CompilerExtData::cast_unlikely,
556542
},
@@ -568,14 +554,7 @@ fn all_casts<Pk: MiniscriptKey, Ctx: ScriptContext>() -> [Cast<Pk, Ctx>; 10] {
568554
},
569555
Cast {
570556
ext_data: types::ExtData::cast_true,
571-
node: |ms| {
572-
Terminal::AndV(
573-
ms,
574-
Arc::new(
575-
Miniscript::from_ast(Terminal::True).expect("True Miniscript creation"),
576-
),
577-
)
578-
},
557+
node: |ms| Terminal::AndV(ms, Arc::new(Miniscript::TRUE)),
579558
ast_type: types::Type::cast_true,
580559
comp_ext_data: CompilerExtData::cast_true,
581560
},

0 commit comments

Comments
 (0)