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/akkadia/beta/equipment

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
equipment
Namespace
akkadia / beta
Files
7 (gnomod.toml)
Exported functions
26
Module
gno.land/r/akkadia/beta/equipment
gno
0.9

Files (7)

  • gnomod.tomltoml
  • config.gnogno
  • equipment.gnogno
  • render.gnogno
  • validation.gnogno
  • equipment_test.gnogno
  • render_test.gnogno
render.gnogno
1package equipment23import (4	"net/url"5	"strconv"6	"strings"78

Functions

  • Approve(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}, operator string, tokenID uint64)

  • BalanceOf(owner string) int64

  • Burn(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}, tokenID uint64)

  • BurnFromRealm(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}, tokenID uint64)

  • GetApproved(tokenID uint64) string

  • GetLatestTokenID() uint64

  • GetListLimit() int

  • GetMetadata(tokenID uint64) map[string]string

  • GetOwnedCount(owner string) int

  • Has(tokenID uint64) bool

  • IsApprovedForAll(owner string, operator string) bool

  • IsMinterRealm(addr string) bool

  • ListByOwner(owner string, page int, count int) []map[string]string

  • Mint(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}, recipient string, definitionID uint32, attrKeys string, attrValues string) uint64

  • MintFromRealm(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}, recipient string, definitionID uint32, attrKeys string, attrValues string) uint64

  • Name() string

  • OwnerOf(tokenID uint64) string

  • Render(iURL string) string

  • SetApprovalForAll(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}, operator string, approved bool)

  • SetListLimit(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}, limit int)

  • SetMetadata(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}, tokenID uint64, attrKeys string, attrValues string)

  • SetMetadataFromRealm(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}, tokenID uint64, attrKeys string, attrValues string)

  • SetMinterRealm(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}, pkgPath string)

  • Symbol() string

  • TransferFrom(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}, from string, to string, tokenID uint64)

  • UnsetMinterRealm(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}, pkgPath 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.

"gno.land/p/jeronimoalbi/pager/v0"
9)
10
11func Render(iURL string) string {
12 assertRenderURLLen(iURL)
13 u, err := url.Parse(iURL)
14 if err != nil {
15 return renderEquipmentError("Invalid URL")
16 }
17
18 switch u.Path {
19 case "":
20 return renderEquipmentHome()
21 case "owner":
22 return renderEquipmentOwner(iURL, address(u.Query().Get("address")))
23 default:
24 return renderEquipmentError("Not found")
25 }
26}
27
28func renderEquipmentHome() string {
29 return `# AKKADIA Equipment
30
31Look up equipment held by an address.
32
33<gno-form path="owner">
34 <gno-input name="address" placeholder="Enter the address" />
35</gno-form>
36`
37}
38
39func renderEquipmentOwner(iURL string, owner address) string {
40 if !owner.IsValid() {
41 return renderEquipmentError("Invalid address")
42 }
43
44 output := `# Equipment Holdings
45
46[← Home](./equipment:)
47
48* **Address**: ` + owner.String() + `
49`
50
51 total := GetOwnedCount(owner)
52 output += "* **Total**: " + strconv.Itoa(total) + "\n\n"
53 if total == 0 {
54 return output + `*No equipment held.*
55`
56 }
57
58 pageSize := 20
59 if pageSize > listLimit {
60 pageSize = listLimit
61 }
62 pages, err := pager.New(iURL, total, pager.WithPageSize(pageSize))
63 if err != nil {
64 return renderEquipmentError("Invalid page")
65 }
66
67 rows := ListByOwner(owner, pages.Page(), pages.PageSize())
68 for _, row := range rows {
69 output += formatEquipmentHolding(row)
70 }
71 if pages.HasPages() {
72 output += "\n" + pager.Picker(pages)
73 }
74 return output
75}
76
77func formatEquipmentHolding(row map[string]string) string {
78 line := "* **" + escapeEquipmentMarkdown(row[tokenIDKey]) + "**: definitionId " + escapeEquipmentMarkdown(row[definitionIDKey])
79 for key, value := range row {
80 if key == tokenIDKey || key == definitionIDKey || key == createdAtKey {
81 continue
82 }
83 line += " · " + escapeEquipmentMarkdown(key) + " " + escapeEquipmentMarkdown(value)
84 }
85 return line + "\n"
86}
87
88func renderEquipmentError(message string) string {
89 return `# Error
90
91> ` + escapeEquipmentMarkdown(message) + `
92
93[← Home](./equipment:)
94`
95}
96
97func escapeEquipmentMarkdown(value string) string {
98 value = strings.ReplaceAll(value, "\\", "\\\\")
99 value = strings.ReplaceAll(value, "\n", "\\n")
100 value = strings.ReplaceAll(value, "`", "\\`")
101 value = strings.ReplaceAll(value, "*", "\\*")
102 value = strings.ReplaceAll(value, "_", "\\_")
103 value = strings.ReplaceAll(value, "{", "\\{")
104 value = strings.ReplaceAll(value, "}", "\\}")
105 value = strings.ReplaceAll(value, "[", "\\[")
106 value = strings.ReplaceAll(value, "]", "\\]")
107 value = strings.ReplaceAll(value, "(", "\\(")
108 value = strings.ReplaceAll(value, ")", "\\)")
109 value = strings.ReplaceAll(value, "#", "\\#")
110 value = strings.ReplaceAll(value, "+", "\\+")
111 value = strings.ReplaceAll(value, "-", "\\-")
112 value = strings.ReplaceAll(value, ".", "\\.")
113 value = strings.ReplaceAll(value, "!", "\\!")
114 value = strings.ReplaceAll(value, "|", "\\|")
115 value = strings.ReplaceAll(value, ">", "\\>")
116 return value
117}
118