errors.gno
1.36 Kb · 44 lines
1package users
2
3import (
4 "chain/runtime"
5 "errors"
6
7 "gno.land/p/nt/ufmt/v0"
8)
9
10const prefix = "r/sys/users: "
11
12var (
13 ErrAlreadyWhitelisted = errors.New(prefix + "already whitelisted")
14 ErrWhitelistRemoveFailed = errors.New(prefix + "failed to remove address from whitelist")
15
16 ErrNameTaken = errors.New(prefix + "name/Alias already taken")
17 ErrInvalidAddress = errors.New(prefix + "invalid address")
18
19 ErrEmptyUsername = errors.New(prefix + "empty username provided")
20 ErrNameLikeAddress = errors.New(prefix + "username resembles a gno.land address")
21 ErrInvalidUsername = errors.New(prefix + "username must match ^[a-zA-Z0-9_]{1,64}$")
22
23 ErrAlreadyHasName = errors.New(prefix + "username for this address already registered - try creating an Alias")
24 ErrDeletedUser = errors.New(prefix + "cannot register a new username after deleting")
25
26 ErrUserNotExistOrDeleted = errors.New(prefix + "this user does not exist or was deleted")
27)
28
29type ErrNotWhitelisted struct {
30 Current runtime.Realm // not whitelisted
31 Previous runtime.Realm // for context
32}
33
34func NewErrNotWhitelisted() ErrNotWhitelisted {
35 return ErrNotWhitelisted{
36 Current: runtime.CurrentRealm(),
37 Previous: runtime.PreviousRealm(),
38 }
39}
40
41func (e ErrNotWhitelisted) Error() string {
42 return ufmt.Sprintf("%scurrent realm/user does not exist in whitelist: %v (previous: %v)",
43 prefix, e.Current, e.Previous)
44}