dcrd/txscript
Dave Collins 47cbc26b93
txscript: Add JSON-based signature hash tests.
This adds a significant number of JSON-based tests with various
transactions, scripts, and hash types, to ensure the signature hash
calculated generates the expected hash in each case.

It specifically tests some specialized transactions such as coinbase,
ticket purchase, vote, and revocation.  It also includes carefully
created tests for all combinations of defined hash types along with
triggering an error due to improper use of SigHashSingle.

Finally, it also includes fuzz testing by providing a selection of 100
regular transactions with various numbers of inputs and outputs along
with randomly generated (including undefined) signature hash types and
input indexes.  Due to the way that masking of the signature hash type
works, a couple of the fuzzer tests also hit the improper use of
SigHashSingle.

The test data was generated as JSON in order to make it easier for
developers of software in other languages and platforms that need to
deal with generating signature hashes to consume and prove correctness
of their implementation as well.
2018-04-30 12:14:14 -05:00
..
data txscript: Add JSON-based signature hash tests. 2018-04-30 12:14:14 -05:00
consensus.go txscript: Implement CheckSequenceVerify 2017-09-21 15:58:48 -05:00
doc.go multi: Properly capitalize Decred. 2018-03-01 17:41:35 -06:00
engine_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
engine.go multi: fix some maligned linter warnings 2018-02-13 14:50:33 -06:00
error.go blockchain: Rework to use new db interface. 2016-08-18 15:42:18 -04:00
example_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
log.go all: Remove seelog logger. 2017-06-20 10:58:10 -04:00
opcode_test.go txscript: Remove OP_SMALLDATA 2017-12-29 19:57:26 +00:00
opcode.go txscript: Remove OP_SMALLDATA 2017-12-29 19:57:26 +00:00
README.md multi: Properly capitalize Decred. 2018-03-01 17:41:35 -06:00
reference_test.go txscript: Add JSON-based signature hash tests. 2018-04-30 12:14:14 -05:00
script_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
script.go txscript: Move sig hash logic to separate file. 2018-04-30 08:54:07 -05:00
scriptbuilder_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
scriptbuilder.go travis: enable gometalinter (#603) 2017-03-08 15:44:15 -05:00
scriptnum_test.go txscript: Sync upstream makeScriptNum tests. 2016-05-17 16:34:03 -05:00
scriptnum.go Initial Decred Commit. 2016-02-07 14:00:12 -05:00
sigcache_test.go multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
sigcache.go multi: release the mutex earlier 2018-02-13 13:55:02 -06:00
sighash_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
sighash.go txscript: Remove SigHashAllValue. 2018-04-30 09:10:02 -05:00
sign_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
sign.go travis: add ineffassign linter 2017-12-01 09:14:04 -05:00
stack_test.go multi: Error descriptions are in lower case. 2017-09-08 18:03:59 +02:00
stack.go travis: add gosimple linter 2017-11-20 18:49:55 -06:00
standard_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
standard.go Require atomic swap contracts to specify the secret size. 2018-02-16 15:14:27 -06:00

txscript

Build Status ISC License GoDoc

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

License

Package txscript is licensed under the copyfree ISC License.