This modifies the script engine to replace OP_NOP3 with OP_CHECKSEQUENCEVERIFY and adds a flag to selectively enable its enforcement. The new opcode examines the top item on the stack and compares it against the sequence number of the associated transaction input in order to allow scripts to conditionally enforce the inclusion of relative time locks to the transaction. The following is an overview of the changes: - Introduce a new flag named ScriptVerifyCheckSequenceVerify to provide conditional enforcement of the new opcode - Introduce a constant named OP_CHECKSEQUENCEVERIFY which has the same value as OP_NOP3 since it is replacing it - Update opcode to name mappings accordingly - Abstract the logic that deals with time lock verification since it is the same for both the new opcode and OP_CHECKLOCKTIMEVERIFY - Implement the required opcode semantics - Add 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.