1package lotto23import (4 "chain"5 "testing"67 "gno.land/p/nt/bptree/v0"8 "gno.land/p/nt/testutils/v0"9 "gno.land/r/akkadia/beta/admin"10)1112var (13 testAdmin = testutils.TestAddress("lottoAdmin")14 testOperator = testutils.TestAddress("lottoOperator")15 testOwner = testutils.TestAddress("lottoOwner")16 testOther = testutils.TestAddress("lottoOther")17)1819// Call with cross(cur); each test resets holdings and restores the operator.20func setupLotto(cur realm) {21 holdings = bptree.NewBPTree32()22 testing.SetOriginSend(chain.Coins{})23 originalAdmin := admin.GetAdmin()24 if originalAdmin != testAdmin {25 testing.SetOriginCaller(originalAdmin)26 testing.SetRealm(testing.NewUserRealm(originalAdmin))27 admin.TransferAdmin(cross(cur), testAdmin)28 testing.SetOriginCaller(testAdmin)29 testing.SetRealm(testing.NewUserRealm(testAdmin))30 admin.AcceptAdmin(cross(cur))31 }32 testing.SetOriginCaller(testAdmin)33 testing.SetRealm(testing.NewUserRealm(testAdmin))34 admin.SetOperator(cross(cur), testOperator)35}36AddNumber(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}, owner string, number uint64)
DeleteAll(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})
GetNumberCount(number uint64, owner string) uint64
ListOwnersByNumber(number uint64, afterOwner string, limit int) []map[string]string
Render(path string) string
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.