This modifies the way standard verification flags are handled so that it is possible to selectively enable them based on the result of agenda votes. First, it moves the StandardVerifyFlags constant from the txscript package to the mempool/policy code and rename it to BaseStandardVerifyFlags. As the TODO in the comment of the moved constant indicated, these flags are policy related and thus really belong in policy. Ideally there would be a completely separate policy package, but since the policy code currently lives in mempool/policy.go, the constant has been moved there. Next, it introduces a new function named standardScriptVerifyFlags, which accepts the chain as an argument and, for now, just returns the BaseStandardVerifyFlags along with a nil error. This will allow additional flags to be selectively enabled depending on the result of an agenda vote. Finally, it updates the mempool policy struct to require a closure for obtaining the flags so it can remain decoupled from the chain which in turn allows easier and more robust unit testing of mempool functionality since it allows a mocks to be used. |
||
|---|---|---|
| .. | ||
| data | ||
| consensus.go | ||
| doc.go | ||
| engine_test.go | ||
| engine.go | ||
| error.go | ||
| example_test.go | ||
| internal_test.go | ||
| 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 | ||
| 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.