fee_collector.gno
0.75 Kb ยท 49 lines
1package admin
2
3import (
4 "chain"
5 "chain/runtime"
6)
7
8const (
9 SetFeeCollectorEvent = "SetFeeCollector"
10)
11
12var (
13 feeCollectorAddr address
14)
15
16func init() {
17 caller := runtime.OriginCaller()
18 feeCollectorAddr = caller
19}
20
21func GetFeeCollector() address {
22 return feeCollectorAddr
23}
24
25func SetFeeCollector(cur realm, addr address) {
26 caller := runtime.OriginCaller()
27
28 if caller != admin {
29 panic("admin access required to set fee collector")
30 }
31
32 if !addr.IsValid() {
33 panic("invalid address")
34 }
35
36 oldAddr := feeCollectorAddr
37 feeCollectorAddr = addr
38
39 chain.Emit(
40 SetFeeCollectorEvent,
41 "admin", caller.String(),
42 "oldAddr", oldAddr.String(),
43 "newAddr", addr.String(),
44 )
45}
46
47func IsFeeCollector(address address) bool {
48 return address == feeCollectorAddr
49}