freeze.gno
0.51 Kb · 31 lines
1package acr
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 assertMigrationStateAvailable()
28 if frozen {
29 panic("contract is frozen")
30 }
31}