-
Notifications
You must be signed in to change notification settings - Fork 28
/
validations.go
126 lines (117 loc) · 2.72 KB
/
validations.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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package types
import (
errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
)
func ValidateONFTID(onftId string) error {
if len(onftId) < MinIDLen || len(onftId) > MaxIDLen {
return errorsmod.Wrapf(
ErrInvalidONFTID,
"invalid onftId %s, length must be between [%d, %d]", onftId, MinIDLen, MaxIDLen)
}
if !IsBeginWithAlpha(onftId) || !IsAlphaNumeric(onftId) {
return errorsmod.Wrapf(
ErrInvalidONFTID,
"invalid onftId %s, only accepts alphanumeric characters and begin with an english letter", onftId)
}
return nil
}
func ValidateDenomID(denomID string) error {
if len(denomID) < MinIDLen || len(denomID) > MaxIDLen {
return errorsmod.Wrapf(
ErrInvalidDenom,
"invalid denom ID %s, length must be between [%d, %d]",
denomID,
MinIDLen,
MaxIDLen,
)
}
if !IsBeginWithAlpha(denomID) || !IsAlphaNumeric(denomID) {
return errorsmod.Wrapf(
ErrInvalidDenom,
"invalid denom ID %s, only accepts alphanumeric characters,and begin with an english letter",
denomID,
)
}
return nil
}
func ValidateDenomSymbol(denomSymbol string) error {
if len(denomSymbol) < MinDenomLen || len(denomSymbol) > MaxDenomLen {
return errorsmod.Wrapf(
ErrInvalidDenom,
"invalid denom symbol %s, only accepts value [%d, %d]",
denomSymbol,
MinDenomLen,
MaxDenomLen,
)
}
if !IsBeginWithAlpha(denomSymbol) || !IsAlpha(denomSymbol) {
return errorsmod.Wrapf(
ErrInvalidDenom,
"invalid denom symbol %s, only accepts alphabetic characters",
denomSymbol,
)
}
return nil
}
func ValidateName(name string) error {
if len(name) > MaxNameLen {
return errorsmod.Wrapf(
ErrInvalidName,
"invalid name %s, length must be less than %d",
name,
MaxNameLen,
)
}
return nil
}
func ValidateDescription(description string) error {
if len(description) > MaxDescriptionLen {
return errorsmod.Wrapf(
ErrInvalidDescription,
"invalid description %s, length must be less than %d",
description,
MaxDescriptionLen,
)
}
return nil
}
func ValidateURI(uri string) error {
if len(uri) > MaxURILen {
return errorsmod.Wrapf(
ErrInvalidURI,
"invalid uri %s, length must be less than %d",
uri,
MaxURILen,
)
}
return nil
}
func ValidateMediaURI(uri string) error {
if len(uri) == 0 {
return errorsmod.Wrapf(
ErrInvalidURI,
"invalid uri %s, media uri should not be empty",
uri,
)
}
if len(uri) > MaxURILen {
return errorsmod.Wrapf(
ErrInvalidURI,
"invalid uri %s, length must be less than %d",
uri,
MaxURILen,
)
}
return nil
}
func ValidateCreationFee(fee sdk.Coin) error {
if !fee.IsValid() || fee.IsNil() {
return errorsmod.Wrapf(
ErrInvalidURI,
"invalid creation fee %s, fee must be positive",
fee.String(),
)
}
return nil
}