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}