dcrd/txscript
Dave Collins acc0174b44
txscript: Check equality via secp256k1 methods.
This modifies the signature cache Exists method to make use of the new
efficient equality testing methods provided by the secp256k1 types
versus indirectly checking their equality via their serializations.

The following benchmark shows a before and after comparison of a typical
signature cache exists check:

name             old time/op     new time/op     delta
-------------------------------------------------------------------------
SigCacheExists   400ns ± 0%      62ns ± 0%       -84.54%  (p=0.000 n=5+5)

name             old alloc/op    new alloc/op    delta
--------------------------------------------------------------------------
SigCacheExists   256B ± 0%       0B              -100.00%  (p=0.008 n=5+5)

name             old allocs/op   new allocs/op   delta
--------------------------------------------------------------------------
SigCacheExists   4.00 ± 0%       0.00            -100.00%  (p=0.008 n=5+5)
2020-07-27 21:30:54 -05:00
..
data multi: Correct typos. 2019-08-16 17:37:58 -05:00
bench_test.go txscript: Add benchmark for CheckSignatureEncoding. 2020-07-12 00:58:06 -05:00
consensus_test.go txscript: Rework check pubkey encoding test. 2020-07-08 22:23:14 -05:00
consensus.go txscript: Optimize sig enc check with mod n scalar. 2020-07-12 00:58:09 -05:00
doc.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
engine_test.go txscript: Export several useful funcs for treasury. 2020-07-07 12:52:27 -05:00
engine.go txscript: Optimize sig enc check with mod n scalar. 2020-07-12 00:58:09 -05:00
error_test.go txscript: Remove deprecated code. 2020-07-08 20:05:22 -05:00
error.go txscript: Remove deprecated code. 2020-07-08 20:05:22 -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: go mod tidy cleanup and run in CI. 2020-06-15 08:49:38 -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: Remove deprecated code. 2020-07-08 20:05:22 -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: Export ExtractScriptHash. 2020-07-08 19:59:54 -05:00
scriptbuilder_test.go txscript: use errors api; require go 1.13+ 2020-04-04 07:12:01 -05:00
scriptbuilder.go txscript: Export script num type and constructor. 2020-07-08 19:59:49 -05:00
scriptnum_test.go txscript: Export MathOpCodeMaxScriptNumLen. 2020-07-08 19:59:52 -05:00
scriptnum.go txscript: Export CsvMaxScriptNumLen. 2020-07-08 19:59:53 -05:00
sigcache_test.go secp256k1/ecdsa: Decouple ECDSA from secp256k1. 2020-03-28 13:32:04 -05:00
sigcache.go txscript: Check equality via secp256k1 methods. 2020-07-27 21:30:54 -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: Export MathOpCodeMaxScriptNumLen. 2020-07-08 19:59:52 -05:00
stack.go txscript: Export script num type and constructor. 2020-07-08 19:59:49 -05:00
standard_test.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
standard.go txscript: Export ExtractScriptHash. 2020-07-08 19:59:54 -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.