Search Apps Documentation Source Content File Folder Download Copy Actions Download

utils.gno

0.73 Kb ยท 39 lines
 1package chunk
 2
 3import (
 4	"chain/runtime"
 5
 6	"gno.land/r/akkadia/admin"
 7)
 8
 9func getAdmin() address {
10	return admin.GetAdmin()
11}
12
13func assertIsAdmin(address address) {
14	if address != getAdmin() {
15		panic("admin access required")
16	}
17}
18
19func validateUser() address {
20	prev := runtime.PreviousRealm()
21	if !prev.IsUser() {
22		panic("contract calls not allowed: function must be called directly by user")
23	}
24	return prev.Address()
25}
26
27func assertIsAdminOrOperator(address address) {
28	if !admin.IsAdmin(address) && !admin.IsOperator(address) {
29		panic("admin or operator access required")
30	}
31}
32
33func parseKeyValue(arr []string) map[string]string {
34	m := make(map[string]string)
35	for i := 0; i < len(arr)-1; i += 2 {
36		m[arr[i]] = arr[i+1]
37	}
38	return m
39}