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 on txscript 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 named sign. 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.
1.8 KiB
txscript
Package txscript implements the Decred transaction script language. There is a comprehensive test suite.
This package has intentionally been designed so it can be used as a standalone package for any projects needing to use or validate Decred transaction scripts.
Decred Scripts
Decred provides a stack-based, FORTH-like language for the scripts in the Decred transactions. This language is not Turing complete although it is still fairly powerful.
Installation and Updating
This package is part of the github.com/decred/dcrd/txscript/v3 module. Use
the standard go tooling for working with modules to incorporate it.
Examples
-
Standard Pay-to-pubkey-hash Script Demonstrates creating a script which pays to a Decred address. It also prints the created script hex and uses the DisasmString function to display the disassembled script.
-
Extracting Details from Standard Scripts Demonstrates extracting information from a standard public key script.
-
Counting Opcodes in Scripts Demonstrates creating a script tokenizer instance and using it to count the number of opcodes a script contains.
License
Package txscript is licensed under the copyfree ISC License.