dcrd/txscript
Dave Collins c9ca59bf66
txscript: Remove strict encoding verification flag.
This removes the ScriptVerifyStrictEncoding flag from the txscript
package, changes the default semantics to always enforce its behavior
and updates all callers in the repository accordingly.

This change is being made to simplify the script engine code since the
flag has always been active and required by consensus in Decred, so
there is no need to require a flag to conditionally toggle it.

It should be noted that the tests removed from script_valid.json
specifically dealt with ensuring signatures not compliant with DER
encoding did not cause execution to halt early on invalid signatures
when neither of the ScriptVerifyStrictEncoding or
ScriptVerifyDERSignatures flags were set.  Therefore, they are no longer
necessary.

For nearly the same reason, the tx test related to the empty pubkey
tx_valid.json was moved to tx_invalid.json.  In particular, an empty
pubkey without ScriptVerifyStrictEncoding simply failed the signature
check and continued execution, while the same condition with the flag
halts execution.  Thus, without the flag the final NOT in the script
would allow the script to succeed, while it does not under the strict
encoding rules.

Finally, the STRICTENC indicator to enable the flag in the test data has
been retained for now in order to keep the logic changes separate.
2018-06-22 00:29:46 -05:00
..
data txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
bench_test.go txscript: Add benchmark for sighash calculation. 2018-05-01 08:51:38 -05:00
consensus_test.go multi: Break coinbase dep on standardness rules. 2018-05-08 12:49:40 -05:00
consensus.go multi: Correct typos found by misspell. 2018-05-08 21:29:33 -05:00
doc.go multi: Properly capitalize Decred. 2018-03-01 17:41:35 -06:00
engine_test.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
engine.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
error.go txscript: Remove low S verification flag. 2018-06-22 00:28:54 -05:00
example_test.go multi: add valueIn parameter to wire.NewTxIn. 2018-06-15 19:13:41 -05:00
go.mod multi: Define vgo modules. 2018-05-25 15:38:16 -05:00
go.modverify multi: Define vgo modules. 2018-05-25 15:38:16 -05:00
log.go multi: Replace btclog with slog. 2018-05-23 14:22:10 -05:00
opcode_test.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
opcode.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
README.md multi: Properly capitalize Decred. 2018-03-01 17:41:35 -06:00
reference_test.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
script_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
script.go txscript: Move sig hash logic to separate file. 2018-04-30 08:54:07 -05:00
scriptbuilder_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
scriptbuilder.go txscript: export canonicalDataSize. 2018-06-06 18:26:24 +00:00
scriptnum_test.go txscript: Sync upstream makeScriptNum tests. 2016-05-17 16:34:03 -05:00
scriptnum.go Initial Decred Commit. 2016-02-07 14:00:12 -05:00
sigcache_test.go multi: Upstream chainhash abstraction sync 2016-11-16 12:48:40 -06:00
sigcache.go multi: release the mutex earlier 2018-02-13 13:55:02 -06:00
sighash_test.go txscript: Decouple and optimize sighash calc. 2018-05-01 08:51:41 -05:00
sighash.go txscript: Remove unused old sig hash type. 2018-06-22 00:29:33 -05:00
sign_test.go txscript: Remove strict encoding verification flag. 2018-06-22 00:29:46 -05:00
sign.go travis: add ineffassign linter 2017-12-01 09:14:04 -05:00
stack_test.go multi: Error descriptions are in lower case. 2017-09-08 18:03:59 +02:00
stack.go travis: add gosimple linter 2017-11-20 18:49:55 -06:00
standard_test.go txscript: Consolidate tests into txscript package. 2018-04-30 10:34:59 -05:00
standard.go multi: Break coinbase dep on standardness rules. 2018-05-08 12:49:40 -05:00

txscript

Build Status ISC License GoDoc

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.