doc.go raw

   1  /*Package txscript implements the bitcoin transaction script language.
   2  
   3  A complete description of the script language used by bitcoin can be found at https://en.bitcoin.it/wiki/Script. The
   4  following only serves as a quick overview to provide information on how to use the package. This package provides data
   5  structures and functions to parse and execute bitcoin transaction scripts.
   6  
   7  Script Overview
   8  
   9  Bitcoin transaction scripts are written in a stack-base, FORTH-like language. The bitcoin script language consists of a
  10  number of opcodes which fall into several categories such pushing and popping data to and from the stack, performing
  11  basic and bitwise arithmetic, conditional branching, comparing hashes, and checking cryptographic signatures. Scripts
  12  are processed from left to right and intentionally do not provide loops.
  13  
  14  The vast majority of Bitcoin scripts at the time of this writing are of several standard forms which consist of a
  15  spender providing a public key and a signature which proves the spender owns the associated private key. This
  16  information is used to prove the the spender is authorized to perform the transaction. One benefit of using a scripting
  17  language is added flexibility in specifying what conditions must be met in order to spend bitcoins.
  18  
  19  Errors
  20  
  21  Errors returned by this package are of type txscript.ScriptError. This allows the caller to programmatically determine
  22  the specific error by examining the ErrorCode field of the type asserted txscript.ScriptError while still providing rich
  23  error messages with contextual information. A convenience function named IsErrorCode is also provided to allow callers
  24  to easily check for a specific error code. See ErrorCode in the package documentation for a full list.
  25  */
  26  package txscript
  27