1package abt23import (4 "strings"5 "testing"67 "gno.land/p/nt/uassert/v0"8)910func TestRender(cur realm, t *testing.T) {11 setupABT(cross(cur), t)12 testing.SetRealm(testing.NewUserRealm(abtTest.Admin))13 Mint(cross(cur), abtTest.Owner, 123)14 for _, text := range []string{"Akkadia Beta Token", "$abt", "**Decimals**: 6", "**Total supply**: 123", "**Frozen**: true"} {15 uassert.True(t, strings.Contains(Render(""), text))16 }17 uassert.Equal(t, "123", Render("balance/"+abtTest.Owner.String()))18 uassert.Equal(t, "0", Render("balance/"+abtTest.Other.String()))19 for _, path := range []string{"unknown", "balance/", "balance/invalid", "balance/" + abtTest.Owner.String() + "/extra", "balance/<script>"} {20 uassert.Equal(t, "404", Render(path))21 }22 uassert.Equal(t, int64(123), TotalSupply())23 uassert.Equal(t, int64(123), BalanceOf(abtTest.Owner))24 uassert.Equal(t, int64(0), Allowance(abtTest.Owner, abtTest.Other))25 uassert.True(t, IsFrozen())26 SetFrozen(cross(cur), false)27 uassert.True(t, strings.Contains(Render(""), "**Frozen**: false"))28}29Allowance(owner string, spender string) int64
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}, spender string, amount int64)
BalanceOf(owner string) int64
GetDecimals() int
GetName() string
GetSymbol() string
IsFrozen() bool
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}, to string, amount int64)
Render(path string) string
SetFrozen(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}, value bool)
TotalSupply() int64
Transfer(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}, to string, amount int64)
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, amount int64)
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
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.