/* Package errors implements custom error interfaces for cosmos-sdk. Error declarations should be generic and cover broad range of cases. Each returned error instance can wrap a generic error declaration to provide more details. This package provides a broad range of errors declared that fits all common cases. If an error is very specific for an extension it can be registered outside of the errors package. If it will be needed my many extensions, please consider registering it in the errors package. To create a new error instance use Register function. You must provide a unique, non zero error code and a short description, for example: var ErrZeroDivision = errors.Register(9241, "zero division") When returning an error, you can attach to it an additional context information by using Wrap function, for example: func safeDiv(val, div int) (int, err) { if div == 0 { return 0, errors.Wrapf(ErrZeroDivision, "cannot divide %d", val) } return val / div, nil } The first time an error instance is wrapped a stacktrace is attached as well. Stacktrace information can be printed using %+v and %v formats. %s is just the error message %+v is the full stack trace %v appends a compressed [filename:line] where the error was created */ package errors