Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

v0 source realm

Package urlshort is a simple on-chain URL alias registry.

Readme View source

URL Shortener

⚠️ Experimental — generated with no human supervision. This realm was produced automatically by an MCP-driven agent to exercise the gno MCP server and tooling, and to generate test content for gno compilers, linters and formatters. Not audited. Not for production. Full context & folder README: r/moul/x/daily


An on-chain alias registry for the gno.land sapphire testnet. Each caller can register alias -> url mappings they own: an alias is claimed on a first-come basis, only its owner may update or remove it, and every resolution through Render("/<alias>") bumps a per-alias click counter. Aliases must be non-empty and alphanumeric.

Realm path: gno.land/r/REPLACE_ADDR/urlshort

Example calls

# Register (or update your own) alias -> url
Shorten("gno", "https://gno.land", "the chain")

# Update the target (must be the same owner)
Shorten("gno", "https://docs.gno.land", "now the docs")

# Remove an alias you own
Remove("gno")

Render paths

  • / — lists every alias with owner and click count.
  • /<alias> — shows the target url, owner, note, and click count (and counts the click).

Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.

Dependency graph:

gno.land/r/moul/x/daily/urlshort/v0 dependency graph

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.

Overview

Package urlshort is a simple on-chain URL alias registry.

Callers register an `alias -> url` mapping they own. An alias can only be claimed once; the owner may later update the target URL, but nobody else can overwrite an alias they do not own. A per-alias click counter is bumped every time the alias is resolved through Render("/<alias>").

Functions 4

func Lookup

Action
1func Lookup(alias string) (string, bool)
source

Lookup returns the target url for an alias and whether it exists. It is a read-only helper and does NOT increment the click counter.

func Remove

crossing Action
1func Remove(cur realm, alias string)
source

Remove deletes an alias owned by the caller. Aborts if the alias does not exist or the caller is not the owner.

func Render

1func Render(path string) string
source

Render renders Markdown. The root path lists every alias; "/<alias>" shows a single alias detail and bumps its click counter.

func Shorten

crossing Action
1func Shorten(cur realm, alias string, url string, note string)
source

Shorten registers `alias -> url` owned by the caller.

Rules:

  • alias must be non-empty and alphanumeric;
  • url must be non-empty;
  • if the alias is unclaimed, it is created owned by the caller;
  • if it is already claimed by the caller, the url/note are updated;
  • if it is claimed by someone else, the call aborts.

Imports 4

Source Files 3