cosmos-sdk/x/bank/errors.go

100 lines
2.2 KiB
Go
Raw Normal View History

2017-07-06 02:30:03 -07:00
//nolint
package bank
2017-07-03 05:50:33 -07:00
import (
2018-01-18 00:25:23 -08:00
sdk "github.com/cosmos/cosmos-sdk/types"
2017-07-03 05:50:33 -07:00
)
2018-01-26 06:22:56 -08:00
type CodeType = sdk.CodeType
const (
2017-12-21 03:26:40 -08:00
// Coin errors reserve 100 ~ 199.
2018-01-26 06:22:56 -08:00
CodeInvalidInput CodeType = 101
CodeInvalidOutput CodeType = 102
CodeInvalidAddress CodeType = 103
CodeUnknownAddress CodeType = 104
CodeInsufficientCoins CodeType = 105
CodeInvalidCoins CodeType = 106
CodeUnknownRequest CodeType = sdk.CodeUnknownRequest
)
2017-07-03 05:50:33 -07:00
2017-12-21 03:26:40 -08:00
// NOTE: Don't stringer this, we'll put better messages in later.
2018-01-26 06:22:56 -08:00
func codeToDefaultMsg(code CodeType) string {
2017-12-21 03:26:40 -08:00
switch code {
case CodeInvalidInput:
return "Invalid input coins"
case CodeInvalidOutput:
return "Invalid output coins"
case CodeInvalidAddress:
return "Invalid address"
case CodeUnknownAddress:
return "Unknown address"
2018-01-03 17:20:21 -08:00
case CodeInsufficientCoins:
return "Insufficient coins"
case CodeInvalidCoins:
return "Invalid coins"
2017-12-21 03:26:40 -08:00
case CodeUnknownRequest:
return "Unknown request"
default:
2018-01-26 04:19:33 -08:00
return sdk.CodeToDefaultMsg(code)
2017-12-21 03:26:40 -08:00
}
}
//----------------------------------------
// Error constructors
2018-01-26 04:19:33 -08:00
func ErrInvalidInput(msg string) sdk.Error {
return newError(CodeInvalidInput, msg)
2017-07-03 05:50:33 -07:00
}
2018-01-18 00:25:23 -08:00
func ErrNoInputs() sdk.Error {
return newError(CodeInvalidInput, "")
2017-07-03 05:50:33 -07:00
}
2018-01-26 04:19:33 -08:00
func ErrInvalidOutput(msg string) sdk.Error {
return newError(CodeInvalidOutput, msg)
2017-07-03 05:50:33 -07:00
}
2018-01-18 00:25:23 -08:00
func ErrNoOutputs() sdk.Error {
return newError(CodeInvalidOutput, "")
2017-07-03 05:50:33 -07:00
}
2018-01-26 04:19:33 -08:00
func ErrInvalidSequence(msg string) sdk.Error {
return sdk.ErrInvalidSequence(msg)
2018-01-03 17:20:21 -08:00
}
2018-01-26 04:19:33 -08:00
func ErrInvalidAddress(msg string) sdk.Error {
return newError(CodeInvalidAddress, msg)
2018-01-03 17:20:21 -08:00
}
2018-01-26 04:19:33 -08:00
func ErrUnknownAddress(msg string) sdk.Error {
return newError(CodeUnknownAddress, msg)
2017-07-21 14:28:44 -07:00
}
2018-01-26 04:19:33 -08:00
func ErrInsufficientCoins(msg string) sdk.Error {
return newError(CodeInsufficientCoins, msg)
2018-01-07 12:49:58 -08:00
}
2018-01-26 04:19:33 -08:00
func ErrInvalidCoins(msg string) sdk.Error {
return newError(CodeInvalidCoins, msg)
2018-01-07 12:49:58 -08:00
}
2018-01-26 04:19:33 -08:00
func ErrUnknownRequest(msg string) sdk.Error {
return newError(CodeUnknownRequest, msg)
2018-01-07 12:49:58 -08:00
}
2017-12-21 03:26:40 -08:00
//----------------------------------------
2018-01-26 06:22:56 -08:00
func msgOrDefaultMsg(msg string, code CodeType) string {
2018-01-26 04:19:33 -08:00
if msg != "" {
return msg
2017-12-21 03:26:40 -08:00
} else {
2018-01-26 04:19:33 -08:00
return codeToDefaultMsg(code)
2017-12-21 03:26:40 -08:00
}
2017-07-03 05:50:33 -07:00
}
2018-01-26 06:22:56 -08:00
func newError(code CodeType, msg string) sdk.Error {
2018-01-26 04:19:33 -08:00
msg = msgOrDefaultMsg(msg, code)
return sdk.NewError(code, msg)
2017-07-03 05:50:33 -07:00
}