dcrd/txscript
Dave Collins 9969b8f306
txscript: Support min int64 script num encoding.
This modifies the encoding logic for script numbers to support encoding
min int64s.  This was previously not supported since the type was not
public and it is not possible to achieve a min int64 within the context
of the script system itself due to the strict limits it imposes.

However, now that script numbers are exported for external use and
callers are not bound by the aforementioned strictness, it should be
possible to encode the entire range for completeness.

In practice, callers should never realistically need to encode the value
since the purpose of the type is to create encoded numbers for scripts
and the value in question will be rejected upon any attempt to use it as
a number when verifying scripts given it is out of range.
2022-01-01 03:14:42 -06:00
..
data txscript: Proactively evict SigCache entries. 2020-09-24 12:19:59 -05:00
sign txscript/sign: Remove unused trsy enabled params. 2021-11-18 12:55:12 -06:00
stdaddr stdaddr: Limit v0 addr decode to max possible size. 2022-01-01 03:09:11 -06:00
stdscript stdscript: Reject multisig neg thresholds. 2022-01-01 01:22:07 -06:00
bench_test.go txscript: Remove unused isPubKeyHashAltScript. 2021-11-18 12:55:38 -06:00
consensus_test.go txscript: Add versioned short form parsing. 2021-10-14 16:13:28 -05:00
consensus.go txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
doc.go txscript: Add support for errors.Is/As. 2020-05-26 21:50:17 -05:00
engine_test.go txscript: Add versioned short form parsing. 2021-10-14 16:13:28 -05:00
engine.go multi: Add decentralized treasury support. 2020-09-21 12:15:31 -05:00
error_test.go txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
error.go txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
example_test.go txscript: Remove unused ExtractPkScriptAddrs. 2021-11-18 12:55:23 -06:00
go.mod txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
go.sum txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -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 txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
README.md txscript: Remove unused ExtractPkScriptAddrs. 2021-11-18 12:55:23 -06:00
reference_test.go txscript: Add versioned short form parsing. 2021-10-14 16:13:28 -05:00
script_test.go txscript: Test consistency and cleanup. 2021-10-14 16:45:27 -05:00
script.go txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
scriptbuilder_test.go txscript: Prepare v4.0.0. 2021-11-18 23:14:01 -06:00
scriptbuilder.go txscript: Remove unused MultiSigScript. 2021-11-18 12:55:15 -06:00
scriptnum_test.go txscript: Support min int64 script num encoding. 2022-01-01 03:14:42 -06:00
scriptnum.go txscript: Support min int64 script num encoding. 2022-01-01 03:14:42 -06:00
scriptshortform_test.go txscript: Add versioned short form parsing. 2021-10-14 16:13:28 -05:00
sigcache_test.go txscript: Add versioned short form parsing. 2021-10-14 16:13:28 -05: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
tokenizer_test.go txscript: Add versioned short form parsing. 2021-10-14 16:13:28 -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

  • Counting Opcodes in Scripts Demonstrates creating a script tokenizer instance and using it to count the number of opcodes a script contains.

License

Package txscript is licensed under the copyfree ISC License.