Skip to content

feat(gns): GNS (Gno Name Service) realm at r/moul/gns/v1#1

Merged
moul merged 12 commits into
mainfrom
feat/gns-v1
Jul 24, 2026
Merged

feat(gns): GNS (Gno Name Service) realm at r/moul/gns/v1#1
moul merged 12 commits into
mainfrom
feat/gns-v1

Conversation

@moul

@moul moul commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Adds GNS (Gno Name Service) as the first real contract in this repo, at the
versioned path gno.land/r/moul/gns/v1.

GNS is an ENS-equivalent naming system expressed as one realm (registration,
commit–reveal, expiry/grace, typed + arbitrary records, forward-verified
reverse/primary names, subnames with policies + emancipation, operators,
pagination, events, two-step admin, Render explorer). Full details in
r/moul/gns/v1/README.md.

Notable in this PR

  • Versioned per the repo rule (…/gns/v1); Render links point at /v1.
  • Adapted to current-master avl: upstream avl/v0.Get now returns a single
    value (existence via Has), not (any, bool). GNS was written against the
    older cached API; a small treeGet helper bridges it. This is exactly the
    master-fidelity this repo exists to enforce.
  • Dependencies vendored (avl/v0, ufmt/v0, testutils/v0) into
    vendor/make deps also pulls test-only deps so gno test is autonomous.
  • Client caching guidance (user↔address: 1h on match, 1min on no-match)
    documented in the contract README.
  • Catalog + README table updated via make gen.

Verification

make lint + make test clean locally (gns 0.6s, all green) against a
gnolang/gno master checkout.

Note: fixed an infinite-recursion bug in the shared recordMutation helper
that had been introduced by an over-broad refactor (it called itself); this
was the cause of the earlier OOM/hang. Now each record setter shares the
preamble correctly.

@github-actions

github-actions Bot commented Jul 24, 2026

Copy link
Copy Markdown

go tool gnocontracts report -base origin/main

📦 gno-contracts PR report

1 new · 0 updated package(s) — 13 file(s), +3700/-0 lines

New packages

  • 🆕 r/moul/gns/v1 — +3700/-0, 🧪 44 test(s)

Signals

  • ⚠️ r/moul/gns/v1 uses unsafe
  • 🔥 r/moul/gns/v1 handles coins (banker)

🤖 auto-generated; checks grow over time.

@moul moul added r Touches realms (r/) meta CI / tooling / docs / repo meta labels Jul 24, 2026
@moul moul removed the meta CI / tooling / docs / repo meta label Jul 24, 2026
@moul
moul merged commit 8044050 into main Jul 24, 2026
5 checks passed
@moul
moul deleted the feat/gns-v1 branch July 24, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

r Touches realms (r/)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant