Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: aljo242 <alex@cosmoslabs.io>
Errors
This package provides structured error handling for Cosmos SDK apps. It supports:
- Custom error codes and messages
- Stack traces when wrapping errors
- ABCI-compatible responses for Tendermint
- Optional gRPC status codes
Usage
Registering Errors
Define root errors with a unique code and description:
var ErrInvalidInput = errors.Register("app", 1001, "invalid input")
You can wrap errors to add context:
return errors.Wrap(ErrInvalidInput, "missing field")
Getting ABCI Error Info
To convert an error to ABCI-compatible output:
codespace, code, log := errors.ABCIInfo(err, debug)
Set debug = true to include stack traces in logs.
Suppress Duplicate Error Warnings
To prevent logging when the same error is registered twice, set:
export COSMOS_SDK_SUPPRESS_DUPLICATE_ERROR_CODE_LOG=true
Useful in tests or modules that may re-register the same error.