forked from cosmos/cosmos-sdk
-
Notifications
You must be signed in to change notification settings - Fork 1
/
errors.go
99 lines (81 loc) · 2.18 KB
/
errors.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//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)
}