Search Apps Documentation Source Content File Folder Download Copy Actions Download

freeze.gno

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