190@@ -191,6 +191,7 @@ enum
191 SCRIPT_VERIFY_LOW_S = (1U << 2), // enforce low S values (<n/2) in signatures (depends on STRICTENC)
192 SCRIPT_VERIFY_NOCACHE = (1U << 3), // do not store results in signature cache (but do query it)
193 SCRIPT_VERIFY_NULLDUMMY = (1U << 4), // verify dummy stack item consumed by CHECKMULTISIG is of zero-length
194+ SCRIPT_VERIFY_BARE_MSIG_OK = (1U << 5), // are bare msig outputs permitted?
Nit: Nowhere else we use msig
, can you use multisig
?
@Diapolo I don’t mind s/msig/multisig/ but I do dislike long symbols. Maybe RELAY_MULTISIG or somesuch.
I think a SCRIPT_VERIFY flag is the wrong place for this. The other flags either are consensus critical, or may be in a plausible future soft-fork. They also are all evaluated during script execution. Multisig outputs on the other hand are just an IsStandard() rule and are evaluated via the Solver() template matcher. Additionally being purely a policy rule they would be inappropriate in a libconsensuscore library, again unlike the other script verification flags.
Yes, IsStandard needs a separate set of flags.