Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

setup_test.gno

1.25 Kb · 44 lines
 1package abt
 2
 3import (
 4	"chain"
 5	"testing"
 6
 7	"gno.land/p/nt/grc20/v0"
 8	"gno.land/p/nt/testutils/v0"
 9	"gno.land/r/akkadia/beta/admin"
10)
11
12var abtTest = struct {
13	Admin, Operator, Owner, Other address
14}{
15	Admin:    testutils.TestAddress("abtAdmin"),
16	Operator: testutils.TestAddress("abtOperator"),
17	Owner:    testutils.TestAddress("abtOwner"),
18	Other:    testutils.TestAddress("abtOther"),
19}
20
21// Call with cross(cur) so token construction uses a live ABT realm.
22func setupABT(cur realm, t *testing.T) {
23	t.Helper()
24	token, ledger = grc20.NewToken("Akkadia Beta Token", "abt", 6, 0, cur)
25	frozen = true
26	testing.SetOriginSend(chain.Coins{})
27	originalAdmin := admin.GetAdmin()
28	if originalAdmin != abtTest.Admin {
29		testing.SetOriginCaller(originalAdmin)
30		testing.SetRealm(testing.NewUserRealm(originalAdmin))
31		admin.TransferAdmin(cross(cur), abtTest.Admin)
32		testing.SetOriginCaller(abtTest.Admin)
33		testing.SetRealm(testing.NewUserRealm(abtTest.Admin))
34		admin.AcceptAdmin(cross(cur))
35	}
36	testing.SetOriginCaller(abtTest.Admin)
37	testing.SetRealm(testing.NewUserRealm(abtTest.Admin))
38	for _, operator := range admin.GetOperators() {
39		admin.UnsetOperator(cross(cur), operator)
40	}
41	admin.SetOperator(cross(cur), abtTest.Operator)
42}
43
44func captureABTRealm(cur realm) realm { return cur }