//nolint package coin import ( "fmt" abci "github.com/tendermint/abci/types" "github.com/tendermint/basecoin/errors" ) var ( errNoAccount = fmt.Errorf("No such account") errInsufficientFunds = fmt.Errorf("Insufficient Funds") errNoInputs = fmt.Errorf("No Input Coins") errNoOutputs = fmt.Errorf("No Output Coins") errInvalidAddress = fmt.Errorf("Invalid Address") errInvalidCoins = fmt.Errorf("Invalid Coins") ) var ( invalidInput = abci.CodeType_BaseInvalidInput invalidOutput = abci.CodeType_BaseInvalidOutput unknownAddress = abci.CodeType_BaseUnknownAddress ) // here are some generic handlers to grab classes of errors based on code func IsInputErr(err error) bool { return errors.HasErrorCode(err, invalidInput) } func IsOutputErr(err error) bool { return errors.HasErrorCode(err, invalidOutput) } func IsAddressErr(err error) bool { return errors.HasErrorCode(err, unknownAddress) } func IsCoinErr(err error) bool { return err != nil && (IsInputErr(err) || IsOutputErr(err) || IsAddressErr(err)) } func ErrNoAccount() errors.TMError { return errors.WithCode(errNoAccount, unknownAddress) } func IsNoAccountErr(err error) bool { return errors.IsSameError(errNoAccount, err) } func ErrInvalidAddress() errors.TMError { return errors.WithCode(errInvalidAddress, invalidInput) } func IsInvalidAddressErr(err error) bool { return errors.IsSameError(errInvalidAddress, err) } func ErrInvalidCoins() errors.TMError { return errors.WithCode(errInvalidCoins, invalidInput) } func IsInvalidCoinsErr(err error) bool { return errors.IsSameError(errInvalidCoins, err) } func ErrInsufficientFunds() errors.TMError { return errors.WithCode(errInsufficientFunds, invalidInput) } func IsInsufficientFundsErr(err error) bool { return errors.IsSameError(errInsufficientFunds, err) } func ErrNoInputs() errors.TMError { return errors.WithCode(errNoInputs, invalidInput) } func IsNoInputsErr(err error) bool { return errors.IsSameError(errNoInputs, err) } func ErrNoOutputs() errors.TMError { return errors.WithCode(errNoOutputs, invalidOutput) } func IsNoOutputsErr(err error) bool { return errors.IsSameError(errNoOutputs, err) }