dcrd/txscript
Dave Collins f306a72a16
txscript: Introduce raw script sighash calc func.
This introduces a new function named calcSignatureHashRaw which accepts
the raw script bytes to calculate the script hash versus requiring the
parsed opcode only to unparse them later in order to make it more
flexible for working with raw scripts.

Since there are several places in the rest of the code that currently
only have access to the parsed opcodes, this modifies the existing
calcSignatureHash to first unparse the script before calling the new
function.

Note that the code in the signature hash calculation to remove all
instances of OP_CODESEPARATOR from the script is removed because that is
a holdover from BTC code which does not apply to v0 Decred scripts since
OP_CODESEPARATOR is completely disabled in Decred and thus there can
never actually be one in the script.

Finally, it removes the removeOpcode function and related tests since it
is no longer used.
2019-03-26 14:50:57 -05:00
..
data txscript: Add remove signature reference test. 2019-02-14 14:10:12 -06:00
bench_test.go txscript: Add benchmark for DisasmString. 2019-03-26 14:50:56 -05:00
consensus_test.go multi: Break coinbase dep on standardness rules. 2018-05-08 12:49:40 -05:00
consensus.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
doc.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05:00
engine_test.go txscript: Remove DER signature verification flag. 2018-07-02 12:02:28 -05:00
engine.go txscript: Tighten standardness pubkey checks. 2019-03-11 19:33:27 -05:00
error_test.go txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -05:00
error.go txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -05:00
example_test.go txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -05:00
go.mod multi: Add go 1.11 directive to all modules. 2019-03-18 02:02:35 -05:00
go.sum multi: Remove non-root module replacements. 2019-02-08 18:01:43 -06:00
log.go multi: deprecate DisableLog 2019-03-18 11:16:35 -05:00
opcode_test.go multi: cleanup linter warnings 2019-02-13 08:38:25 -05:00
opcode.go txscript: Optimize script disasm. 2019-03-26 14:50:57 -05:00
README.md txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -05:00
reference_test.go txscript: add stake opcode tests. 2018-09-11 20:21:42 +00:00
script_test.go txscript: Introduce raw script sighash calc func. 2019-03-26 14:50:57 -05:00
script.go txscript: Introduce raw script sighash calc func. 2019-03-26 14:50:57 -05:00
scriptbuilder_test.go txscript: Significantly improve errors. 2018-07-01 15:04:59 -05: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 txscript: Introduce constant for max CSV bytes. 2019-03-12 10:26:04 -05:00
sigcache_test.go multi: Remove unused secp256k1 sig parse parameter. 2018-07-04 12:27:34 -05: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: Introduce raw script sighash calc func. 2019-03-26 14:50:57 -05:00
sign_test.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
sign.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
stack_test.go txscript: Make PeekInt consistent with PopInt. 2018-07-02 12:14:37 -05:00
stack.go txscript: code cleanup 2019-02-08 09:18:53 -05:00
standard_test.go txscript: Tighten standardness pubkey checks. 2019-03-11 19:33:27 -05:00
standard.go txscript: Deprecate GetMultisigMandN. 2019-03-26 14:50:53 -05:00
tokenizer_test.go txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -05:00
tokenizer.go txscript: Introduce zero-alloc script tokenizer. 2019-03-26 14:50:56 -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.