1package erc72123import (4 "testing"56 "gno.land/p/moul/kit/store/v0"7 "gno.land/p/nt/uassert/v0"8)910// v0 asserted that its own key() padded to width 12. That rule held only below11// the width: key(10^12) is 13 characters and sorts before key(10^12-1), so the12// token table would have rendered out of order from that id on. The store key13// has no width to outgrow, which is what this replaces it with.14func TestTokenKeysSortNumericallyPastTheOldWidth(t *testing.T) {15 uassert.True(t, store.ID(2).Key() < store.ID(10).Key(), "2 sorts before 10")16 uassert.True(t, store.ID(99).Key() < store.ID(100).Key(), "99 sorts before 100")17 uassert.True(t, store.ID(999999999999).Key() < store.ID(1000000000000).Key(),18 "and it keeps holding one past v0's width-12 ceiling")19}2021func TestReadOnlyDefaults(t *testing.T) {22 // on a fresh realm nothing is minted.23 uassert.Equal(t, int64(0), totalSupply())24 uassert.False(t, exists(1), "token 1 must not exist before minting")2526 var someone address = "g1someoneelsehere000000000000000000000000"27 uassert.Equal(t, uint64(0), balanceOf(someone))28 uassert.Equal(t, "", approvedOf(1).String())29}30Approve(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, id int64)
BalanceOf(owner string) uint64
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) int64
OwnerOf(id int64) string
Render(path string) string
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, id 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.