Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Add SCRIPT_VERIFY_CLEANSTACK script verification flag #4311
Causes VerifyScript() to fail if scriptPubKey/redeemScript execution leaves more than a single stack item. This is a generic malleability fix that can be used with all scriptPubKeys, as per @sipa's BIP62 thoughts. Of course, the current IsStandard() rules should only allow transactions satisfying this rule; I'm working on relaxing those rules.
It's pretty verbose, seems we should update it to the more modern and convenient tx building APIs. But indeed it's correct that they fail this new check: b79tx has an input script that connects to an output script, both of which are just OP_TRUE, so we end up with a combined script of OP_TRUE OP_TRUE which leaves >1 stack item.
As far as I can tell this isn't actually meant to test such a case, it's just that @TheBlueMatt might have not wanted to write out a full script. Matt, is that the case? If so we can probably make it pass by just changing OP_TRUE in the input script to OP_NOP or something.
Automatic sanity-testing: FAILED BUILD/TEST, see http://jenkins.bluematt.me/pull-tester/p4311_ce00fa1d609e6dcd233cc0859f078c469e40bf7b/ for binaries and test log.
This could happen for one of several reasons:
If you believe this to be in error, please ping BlueMatt on freenode or TheBlueMatt here.
This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/