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