Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}