The question: is the following description of the behavior of these fragments correct?
The or_i
fragment and d:
wrappers all have an IF
in their script that does not take the value from the argument(s), but from some external source. This external source cannot be the result of another miniscript fragment, because the fragments are composed as nested expression, not as a sequence of actions. This means that an input to IF
in or_i
, d:
have to come from the witness that is specified at the spending time (that should be 1 or 0 due to MINIMALIF
).
EDIT: removed j:
wrapper from the question and the description because it does not take the value from external source, it just checks for the size of the data that X consumes