This modifies the script engine to replace OP_UNKNOWN192 with OP_SHA256 along with a flag named ScriptVerifySHA256 to selectively enable its enforcement. The new opcode consumes the top item from the data stack, computes its SHA-256, and pushes the resulting digest back to the data stack. Since it requires an item on the data stack, execution will terminate with an error when the stack is empty. This behavior differs from OP_UNKNOWN192 which does not consume any elements from the data stack and therefore makes this is hard-forking change when interpreted with the new semantics due to the ScriptVerifySHA256 flag being set. Code to selectively enable the opcode based on the result of an agenda vote will be added in a separate commit. This also includes tests to ensure the opcode works as expected including when used both correctly and incorrectly. |
||
|---|---|---|
| .. | ||
| 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.