lbcd/txscript
Dave Collins b60e3547d2 txscript: Correct nulldata standardness check.
This corrects the isNullData standard transaction type test to work
properly with canonically-encoded data pushes.  In particular, single
byte data pushes that are small integers (0-16) are converted to the
equivalent numeric opcodes when canonically encoded and the code failed
to detect them properly.

It also adds several tests to ensure that both canonical and
non-canonical nulldata scripts are recognized properly and modifies the
test failure print to include the script that failed.

This does not affect consensus since it is just a standardness check.
2016-10-20 01:44:58 -05: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 txscript: Implement CheckSequenceVerify (BIP0112) 2016-10-19 12:06:44 -04:00
engine_test.go chainhash: Abstract hash logic to new package. (#729) 2016-08-08 14:04:33 -05:00
error.go multi: Fix several misspellings in the comments. 2016-02-25 11:17:12 -06:00
example_test.go chainhash: Abstract hash logic to new package. (#729) 2016-08-08 14:04:33 -05:00
internal_test.go Add signature hash calculation tests from Bitcoin Core. 2015-11-15 16:39:00 -05:00
log.go Relicense to the btcsuite developers. 2015-05-01 12:00:56 -05:00
log_test.go Relicense to the btcsuite developers. 2015-05-01 12:00:56 -05:00
opcode.go txscript: Implement CheckSequenceVerify (BIP0112) 2016-10-19 12:06:44 -04:00
opcode_test.go txscript: Implement CheckSequenceVerify (BIP0112) 2016-10-19 12:06:44 -04:00
README.md txscript: Fix typo in README 2016-01-29 12:39:11 -08:00
reference_test.go txscript: Implement CheckSequenceVerify (BIP0112) 2016-10-19 12:06:44 -04:00
script.go chainhash: Abstract hash logic to new package. (#729) 2016-08-08 14:04:33 -05:00
script_test.go txscript: New function IsUnspendable 2015-08-03 10:10:23 -04:00
scriptbuilder.go txscript: Expose AddOps on ScriptBuilder. (#734) 2016-08-12 19:29:28 -05:00
scriptbuilder_test.go txscript: Expose AddOps on ScriptBuilder. (#734) 2016-08-12 19:29:28 -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 txscript: Expose AddOps on ScriptBuilder. (#734) 2016-08-12 19:29:28 -05:00
sign_test.go chainhash: Abstract hash logic to new package. (#729) 2016-08-08 14:04:33 -05:00
stack.go txscript: Change makeScriptNum to take a length argument 2015-10-05 19:48:55 -04:00
stack_test.go Remove duplicate stack tests. 2016-02-09 11:17:04 -06:00
standard.go txscript: Correct nulldata standardness check. 2016-10-20 01:44:58 -05:00
standard_test.go txscript: Correct nulldata standardness check. 2016-10-20 01:44:58 -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.