This updates the txscript package to provide support for the errors.Is and errors.As functions introduced in Go 1.13 per the recently documented best practices. The following is an overview of the changes: - Rename the ErrorCode type to ErrorKind and make it a string - Implement the error interface on ErrorKind - Update all error code definitions to the new type - Remove error code string map that is no longer required - Remove unused ErrInternal definition - Change the error code field of the Error type to Err - Implement Unwrap on the Error type to support unwrapping via errors.Is/As - Remove the IsErrorCode function since it is no longer needed due to errors.Is - Update IsDERSigError to cope with the changes - Modify various comments to refer to error kinds instead of codes - Update all test code to use the new ErrorKind directly along with errors.Is for detecting the expect errors - Add full test coverage to ensure the new error definitions work as intended - Update the doc.go errors section accordingly
40 lines
1.7 KiB
Go
40 lines
1.7 KiB
Go
// Copyright (c) 2013-2017 The btcsuite developers
|
|
// Copyright (c) 2015-2018 The Decred developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
/*
|
|
Package txscript implements the Decred transaction script language.
|
|
|
|
This package provides data structures and functions to parse and execute
|
|
decred transaction scripts.
|
|
|
|
Script Overview
|
|
|
|
Decred transaction scripts are written in a stack-base, FORTH-like language.
|
|
|
|
The Decred script language consists of a number of opcodes which fall into
|
|
several categories such pushing and popping data to and from the stack,
|
|
performing basic and bitwise arithmetic, conditional branching, comparing
|
|
hashes, and checking cryptographic signatures. Scripts are processed from left
|
|
to right and intentionally do not provide loops.
|
|
|
|
The vast majority of Decred scripts at the time of this writing are of several
|
|
standard forms which consist of a spender providing a public key and a signature
|
|
which proves the spender owns the associated private key. This information
|
|
is used to prove the spender is authorized to perform the transaction.
|
|
|
|
One benefit of using a scripting language is added flexibility in specifying
|
|
what conditions must be met in order to spend decred.
|
|
|
|
Errors
|
|
|
|
Errors returned by this package are of type txscript.ErrorKind wrapped by
|
|
txscript.Error which has full support for the standard library errors.Is and
|
|
errors.As functions. This allows the caller to programmatically determine the
|
|
specific error while still providing rich error messages with contextual
|
|
information. See the constants defined with ErrorKind in the package
|
|
documentation for a full list.
|
|
*/
|
|
package txscript
|