This moves the new stdaddr package from the internal staging area to the txscript module and updates the relevant paths and package README.md accordingly.
72 lines
2.4 KiB
Go
72 lines
2.4 KiB
Go
// Copyright (c) 2021 The Decred developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package stdaddr
|
|
|
|
// ErrorKind identifies a kind of error.
|
|
type ErrorKind string
|
|
|
|
// These constants are used to identify a specific ErrorKind.
|
|
const (
|
|
// ErrUnsupportedAddress indicates that an address successfully decoded, but
|
|
// is not a supported/recognized type.
|
|
ErrUnsupportedAddress = ErrorKind("ErrUnsupportedAddress")
|
|
|
|
// ErrUnsupportedScriptVersion indicates that an address type does not
|
|
// support a given script version.
|
|
ErrUnsupportedScriptVersion = ErrorKind("ErrUnsupportedScriptVersion")
|
|
|
|
// ErrMalformedAddress indicates an address failed to decode.
|
|
ErrMalformedAddress = ErrorKind("ErrMalformedAddress")
|
|
|
|
// ErrMalformedAddressData indicates an address successfully decoded and is
|
|
// a recognized type, but the encoded data is not the expected length.
|
|
ErrMalformedAddressData = ErrorKind("ErrMalformedAddressData")
|
|
|
|
// ErrBadAddressChecksum indicates an address failed to decode due to an
|
|
// invalid checksum.
|
|
ErrBadAddressChecksum = ErrorKind("ErrBadAddressChecksum")
|
|
|
|
// ErrInvalidPubKey indicates that a serialized public key failed to
|
|
// parse.
|
|
ErrInvalidPubKey = ErrorKind("ErrInvalidPubKey")
|
|
|
|
// ErrInvalidPubKeyFormat indicates that a serialized public key parsed
|
|
// successfully, but is not one of the allowed formats.
|
|
ErrInvalidPubKeyFormat = ErrorKind("ErrInvalidPubKeyFormat")
|
|
|
|
// ErrInvalidHashLen indicates that either a public key hash or a script
|
|
// hash is not an allowed length.
|
|
ErrInvalidHashLen = ErrorKind("ErrInvalidHashLen")
|
|
)
|
|
|
|
// Error satisfies the error interface and prints human-readable errors.
|
|
func (e ErrorKind) Error() string {
|
|
return string(e)
|
|
}
|
|
|
|
// Error identifies an address-related error.
|
|
//
|
|
// It has full support for errors.Is and errors.As, so the caller can ascertain
|
|
// the specific reason for the error by checking the underlying error.
|
|
type Error struct {
|
|
Err error
|
|
Description string
|
|
}
|
|
|
|
// Error satisfies the error interface and prints human-readable errors.
|
|
func (e Error) Error() string {
|
|
return e.Description
|
|
}
|
|
|
|
// Unwrap returns the underlying wrapped error.
|
|
func (e Error) Unwrap() error {
|
|
return e.Err
|
|
}
|
|
|
|
// makeError creates an Error given a set of arguments.
|
|
func makeError(kind ErrorKind, desc string) Error {
|
|
return Error{Err: kind, Description: desc}
|
|
}
|