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