Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}