OP_NOTIF
INFO
Opcode number: 100
Byte representation: 0x64
Short description: Pop and execute the next statements if a zero element was popped.
OP_NOTIF is used to perform conditional execution, similar to OP_IF but operates inversely. Scripts will execute the next segment if a zero element is popped from the stack.
Operation
- Pop the top stack item.
- If the item is
0, execute the following opcodes until anOP_ELSEorOP_ENDIFis encountered. - If the item is non-
0, skip the following opcodes until anOP_ELSEorOP_ENDIFis encountered.
You'll see it used like so:
txt
<condition> OP_NOTIF
<script if condition is false>
OP_ELSE
<script if condition is true>
OP_ENDIFWhere <condition> is some operation or value that will leave a 0 or non-0 value on top of the stack.
Notes
Examples
Example 1
The following script would leave 2 on the stack as the condition (0) is false.
shell
# ASM script
OP_0 OP_NOTIF OP_2 OP_ENDIF
# Raw script
00645268
# Final stack
2Example 2
The following script would leave 3 on the stack as the condition (1) is non-0.
shell
# ASM script
OP_1 OP_NOTIF OP_2 OP_ELSE OP_3 OP_ENDIF
# Raw script
516452675368
# Final stack
3