admin
.uverse.addressadmin is the only address allowed to write. Deliberately a constant and not transferable ownership: this realm is one person's profile page, and the same address is the only one the chain lets redeploy it.
Value
<gnolang.StringValue>
layoutSlug
untyped stringlayoutSlug names the slot used as the page template.
Value
"layout"
maxSlugLen
untyped bigintmaxSlugLen bounds a slug so an index row stays readable and a key stays cheap.
Value
(64 <untyped> bigint)
slots
*v0.Tree// slug -> \*slot
- OID
- 0517a5…9759:4
slots details
rev
int// total number of writes, bumped by every mutation
Value
8
slot
typeValue
home.slot
reservedSlugs
[]stringreservedSlugs are placeholder names computed at render time from chain state. A slot may not take one, because it would shadow the computed value and make the page depend on callback registration order.
- OID
- 0517a5…9759:8
reservedSlugs details
assertAdmin
func()- OID
- 0517a5…9759:9
assertAdmin details
validSlug
func(slug string) boolvalidSlug reports whether slug is a legal slot name: 1..maxSlugLen bytes of \[a-z0-9.\_-]. The character set excludes ':' so a slug can never break out of its own :slug: placeholder, and excludes uppercase so a slot has one name.
- OID
- 0517a5…9759:11
validSlug details
assertWritableSlug
func(slug string)- OID
- 0517a5…9759:12
assertWritableSlug details
Set
func(slug string, body string)Set creates or replaces the slot named slug. This is the ordinary update: one slot, one transaction. Passing the empty body keeps the slot but empties it; use Delete to remove it.
- OID
- 0517a5…9759:13
Set details
Append
func(slug string, body string)Append adds to the end of a slot, creating it when absent. It exists for content too large to fit in one transaction: Set the first chunk, Append the rest. Ordinary updates should use Set, which is idempotent.
- OID
- 0517a5…9759:14
Append details
Delete
func(slug string)Delete removes a slot. Deleting the layout slot restores the built-in default layout.
- OID
- 0517a5…9759:15
Delete details
Get
func(slug string) stringGet returns a slot body, or "" when the slot does not exist.
- OID
- 0517a5…9759:16
Get details
Revision
func() intRevision returns the total number of writes this realm has accepted. It changes on every mutation, so a client can cheaply tell "nothing moved".
- OID
- 0517a5…9759:17
Revision details
Manifest
func() stringManifest returns one tab-separated line per slot: <slug>\t<rev>\t<len>\t<sha256 of body, hex> It is the diff surface tools/gnohome queries with vm/qeval: one read tells it exactly which local file is out of date, without downloading any body.
- OID
- 0517a5…9759:18
Manifest details
defaultLayout
untyped stringdefaultLayout is what renders before a layout slot exists, i.e. right after the very first deploy. It uses only computed placeholders, so it never shows an unresolved :slug: of its own.
Value
"# gno.land/r/moul/home\n\nNo layout slot yet. Set one, then the page is whatever you make it:\n\n gnokey maketx call -pkgpath gno.land/r/moul/home -func Set \\\n -args layout -args \"$(/bin/cat content/layout.md)\" \\\n -gas-fee 1000000ugnot -gas-wanted"...
chainHeight
func() int64- OID
- 0517a5…9759:19
chainHeight details
Render
func(path string) stringRender serves three views: "" the assembled page, what https://gno.land/u/moul shows "slots" the slot index: name, size, revision, last write "slots/<slug>" one slot's raw markdown, fenced
- OID
- 0517a5…9759:21
Render details
renderPage
func() stringrenderPage fills the layout. dynreplacer only invokes the callbacks whose placeholder actually occurs in the layout, so an unused slot is never even read out of the tree.
- OID
- 0517a5…9759:22
renderPage details
slotLinks
func() stringslotLinks is the :slots: placeholder: a bullet list of every slot, linking to its raw view.
- OID
- 0517a5…9759:23
slotLinks details
renderIndex
func() string- OID
- 0517a5…9759:24
renderIndex details
renderSlot
func(slug string) string- OID
- 0517a5…9759:25