lbcd/txscript
Dave Collins bc576b13b4
txscript: Only do CSV txver check if enabled.
The CSV consensus rules dictate that the opcode fails when the
transaction version is not at least version 2, however that only applies
if the disable flag is not set in the sequence.

This is not an issue at the current time because we do not yet enforce
CSV at a consensus level, however, I noticed this discrepancy when doing
a thorough audit of the CSV paths due to the ongoing work to add full
consensus-enforced CSV support.

As a result, this must be merged prior to enabling consensus enforcement
for CSV or it would open up the potential for a hard fork.
2016-12-03 12:33:57 -06:00
..
data txscript: Implement CheckSequenceVerify (BIP0112) 2016-10-19 12:06:44 -04:00
consensus.go txscript: Implement CheckSequenceVerify (BIP0112) 2016-10-19 12:06:44 -04:00
doc.go Relicense to the btcsuite developers. 2015-05-01 12:00:56 -05:00
engine.go multi: Simplify code per gosimple linter. 2016-11-03 13:00:35 -05:00
engine_test.go txscript: Consolidate tests into txscript package. 2016-10-20 09:28:33 -05:00
error.go multi: Fix several misspellings in the comments. 2016-02-25 11:17:12 -06:00
example_test.go wire: Make NewMsgTx accept the tx version. 2016-10-27 14:09:29 -05:00
log.go Relicense to the btcsuite developers. 2015-05-01 12:00:56 -05:00
log_test.go txscript: Consolidate tests into txscript package. 2016-10-20 09:28:33 -05:00
opcode.go txscript: Only do CSV txver check if enabled. 2016-12-03 12:33:57 -06:00
opcode_test.go txscript: Remove OP_SMALLDATA 2016-10-21 15:18:42 -04:00
README.md txscript: Fix typo in README 2016-01-29 12:39:11 -08:00
reference_test.go wire: Make NewMsgTx accept the tx version. 2016-10-27 14:09:29 -05:00
script.go txscript: reduce allocs in calcSignatureHash 2016-11-16 12:28:22 -06:00
script_test.go txscript: Consolidate tests into txscript package. 2016-10-20 09:28:33 -05:00
scriptbuilder.go multi: Remove unnecessary convs found by unconvert. 2016-11-03 11:59:38 -05:00
scriptbuilder_test.go txscript: Consolidate tests into txscript package. 2016-10-20 09:28:33 -05:00
scriptnum.go txscript: Change makeScriptNum to take a length argument 2015-10-05 19:48:55 -04:00
scriptnum_test.go txscript: Change makeScriptNum to take a length argument 2015-10-05 19:48:55 -04:00
sigcache.go chainhash: Abstract hash logic to new package. (#729) 2016-08-08 14:04:33 -05:00
sigcache_test.go chainhash: Abstract hash logic to new package. (#729) 2016-08-08 14:04:33 -05:00
sign.go Unassign some TODO's 2016-11-15 17:47:33 -06:00
sign_test.go wire: Make NewMsgTx accept the tx version. 2016-10-27 14:09:29 -05:00
stack.go txscript: Change makeScriptNum to take a length argument 2015-10-05 19:48:55 -04:00
stack_test.go multi: Simplify code per gosimple linter. 2016-11-03 13:00:35 -05:00
standard.go txscript: Cleanup and improve NullDataScript tests. 2016-10-21 10:26:09 -05:00
standard_test.go txscript: Cleanup and improve NullDataScript tests. 2016-10-21 10:26:09 -05:00

txscript

[Build Status] (https://travis-ci.org/btcsuite/btcd) ![ISC License] (http://img.shields.io/badge/license-ISC-blue.svg) [GoDoc] (http://godoc.org/github.com/btcsuite/btcd/txscript)

Package txscript implements the bitcoin 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 bitcoin transaction scripts.

Bitcoin Scripts

Bitcoin provides a stack-based, FORTH-like language for the scripts in the bitcoin transactions. This language is not turing complete although it is still fairly powerful. A description of the language can be found at https://en.bitcoin.it/wiki/Script

Installation and Updating

$ go get -u github.com/btcsuite/btcd/txscript

Examples

GPG Verification Key

All official release tags are signed by Conformal so users can ensure the code has not been tampered with and is coming from the btcsuite developers. To verify the signature perform the following:

  • Download the public key from the Conformal website at https://opensource.conformal.com/GIT-GPG-KEY-conformal.txt

  • Import the public key into your GPG keyring:

    gpg --import GIT-GPG-KEY-conformal.txt
    
  • Verify the release tag with the following command where TAG_NAME is a placeholder for the specific tag:

    git tag -v TAG_NAME
    

License

Package txscript is licensed under the copyfree ISC License.