dcrd/txscript
Dave Collins 4e0be8d2fb
txscript: Split signing code to sign subpackage.
The current code for handling signing standard scripts resides in
txscript and depends on parsing and creating standard scripts.  This
poses a problem for future work which intends to split the standard
script handling from the consensus critical code since that code will
also need to depend on txscript and therefore would result in a circular
dependency.

In order to pave the way for splitting the standard script handling
without running into the aforementioned issue, this moves all of the
signing code in the txscript package to a new subpackage named sign.

As an aside, the signing code really never fit very well in the txscript
package anyway and it only exists there because it was not possible to
parse scripts outside of the package back when the original code was
implemented.  However, that limitation no longer exists.

It should also be noted that this only does the minimum work necessary
to move the code and does not update it otherwise since future work
plans to replace it with a much more robust architecture that properly
handles things such as different script versions and non-standard
scripts which the current code does not handle.
2021-05-07 13:19:00 -05:00
..
data txscript: Proactively evict SigCache entries. 2020-09-24 12:19:59 -05:00
sign txscript: Split signing code to sign subpackage. 2021-05-07 13:19:00 -05:00
stdaddr stdaddr: Replace Address method with String 2021-04-15 16:51:33 -05:00
bench_test.go txscript: Split signing code to sign subpackage. 2021-05-07 13:19:00 -05:00
consensus_test.go txscript: Rework check pubkey encoding test. 2020-07-08 22:23:14 -05:00
consensus.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06: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 multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
error_test.go txscript: Remove unused ErrUnsupportedAddress. 2021-04-12 01:38:19 -05:00
error.go txscript: Remove unused ErrUnsupportedAddress. 2021-04-12 01:38:19 -05:00
example_test.go txscript: Split signing code to sign subpackage. 2021-05-07 13:19:00 -05:00
go.mod txscript: Break dcrutil dependency. 2021-04-12 11:21:01 -05:00
go.sum multi: Update to siphash v1.2.2. 2021-01-30 18:32:35 -06:00
log.go txscript: Optimize trace logging. 2020-07-28 16:48:20 -05:00
opcode_test.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
opcode.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
README.md txscript: Split signing code to sign subpackage. 2021-05-07 13:19:00 -05:00
reference_test.go txscript: Break dcrutil dependency. 2021-04-12 11:21:01 -05:00
script_test.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
script.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
scriptbuilder_test.go txscript: Rename script bldr add data to unchecked. 2021-03-12 17:33:14 -06:00
scriptbuilder.go txscript: Add script bldr unchecked op add. 2021-03-12 17:33:15 -06:00
scriptnum_test.go txscript: Rename script bldr add data to unchecked. 2021-03-12 17:33:14 -06:00
scriptnum.go txscript: Export CsvMaxScriptNumLen. 2020-07-08 19:59:53 -05:00
sigcache_test.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06:00
sigcache.go multi: Start dcrec/secp256k1 v4 module dev cycle. 2020-12-16 16:30:24 -06: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
stack_test.go txscript: Optimize alt stack drop. 2020-07-28 16:44:34 -05:00
stack.go txscript: Optimize alt stack drop. 2020-07-28 16:44:34 -05:00
standard_test.go txscript: Remove unused GenerateSStxAddrPush. 2021-04-12 01:38:19 -05:00
standard.go txscript: Remove unused GenerateSStxAddrPush. 2021-04-12 01:38:19 -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

This package is part of the github.com/decred/dcrd/txscript/v3 module. Use the standard go tooling for working with modules to incorporate it.

Examples

License

Package txscript is licensed under the copyfree ISC License.