1package namereg23import (4 susers "gno.land/r/sys/users"5)67// Pre-registered names bypass the Open Nym Tier `nym-...\d{3}` format8// intentionally. They are bootstrap names allocated at genesis and are9// not subject to the auto-registration regex. They DO appear in10// reservedNames as a defense-in-depth (so a future governance-bypass11// path can't accidentally reallocate them either), but at this layer12// they are written directly via susers.RegisterUserIgnoreCanonical.13//14// Uses the bypass path so curated confusables in the seed (e.g.15// `gnoland` and `gnolang` both canonicalize distinctly today, but a16// future addition that collides must not abort chain bring-up).17// Matches the genesis posture in r/sys/users/init.gno.1819// pre-registered users20var preRegisteredUsers = []struct {21 Name string22 Address address23}{24 // system names.25 // the goal is to make them either team/DAO-owned or ownerless.26 {"archive", "g1xlnyjrnf03ju82v0f98ruhpgnquk28knmjfe5k"}, // -> @archive27 {"demo", "g13ek2zz9qurzynzvssyc4sthwppnruhnp0gdz8n"}, // -> @demo28 {"gno", "g19602kd9tfxrfd60sgreadt9zvdyyuudcyxsz8a"}, // -> @gno29 {"gnoland", "g1g3lsfxhvaqgdv4ccemwpnms4fv6t3aq3p5z6u7"}, // -> @gnoland30 {"gnolang", "g1yjlnm3z2630gg5mryjd79907e0zx658wxs9hnd"}, // -> @gnolang31 {"gov", "g1g73v2anukg4ej7axwqpthsatzrxjsh0wk797da"}, // -> @gov32 {"nt", "g15ge0ae9077eh40erwrn2eq0xw6wupwqthpv34l"}, // -> @nt33 {"sys", "g1r929wt2qplfawe4lvqv9zuwfdcz4vxdun7qh8l"}, // -> @sys34 {"x", "g164sdpew3c2t3rvxj3kmfv7c7ujlvcw2punzzuz"}, // -> @x3536 // test1 user37 {"test1", "g1jg8mtutu9khhfwc4nxmuhcpftf0pajdhfvsqf5"}, // -> @test138}3940func init(cur realm) {41 // add pre-registered users via the bypass path (genesis posture).42 // Errors are intentionally discarded; the seed is curated and any43 // duplicate-address / already-deleted entries (re-init across test44 // realm reuse) just no-op.45 for _, res := range preRegisteredUsers {46 susers.RegisterUserIgnoreCanonical(cross(cur), res.Name, res.Address)47 }48}49Canonicalize(s string) string
IsPaused() bool
IsReserved(stem string) bool
NewSetPausedExecutor(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, newPausedValue bool) struct{title string; description string; executor gno.land/r/gov/dao.Executor; filter gno.land/r/gov/dao.Filter}
ProposeDeleteUser(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, addr string, reason string) struct{title string; description string; executor gno.land/r/gov/dao.Executor; filter gno.land/r/gov/dao.Filter}
ProposeNewName(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, addr string, newName string) struct{title string; description string; executor gno.land/r/gov/dao.Executor; filter gno.land/r/gov/dao.Filter}
ProposeNewRegisterPrice(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, newPrice int64) struct{title string; description string; executor gno.land/r/gov/dao.Executor; filter gno.land/r/gov/dao.Filter}
Register(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, username string)
Render(path string) string
RenderLatestUsersWidget(num int) string
ValidateNymFormat(username string) interface {Error func() string}
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.