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/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
hlmailbox
Namespace
g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp
Files
5 (gnomod.toml)
Exported functions
58
Module
gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox
gno
0.9

Files (5)

  • gnomod.tomltoml
  • flags.gnogno
  • gov.gnogno
  • mailbox.gnogno
  • render.gnogno
render.gnogno
1package hlmailbox23import (4	"strconv"5	"strings"67	"gno.land/p/nt/avl/v0"8	"gno.land/p/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/decisions/v0"9	hl "gno.land/p/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hyperlane/v0"10)1112const (13	pageMax      = 20 // messages a "msgs/" page holds14	verifiersMax = 20 // registered verifier paths (and announced successors) the page and "json" name, and a "verifiers/" ("successors/") page holds15)1617// Render:18//19//	""                  the mailbox's page: the launch values live or waiting, verifiers, signers, seats, flags20//	"decisions"         the decisions page: the last 100 pending and executed per kind21//	"json"              domain, hook, count, root, live, signers, verifiers (the first 20 registered paths and the22//	                    count), seats, flags, routes (each with its predecessor and successor, and the height and23//	                    time of the kind 6 that enrolled it on Solana: enrolled, enrolledAt), successors (the24//	                    first 20 announced paths, the count, and successorRoutes: the route each announced for),25//	                    for the agents26//	"decisions.json"    every decision, as a JSON array27//	"msg/<nonce>"       one dispatched message: {"nonce","id","root","height","message"}; "null" if none28//	"msgs/<from>"       up to 20 messages from nonce <from> on, as a JSON array29//	"verifiers/<from>"  up to 20 registered verifier paths from offset <from> on, in path order, as a JSON array30//	"successors/<from>" up to 20 announced successor paths from offset <from> on, in path order, as a JSON array31//	"delivered/<id>"    the block height a message id (hex) was delivered at here, 0 if never32func Render(path string) string {33	switch {34	case path == "":35		return page()36	case path == "decisions":37		return "# Decisions\n\n" + ledger.Page()38	case path == "json":39		return summaryJSON()40	case path == "decisions.json":41		return ledger.JSON()42	case strings.HasPrefix(path, "msg/"):43		n, ok := parseNonce(path[len("msg/"):])44		if !ok {45			return "null"46		}47		return msgJSON(n)48	case strings.HasPrefix(path, "msgs/"):49		from, ok := parseNonce(path[len("msgs/"):])50		if !ok {51			return "[]"52		}53		var b strings.Builder54		b.WriteString("[")55		for i := uint32(0); i < pageMax && uint64(from)+uint64(i) < uint64(tree.Count); i++ {56			if i > 0 {57				b.WriteString(",")58			}59			b.WriteString(msgJSON(from + i))60		}61		b.WriteString("]")62		return b.String()63	case strings.HasPrefix(path, "verifiers/"):64		from, ok := parseNonce(path[len("verifiers/"):])65		if !ok {66			return "[]"67		}68		return pathsJSON(&verifiers, int(from))69	case strings.HasPrefix(path, "successors/"):70		from, ok := parseNonce(path[len("successors/"):])71		if !ok {72			return "[]"73		}74		return pathsJSON(&successors, int(from))75	case strings.HasPrefix(path, "delivered/"):76		return strconv.FormatInt(Delivered(path[len("delivered/"):]), 10)77	}78	return "unknown path; see the mailbox's page"79}8081func parseNonce(s string) (uint32, bool) {82	n, err := strconv.ParseUint(s, 10, 32)83	return uint32(n), err == nil84}8586func q(s string) string { return strconv.Quote(s) }8788func msgJSON(n uint32) string {89	v := sent.Get(nonceKey(n))90	if v == nil {91		return "null"92	}93	s := v.(*sentMsg)94	id := hl.ID([]byte(s.raw))95	return "{\"nonce\":" + u32(n) + ",\"id\":" + q(hx(id[:])) + ",\"root\":" + q(hx(s.root[:])) +96		",\"height\":" + strconv.FormatInt(s.height, 10) + ",\"message\":" + q(hx([]byte(s.raw))) + "}"97}9899func keysJSON(ks []Key) string {100	parts := make([]string, len(ks))101	for i, k := range ks {102		parts[i] = q(hx(k[:]))103	}104	return "[" + strings.Join(parts, ",") + "]"105}106107// pathsJSON is up to verifiersMax keys of a tree of pkgpaths (the registered verifiers, the announced successors)108// from offset from on, in path order: the listing is bounded whatever the count, since nothing is ever removed.109func pathsJSON(t *avl.Tree, from int) string {110	var b strings.Builder111	b.WriteString("[")112	first := true113	t.IterateByOffset(from, verifiersMax, func(k string, _ any) bool {114		if !first {115			b.WriteString(",")116		}117		first = false118		b.WriteString(q(k))119		return false120	})121	b.WriteString("]")122	return b.String()123}124125// pathsLine is a tree of pkgpaths on the page: the first verifiersMax in path order and, past them, where the rest126// are (page is the Render path that pages them); "none" for an empty tree.127func pathsLine(t *avl.Tree, page string) string {128	n := t.Size()129	if n == 0 {130		return "none"131	}132	var b strings.Builder133	i := 0134	t.IterateByOffset(0, verifiersMax, func(k string, _ any) bool {135		if i > 0 {136			b.WriteString(", ")137		}138		i++139		b.WriteString("`" + k + "`")140		return false141	})142	if n > verifiersMax {143		m := strconv.Itoa(verifiersMax)144		b.WriteString(", … (the first " + m + "; the rest at [" + page + "/" + m + "](" + pkgPathLink() + ":" + page + "/" + m + "))")145	}146	return b.String()147}148149func summaryJSON() string {150	var b strings.Builder151	b.WriteString("{\"domain\":" + u32(localDomain) + ",\"hook\":" + q(Hook()) + ",\"address\":" + q(string(Address())) +152		",\"count\":" + u32(tree.Count) + ",\"root\":" + q(Root()) + ",\"delivered\":" + strconv.Itoa(done.Size()) +153		",\"live\":" + strconv.FormatBool(live) + ",\"launchedAt\":" + strconv.FormatInt(launchedAt, 10) +154		"," + decisions.GovernorJSON(launchGovernor, yielded) +155		",\"launchOrigin\":" + u32(launchOrigin) + ",\"clocks\":" + decisions.ClocksJSON() + ",\"decisions\":" + strconv.FormatInt(ledger.Last(), 10) +156		",\"signers\":{\"keys\":" + keysJSON(signerKeys) + ",\"threshold\":" + strconv.Itoa(signerRule.Threshold) +157		",\"groupA\":" + keysJSON(signerRule.GroupA) + ",\"groupB\":" + keysJSON(signerRule.GroupB) + "}" +158		",\"verifiers\":{")159	first := true160	active.Iterate("", "", func(k string, v any) bool {161		origin, _ := strconv.ParseUint(k, 10, 32)162		if !first {163			b.WriteString(",")164		}165		first = false166		b.WriteString(q(strconv.FormatUint(origin, 10)) + ":{\"pkgpath\":" + q(v.(string)) + ",\"registered\":" + strconv.FormatBool(verifiers.Has(v.(string))) + "}")167		return false168	})169	b.WriteString("},\"registered\":" + pathsJSON(&verifiers, 0) + ",\"registeredCount\":" + strconv.Itoa(verifiers.Size()) + ",\"seats\":[")170	for i := 1; i <= seatCount; i++ {171		if i > 1 {172			b.WriteString(",")173		}174		b.WriteString(q(string(seats[i])))175	}176	b.WriteString("],\"routes\":{")177	first = true178	routes.Iterate("", "", func(k string, v any) bool {179		r := v.(*routeRec)180		if !first {181			b.WriteString(",")182		}183		first = false184		b.WriteString(q(k) + ":{\"epoch\":" + strconv.FormatInt(r.epoch, 10) + ",\"epochAt\":" + strconv.FormatInt(r.epochAt, 10) +185			",\"sends\":" + strconv.FormatBool(Paused(k, FnSends)) + ",\"credits\":" + strconv.FormatBool(Paused(k, FnCredits)) +186			",\"payouts\":" + strconv.FormatBool(Paused(k, FnPayouts)) + ",\"flags\":[")187		for i, f := range Flags(k) {188			if i > 0 {189				b.WriteString(",")190			}191			b.WriteString(q(f))192		}193		b.WriteString("],\"predecessor\":" + q(r.predecessor) + ",\"successor\":" + q(r.successor) +194			",\"enrolled\":" + strconv.FormatInt(r.enrolled, 10) + ",\"enrolledAt\":" + strconv.FormatInt(r.enrolledAt, 10) +195			",\"pulled\":" + strconv.FormatBool(r.pulled) + ",\"dropped\":" + quotedJSON(r.dropped) + "}")196		return false197	})198	b.WriteString("},\"droppedRoutes\":" + droppedRoutesJSON() + ",\"successors\":" + pathsJSON(&successors, 0) + ",\"successorCount\":" + strconv.Itoa(successors.Size()) + ",\"successorRoutes\":" + successorRoutesJSON() + "}")199	return b.String()200}201202// quotedJSON is a list of strings as a JSON array.203func quotedJSON(ss []string) string {204	parts := make([]string, len(ss))205	for i, s := range ss {206		parts[i] = q(s)207	}208	return "[" + strings.Join(parts, ",") + "]"209}210211// droppedRoutesJSON is every dropped successor (R35) with the predecessor whose re-point dropped it, as an object212// of pkgpath → pkgpath: the tombstones, bounded by the migrations a bridge sees in its life.213func droppedRoutesJSON() string {214	var b strings.Builder215	b.WriteString("{")216	first := true217	droppedRoutes.Iterate("", "", func(k string, v any) bool {218		if !first {219			b.WriteString(",")220		}221		first = false222		b.WriteString(q(k) + ":" + q(v.(string)))223		return false224	})225	b.WriteString("}")226	return b.String()227}228229// droppedLine is the dropped successors on the page, each with the predecessor that re-pointed away from it; ""230// when none.231func droppedLine() string {232	if droppedRoutes.Size() == 0 {233		return ""234	}235	var parts []string236	droppedRoutes.Iterate("", "", func(k string, v any) bool {237		parts = append(parts, "`"+k+"` (by `"+v.(string)+"`)")238		return false239	})240	return "- dropped (routes no more, re-pointed away): " + strings.Join(parts, ", ") + "\n"241}242243// successorRoutesJSON is the first verifiersMax announced successors with the route each announced for (AQ5), as244// an object of pkgpath → "GNOT" or "BUBBLE".245func successorRoutesJSON() string {246	var b strings.Builder247	b.WriteString("{")248	first := true249	successors.IterateByOffset(0, verifiersMax, func(k string, v any) bool {250		if !first {251			b.WriteString(",")252		}253		first = false254		b.WriteString(q(k) + ":" + q(v.(string)))255		return false256	})257	b.WriteString("}")258	return b.String()259}260261// successorsLine is the announced successors on the page, each with the route it announced for (AQ5): the first262// verifiersMax in path order and, past them, where the rest are; "none" for an empty tree.263func successorsLine() string {264	n := successors.Size()265	if n == 0 {266		return "none"267	}268	var b strings.Builder269	i := 0270	successors.IterateByOffset(0, verifiersMax, func(k string, v any) bool {271		if i > 0 {272			b.WriteString(", ")273		}274		i++275		b.WriteString("`" + k + "` (" + v.(string) + ")")276		return false277	})278	if n > verifiersMax {279		m := strconv.Itoa(verifiersMax)280		b.WriteString(", … (the first " + m + "; the rest at [successors/" + m + "](" + pkgPathLink() + ":successors/" + m + "))")281	}282	return b.String()283}284285func page() string {286	var b strings.Builder287	b.WriteString("# The bridge's mailbox\n\n")288	b.WriteString("gno.land's end of the GNOT and BUBBLE bridge to Solana: messages out to Solana (the Dispatch event the light client proves), and in from it under the active verifier. Every setting here moves only by a decision made with this realm's builders — the governor's own until it yields, a GovDAO proposal after; the guardians and watch keys can only pause.\n\n")289	if live {290		b.WriteString("- **live** since " + strconv.FormatInt(launchedAt, 10) + " (the Launch decision executed)\n")291	} else {292		b.WriteString("- **not launched**: the values below are the compiled launch values, waiting for the Launch decision; the routes refuse sends and credits. A passed Launch executes within 14 days of its proposal, like every decision; one nobody executed by then lapses and is proposed again\n")293	}294	b.WriteString("- " + decisions.GovernorLine(launchGovernor, yielded) + "\n")295	b.WriteString("- a proposal made with a builder (of this realm, a route, r/hlfees or r/hlgov) is executed with r/gov/dao's `ExecuteOrRejectProposal`: the one error a closure returns — the 14-day deadline — then denies it for good; under `ExecuteProposal` that error reverts the transaction instead and the proposal stands, every retry failing the same way. Anything else a closure refuses is a panic, which leaves the proposal for a retry under either call\n")296	b.WriteString("- domain: " + u32(localDomain) + "; Solana: " + u32(launchOrigin) + "\n")297	b.WriteString("- " + decisions.Clocks() + "\n")298	b.WriteString("- merkle tree hook: `" + Hook() + "`\n")299	b.WriteString("- messages out: " + u32(tree.Count) + ", root `" + Root() + "`; in: " + strconv.Itoa(done.Size()) + "\n")300	b.WriteString("- decisions: " + strconv.FormatInt(ledger.Last(), 10) + " ([page](" + pkgPathLink() + ":decisions))\n")301	b.WriteString("\n## Verifiers\n\n")302	active.Iterate("", "", func(k string, v any) bool {303		origin, _ := strconv.ParseUint(k, 10, 32)304		note := ""305		if !verifiers.Has(v.(string)) {306			note = " (**not registered**: nothing from this origin is taken until it is)"307		}308		b.WriteString("- from " + strconv.FormatUint(origin, 10) + ": `" + v.(string) + "`" + note + "\n")309		return false310	})311	b.WriteString("- registered (" + strconv.Itoa(verifiers.Size()) + "): " + pathsLine(&verifiers, "verifiers"))312	b.WriteString("\n\n## Signers\n\n- rule: " + signerRule.String() + "\n")313	for i, k := range signerKeys {314		b.WriteString("- " + strconv.Itoa(i) + ": `" + hx(k[:]) + "`\n")315	}316	b.WriteString("\n## Seats\n\n")317	for i := 1; i <= seatCount; i++ {318		kind := "guardian"319		if !IsGuardianSeat(i) {320			kind = "watch key"321		}322		a := string(seats[i])323		if a == "" {324			a = "(empty)"325		}326		b.WriteString("- seat " + strconv.Itoa(i) + " (" + kind + "): " + a + "\n")327	}328	b.WriteString("\n## Routes and flags\n\n")329	routes.Iterate("", "", func(k string, v any) bool {330		r := v.(*routeRec)331		b.WriteString("- `" + k + "`: payouts epoch " + strconv.FormatInt(r.epoch, 10))332		if r.predecessor != "" {333			b.WriteString(", successor of `" + r.predecessor + "`")334		}335		if r.pulled {336			b.WriteString(", page 0 pulled")337		}338		if r.successor != "" {339			b.WriteString(", migrated to `" + r.successor + "`")340		}341		if len(r.dropped) > 0 {342			b.WriteString(", dropped `" + strings.Join(r.dropped, "`, `") + "`")343		}344		if r.enrolled != 0 {345			b.WriteString(", enrolled on Solana by kind 6 at height " + strconv.FormatInt(r.enrolled, 10) + " (" + strconv.FormatInt(r.enrolledAt, 10) + ")")346		}347		fs := Flags(k)348		if len(fs) == 0 {349			b.WriteString(", no flag\n")350		} else {351			b.WriteString("\n")352			for _, f := range fs {353				b.WriteString("  - **paused** " + f + "\n")354			}355		}356		return false357	})358	b.WriteString(droppedLine())359	b.WriteString("- successors announced (" + strconv.Itoa(successors.Size()) + "): " + successorsLine() + " (a route's migrate names only one of them, announced for its own route)\n")360	if tree.Count > 0 {361		b.WriteString("\n## Latest out\n\n")362		sent.ReverseIterateByOffset(0, 10, func(k string, v any) bool {363			s := v.(*sentMsg)364			m, _ := hl.ParseMessage([]byte(s.raw))365			id := hl.ID([]byte(s.raw))366			b.WriteString("- #" + u32(m.Nonce) + " to " + u32(m.Destination) + " at block " + strconv.FormatInt(s.height, 10) + ": `" + hx(id[:]) + "`\n")367			return false368		})369	}370	return b.String()371}372373func pkgPathLink() string { return strings.TrimPrefix(pkgPath, "gno.land") }374

Functions

  • ActiveVerifier(origin uint32) string

  • Address() string

  • AddRoute(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}, path string)

  • AnnounceSuccessor(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}, symbol string)

  • ClearEnrolled(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}, path string)

  • ClearFlag(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}, route string, fn string)

  • ClearFlags(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}, fn string) bool

  • Count() uint32

  • Delivered(id string) int64

  • Dispatch(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}, destination uint32, recipient [32]uint8, body []uint8) [32]uint8

  • Dropped(path string) string

  • DroppedRoutes() []string

  • Enrolled(path string) (height int64, at int64)

  • Execute(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}, id int64)

  • Flagged(route string, id string, height int64, verifier bool) bool

  • Flags(route string) []string

  • Govern(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}, r struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error})

  • Governor() string

  • Hook() string

  • IsGuardianSeat(n int) bool

  • IsRoute(path string) bool

  • LaunchedAt() int64

  • LaunchOrigin() uint32

  • Live() bool

  • LocalDomain() uint32

  • MarkDone(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}, id string)

  • Message(nonce uint32) (message string, root string)

  • NewCancelRequest(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}, id int64) struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error}

  • NewLaunchRequest(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}) struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error}

  • NewRotateSeatsRequest(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}, changes string) struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error}

  • NewRotateSignersRequest(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}, keys string, threshold int, groupA string, groupB string) struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error}

  • NewSetVerifierRequest(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}, origin uint32, path string) struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error}

  • NewUnpauseRequest(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}, routePath string, fns string, removeSeat int) struct{proposal gno.land/r/gov/dao.ProposalRequest; text string; decide func(.uverse.realm) .uverse.error}

  • NoteEnrolled(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}, path string, height int64)

  • NotePulled(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}, path string)

  • Paused(route string, fn string) bool

  • PayoutsEpoch(route string) (epoch int64, at int64)

  • Predecessor(path string) string

  • Process(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}, metadata []uint8, message []uint8) (origin uint32, sender [32]uint8, body []uint8)

  • Pulled(path string) bool

  • Reemit(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}, nonce uint32)

  • RegisterVerifier(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}, v interface {Satisfiable func([]gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox.Key) bool; Verify func(uint32, []uint8, []uint8) .uverse.error})

  • Render(path string) string

  • Root() string

  • Routes() []string

  • RouteSymbol(path string) string

  • Seat(n int) string

  • SeatOf(a string) int

  • SetFlag(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}, route string, fn string, ids string)

  • SignerKeys() string

  • Signers() ([]gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox.Key, struct{Threshold int; GroupA []gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox.Key; GroupB []gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox.Key})

  • Successor(path string) string

  • SuccessorAnnounced(path string) bool

  • SuccessorFor(path string) string

  • VacateSeat(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}, seat int, holder string) bool

  • VerifierRegistered(path string) bool

  • Yield(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})

  • Yielded() int64

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.