@@ -202,6 +202,12 @@ constexpr bool operation::is_counted(opcode code) NOEXCEPT
202
202
// (2) they are not evaluated during script execution.
203
203
// (3) they are only conditionally successful (tapscript).
204
204
// (4) renaming them would lose important historical context.
205
+ // Regarding op_verif and op_vernotif, it seems that these were not promoted
206
+ // because authors failed to recognize that following their demotion from
207
+ // conditionals, these codes became unconditionally invalid, just as others.
208
+ // Regarding reserved_255, there is no good reason to have left this reserved,
209
+ // as op_return already provides that operation, but it's likely the authors
210
+ // felt it exhibits special benavior as the highest value code (it does not).
205
211
constexpr bool operation::is_success (opcode code) NOEXCEPT
206
212
{
207
213
constexpr auto op_187 = opcode::reserved_187;
@@ -211,8 +217,8 @@ constexpr bool operation::is_success(opcode code) NOEXCEPT
211
217
{
212
218
case opcode::reserved_80:
213
219
case opcode::op_ver:
214
- // //case opcode::op_verif: // stays invalid
215
- // //case opcode::op_vernotif: // stays invalid
220
+ // //case opcode::op_verif: // stays invalid (why)
221
+ // //case opcode::op_vernotif: // stays invalid (why)
216
222
// //case opcode::op_return: // stays reserved
217
223
case opcode::op_cat:
218
224
case opcode::op_substr:
@@ -232,7 +238,7 @@ constexpr bool operation::is_success(opcode code) NOEXCEPT
232
238
case opcode::op_lshift:
233
239
case opcode::op_rshift:
234
240
// //case opcode::reserved_186: // checksigadd subsumes
235
- // //case opcode::reserved_255: // stays reserved
241
+ // //case opcode::reserved_255: // stays reserved (why)
236
242
return true ;
237
243
default :
238
244
return code >= op_187 && code <= op_254;
0 commit comments