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}