Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When subScript is reconstructed it Unparses the parsed script code. The workaround for unformatted data was to stop parsing when we hit the last OpReturn in the script - unfortunately that lead to an incorrect subScript when creating the sighash preimage which means all locking script with checksigs and opreturns at the end would be failing.
The fix is somewhat of a hack - it ensures we parse the unparsable script into a fake op code which contains the buffer of the remainder of the script without checking it for formatting rules otherwise. This allows us to then unparse it into the correct subScript.
One of the tests had to be updated because the expected outcome has changed - we should add a new opcode to the set of parsed opcodes which is "Unformatted Data" - this expectation is now written into the test to reflect the new behavior.