100 lines
2.2 KiB
Go
100 lines
2.2 KiB
Go
//nolint
|
|
package bank
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
)
|
|
|
|
type CodeType = sdk.CodeType
|
|
|
|
const (
|
|
// Coin errors reserve 100 ~ 199.
|
|
CodeInvalidInput CodeType = 101
|
|
CodeInvalidOutput CodeType = 102
|
|
CodeInvalidAddress CodeType = 103
|
|
CodeUnknownAddress CodeType = 104
|
|
CodeInsufficientCoins CodeType = 105
|
|
CodeInvalidCoins CodeType = 106
|
|
CodeUnknownRequest CodeType = sdk.CodeUnknownRequest
|
|
)
|
|
|
|
// NOTE: Don't stringer this, we'll put better messages in later.
|
|
func codeToDefaultMsg(code CodeType) string {
|
|
switch code {
|
|
case CodeInvalidInput:
|
|
return "Invalid input coins"
|
|
case CodeInvalidOutput:
|
|
return "Invalid output coins"
|
|
case CodeInvalidAddress:
|
|
return "Invalid address"
|
|
case CodeUnknownAddress:
|
|
return "Unknown address"
|
|
case CodeInsufficientCoins:
|
|
return "Insufficient coins"
|
|
case CodeInvalidCoins:
|
|
return "Invalid coins"
|
|
case CodeUnknownRequest:
|
|
return "Unknown request"
|
|
default:
|
|
return sdk.CodeToDefaultMsg(code)
|
|
}
|
|
}
|
|
|
|
//----------------------------------------
|
|
// Error constructors
|
|
|
|
func ErrInvalidInput(msg string) sdk.Error {
|
|
return newError(CodeInvalidInput, msg)
|
|
}
|
|
|
|
func ErrNoInputs() sdk.Error {
|
|
return newError(CodeInvalidInput, "")
|
|
}
|
|
|
|
func ErrInvalidOutput(msg string) sdk.Error {
|
|
return newError(CodeInvalidOutput, msg)
|
|
}
|
|
|
|
func ErrNoOutputs() sdk.Error {
|
|
return newError(CodeInvalidOutput, "")
|
|
}
|
|
|
|
func ErrInvalidSequence(msg string) sdk.Error {
|
|
return sdk.ErrInvalidSequence(msg)
|
|
}
|
|
|
|
func ErrInvalidAddress(msg string) sdk.Error {
|
|
return newError(CodeInvalidAddress, msg)
|
|
}
|
|
|
|
func ErrUnknownAddress(msg string) sdk.Error {
|
|
return newError(CodeUnknownAddress, msg)
|
|
}
|
|
|
|
func ErrInsufficientCoins(msg string) sdk.Error {
|
|
return newError(CodeInsufficientCoins, msg)
|
|
}
|
|
|
|
func ErrInvalidCoins(msg string) sdk.Error {
|
|
return newError(CodeInvalidCoins, msg)
|
|
}
|
|
|
|
func ErrUnknownRequest(msg string) sdk.Error {
|
|
return newError(CodeUnknownRequest, msg)
|
|
}
|
|
|
|
//----------------------------------------
|
|
|
|
func msgOrDefaultMsg(msg string, code CodeType) string {
|
|
if msg != "" {
|
|
return msg
|
|
} else {
|
|
return codeToDefaultMsg(code)
|
|
}
|
|
}
|
|
|
|
func newError(code CodeType, msg string) sdk.Error {
|
|
msg = msgOrDefaultMsg(msg, code)
|
|
return sdk.NewError(code, msg)
|
|
}
|