dcrd/txscript
Dave Collins c0be0be19a
txscript: Convert reference tests to new format.
This updates the data driven transaction script tests to combine the
previously separate valid and invalid test data files into a single file
and adds a field for the expected result.  This is a nice improvement
since it means tests can now ensure script failures are due to a
specific expected reason as opposed to only generically detecting
failure as the previous format required.

Since it is possible that the script engine might return more fine
grained errors than that test data expects, the test adapter handles
this by allowing expected errors in the test data to be mapped to
multiple txscript errors.

While performing the conversion, it also adds several tests for the
following areas:

- The test harness itself to ensure the parsing logic, particularly for
  the recently added repetition syntax, is working as intended
- All of the opcodes which were converted to NOPs in Decred
  to ensure they are also discouraged from use
- All of the reserved opcodes in Decred
2018-07-02 11:59:13 -05:00
..
data txscript: Convert reference tests to new format. 2018-07-02 11:59:13 -05:00
bench_test.go txscript: Add benchmark for sighash calculation. 2018-05-01 08:51:38 -05:00
consensus_test.go multi: Break coinbase dep on standardness rules. 2018-05-08 12:49:40 -05:00
consensus.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
doc.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
engine_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
engine.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
error_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
error.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
example_test.go multi: add valueIn parameter to wire.NewTxIn. 2018-06-15 19:13:41 -05:00
go.mod multi: Define vgo modules. 2018-05-25 15:38:16 -05:00
go.modverify multi: Define vgo modules. 2018-05-25 15:38:16 -05:00
log.go multi: Replace btclog with slog. 2018-05-23 14:22:10 -05:00
opcode_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
opcode.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
README.md multi: Properly capitalize Decred. 2018-03-01 17:41:35 -06:00
reference_test.go txscript: Convert reference tests to new format. 2018-07-02 11:59:13 -05:00
script_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
script.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
scriptbuilder_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
scriptbuilder.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
scriptnum_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
scriptnum.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -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: Decouple and optimize sighash calc. 2018-05-01 08:51:41 -05:00
sighash.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
sign_test.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
sign.go travis: add ineffassign linter 2017-12-01 09:14:04 -05:00
stack_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
stack.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
standard_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
standard.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05: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.