Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}