PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/r/sys/namereg/v0

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
v0
Namespace
sys / namereg
Files
17 (gnomod.toml)
Exported functions
11
Module
gno.land/r/sys/namereg/v0
gno
0.9

Files (17)

  • gnomod.tomltoml
  • admin.gnogno
  • api.gnogno
  • blacklist.gnogno
  • canonical.gnogno
  • errors.gnogno
  • init.gnogno
  • preregister.gnogno
  • render.gnogno
  • users.gnogno
  • blacklist_test.gnogno
  • canonical_test.gnogno
  • users_test.gnogno
  • z_0_prop1_filetest.gnogno
  • z_1_prop2_filetest.gnogno
  • z_2_prop3_filetest.gnogno
  • z_3_prop4_filetest.gnogno
  • canonical_test.gnogno
    1package namereg23import (4	"testing"56	"gno.land/p/nt/uassert/v0"78	susers "gno.land/r/sys/users"9)1011// Canonicalize is now a delegating shim to susers.Canonicalize; verify12// the local export and the upstream produce the same output for the13// rules namereg/v0 cares about.14func TestCanonicalize_DelegatesToSusers(cur realm, t *testing.T) {15	cases := []string{16		"",17		"a",18		"alice",19		"vitalik",20		"vital1k",21		"balloon",22		"already-canonical",23		"xyz123",24		"nym-foolbar000",25		"nym-foolbar001",26	}27	for _, in := range cases {28		uassert.Equal(t, susers.Canonicalize(in), Canonicalize(in),29			"namereg.Canonicalize must match susers.Canonicalize")30	}31}3233func TestReservedSet_BuiltFromBlacklist(cur realm, t *testing.T) {34	// Sanity: every entry from reservedNames AND its `+s` form must be35	// in the canonicalized lookup.36	for _, n := range reservedNames {37		_, gotBare := reservedSet[Canonicalize(n)]38		uassert.True(t, gotBare,39			"reservedSet missing canonical(%q)", n)4041		_, gotPlural := reservedSet[Canonicalize(n+"s")]42		uassert.True(t, gotPlural,43			"reservedSet missing canonical(%q+s)", n)44	}45}4647func TestIsReserved_LiteralAndCanonical(cur realm, t *testing.T) {48	// Literal entry must be reserved.49	uassert.True(t, IsReserved("admin"), "admin should be reserved")5051	// `blogs` covered via `blog`+s rule (blog is in reservedNames).52	uassert.True(t, IsReserved("blogs"), "blogs covered by blog+s")5354	// l-substituted: `blog` canonicalizes to `biog`. Both forms blocked55	// because we canonicalize the candidate before lookup.56	uassert.True(t, IsReserved("biog"), "canonical(blog)=biog also blocked")5758	// 1-substituted under the new susers.Canonicalize rules: `1` → `i`.59	// `b1og` canonicalizes to `biog`, same as `blog`. Confirms the shim60	// picks up the broader rule set.61	uassert.True(t, IsReserved("b1og"), "1→i variant also blocked")6263	// Non-reserved stem should not be flagged.64	uassert.False(t, IsReserved("zulufoxtrot"), "zulufoxtrot is not reserved")6566	// Identity passthrough.67	uassert.True(t, IsReserved("tendermint"))68}69

    Functions

    • Canonicalize(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.

    Rendered

    RenderedRawgnoweb ↗

    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.