freeze.gno
0.48 Kb · 30 lines
1package blueprint
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 assertMigrationStateAvailable()
13 frozen = true
14}
15
16func Unfreeze(cur realm) {
17 accesscontrol.AssertIsAdmin(0, cur, admin.IsAdmin)
18 assertMigrationStateAvailable()
19 frozen = false
20}
21
22func IsFrozen() bool {
23 return frozen
24}
25
26func assertNotFrozen() {
27 if frozen {
28 panic("contract is frozen")
29 }
30}