txscript: Split signing code to sign subpackage. #2642
Merged
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.
The current code for handling signing standard scripts resides in
txscript
and depends on parsing and creating standard scripts. This poses a problem for future work which intends to split the standard script handling from the consensus critical code since that code will also need to depend ontxscript
and therefore would result in a circular dependency.In order to pave the way for splitting the standard script handling without running into the aforementioned issue, this moves all of the signing code in the
txscript
package to a new subpackage namedsign
.As an aside, the signing code really never fit very well in the
txscript
package anyway and it only exists there because it was not possible to parse scripts outside of the package back when the original code was implemented. However, that limitation no longer exists.It should also be noted that this only does the minimum work necessary to move the code and does not update it otherwise since future work plans to replace it with a much more robust architecture that properly handles things such as different script versions and non-standard scripts which the current code does not handle.