Search Apps Documentation Source Content File Folder Download Copy Actions Download

acr_reward_allowlist.gno

1.27 Kb · 47 lines
 1package block
 2
 3import (
 4	"chain"
 5
 6	"gno.land/p/akkadia/v0/accesscontrol"
 7	"gno.land/r/akkadia/v0/admin"
 8)
 9
10const (
11	SetAcrRewardEnabledEvent   = "SetAcrRewardEnabled"
12	UnsetAcrRewardEnabledEvent = "UnsetAcrRewardEnabled"
13)
14
15// SetAcrRewardEnabled enables ACR reward for a block (Admin only)
16func SetAcrRewardEnabled(cur realm, blockID uint32) {
17	assertNotFrozen()
18	accesscontrol.AssertIsAdmin(0, cur, admin.IsAdmin)
19
20	blockIDStr := blockIDToString(blockID)
21	blockStore.SetAcrRewardEnabled(blockID)
22
23	chain.Emit(SetAcrRewardEnabledEvent, "blockId", blockIDStr)
24}
25
26// UnsetAcrRewardEnabled disables ACR reward for a block (Admin only)
27func UnsetAcrRewardEnabled(cur realm, blockID uint32) {
28	assertNotFrozen()
29	accesscontrol.AssertIsAdmin(0, cur, admin.IsAdmin)
30
31	blockIDStr := blockIDToString(blockID)
32	blockStore.UnsetAcrRewardEnabled(blockID)
33
34	chain.Emit(UnsetAcrRewardEnabledEvent, "blockId", blockIDStr)
35}
36
37// IsAcrRewardEnabled returns true if ACR reward is enabled for the block
38func IsAcrRewardEnabled(blockID uint32) bool {
39	assertMigrationStateAvailable()
40	return blockStore.IsAcrRewardEnabled(blockID)
41}
42
43// ListAcrRewardEnabled returns all block IDs with ACR reward enabled
44func ListAcrRewardEnabled() []string {
45	assertMigrationStateAvailable()
46	return blockStore.ListAcrRewardEnabled()
47}