2018-05-30 15:25:18 -07:00
|
|
|
//nolint
|
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 12:38:02 -07:00
|
|
|
func ErrNoValidatorForAddress(codespace sdk.CodespaceType) sdk.Error {
|
2018-06-13 12:13:22 -07:00
|
|
|
return newError(codespace, CodeInvalidValidator, "that address is not associated with any known validator")
|
2018-05-28 12:38:02 -07:00
|
|
|
}
|
|
|
|
func ErrBadValidatorAddr(codespace sdk.CodespaceType) sdk.Error {
|
2018-06-13 12:13:22 -07:00
|
|
|
return newError(codespace, CodeInvalidValidator, "validator does not exist for that address")
|
2018-05-28 12:38:02 -07:00
|
|
|
}
|
|
|
|
func ErrValidatorJailed(codespace sdk.CodespaceType) sdk.Error {
|
2018-06-13 12:13:22 -07:00
|
|
|
return newError(codespace, CodeValidatorJailed, "validator jailed, cannot yet be unrevoked")
|
2018-05-28 12:38:02 -07:00
|
|
|
}
|
|
|
|
|
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:
|
2018-06-13 12:13:22 -07:00
|
|
|
return "invalid Validator"
|
2018-05-28 12:38:02 -07:00
|
|
|
case CodeValidatorJailed:
|
2018-06-13 12:13:22 -07:00
|
|
|
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)
|
|
|
|
}
|