Accept any sequence of PUSHDATAs in OP_RETURN outputs

Previously only one PUSHDATA was allowed, needlessly limiting
applications such as matching OP_RETURN contents with bloom filters that
operate on a per-PUSHDATA level. Now any combination that passes
IsPushOnly() is allowed, so long as the total size of the scriptPubKey
is less than 42 bytes. (unchanged modulo non-minimal PUSHDATA encodings)

Also, this fixes the odd bug where previously the PUSHDATA could be
replaced by any single opcode, even sigops consuming opcodes such as
CHECKMULTISIG. (20 sigops!)
This commit is contained in:
Peter Todd
2014-10-13 10:18:05 -04:00
committed by Jorge Timón
parent 5d8709c3b7
commit da894ab5da
6 changed files with 34 additions and 17 deletions

View File

@@ -167,7 +167,6 @@ enum opcodetype
// template matching params
OP_SMALLDATA = 0xf9,
OP_SMALLINTEGER = 0xfa,
OP_PUBKEYS = 0xfb,
OP_PUBKEYHASH = 0xfd,