PathrockNetwork Gno Explorer
HomeBlocksTransactionsRealmsPackagesValidatorsAnalytics

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/gov/dao/memberstore/v0

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
v0
Namespace
gov / dao / memberstore
Files
8 (gnomod.toml)
Exported functions
10
Module
gno.land/r/gov/dao/memberstore/v0
gno
0.9

Files (8)

  • gnomod.tomltoml
  • memberstore.gnogno
  • prop_requests.gnogno
  • rendercharts.gnogno
  • rendermembers.gnogno
  • types.gnogno
  • memberstore_test.gno
gno
  • z0_filetest.gnogno
  • rendermembers.gnogno
    1package memberstore23import (4	"net/url"5	"strings"67	"gno.land/p/moul/md/v0"8	"gno.land/p/nt/bptree/pager/v0"9	"gno.land/p/nt/bptree/v0"10	"gno.land/p/nt/ufmt/v0"11	"gno.land/p/samcrew/tablesort/v0"12	"gno.land/p/samcrew/urlfilter/v0"13)1415// RenderMembers returns the members list with tier filters and pagination.16func RenderMembers(path string, members MembersByTier) string {17	u, err := url.Parse(path)18	if err != nil {19		// A path url.Parse rejects (e.g. a control byte) is the caller's own20		// malformed input. Degrade to the unfiltered first page instead of21		// nil-derefing in ApplyFilters or panicking in MustGetPageByPath below22		// — this is a read-only, unauthenticated render.23		u, _ = url.Parse("")24		path = ""25	}26	mdFilters, items := urlfilter.ApplyFilters(u, members.BPTree, "filter")27	var sb strings.Builder2829	sb.WriteString(md.Link("> Go to Tiers summary <", "/r/gov/dao/memberstore/v0") + "\n\n")30	sb.WriteString(md.Bold("Filter members by tiers:"))31	sb.WriteString(mdFilters + "\n")3233	const pageSize = 1434	pager := pager.NewPager(items, pageSize, false)35	page := pager.MustGetPageByPath(path)3637	sb.WriteString(renderMembersPages(u, page, items) + "\n")38	sb.WriteString(renderPagination(u, page))3940	return sb.String()41}4243// renderMembersPages returns the members of each page.44func renderMembersPages(u *url.URL, page *pager.Page, members *bptree.BPTree) string {45	var sb strings.Builder4647	table := &tablesort.Table{48		Headings: []string{"Tier", "Address"},49		Rows:     [][]string{},50	}5152	for _, item := range page.Items {53		addr := item.Key54		tn := members.Get(addr)55		tnStr, _ := tn.(string)56		tierCell := ufmt.Sprintf("%s %s", tierColoredChip(tnStr), tn)57		table.Rows = append(table.Rows, []string{tierCell, addr})58	}5960	sb.WriteString(tablesort.Render(u, table, ""))6162	return sb.String()63}6465// renderPagination returns the pagination UI for the current page.66func renderPagination(u *url.URL, page *pager.Page) string {67	q := u.Query()68	q.Del("page")69	u.RawQuery = q.Encode()7071	var sb strings.Builder72	sb.WriteString(page.Picker(u.String()))7374	return sb.String()75}76

    Functions

    • Get(int, rlm 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{BPTree *gno.land/p/nt/bptree/v0.BPTree}

    • GetTier(name string) (struct{BasePower float64; InvitationPoints int; MaxSize func(gno.land/r/gov/dao/memberstore/v0.MembersByTier, gno.land/r/gov/dao/memberstore/v0.TiersByName) int; MinSize func(gno.land/r/gov/dao/memberstore/v0.MembersByTier, gno.land/r/gov/dao/memberstore/v0.TiersByName) int; PowerHandler func(gno.land/r/gov/dao/memberstore/v0.MembersByTier, gno.land/r/gov/dao/memberstore/v0.TiersByName) float64}, bool)

    • GetTierPower(tierName string, members struct{BPTree *gno.land/p/nt/bptree/v0.BPTree}) float64

    • IterateTiers(fn func(string, gno.land/r/gov/dao/memberstore/v0.Tier) bool)

    • NewChangeTiersRequest(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}, tiers map[string]gno.land/r/gov/dao/memberstore/v0.Tier) struct{title string; description string; executor gno.land/r/gov/dao.Executor; filter gno.land/r/gov/dao.Filter}

    • NewMember(invitationPoints int) *gno.land/r/gov/dao/memberstore/v0.Member

    • NewMembersByTier() struct{BPTree *gno.land/p/nt/bptree/v0.BPTree}

    • Render(path string) string

    • RenderCharts(members struct{BPTree *gno.land/p/nt/bptree/v0.BPTree}) string

    • RenderMembers(path string, members struct{BPTree *gno.land/p/nt/bptree/v0.BPTree}) string

    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.