Search Apps Documentation Source Content File Folder Download Copy Actions Download

errors.gno

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