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