dcrd/txscript
Dave Collins 6fc98347d9
txscript: Add support for errors.Is/As.
This updates the txscript package to provide support for the errors.Is
and errors.As functions introduced in Go 1.13 per the recently
documented best practices.

The following is an overview of the changes:

- Rename the ErrorCode type to ErrorKind and make it a string
- Implement the error interface on ErrorKind
- Update all error code definitions to the new type
- Remove error code string map that is no longer required
- Remove unused ErrInternal definition
- Change the error code field of the Error type to Err
- Implement Unwrap on the Error type to support unwrapping via
  errors.Is/As
- Remove the IsErrorCode function since it is no longer needed due to
  errors.Is
- Update IsDERSigError to cope with the changes
- Modify various comments to refer to error kinds instead of codes
- Update all test code to use the new ErrorKind directly along with
  errors.Is for detecting the expect errors
- Add full test coverage to ensure the new error definitions work as
  intended
- Update the doc.go errors section accordingly
2020-05-26 21:50:17 -05:00
..
data multi: Correct typos. 2019-08-16 17:37:58 -05:00
bench_test.go txscript: Use dcrutil/v2. 2019-06-24 15:13:39 -05:00
consensus_test.go multi: Break coinbase dep on standardness rules. 2018-05-08 12:49:40 -05:00
consensus.go blockchain: Do coinbase nulldata check locally. 2019-06-19 13:26:33 -05:00
doc.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
engine_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
engine.go txscript: Don't use GetScriptClass in consensus. 2020-02-13 15:45:07 -06:00
error_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
error.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
example_test.go secp256k1: Make private key independent type. 2020-02-10 22:40:34 -06:00
go.mod txscript: use errors api; require go 1.13+ 2020-04-04 07:12:01 -05:00
go.sum multi: Run go mod tidy on all modules. 2020-05-04 13:54:54 -05:00
log.go txscript: Remove DisableLog. 2019-06-24 15:13:30 -05:00
opcode_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
opcode.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
README.md multi: replace godoc.org with pkg.go.dev 2020-02-18 19:35:19 -06:00
reference_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
script_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
script.go txscript: Don't use GetScriptClass in consensus. 2020-02-13 15:45:07 -06:00
scriptbuilder_test.go txscript: use errors api; require go 1.13+ 2020-04-04 07:12:01 -05:00
scriptbuilder.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
scriptnum_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
scriptnum.go multi: remove whitespace 2019-11-21 18:31:30 -06:00
sigcache_test.go secp256k1/ecdsa: Decouple ECDSA from secp256k1. 2020-03-28 13:32:04 -05:00
sigcache.go secp256k1/ecdsa: Decouple ECDSA from secp256k1. 2020-03-28 13:32:04 -05:00
sighash_test.go txscript: Decouple and optimize sighash calc. 2018-05-01 08:51:41 -05:00
sighash.go multi: Correct typos. 2019-08-16 17:37:58 -05:00
sign_test.go schnorr: Remove unused GenerateKey. 2020-03-20 14:01:08 -05:00
sign.go schnorr: Use specialized types when signing. 2020-04-06 16:37:39 -05:00
stack_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
stack.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
standard_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
standard.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
tokenizer_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
tokenizer.go multi: remove whitespace 2019-11-21 18:31:30 -06:00

txscript

Build Status ISC License Doc

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.