⚠️ 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 score leaderboard realm for gno.land (sapphire / gno 0.9). Any account
can accumulate points with AddPoints(n) and optionally attach a display name
with SetName(name). Render returns a Markdown table ranked by points
descending — gold/silver/bronze medals for the top three — plus the total player
count. State is kept in an avl.Tree so rendering is deterministic across nodes.
Realm path:gno.land/r/REPLACE_ADDR/leaderboard
Public API
Function
Kind
Description
AddPoints(cur realm, n int)
crossing (tx)
Add n (> 0) points to the caller's total.
SetName(cur realm, name string)
crossing (tx)
Set the caller's display name (≤ 32 bytes; empty clears it).
Identical behaviour to v0 apart from rendering, which now goes
through p/moul/kit/ui instead of the local medal helper.
One podium.ui.Podium replaces the medal switch three realms each had a copy of. Same output.
The rendering change means the output differs from v0, which under this repo's versioning rule is a compatibility change, hence a new version rather than an edit in place. v0 stays live and untouched.
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:
🧪 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 leaderboard is an on-chain score leaderboard realm.
Any account can accumulate points via AddPoints and (optionally) attach a display name with SetName. Render produces a ranked Markdown table sorted by points descending, with medals for the top three players.
AddPoints adds n points to the caller's total. n must be positive.
Crossing function: MsgCall dispatches only to crossing functions, and the cur.IsCurrent() check authenticates the live call frame before we trust the caller identity derived from it.