1// PKGPATH: gno.land/r/test2package test34import (5 "chain"6 "chain/banker"7 "fmt"8 "testing"910 "gno.land/p/nt/testutils/v0"11 "gno.land/r/gnoland/wugnot"12)1314var (15 addr1 = testutils.TestAddress("test1")16 addrc = chain.PackageAddress("gno.land/r/gnoland/wugnot")17)1819func main(cur realm) {20 // issue ugnots21 testing.IssueCoins(addr1, chain.Coins{{"ugnot", 100000001}})22 printBalances()23 // println(wugnot.Render("queues"))24 // println("A -", wugnot.Render(""))2526 // deposit of 123400ugnot from addr127 // origin send must be simulated28 coins := chain.Coins{{"ugnot", 123_400}}29 testing.SetOriginCaller(addr1)30 testing.SetOriginSend(coins)31 banker.NewBanker(banker.BankerTypeRealmSend, cur).SendCoins(addr1, addrc, coins)32 wugnot.Deposit(cross(cur))33 printBalances()3435 // withdraw of 4242ugnot to addr136 wugnot.Withdraw(cross(cur), 4242)37 printBalances()38}3940func printBalances() {41 printSingleBalance := func(name string, addr address) {42 wugnotBal := wugnot.BalanceOf(addr)43 testing.SetOriginCaller(addr)44 robanker := banker.NewReadonlyBanker()45 coins := robanker.GetCoins(addr).AmountOf("ugnot")46 fmt.Printf("| %-13s | addr=%s | wugnot=%-6d | ugnot=%-9d |\n",47 name, addr, wugnotBal, coins)48 }49 println("-----------")50 printSingleBalance("wugnot", addrc)51 printSingleBalance("addr1", addr1)52 println("-----------")53}5455// Output:56// -----------57// | wugnot | addr=g15vj5q08amlvyd0nx6zjgcvwq2d0gt9fcchrvum | wugnot=0 | ugnot=0 |58// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=0 | ugnot=100000001 |59// -----------60// -----------61// | wugnot | addr=g15vj5q08amlvyd0nx6zjgcvwq2d0gt9fcchrvum | wugnot=0 | ugnot=123400 |62// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=123400 | ugnot=99876601 |63// -----------64// -----------65// | wugnot | addr=g15vj5q08amlvyd0nx6zjgcvwq2d0gt9fcchrvum | wugnot=0 | ugnot=119158 |66// | addr1 | addr=g1w3jhxap3ta047h6lta047h6lta047h6l4mfnm7 | wugnot=119158 | ugnot=99880843 |67// -----------68Allowance(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
Deposit(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})
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, 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)
Withdraw(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}, 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.