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