fee_collector.gno
0.68 Kb · 42 lines
1package admin
2
3import (
4 "chain"
5
6 "gno.land/p/akkadia/v0/accesscontrol"
7)
8
9const (
10 SetFeeCollectorEvent = "SetFeeCollector"
11)
12
13var (
14 feeCollectorAddr address
15)
16
17func init() {
18 feeCollectorAddr = chain.PackageAddress("gno.land/r/akkadia/v0/admin")
19}
20
21func GetFeeCollector() address {
22 return feeCollectorAddr
23}
24
25func SetFeeCollector(cur realm, addr address) {
26 assertNotFrozen()
27 accesscontrol.AssertIsAdmin(0, cur, IsAdmin)
28
29 assertValidAddress(addr)
30 oldAddr := feeCollectorAddr
31 feeCollectorAddr = addr
32
33 chain.Emit(
34 SetFeeCollectorEvent,
35 "oldAddr", oldAddr.String(),
36 "newAddr", addr.String(),
37 )
38}
39
40func IsFeeCollector(address address) bool {
41 return address == feeCollectorAddr
42}