-
Notifications
You must be signed in to change notification settings - Fork 3.6k
/
validation.go
35 lines (29 loc) · 994 Bytes
/
validation.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
package nft
import (
"fmt"
"regexp"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
var (
// reClassIDString can be 3 ~ 100 characters long and support letters, followed by either
// a letter, a number or a slash ('/') or a colon (':') or ('-').
reClassIDString = `[a-zA-Z][a-zA-Z0-9/:-]{2,100}`
reClassID = regexp.MustCompile(fmt.Sprintf(`^%s$`, reClassIDString))
// reNFTIDString can be 3 ~ 100 characters long and support letters, followed by either
// a letter, a number or a slash ('/') or a colon (':') or ('-').
reNFTID = reClassID
)
// ValidateClassID returns whether the class id is valid
func ValidateClassID(id string) error {
if !reClassID.MatchString(id) {
return sdkerrors.Wrapf(ErrInvalidClassID, "invalid class id: %s", id)
}
return nil
}
// ValidateNFTID returns whether the nft id is valid
func ValidateNFTID(id string) error {
if !reNFTID.MatchString(id) {
return sdkerrors.Wrapf(ErrInvalidID, "invalid nft id: %s", id)
}
return nil
}