cosmos-sdk/x/slashing/errors.go

57 lines
1.3 KiB
Go
Raw Normal View History

2018-05-23 13:25:56 -07:00
package slashing
import (
sdk "github.com/cosmos/cosmos-sdk/types"
)
// Local code type
type CodeType = sdk.CodeType
const (
// Default slashing codespace
DefaultCodespace sdk.CodespaceType = 10
2018-05-28 12:38:02 -07:00
// Invalid validator
CodeInvalidValidator CodeType = 201
// Validator jailed
CodeValidatorJailed CodeType = 202
2018-05-23 13:25:56 -07:00
)
2018-05-28 13:12:45 -07:00
//nolint
2018-05-28 12:38:02 -07:00
func ErrNoValidatorForAddress(codespace sdk.CodespaceType) sdk.Error {
return newError(codespace, CodeInvalidValidator, "That address is not associated with any known validator")
}
2018-05-28 13:12:45 -07:00
//nolint
2018-05-28 12:38:02 -07:00
func ErrBadValidatorAddr(codespace sdk.CodespaceType) sdk.Error {
return newError(codespace, CodeInvalidValidator, "Validator does not exist for that address")
}
2018-05-28 13:12:45 -07:00
//nolint
2018-05-28 12:38:02 -07:00
func ErrValidatorJailed(codespace sdk.CodespaceType) sdk.Error {
return newError(codespace, CodeValidatorJailed, "Validator jailed, cannot yet be unrevoked")
}
2018-05-23 13:25:56 -07:00
func codeToDefaultMsg(code CodeType) string {
switch code {
2018-05-28 12:38:02 -07:00
case CodeInvalidValidator:
return "Invalid Validator"
case CodeValidatorJailed:
return "Validator Jailed"
2018-05-23 13:25:56 -07:00
default:
return sdk.CodeToDefaultMsg(code)
}
}
func msgOrDefaultMsg(msg string, code CodeType) string {
if msg != "" {
return msg
}
return codeToDefaultMsg(code)
}
func newError(codespace sdk.CodespaceType, code CodeType, msg string) sdk.Error {
msg = msgOrDefaultMsg(msg, code)
return sdk.NewError(codespace, code, msg)
}