freeze.gno
0.47 Kb · 30 lines
1package block
2
3import (
4 "gno.land/p/akkadia/v0/accesscontrol"
5 "gno.land/r/akkadia/v0/admin"
6)
7
8var frozen bool
9
10func Freeze(cur realm) {
11 accesscontrol.AssertIsAdmin(0, cur, admin.IsAdmin)
12 frozen = true
13}
14
15func Unfreeze(cur realm) {
16 accesscontrol.AssertIsAdmin(0, cur, admin.IsAdmin)
17 assertMigrationStateAvailable()
18 frozen = false
19}
20
21func IsFrozen() bool {
22 return frozen
23}
24
25func assertNotFrozen() {
26 assertMigrationStateAvailable()
27 if frozen {
28 panic("block is frozen")
29 }
30}