This removes the ScriptVerifyMinimalData flag from the txscript package, changes the default semantics to always enforce its behavior, and updates all callers in the repository accordingly. This change is being made to simplify the script engine code since the flag has always been active and required by consensus in Decred, so there is no need to require a flag to conditionally toggle it. It should be noted that the tests removed from script_tests.json specifically dealt with ensuring equivalency of different ways to encode the same numbers when the ScriptVerifyMinimalData flag is not set. Therefore, they are no longer necessary. A few tests which dealt with equivalency that did not already have expected failing counterparts were converted to expected failure. Also, several of the tests which dealt with ensuring the specific encoding of numeric opcodes is being used have been converted to use hashes since the minimal data requirements specifically prevent alternate ways of pushing the same encoding which is necessary for directly checking equality of the raw bytes. Finally, the MINIMALDATA indicator to enable the flag in the test data has been retained for now in order to isolate the logic changes as much as possible. |
||
|---|---|---|
| .. | ||
| data | ||
| bench_test.go | ||
| consensus_test.go | ||
| consensus.go | ||
| doc.go | ||
| engine_test.go | ||
| engine.go | ||
| error_test.go | ||
| error.go | ||
| example_test.go | ||
| go.mod | ||
| go.modverify | ||
| log.go | ||
| opcode_test.go | ||
| opcode.go | ||
| README.md | ||
| reference_test.go | ||
| script_test.go | ||
| script.go | ||
| scriptbuilder_test.go | ||
| scriptbuilder.go | ||
| scriptnum_test.go | ||
| scriptnum.go | ||
| sigcache_test.go | ||
| sigcache.go | ||
| sighash_test.go | ||
| sighash.go | ||
| sign_test.go | ||
| sign.go | ||
| stack_test.go | ||
| stack.go | ||
| standard_test.go | ||
| standard.go | ||
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
$ go get -u github.com/decred/dcrd/txscript
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. -
Manually Signing a Transaction Output
Demonstrates manually creating and signing a redeem transaction.
License
Package txscript is licensed under the copyfree ISC License.