dcrd/txscript
Dave Collins d82dfb76dd
txscript: Convert GetScriptHashFromP2SHScript.
This converts GetScriptHashFromP2SHScript to make use of the new script
tokenizer in order to remove the reliance on parsed opcodes as a step
towards utlimately removing them altogether.

It also deprecates the function since the current semantics are not
really ideal in that they simply return the data push just after the
first HASH160 opcode which is only valid in the case the script is
already known to be of the correct form and the task can be done more
efficiently via raw script analysis such as how it is done in the
recently added extractScriptHash function.

Finally, it modifies the comment to explicitly call out the script
version semantics as well as the aforemention precondition.

It is worth noting that this has the side effect of significantly
optimizing the function as well, however, since it is deprecated, no
benchmarks are provided.
2019-03-26 14:51:41 -05:00
..
data txscript: Add remove signature reference test. 2019-02-14 14:10:12 -06:00
bench_test.go txscript: Add multisig redeem script extract bench. 2019-03-26 14:51:40 -05:00
consensus_test.go multi: Break coinbase dep on standardness rules. 2018-05-08 12:49:40 -05:00
consensus.go txscript: Optimize ExtractCoinbaseNullData. 2019-03-26 14:51:35 -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: Check p2sh push before parsing scripts. 2019-03-26 14:51:10 -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: Convert sighash calc tests. 2019-03-26 14:50:59 -05:00
script_test.go txscript: Optimize isAnyKindOfScriptHash. 2019-03-26 14:51:08 -05:00
script.go txscript: Remove unused getSigOpCount function. 2019-03-26 14:51:37 -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: Optimize CalcSignatureHash. 2019-03-26 14:50:58 -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: Optimize CalcMultiSigStats. 2019-03-26 14:51:39 -05:00
standard.go txscript: Convert GetScriptHashFromP2SHScript. 2019-03-26 14:51:41 -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.