dcrd/txscript
Dave Collins 76a18d1716
secp256k1/ecdsa: Decouple ECDSA from secp256k1.
Currently, the secp256k1 package is rather tightly bound to ECDSA
signatures which makes them the only real first-class citizen in the
code.  In an effort to make it clear the ECDSA is only one possible
digital signature algorithms and to enable Schnorr signatures to also be
made first class citizens, this decouples all code related to producing
and parsing ECDSA signatures into a separate package under secp256k1
named ecdsa.

This is a fairly large change in terms of the number of lines changed,
however, the vast majority of the changes are mechanical to deal with
the package name changes and moved code.  The only real new code is
documentation for the new package.

The following is a high level overview of the changes:

- Rename signature.go to ecdsa/signature.go
- Rename signature_test.go to ecdsa/signature_test.go
- Rename sigerror.go to ecdsa/error.go
  - Rename SignatureErrorCode type to ErrorCode
  - Rename SignatureError type to Error
- Rename sigerror_test.go to ecdsa/error_test.go
- Rename signature_bench_test.go to ecdsa/bench_test.go
- Move signing-related examples from example_test.go to
  ecdsa/example_test.go
- Update all moved code to reference secp256k1 types and funcs
- Remove Sign from the secp256k1.PrivateKey type in favor of ecdsa.Sign
- Add ecdsa/README.md to describe the new package
- Add ecdsa/doc.go to provide package documentation via godoc
- Move signing examples from README.md to new ecdsa/README.md
- Update txscript and rpcserver to use the new package methods
2020-03-28 13:32:04 -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 multi: Correct typos. 2019-08-16 17:37:58 -05:00
engine_test.go multi: remove whitespace 2019-11-21 18:31:30 -06:00
engine.go txscript: Don't use GetScriptClass in consensus. 2020-02-13 15:45:07 -06:00
error_test.go txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -05:00
error.go multi: Correct typos. 2019-08-22 10:20:03 -05:00
example_test.go secp256k1: Make private key independent type. 2020-02-10 22:40:34 -06:00
go.mod multi: Round 4 prerel module release ver updates. 2020-02-14 22:55:06 -06:00
go.sum chaincfg: Start v3 module dev cycle. 2020-01-29 13:24:14 -06:00
log.go txscript: Remove DisableLog. 2019-06-24 15:13:30 -05:00
opcode_test.go txscript: Make op callbacks take opcode and data. 2019-03-26 14:55:46 -05:00
opcode.go secp256k1/ecdsa: Decouple ECDSA from secp256k1. 2020-03-28 13:32:04 -05:00
README.md multi: replace godoc.org with pkg.go.dev 2020-02-18 19:35:19 -06:00
reference_test.go multi: remove whitespace 2019-11-21 18:31:30 -06:00
script_test.go multi: remove whitespace 2019-11-21 18:31:30 -06:00
script.go txscript: Don't use GetScriptClass in consensus. 2020-02-13 15:45:07 -06:00
scriptbuilder_test.go multi: remove whitespace 2019-11-21 18:31:30 -06:00
scriptbuilder.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
scriptnum_test.go txscript: Remove script num require minimal flag. 2018-07-02 12:14:15 -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 secp256k1/ecdsa: Decouple ECDSA from secp256k1. 2020-03-28 13:32:04 -05:00
stack_test.go multi: Correct typos. 2019-08-16 17:37:58 -05:00
stack.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
standard_test.go secp256k1: Start v3 module dev cycle. 2020-01-29 13:45:59 -06:00
standard.go txscript: Remove unused isStakeOutput function. 2020-02-13 15:45:09 -06:00
tokenizer_test.go multi: Correct typos. 2019-08-16 17:37:58 -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.