Search Apps Documentation Source Content File Folder Download Copy Actions Download

authz_block_install.gno

0.81 Kb · 22 lines
 1package chunk
 2
 3import "gno.land/p/akkadia/v0/grc721"
 4
 5const (
 6	BlockInstallPermission   = "block:install"
 7	BlockUninstallPermission = "block:uninstall"
 8)
 9
10// HasInstallPermission checks if caller can install blocks in the chunk.
11func HasInstallPermission(tokenID grc721.TokenID, caller address) bool {
12	worldID, _, _ := parseChunkKey(tokenID.String())
13	return HasWorldPermission(worldID, caller, BlockInstallPermission) ||
14		HasChunkPermission(tokenID, caller, BlockInstallPermission)
15}
16
17// HasUninstallPermission checks if caller can uninstall blocks from the chunk.
18func HasUninstallPermission(tokenID grc721.TokenID, caller address) bool {
19	worldID, _, _ := parseChunkKey(tokenID.String())
20	return HasWorldPermission(worldID, caller, BlockUninstallPermission) ||
21		HasChunkPermission(tokenID, caller, BlockUninstallPermission)
22}