2015-01-30 07:03:01 +01:00
|
|
|
txscript
|
|
|
|
========
|
2013-06-12 23:22:01 +02:00
|
|
|
|
2021-03-04 23:12:45 +01:00
|
|
|
[![Build Status](https://github.com/btcsuite/btcd/workflows/Build%20and%20Test/badge.svg)](https://github.com/btcsuite/btcd/actions)
|
2017-05-25 18:29:23 +02:00
|
|
|
[![ISC License](http://img.shields.io/badge/license-ISC-blue.svg)](http://copyfree.org)
|
2021-03-04 23:12:45 +01:00
|
|
|
[![GoDoc](https://pkg.go.dev/github.com/btcsuite/btcd/txscript?status.png)](https://pkg.go.dev/github.com/btcsuite/btcd/txscript)
|
2013-12-11 01:01:11 +01:00
|
|
|
|
2015-01-30 07:03:01 +01:00
|
|
|
Package txscript implements the bitcoin transaction script language. There is
|
2015-10-23 18:34:50 +02:00
|
|
|
a comprehensive test suite.
|
2013-06-12 23:35:27 +02:00
|
|
|
|
2015-01-30 07:03:01 +01:00
|
|
|
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.
|
2013-06-12 23:35:27 +02:00
|
|
|
|
|
|
|
## Bitcoin Scripts
|
|
|
|
|
2016-01-29 10:11:21 +01:00
|
|
|
Bitcoin provides a stack-based, FORTH-like language for the scripts in
|
2013-06-12 23:35:27 +02:00
|
|
|
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
|
|
|
|
|
2015-10-23 18:34:50 +02:00
|
|
|
## Installation and Updating
|
2013-06-12 23:35:27 +02:00
|
|
|
|
|
|
|
```bash
|
2015-10-23 18:34:50 +02:00
|
|
|
$ go get -u github.com/btcsuite/btcd/txscript
|
2013-06-12 23:35:27 +02:00
|
|
|
```
|
|
|
|
|
2014-07-08 21:40:32 +02:00
|
|
|
## Examples
|
|
|
|
|
2021-03-04 23:12:45 +01:00
|
|
|
* [Standard Pay-to-pubkey-hash Script](https://pkg.go.dev/github.com/btcsuite/btcd/txscript#example-PayToAddrScript)
|
2014-07-08 21:40:32 +02:00
|
|
|
Demonstrates creating a script which pays to a bitcoin address. It also
|
|
|
|
prints the created script hex and uses the DisasmString function to display
|
|
|
|
the disassembled script.
|
|
|
|
|
2021-03-04 23:12:45 +01:00
|
|
|
* [Extracting Details from Standard Scripts](https://pkg.go.dev/github.com/btcsuite/btcd/txscript#example-ExtractPkScriptAddrs)
|
2014-07-08 21:59:57 +02:00
|
|
|
Demonstrates extracting information from a standard public key script.
|
|
|
|
|
2021-03-04 23:12:45 +01:00
|
|
|
* [Manually Signing a Transaction Output](https://pkg.go.dev/github.com/btcsuite/btcd/txscript#example-SignTxOutput)
|
2015-02-09 17:11:55 +01:00
|
|
|
Demonstrates manually creating and signing a redeem transaction.
|
|
|
|
|
2019-03-13 07:11:03 +01:00
|
|
|
* [Counting Opcodes in Scripts](http://godoc.org/github.com/decred/dcrd/txscript#example-ScriptTokenizer)
|
|
|
|
Demonstrates creating a script tokenizer instance and using it to count the
|
|
|
|
number of opcodes a script contains.
|
|
|
|
|
2013-06-12 23:35:27 +02:00
|
|
|
## GPG Verification Key
|
|
|
|
|
|
|
|
All official release tags are signed by Conformal so users can ensure the code
|
2015-05-01 08:28:01 +02:00
|
|
|
has not been tampered with and is coming from the btcsuite developers. To
|
|
|
|
verify the signature perform the following:
|
2013-06-12 23:35:27 +02:00
|
|
|
|
|
|
|
- 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:
|
|
|
|
```bash
|
|
|
|
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:
|
|
|
|
```bash
|
|
|
|
git tag -v TAG_NAME
|
|
|
|
```
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
2015-10-23 18:34:50 +02:00
|
|
|
Package txscript is licensed under the [copyfree](http://copyfree.org) ISC
|
|
|
|
License.
|