From 84a379cdedb94cd0cc19479749afbf48a0c0e831 Mon Sep 17 00:00:00 2001 From: ECWireless Date: Wed, 26 Jun 2024 13:38:55 -0400 Subject: [PATCH 1/2] Make sure stats generate based on character class --- .../client/src/pages/CharacterCreation.tsx | 8 +- packages/client/src/utils/types.ts | 2 +- packages/contracts/src/systems/RngSystem.sol | 53 +++++++- packages/contracts/test/CharacterSystem.t.sol | 120 +++++++++--------- packages/contracts/test/mocks/MockEntropy.sol | 2 +- 5 files changed, 116 insertions(+), 69 deletions(-) diff --git a/packages/client/src/pages/CharacterCreation.tsx b/packages/client/src/pages/CharacterCreation.tsx index 35a4b07c..4b497452 100644 --- a/packages/client/src/pages/CharacterCreation.tsx +++ b/packages/client/src/pages/CharacterCreation.tsx @@ -432,20 +432,20 @@ export const CharacterCreation = (): JSX.Element => { Warrior diff --git a/packages/client/src/utils/types.ts b/packages/client/src/utils/types.ts index bf2164ef..b0f189d8 100644 --- a/packages/client/src/utils/types.ts +++ b/packages/client/src/utils/types.ts @@ -11,8 +11,8 @@ export type Character = Metadata & { export enum CharacterClasses { Warrior, - Mage, Rogue, + Mage, } export type Metadata = { diff --git a/packages/contracts/src/systems/RngSystem.sol b/packages/contracts/src/systems/RngSystem.sol index 6d80f395..6e99c1dd 100644 --- a/packages/contracts/src/systems/RngSystem.sol +++ b/packages/contracts/src/systems/RngSystem.sol @@ -3,8 +3,8 @@ pragma solidity >=0.8.24; import { System } from "@latticexyz/world/src/System.sol"; import { RandomNumbers } from "@codegen/index.sol"; -import { CharacterStats } from "@codegen/index.sol"; -import { RngRequestType } from "@codegen/common.sol"; +import { Characters, CharacterStats } from "@codegen/index.sol"; +import { Classes, RngRequestType } from "@codegen/common.sol"; import { UltimateDominionConfig } from "../codegen/index.sol"; import { LibChunks } from "../libraries/LibChunks.sol"; import { IEntropyConsumer } from "@pythnetwork/IEntropyConsumer.sol"; @@ -80,9 +80,50 @@ contract RngSystem is System, IEntropyConsumer { function _storeCharacterStats(uint256 randomNumber, uint256 characterId) internal { uint64[] memory chunks = randomNumber.get4Chunks(); - CharacterStats.setStrength(characterId, (uint256((uint256(chunks[0]) % uint256(9)) + 1))); - CharacterStats.setAgility(characterId, (uint256((uint256(chunks[1]) % uint256(9)) + 1))); - CharacterStats.setIntelligence(characterId, (uint256((uint256(chunks[2]) % uint256(9)) + 1))); - CharacterStats.setHitPoints(characterId, (uint256((uint256(chunks[3]) % uint256(9)) + 1))); + + Classes characterClass = Characters.getClass(characterId); + + uint256 strength = (chunks[0] % 8) + 3; // Range [3, 10] + uint256 agility = (chunks[1] % 8) + 3; // Range [3, 10] + + // Calculate intelligence to ensure total is 19 + uint256 intelligence = 19 - strength - agility; + + // Ensure intelligence is within the range [3, 10] + if (intelligence < 3) { + uint256 deficit = 3 - intelligence; + intelligence = 3; + + if (strength > agility) { + strength -= deficit; + } else { + agility -= deficit; + } + } else if (intelligence > 10) { + uint256 excess = intelligence - 10; + intelligence = 10; + + if (strength < agility) { + strength += excess; + } else { + agility += excess; + } + } + + // Class-based adjustments; should total to 21 + if (characterClass == Classes.Warrior) { + strength += 2; + CharacterStats.setHitPoints(characterId, uint256(10)); + } else if (characterClass == Classes.Rogue) { + agility += 2; + CharacterStats.setHitPoints(characterId, uint256(6)); + } else if (characterClass == Classes.Mage) { + intelligence += 2; + CharacterStats.setHitPoints(characterId, uint256(8)); + } + + CharacterStats.setStrength(characterId, strength); + CharacterStats.setAgility(characterId, agility); + CharacterStats.setIntelligence(characterId, intelligence); } } diff --git a/packages/contracts/test/CharacterSystem.t.sol b/packages/contracts/test/CharacterSystem.t.sol index 3859f375..2e538244 100644 --- a/packages/contracts/test/CharacterSystem.t.sol +++ b/packages/contracts/test/CharacterSystem.t.sol @@ -1,63 +1,69 @@ pragma solidity >=0.8.24; -import {SetUp} from "./SetUp.sol"; -import {Classes} from "../src/codegen/common.sol"; -import {CharacterStatsData} from "../src/codegen/tables/CharacterStats.sol"; -import {GasReporter} from "@latticexyz/gas-report/src/GasReporter.sol"; -import {IERC721Metadata} from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Metadata.sol"; +import { SetUp } from "./SetUp.sol"; +import { Classes } from "../src/codegen/common.sol"; +import { CharacterStatsData } from "../src/codegen/tables/CharacterStats.sol"; +import { GasReporter } from "@latticexyz/gas-report/src/GasReporter.sol"; +import { IERC721Metadata } from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Metadata.sol"; import "forge-std/console2.sol"; contract Test_CharacterSystem is SetUp, GasReporter { - function test_Mint() public { - startGasReport("mints a character"); - - vm.startPrank(alice); - alicesCharacterId = world.UD__mintCharacter(alice, bytes32("Alan"), "test_Character_URI"); - assertEq(alicesCharacterId, 2); - assertEq(characterToken.ownerOf(1), alice); - assertEq(characterToken.balanceOf(alice), 2); - assertEq( - IERC721Metadata(address(characterToken)).tokenURI(alicesCharacterId), "ipfs://test_Character_URI" - ); - - endGasReport(); - } - - function test_RollStats() public { - startGasReport("rolls stats for a character"); - - uint256 fees = entropy.getFee(address(1)); - vm.prank(alice); - world.UD__rollStats{value: fees}(alicesRandomness, alicesCharacterId, Classes.Rogue); - vm.warp(block.number + 1); - CharacterStatsData memory alicesCharacter = world.UD__getCharacterStats(alicesCharacterId); - assertEq(uint8(world.UD__getClass(alicesCharacterId)), uint8(Classes.Rogue)); - assertEq(alicesCharacter.strength, 2); - assertEq(alicesCharacter.agility, 7); - assertEq(alicesCharacter.hitPoints, 3); - assertEq(alicesCharacter.intelligence, 4); - - endGasReport(); - } - - function test_RollStats_Revert_GameStarted() public { - uint256 fees = entropy.getFee(address(1)); - vm.startPrank(alice); - world.UD__rollStats{value: fees}(alicesRandomness, alicesCharacterId, Classes.Rogue); - world.UD__enterGame(alicesCharacterId); - vm.expectRevert(); - world.UD__rollStats{value: fees}(alicesRandomness, alicesCharacterId, Classes.Rogue); - } - - function test_EnterGame() public { - startGasReport("enters a character into the game"); - - uint256 fees = entropy.getFee(address(1)); - vm.startPrank(alice); - world.UD__rollStats{value: fees}(alicesRandomness, alicesCharacterId, Classes.Rogue); - world.UD__enterGame(alicesCharacterId); - // assertEq(erc1155System.balanceOf(alice, 0), 1); - - endGasReport(); - } + function test_Mint() public { + startGasReport("mints a character"); + + vm.startPrank(alice); + alicesCharacterId = world.UD__mintCharacter(alice, bytes32("Alan"), "test_Character_URI"); + assertEq(alicesCharacterId, 2); + assertEq(characterToken.ownerOf(1), alice); + assertEq(characterToken.balanceOf(alice), 2); + assertEq(IERC721Metadata(address(characterToken)).tokenURI(alicesCharacterId), "ipfs://test_Character_URI"); + + endGasReport(); + } + + function test_RollStats() public { + startGasReport("rolls stats for a character"); + + uint256 fees = entropy.getFee(address(1)); + vm.prank(alice); + world.UD__rollStats{ value: fees }(alicesRandomness, alicesCharacterId, Classes.Rogue); + vm.warp(block.number + 1); + CharacterStatsData memory alicesCharacter = world.UD__getCharacterStats(alicesCharacterId); + assertEq(uint8(world.UD__getClass(alicesCharacterId)), uint8(Classes.Rogue)); + + assertTrue(alicesCharacter.strength <= 10); + assertTrue(alicesCharacter.agility <= 12); + assertTrue(alicesCharacter.intelligence <= 10); + + assertTrue(alicesCharacter.strength >= 3); + assertTrue(alicesCharacter.agility >= 5); + assertTrue(alicesCharacter.intelligence >= 3); + + assertTrue(alicesCharacter.strength + alicesCharacter.agility + alicesCharacter.intelligence <= 21); + + assertEq(alicesCharacter.hitPoints, 6); + + endGasReport(); + } + + function test_RollStats_Revert_GameStarted() public { + uint256 fees = entropy.getFee(address(1)); + vm.startPrank(alice); + world.UD__rollStats{ value: fees }(alicesRandomness, alicesCharacterId, Classes.Rogue); + world.UD__enterGame(alicesCharacterId); + vm.expectRevert(); + world.UD__rollStats{ value: fees }(alicesRandomness, alicesCharacterId, Classes.Rogue); + } + + function test_EnterGame() public { + startGasReport("enters a character into the game"); + + uint256 fees = entropy.getFee(address(1)); + vm.startPrank(alice); + world.UD__rollStats{ value: fees }(alicesRandomness, alicesCharacterId, Classes.Rogue); + world.UD__enterGame(alicesCharacterId); + // assertEq(erc1155System.balanceOf(alice, 0), 1); + + endGasReport(); + } } diff --git a/packages/contracts/test/mocks/MockEntropy.sol b/packages/contracts/test/mocks/MockEntropy.sol index 848bc69b..7c9b9afd 100644 --- a/packages/contracts/test/mocks/MockEntropy.sol +++ b/packages/contracts/test/mocks/MockEntropy.sol @@ -33,7 +33,7 @@ contract MockEntropy is IEntropy { ) external payable returns (uint64 assignedSequenceNumber) { // require(msg.value == mockFee, 'more fees please'); assignedSequenceNumber = uint64(1234567); - bytes32 randomNumber = bytes32(keccak256(abi.encode("random number"))); + bytes32 randomNumber = keccak256(abi.encode(block.number)); IEntropyConsumer(msg.sender)._entropyCallback(assignedSequenceNumber, address(1), randomNumber); return assignedSequenceNumber; } From cf043c7398c8206350e714f4d31a38d1ca61efc9 Mon Sep 17 00:00:00 2001 From: ECWireless Date: Wed, 26 Jun 2024 13:45:40 -0400 Subject: [PATCH 2/2] Add MapSystem --- packages/contracts/mud.config.ts | 28 ++ .../contracts/out/IWorld.sol/IWorld.abi.json | 36 ++ .../out/IWorld.sol/IWorld.abi.json.d.ts | 36 ++ packages/contracts/out/IWorld.sol/IWorld.json | 2 +- packages/contracts/script/PostDeploy.s.sol | 454 +++++++++--------- packages/contracts/src/codegen/index.sol | 3 + .../src/codegen/tables/MapConfig.sol | 267 ++++++++++ .../contracts/src/codegen/tables/Position.sol | 279 +++++++++++ .../contracts/src/codegen/tables/Spawned.sol | 211 ++++++++ .../src/codegen/world/IMapSystem.sol | 15 + .../contracts/src/codegen/world/IWorld.sol | 2 + packages/contracts/src/systems/MapSystem.sol | 39 ++ 12 files changed, 1152 insertions(+), 220 deletions(-) create mode 100644 packages/contracts/src/codegen/tables/MapConfig.sol create mode 100644 packages/contracts/src/codegen/tables/Position.sol create mode 100644 packages/contracts/src/codegen/tables/Spawned.sol create mode 100644 packages/contracts/src/codegen/world/IMapSystem.sol create mode 100644 packages/contracts/src/systems/MapSystem.sol diff --git a/packages/contracts/mud.config.ts b/packages/contracts/mud.config.ts index c57a22c8..5f44eb4a 100644 --- a/packages/contracts/mud.config.ts +++ b/packages/contracts/mud.config.ts @@ -47,6 +47,34 @@ export default defineWorld({ experience: "uint256", }, }, + MapConfig: { + key: [], + schema: { + height: "uint32", + width: "uint32", + }, + codegen: { + dataStruct: false, + }, + }, + Position: { + key: ["characterId"], + schema: { + characterId: "uint256", + x: "uint32", + y: "uint32", + }, + codegen: { + dataStruct: false, + }, + }, + Spawned: { + key: ["characterId"], + schema: { + characterId: "uint256", + spawned: "bool", + }, + }, MobStats: { key: ["entityId"], schema: { diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json b/packages/contracts/out/IWorld.sol/IWorld.abi.json index eabf4ee4..baee816a 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json @@ -694,6 +694,29 @@ ], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__move", + "inputs": [ + { + "name": "characterId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "x", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "y", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__rollStats", @@ -758,6 +781,19 @@ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__spawn", + "inputs": [ + { + "name": "characterId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__unequipItem", diff --git a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts index c5a4cc2e..5090d572 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts +++ b/packages/contracts/out/IWorld.sol/IWorld.abi.json.d.ts @@ -694,6 +694,29 @@ declare const abi: [ ], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__move", + "inputs": [ + { + "name": "characterId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "x", + "type": "uint32", + "internalType": "uint32" + }, + { + "name": "y", + "type": "uint32", + "internalType": "uint32" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__rollStats", @@ -758,6 +781,19 @@ declare const abi: [ "outputs": [], "stateMutability": "nonpayable" }, + { + "type": "function", + "name": "UD__spawn", + "inputs": [ + { + "name": "characterId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, { "type": "function", "name": "UD__unequipItem", diff --git a/packages/contracts/out/IWorld.sol/IWorld.json b/packages/contracts/out/IWorld.sol/IWorld.json index e698719f..33f00188 100644 --- a/packages/contracts/out/IWorld.sol/IWorld.json +++ b/packages/contracts/out/IWorld.sol/IWorld.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"uint256[]","internalType":"uint256[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createSkill","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getCharacterStats","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CharacterStatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"damageTaken","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"hp","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"baseDamage","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"experience","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"uint256[]","internalType":"uint256[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"damage","type":"uint256","internalType":"uint256"},{"name":"speed","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"minLevel","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD__checkRequirements(uint256,uint256)":"79fdcdee","UD__createItem(uint8,uint256,bytes,string)":"f28c840e","UD__createItems(uint8[],uint256[],bytes[],string[])":"941acaab","UD__createMatch(uint8,uint256[],bytes32[])":"54763054","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__createSkill()":"8993c4e1","UD__enterGame(uint256)":"cc0f1ab7","UD__equipItems(uint256,uint256[])":"c686667a","UD__getCharacterStats(uint256)":"e1ecef13","UD__getCharacterToken()":"49d8cf02","UD__getClass(uint256)":"5758128c","UD__getCurrentLevel(uint256)":"e83e2af9","UD__getEntropy()":"b5c691c7","UD__getExperience(uint256)":"8bc01bf0","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(uint256)":"622834d0","UD__getMonsterStats(uint256)":"91b22373","UD__getName(uint256)":"cf36b62e","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(uint256)":"ef89f17a","UD__getPythProvider()":"e24cefd9","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isEquipped(uint256,uint256)":"b80057db","UD__issueStarterItems(uint256)":"ce2d5a9a","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__rollStats(bytes32,uint256,uint8)":"1cf705d7","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__unequipItem(uint256,uint256)":"ca3caa8c","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"attackers\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__createSkill\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getCharacterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"damageTaken\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"internalType\":\"struct CharacterStatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"hp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseDamage\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"storyPathIds\",\"type\":\"uint256[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"damage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"speed\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x4c2ba8a0a49d1b05659c3ede28e5c038375449d2e1b7406efc24cbbccd7a219a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ce39aeab3df49bef03cb5a6f1089719750a38eb0cb207a04c4f64097ae53018\",\"dweb:/ipfs/QmZASMaZu5zZRMcKs5rg1TXoniuaeeseeU4E4cExm8xEgb\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0xfdd2eab59d2236c9dea22424159f6a2183bc6a801b57915487f0696537e089e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba516e48c246749f8e0885e15f02d945dd0fdf6588a0d83e3002b7f3247fd6bc\",\"dweb:/ipfs/QmdUo8LuP6NobHUCKjT2Bg9hpz64JnLyo6WGMU4Y9sSDKN\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x1f206f05e1f359a4734d85132f95fe3230161352e27bc5c6a27d3c0b35ddd4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59144a593b681fb3143185b226d333e979805cc1e58c31c9c8bb276ae3b114a6\",\"dweb:/ipfs/QmUfoXGmWwDTK25vuUWan9U5r6SP72u2RFpFK1pawDJ3Yt\"]},\"src/codegen/tables/CharacterStats.sol\":{\"keccak256\":\"0x0e912302c0e02af68fb8ecc9cd9a3574fa4c60e4272072d5fbfdaa9e30615627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35478c40410a7ce1fb3e0ba81c6cfd36fa59b0d2edcf71e39a6229f819079fd4\",\"dweb:/ipfs/QmdsJbJ2ZHZYHe7jYvDNoUvWGBMSzu76PFJXFoD2VRWq4b\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0xdc9c589cae6aa924e1492c4a10c26e7ec3c803dd670a61d3620b87dea19de2c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c5d5915e34cec622b908230b5b485bf52236ede9027fbf7643c01d358d39e6\",\"dweb:/ipfs/Qmah6n47amtAYhtbLM3WdtCi7yHpTbaXm6FUsyu8pFdMYf\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0xff0a6e9e6e34d739d3260d2e0ef2db0190dfb6eed6acf9b5e631228a35c37c42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bc2c8f088539657ffc555483e094d771ca60e12eb211af1fd5fc5d58d4fac74\",\"dweb:/ipfs/Qmd7PuyowVmPhRWoFQQMRaTihnn9iFQsaKQQRjTaW99eYP\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x7d947002a120f45313a6a6adfc4d2079fb0b68eace00581c8a3485973565c3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66f9f7e26e93029eab174b37fa575e4ce8aaab5261d6f0a4e24b14de1229bdf\",\"dweb:/ipfs/QmYnpaXwp1fPRHYWBBixJUrFpqcxsQghhgbauknqEE6bpS\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da\",\"dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MobEntity.sol\":{\"keccak256\":\"0x76d773fe3fb2332766bf7fdecc6bd31442fd32fdd18a8ac7781efee20511ffe5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87200a6ec462b9a847f33e18b730739b3fe78120c93fe3d896ba31130b85a5c0\",\"dweb:/ipfs/QmWsFsoAQBxZEn3RDkZBgEHsmWPANqz8cPvquK6qduhFfh\"]},\"src/codegen/tables/MobStats.sol\":{\"keccak256\":\"0x18959e45a14e6ef240b46da0b370f1ca1fbd399f3cdfd229d39932f44644ec57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da3d1b0c4da5d4df93cbaafcd084768961391f838b7251d815c4b3ea2bccdd09\",\"dweb:/ipfs/QmXGD6eRifAord2Ubck5Fgp4zP8NMVGNECTPsYurwaWX1K\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xb0d27dd67d9ea10ef835a91c9f1f264107dc2a4cdbeb5531049a5006704cc991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89727edf1e326df28d8c42d231d46df10a285ea2fdf7b73fe19f21c0901c22b\",\"dweb:/ipfs/QmeRQ4nkXiuh1DSWuGCrC5inRejZKhDZLwtNZn8ai1bV88\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x70caf9c80ea6c72b8f5bb5262f5fc4e8733ebc249c24b7dfb5c881f7b85dab9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3d1ef91292b619f37f8ad93ab9d3cb8e45b91674ab1edee5a7fc1c5d071a0c3\",\"dweb:/ipfs/QmNP2royisUVREpoqfYK1a2hhYodd6iS39yhYpvAPJnG4H\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0x1795d0914aa67a81ffcf51328b6eeb9a5359692cd58122047354cf2b9be9c44e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ddc8d7780fd47d6981aa6324e545814f37ff3fb2be2b27e1e5aed97b15f225\",\"dweb:/ipfs/Qmcv98XaSvzK9fijokfySYEMDtyxu8RKp1mT9S2fDvJYoA\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x9ec61276ea8d11ee9b1babc9e3fd052de53d2b70ba8046f716cad9345cada6ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f7187f27c11d1d0caa1e3bdf3760be52401f3252adf096f6004379e926c1134\",\"dweb:/ipfs/QmbVHG5x57VpFRzaCDvc186V4kX3jJRuwHB26JLYh6a8s4\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0xba90101aabcf40e70392a7cb70705414abd0ae15cc3611ff896a4fac2f7a42d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://befe8dc2fb28a22feb31c6ac8f8d6796985db0fe49a411b60d860d34b45813c6\",\"dweb:/ipfs/QmaGKJ9ipwXJKt7uVqEGwGdqo45AkAuQHQdpSgqo1vCTbf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x71e049e0de75deadbd8edf2db7e0cc229e9c98d74694b39f1e8eed4101e1cf6d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b14b5e37b9c18453e774408b5469d5d75530dce6b00955e12ef18ac8b4b6d018\",\"dweb:/ipfs/QmcZMHY1Bcmgg28qnj4dFuBSALuz2mV3XxNDZVvRCXxFru\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x7472fa5be64b4a6e032d4f1b8ed11d8f91fbad483c8ab4c71dee909233fade6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff2517c3d7bacf21162560ffbfaef377f2e98ee16e676fa3cfd22b384b09d9b8\",\"dweb:/ipfs/QmQCw3aMxqDwtitsAPGzP2FmjgjdSCX75WemQog4ieseas\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256[]","name":"attackers","type":"uint256[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD__createSkill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCharacterStats","outputs":[{"internalType":"struct CharacterStatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"int256","name":"damageTaken","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"hp","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"baseDamage","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"experience","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256[]","name":"storyPathIds","type":"uint256[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"speed","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"uint256","name":"minLevel","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x4c2ba8a0a49d1b05659c3ede28e5c038375449d2e1b7406efc24cbbccd7a219a","urls":["bzz-raw://1ce39aeab3df49bef03cb5a6f1089719750a38eb0cb207a04c4f64097ae53018","dweb:/ipfs/QmZASMaZu5zZRMcKs5rg1TXoniuaeeseeU4E4cExm8xEgb"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0xfdd2eab59d2236c9dea22424159f6a2183bc6a801b57915487f0696537e089e5","urls":["bzz-raw://ba516e48c246749f8e0885e15f02d945dd0fdf6588a0d83e3002b7f3247fd6bc","dweb:/ipfs/QmdUo8LuP6NobHUCKjT2Bg9hpz64JnLyo6WGMU4Y9sSDKN"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x1f206f05e1f359a4734d85132f95fe3230161352e27bc5c6a27d3c0b35ddd4d8","urls":["bzz-raw://59144a593b681fb3143185b226d333e979805cc1e58c31c9c8bb276ae3b114a6","dweb:/ipfs/QmUfoXGmWwDTK25vuUWan9U5r6SP72u2RFpFK1pawDJ3Yt"],"license":"MIT"},"src/codegen/tables/CharacterStats.sol":{"keccak256":"0x0e912302c0e02af68fb8ecc9cd9a3574fa4c60e4272072d5fbfdaa9e30615627","urls":["bzz-raw://35478c40410a7ce1fb3e0ba81c6cfd36fa59b0d2edcf71e39a6229f819079fd4","dweb:/ipfs/QmdsJbJ2ZHZYHe7jYvDNoUvWGBMSzu76PFJXFoD2VRWq4b"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0xdc9c589cae6aa924e1492c4a10c26e7ec3c803dd670a61d3620b87dea19de2c7","urls":["bzz-raw://47c5d5915e34cec622b908230b5b485bf52236ede9027fbf7643c01d358d39e6","dweb:/ipfs/Qmah6n47amtAYhtbLM3WdtCi7yHpTbaXm6FUsyu8pFdMYf"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0xff0a6e9e6e34d739d3260d2e0ef2db0190dfb6eed6acf9b5e631228a35c37c42","urls":["bzz-raw://2bc2c8f088539657ffc555483e094d771ca60e12eb211af1fd5fc5d58d4fac74","dweb:/ipfs/Qmd7PuyowVmPhRWoFQQMRaTihnn9iFQsaKQQRjTaW99eYP"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x7d947002a120f45313a6a6adfc4d2079fb0b68eace00581c8a3485973565c3ad","urls":["bzz-raw://b66f9f7e26e93029eab174b37fa575e4ce8aaab5261d6f0a4e24b14de1229bdf","dweb:/ipfs/QmYnpaXwp1fPRHYWBBixJUrFpqcxsQghhgbauknqEE6bpS"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30","urls":["bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da","dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MobEntity.sol":{"keccak256":"0x76d773fe3fb2332766bf7fdecc6bd31442fd32fdd18a8ac7781efee20511ffe5","urls":["bzz-raw://87200a6ec462b9a847f33e18b730739b3fe78120c93fe3d896ba31130b85a5c0","dweb:/ipfs/QmWsFsoAQBxZEn3RDkZBgEHsmWPANqz8cPvquK6qduhFfh"],"license":"MIT"},"src/codegen/tables/MobStats.sol":{"keccak256":"0x18959e45a14e6ef240b46da0b370f1ca1fbd399f3cdfd229d39932f44644ec57","urls":["bzz-raw://da3d1b0c4da5d4df93cbaafcd084768961391f838b7251d815c4b3ea2bccdd09","dweb:/ipfs/QmXGD6eRifAord2Ubck5Fgp4zP8NMVGNECTPsYurwaWX1K"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xb0d27dd67d9ea10ef835a91c9f1f264107dc2a4cdbeb5531049a5006704cc991","urls":["bzz-raw://e89727edf1e326df28d8c42d231d46df10a285ea2fdf7b73fe19f21c0901c22b","dweb:/ipfs/QmeRQ4nkXiuh1DSWuGCrC5inRejZKhDZLwtNZn8ai1bV88"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x70caf9c80ea6c72b8f5bb5262f5fc4e8733ebc249c24b7dfb5c881f7b85dab9d","urls":["bzz-raw://c3d1ef91292b619f37f8ad93ab9d3cb8e45b91674ab1edee5a7fc1c5d071a0c3","dweb:/ipfs/QmNP2royisUVREpoqfYK1a2hhYodd6iS39yhYpvAPJnG4H"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0x1795d0914aa67a81ffcf51328b6eeb9a5359692cd58122047354cf2b9be9c44e","urls":["bzz-raw://75ddc8d7780fd47d6981aa6324e545814f37ff3fb2be2b27e1e5aed97b15f225","dweb:/ipfs/Qmcv98XaSvzK9fijokfySYEMDtyxu8RKp1mT9S2fDvJYoA"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x9ec61276ea8d11ee9b1babc9e3fd052de53d2b70ba8046f716cad9345cada6ad","urls":["bzz-raw://2f7187f27c11d1d0caa1e3bdf3760be52401f3252adf096f6004379e926c1134","dweb:/ipfs/QmbVHG5x57VpFRzaCDvc186V4kX3jJRuwHB26JLYh6a8s4"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0xba90101aabcf40e70392a7cb70705414abd0ae15cc3611ff896a4fac2f7a42d9","urls":["bzz-raw://befe8dc2fb28a22feb31c6ac8f8d6796985db0fe49a411b60d860d34b45813c6","dweb:/ipfs/QmaGKJ9ipwXJKt7uVqEGwGdqo45AkAuQHQdpSgqo1vCTbf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x71e049e0de75deadbd8edf2db7e0cc229e9c98d74694b39f1e8eed4101e1cf6d","urls":["bzz-raw://b14b5e37b9c18453e774408b5469d5d75530dce6b00955e12ef18ac8b4b6d018","dweb:/ipfs/QmcZMHY1Bcmgg28qnj4dFuBSALuz2mV3XxNDZVvRCXxFru"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x7472fa5be64b4a6e032d4f1b8ed11d8f91fbad483c8ab4c71dee909233fade6e","urls":["bzz-raw://ff2517c3d7bacf21162560ffbfaef377f2e98ee16e676fa3cfd22b384b09d9b8","dweb:/ipfs/QmQCw3aMxqDwtitsAPGzP2FmjgjdSCX75WemQog4ieseas"],"license":"MIT"}},"version":1},"id":196} \ No newline at end of file +{"abi":[{"type":"function","name":"UD__checkRequirements","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__createItem","inputs":[{"name":"itemType","type":"uint8","internalType":"enum ItemType"},{"name":"supply","type":"uint256","internalType":"uint256"},{"name":"stats","type":"bytes","internalType":"bytes"},{"name":"itemMetadataURI","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createItems","inputs":[{"name":"itemTypes","type":"uint8[]","internalType":"enum ItemType[]"},{"name":"supply","type":"uint256[]","internalType":"uint256[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"itemMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMatch","inputs":[{"name":"encounterType","type":"uint8","internalType":"enum EncounterType"},{"name":"attackers","type":"uint256[]","internalType":"uint256[]"},{"name":"defenders","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMob","inputs":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadataUri","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createMobs","inputs":[{"name":"mobTypes","type":"uint8[]","internalType":"enum MobType[]"},{"name":"stats","type":"bytes[]","internalType":"bytes[]"},{"name":"mobMetadataURIs","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__createSkill","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__enterGame","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__equipItems","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__getCharacterStats","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct CharacterStatsData","components":[{"name":"strength","type":"uint256","internalType":"uint256"},{"name":"agility","type":"uint256","internalType":"uint256"},{"name":"intelligence","type":"uint256","internalType":"uint256"},{"name":"hitPoints","type":"uint256","internalType":"uint256"},{"name":"damageTaken","type":"int256","internalType":"int256"},{"name":"experience","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getCharacterToken","inputs":[],"outputs":[{"name":"_characterToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getClass","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_class","type":"uint8","internalType":"enum Classes"}],"stateMutability":"view"},{"type":"function","name":"UD__getCurrentLevel","inputs":[{"name":"experience","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"currentLevel","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getEntropy","inputs":[],"outputs":[{"name":"_entropy","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getExperience","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getGoldToken","inputs":[],"outputs":[{"name":"_goldToken","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemType","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"enum ItemType"}],"stateMutability":"view"},{"type":"function","name":"UD__getItemsContract","inputs":[],"outputs":[{"name":"_erc1155","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getMob","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MobsData","components":[{"name":"mobType","type":"uint8","internalType":"enum MobType"},{"name":"mobStats","type":"bytes","internalType":"bytes"},{"name":"mobMetadata","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getMonsterStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct MonsterStats","components":[{"name":"hp","type":"uint256","internalType":"uint256"},{"name":"armor","type":"uint256","internalType":"uint256"},{"name":"level","type":"uint256","internalType":"uint256"},{"name":"baseDamage","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"inventory","type":"uint256[]","internalType":"uint256[]"},{"name":"experience","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getName","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_name","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UD__getNpcStats","inputs":[{"name":"mobId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct NPCStats","components":[{"name":"name","type":"string","internalType":"string"},{"name":"storyPathIds","type":"uint256[]","internalType":"uint256[]"},{"name":"alignment","type":"uint8","internalType":"enum Alignment"}]}],"stateMutability":"view"},{"type":"function","name":"UD__getOwner","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getPythProvider","inputs":[],"outputs":[{"name":"_provider","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"UD__getTotalSupply","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_supply","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UD__getWeaponStats","inputs":[{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_weaponStats","type":"tuple","internalType":"struct WeaponStats","components":[{"name":"damage","type":"uint256","internalType":"uint256"},{"name":"speed","type":"uint256","internalType":"uint256"},{"name":"classRestrictions","type":"uint8[]","internalType":"uint8[]"},{"name":"minLevel","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"UD__isEquipped","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_isEquipped","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"UD__issueStarterItems","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__mintCharacter","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"name","type":"bytes32","internalType":"bytes32"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"UD__move","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"x","type":"uint32","internalType":"uint32"},{"name":"y","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__rollStats","inputs":[{"name":"userRandomNumber","type":"bytes32","internalType":"bytes32"},{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"class","type":"uint8","internalType":"enum Classes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"UD__setStarterItems","inputs":[{"name":"class","type":"uint8","internalType":"enum Classes"},{"name":"itemIds","type":"uint256[]","internalType":"uint256[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"tokenUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__spawn","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UD__unequipItem","inputs":[{"name":"characterId","type":"uint256","internalType":"uint256"},{"name":"itemId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCall","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallData[]","components":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"batchCallFrom","inputs":[{"name":"systemCalls","type":"tuple[]","internalType":"struct SystemCallFromData[]","components":[{"name":"from","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnDatas","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"call","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"callFrom","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"function","name":"creator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getDynamicFieldSlice","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getFieldLayout","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFieldLength","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getKeySchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"keySchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getValueSchema","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"}],"outputs":[{"name":"valueSchema","type":"bytes32","internalType":"Schema"}],"stateMutability":"view"},{"type":"function","name":"grantAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"initModule","type":"address","internalType":"contract IModule"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"installRootModule","inputs":[{"name":"module","type":"address","internalType":"contract IModule"},{"name":"encodedArgs","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"popFromDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"byteLengthToPop","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pushToDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"dataToPush","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespace","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"delegationControlId","type":"bytes32","internalType":"ResourceId"},{"name":"initCallData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRootFunctionSelector","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"worldFunctionSignature","type":"string","internalType":"string"},{"name":"systemFunctionSignature","type":"string","internalType":"string"}],"outputs":[{"name":"worldFunctionSelector","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystem","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"system","type":"address","internalType":"contract System"},{"name":"publicAccess","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"},{"name":"enabledHooksBitmap","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerTable","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"},{"name":"keySchema","type":"bytes32","internalType":"Schema"},{"name":"valueSchema","type":"bytes32","internalType":"Schema"},{"name":"keyNames","type":"string[]","internalType":"string[]"},{"name":"fieldNames","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeAccess","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"grantee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDynamicField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRecord","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"staticData","type":"bytes","internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStaticField","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"fieldIndex","type":"uint8","internalType":"uint8"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"fieldLayout","type":"bytes32","internalType":"FieldLayout"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","internalType":"uint8"},{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"spliceStaticData","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","internalType":"bytes32[]"},{"name":"start","type":"uint48","internalType":"uint48"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"storeVersion","inputs":[],"outputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferBalanceToAddress","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferBalanceToNamespace","inputs":[{"name":"fromNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"toNamespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"},{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterDelegation","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterNamespaceDelegation","inputs":[{"name":"namespaceId","type":"bytes32","internalType":"ResourceId"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterStoreHook","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract IStoreHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterSystemHook","inputs":[{"name":"systemId","type":"bytes32","internalType":"ResourceId"},{"name":"hookAddress","type":"address","internalType":"contract ISystemHook"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"worldVersion","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"event","name":"HelloStore","inputs":[{"name":"storeVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"HelloWorld","inputs":[{"name":"worldVersion","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Store_DeleteRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"event","name":"Store_SetRecord","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"staticData","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"dynamicData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceDynamicData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"dynamicFieldIndex","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"deleteCount","type":"uint40","indexed":false,"internalType":"uint40"},{"name":"encodedLengths","type":"bytes32","indexed":false,"internalType":"EncodedLengths"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Store_SpliceStaticData","inputs":[{"name":"tableId","type":"bytes32","indexed":true,"internalType":"ResourceId"},{"name":"keyTuple","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"},{"name":"start","type":"uint48","indexed":false,"internalType":"uint48"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"EncodedLengths_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_Empty","inputs":[]},{"type":"error","name":"FieldLayout_InvalidStaticDataLength","inputs":[{"name":"staticDataLength","type":"uint256","internalType":"uint256"},{"name":"computedStaticDataLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsNotZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_StaticLengthIsZero","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyDynamicFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FieldLayout_TooManyFields","inputs":[{"name":"numFields","type":"uint256","internalType":"uint256"},{"name":"maxFields","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Module_AlreadyInstalled","inputs":[]},{"type":"error","name":"Module_MissingDependency","inputs":[{"name":"dependency","type":"address","internalType":"address"}]},{"type":"error","name":"Module_NonRootInstallNotSupported","inputs":[]},{"type":"error","name":"Module_RootInstallNotSupported","inputs":[]},{"type":"error","name":"Schema_InvalidLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Schema_StaticTypeAfterDynamicType","inputs":[]},{"type":"error","name":"Slice_OutOfBounds","inputs":[{"name":"data","type":"bytes","internalType":"bytes"},{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_IndexOutOfBounds","inputs":[{"name":"length","type":"uint256","internalType":"uint256"},{"name":"accessedIndex","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidBounds","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"end","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidFieldNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidKeyNamesLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_InvalidSplice","inputs":[{"name":"startWithinField","type":"uint40","internalType":"uint40"},{"name":"deleteCount","type":"uint40","internalType":"uint40"},{"name":"fieldLength","type":"uint40","internalType":"uint40"}]},{"type":"error","name":"Store_InvalidStaticDataLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaDynamicLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_InvalidValueSchemaStaticLength","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"received","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Store_TableAlreadyExists","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"Store_TableNotFound","inputs":[{"name":"tableId","type":"bytes32","internalType":"ResourceId"},{"name":"tableIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_AccessDenied","inputs":[{"name":"resource","type":"string","internalType":"string"},{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"World_AlreadyInitialized","inputs":[]},{"type":"error","name":"World_CallbackNotAllowed","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_DelegationNotFound","inputs":[{"name":"delegator","type":"address","internalType":"address"},{"name":"delegatee","type":"address","internalType":"address"}]},{"type":"error","name":"World_FunctionSelectorAlreadyExists","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_FunctionSelectorNotFound","inputs":[{"name":"functionSelector","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"World_InterfaceNotSupported","inputs":[{"name":"contractAddress","type":"address","internalType":"address"},{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}]},{"type":"error","name":"World_InvalidNamespace","inputs":[{"name":"namespace","type":"bytes14","internalType":"bytes14"}]},{"type":"error","name":"World_InvalidResourceId","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_InvalidResourceType","inputs":[{"name":"expected","type":"bytes2","internalType":"bytes2"},{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceAlreadyExists","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_ResourceNotFound","inputs":[{"name":"resourceId","type":"bytes32","internalType":"ResourceId"},{"name":"resourceIdString","type":"string","internalType":"string"}]},{"type":"error","name":"World_SystemAlreadyExists","inputs":[{"name":"system","type":"address","internalType":"address"}]},{"type":"error","name":"World_UnlimitedDelegationNotAllowed","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"UD__checkRequirements(uint256,uint256)":"79fdcdee","UD__createItem(uint8,uint256,bytes,string)":"f28c840e","UD__createItems(uint8[],uint256[],bytes[],string[])":"941acaab","UD__createMatch(uint8,uint256[],bytes32[])":"54763054","UD__createMob(uint8,bytes,string)":"8cc68cc7","UD__createMobs(uint8[],bytes[],string[])":"3f93a314","UD__createSkill()":"8993c4e1","UD__enterGame(uint256)":"cc0f1ab7","UD__equipItems(uint256,uint256[])":"c686667a","UD__getCharacterStats(uint256)":"e1ecef13","UD__getCharacterToken()":"49d8cf02","UD__getClass(uint256)":"5758128c","UD__getCurrentLevel(uint256)":"e83e2af9","UD__getEntropy()":"b5c691c7","UD__getExperience(uint256)":"8bc01bf0","UD__getGoldToken()":"8b994e32","UD__getItemType(uint256)":"cdaccbae","UD__getItemsContract()":"997f897a","UD__getMob(uint256)":"622834d0","UD__getMonsterStats(uint256)":"91b22373","UD__getName(uint256)":"cf36b62e","UD__getNpcStats(uint256)":"35c65325","UD__getOwner(uint256)":"ef89f17a","UD__getPythProvider()":"e24cefd9","UD__getTotalSupply(uint256)":"37007d40","UD__getWeaponStats(uint256)":"810c1dc1","UD__isEquipped(uint256,uint256)":"b80057db","UD__issueStarterItems(uint256)":"ce2d5a9a","UD__mintCharacter(address,bytes32,string)":"d408a43b","UD__move(uint256,uint32,uint32)":"93dbd385","UD__rollStats(bytes32,uint256,uint8)":"1cf705d7","UD__setStarterItems(uint8,uint256[],uint256[])":"2f97d48f","UD__setTokenUri(uint256,string)":"d6556009","UD__spawn(uint256)":"76c5f60f","UD__unequipItem(uint256,uint256)":"ca3caa8c","batchCall((bytes32,bytes)[])":"ce5e8dd9","batchCallFrom((address,bytes32,bytes)[])":"8fc8cf7e","call(bytes32,bytes)":"3ae7af08","callFrom(address,bytes32,bytes)":"894ecc58","creator()":"02d05d3f","deleteRecord(bytes32,bytes32[])":"505a181d","getDynamicField(bytes32,bytes32[],uint8)":"1e788977","getDynamicFieldLength(bytes32,bytes32[],uint8)":"dbbf0e21","getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":"4dc77d97","getField(bytes32,bytes32[],uint8)":"d03edb8c","getField(bytes32,bytes32[],uint8,bytes32)":"05242d2f","getFieldLayout(bytes32)":"3a77c2c2","getFieldLength(bytes32,bytes32[],uint8)":"a53417ed","getFieldLength(bytes32,bytes32[],uint8,bytes32)":"9f1fcf0a","getKeySchema(bytes32)":"d4285dc2","getRecord(bytes32,bytes32[])":"cc49db7e","getRecord(bytes32,bytes32[],bytes32)":"419b58fd","getStaticField(bytes32,bytes32[],uint8,bytes32)":"8c364d59","getValueSchema(bytes32)":"e228a4a3","grantAccess(bytes32,address)":"40554c3a","initialize(address)":"c4d66de8","installModule(address,bytes)":"8da798da","installRootModule(address,bytes)":"af068c9e","popFromDynamicField(bytes32,bytes32[],uint8,uint256)":"d9c03a04","pushToDynamicField(bytes32,bytes32[],uint8,bytes)":"150f3262","registerDelegation(address,bytes32,bytes)":"1d2257ba","registerFunctionSelector(bytes32,string)":"26d98102","registerNamespace(bytes32)":"b29e4089","registerNamespaceDelegation(bytes32,bytes32,bytes)":"bfdfaff7","registerRootFunctionSelector(bytes32,string,string)":"6548a90a","registerStoreHook(bytes32,address,uint8)":"530f4b60","registerSystem(bytes32,address,bool)":"3350b6a9","registerSystemHook(bytes32,address,uint8)":"d5f8337f","registerTable(bytes32,bytes32,bytes32,bytes32,string[],string[])":"0ba51f49","renounceOwnership(bytes32)":"219adc2e","revokeAccess(bytes32,address)":"8d53b208","setDynamicField(bytes32,bytes32[],uint8,bytes)":"ef6ea862","setField(bytes32,bytes32[],uint8,bytes)":"114a7266","setField(bytes32,bytes32[],uint8,bytes,bytes32)":"3708196e","setRecord(bytes32,bytes32[],bytes,bytes32,bytes)":"298314fb","setStaticField(bytes32,bytes32[],uint8,bytes,bytes32)":"390baae0","spliceDynamicData(bytes32,bytes32[],uint8,uint40,uint40,bytes)":"c0a2895a","spliceStaticData(bytes32,bytes32[],uint48,bytes)":"b047c1eb","storeVersion()":"c1122229","transferBalanceToAddress(bytes32,address,uint256)":"45afd199","transferBalanceToNamespace(bytes32,bytes32,uint256)":"c9c85a60","transferOwnership(bytes32,address)":"ef5d6bbb","unregisterDelegation(address)":"cdc938c5","unregisterNamespaceDelegation(bytes32)":"aa66e9c8","unregisterStoreHook(bytes32,address)":"05609129","unregisterSystemHook(bytes32,address)":"a92813ad","worldVersion()":"6951955d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"EncodedLengths_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FieldLayout_Empty\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"staticDataLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"computedStaticDataLength\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthDoesNotFitInAWord\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsNotZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_StaticLengthIsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyDynamicFields\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numFields\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFields\",\"type\":\"uint256\"}],\"name\":\"FieldLayout_TooManyFields\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_AlreadyInstalled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dependency\",\"type\":\"address\"}],\"name\":\"Module_MissingDependency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_NonRootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_RootInstallNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"Schema_InvalidLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Schema_StaticTypeAfterDynamicType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Slice_OutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accessedIndex\",\"type\":\"uint256\"}],\"name\":\"Store_IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidFieldNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidKeyNamesLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"Store_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"fieldLength\",\"type\":\"uint40\"}],\"name\":\"Store_InvalidSplice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidStaticDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaDynamicLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"received\",\"type\":\"uint256\"}],\"name\":\"Store_InvalidValueSchemaStaticLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tableIdString\",\"type\":\"string\"}],\"name\":\"Store_TableNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"resource\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"World_AccessDenied\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_CallbackNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"World_DelegationNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"functionSelector\",\"type\":\"bytes4\"}],\"name\":\"World_FunctionSelectorNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"World_InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"World_InterfaceNotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes14\",\"name\":\"namespace\",\"type\":\"bytes14\"}],\"name\":\"World_InvalidNamespace\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"expected\",\"type\":\"bytes2\"},{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_InvalidResourceType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"resourceIdString\",\"type\":\"string\"}],\"name\":\"World_ResourceNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"system\",\"type\":\"address\"}],\"name\":\"World_SystemAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"World_UnlimitedDelegationNotAllowed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"storeVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloStore\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"worldVersion\",\"type\":\"bytes32\"}],\"name\":\"HelloWorld\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"Store_DeleteRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"Store_SetRecord\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"indexed\":false,\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceDynamicData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Store_SpliceStaticData\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__checkRequirements\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"itemType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"stats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"itemMetadataURI\",\"type\":\"string\"}],\"name\":\"UD__createItem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum ItemType[]\",\"name\":\"itemTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256[]\",\"name\":\"supply\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"itemMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum EncounterType\",\"name\":\"encounterType\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"attackers\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"defenders\",\"type\":\"bytes32[]\"}],\"name\":\"UD__createMatch\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadataUri\",\"type\":\"string\"}],\"name\":\"UD__createMob\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum MobType[]\",\"name\":\"mobTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes[]\",\"name\":\"stats\",\"type\":\"bytes[]\"},{\"internalType\":\"string[]\",\"name\":\"mobMetadataURIs\",\"type\":\"string[]\"}],\"name\":\"UD__createMobs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__createSkill\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__enterGame\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"}],\"name\":\"UD__equipItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getCharacterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"strength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"agility\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"intelligence\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"hitPoints\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"damageTaken\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"internalType\":\"struct CharacterStatsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getCharacterToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_characterToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getClass\",\"outputs\":[{\"internalType\":\"enum Classes\",\"name\":\"_class\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"name\":\"UD__getCurrentLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"currentLevel\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getEntropy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_entropy\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getExperience\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getGoldToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_goldToken\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getItemType\",\"outputs\":[{\"internalType\":\"enum ItemType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getItemsContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_erc1155\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMob\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MobType\",\"name\":\"mobType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"mobStats\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"mobMetadata\",\"type\":\"string\"}],\"internalType\":\"struct MobsData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getMonsterStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"hp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"armor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"level\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"baseDamage\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"inventory\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"experience\",\"type\":\"uint256\"}],\"internalType\":\"struct MonsterStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_name\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"mobId\",\"type\":\"uint256\"}],\"name\":\"UD__getNpcStats\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"storyPathIds\",\"type\":\"uint256[]\"},{\"internalType\":\"enum Alignment\",\"name\":\"alignment\",\"type\":\"uint8\"}],\"internalType\":\"struct NPCStats\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__getOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UD__getPythProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"UD__getTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_supply\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__getWeaponStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"damage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"speed\",\"type\":\"uint256\"},{\"internalType\":\"uint8[]\",\"name\":\"classRestrictions\",\"type\":\"uint8[]\"},{\"internalType\":\"uint256\",\"name\":\"minLevel\",\"type\":\"uint256\"}],\"internalType\":\"struct WeaponStats\",\"name\":\"_weaponStats\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__isEquipped\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isEquipped\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__issueStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"name\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__mintCharacter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"x\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"y\",\"type\":\"uint32\"}],\"name\":\"UD__move\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"userRandomNumber\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"}],\"name\":\"UD__rollStats\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum Classes\",\"name\":\"class\",\"type\":\"uint8\"},{\"internalType\":\"uint256[]\",\"name\":\"itemIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"UD__setStarterItems\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"UD__setTokenUri\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"}],\"name\":\"UD__spawn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"characterId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"itemId\",\"type\":\"uint256\"}],\"name\":\"UD__unequipItem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct SystemCallFromData[]\",\"name\":\"systemCalls\",\"type\":\"tuple[]\"}],\"name\":\"batchCallFrom\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"returnDatas\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"call\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callFrom\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"creator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"deleteRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"}],\"name\":\"getDynamicFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"}],\"name\":\"getDynamicFieldSlice\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getField\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getFieldLayout\",\"outputs\":[{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"}],\"name\":\"getFieldLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getKeySchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"}],\"name\":\"getRecord\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"getStaticField\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"}],\"name\":\"getValueSchema\",\"outputs\":[{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"grantAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"initModule\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IModule\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"encodedArgs\",\"type\":\"bytes\"}],\"name\":\"installRootModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"byteLengthToPop\",\"type\":\"uint256\"}],\"name\":\"popFromDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"dataToPush\",\"type\":\"bytes\"}],\"name\":\"pushToDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"registerNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"delegationControlId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initCallData\",\"type\":\"bytes\"}],\"name\":\"registerNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"worldFunctionSignature\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"systemFunctionSignature\",\"type\":\"string\"}],\"name\":\"registerRootFunctionSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"worldFunctionSelector\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract System\",\"name\":\"system\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"publicAccess\",\"type\":\"bool\"}],\"name\":\"registerSystem\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"enabledHooksBitmap\",\"type\":\"uint8\"}],\"name\":\"registerSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"keySchema\",\"type\":\"bytes32\"},{\"internalType\":\"Schema\",\"name\":\"valueSchema\",\"type\":\"bytes32\"},{\"internalType\":\"string[]\",\"name\":\"keyNames\",\"type\":\"string[]\"},{\"internalType\":\"string[]\",\"name\":\"fieldNames\",\"type\":\"string[]\"}],\"name\":\"registerTable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"resourceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"grantee\",\"type\":\"address\"}],\"name\":\"revokeAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setDynamicField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"staticData\",\"type\":\"bytes\"},{\"internalType\":\"EncodedLengths\",\"name\":\"encodedLengths\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"dynamicData\",\"type\":\"bytes\"}],\"name\":\"setRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"fieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"FieldLayout\",\"name\":\"fieldLayout\",\"type\":\"bytes32\"}],\"name\":\"setStaticField\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8\",\"name\":\"dynamicFieldIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint40\",\"name\":\"startWithinField\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"deleteCount\",\"type\":\"uint40\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceDynamicData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"keyTuple\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint48\",\"name\":\"start\",\"type\":\"uint48\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"spliceStaticData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storeVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"fromNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"ResourceId\",\"name\":\"toNamespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferBalanceToNamespace\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"unregisterDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"namespaceId\",\"type\":\"bytes32\"}],\"name\":\"unregisterNamespaceDelegation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"tableId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStoreHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterStoreHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"ResourceId\",\"name\":\"systemId\",\"type\":\"bytes32\"},{\"internalType\":\"contract ISystemHook\",\"name\":\"hookAddress\",\"type\":\"address\"}],\"name\":\"unregisterSystemHook\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"worldVersion\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"details\":\"This is an autogenerated file; do not edit manually.\",\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the encoded lengths.\"}}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"computedStaticDataLength\":\"The computed static data length.\",\"staticDataLength\":\"The static data length of the field layout.\"}}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"params\":{\"index\":\"The index of the field.\"}}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"params\":{\"maxFields\":\"The maximum number of fields a Schema can handle.\",\"numFields\":\"The total number of fields in the field layout.\"}}],\"Module_MissingDependency(address)\":[{\"params\":{\"dependency\":\"The address of the dependency.\"}}],\"Schema_InvalidLength(uint256)\":[{\"params\":{\"length\":\"The length of the schema.\"}}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"details\":\"Raised if `start` is greater than `end` or `end` greater than the length of `data`.\",\"params\":{\"data\":\"The bytes array to subslice.\",\"end\":\"The end index for the subslice.\",\"start\":\"The start index for the subslice.\"}}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"details\":\"Raised if the start index is larger than the previous length of the field.\",\"params\":{\"accessedIndex\":\"FIXME\",\"length\":\"FIXME\"}}],\"Store_InvalidBounds(uint256,uint256)\":[{\"params\":{\"end\":\"The end index within the dynamic field for the slice operation (exclusive).\",\"start\":\"The start index within the dynamic field for the slice operation (inclusive).\"}}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The resource ID.\",\"resourceIdString\":\"The stringified resource ID (for easier debugging).\"}}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"details\":\"Raised if the splice total length of the field is changed but the splice is not at the end of the field.\",\"params\":{\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"fieldLength\":\"The field length for the splice operation.\",\"startWithinField\":\"The start index within the field for the splice operation.\"}}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"params\":{\"expected\":\"The expected length.\",\"received\":\"The provided length.\"}}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"Store_TableNotFound(bytes32,string)\":[{\"params\":{\"tableId\":\"The ID of the table.\",\"tableIdString\":\"The stringified ID of the table (for easier debugging if cleartext tableIds are used).\"}}],\"World_AccessDenied(string,address)\":[{\"params\":{\"caller\":\"The address of the user trying to access the resource.\",\"resource\":\"The resource's identifier.\"}}],\"World_CallbackNotAllowed(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector of the disallowed callback.\"}}],\"World_DelegationNotFound(address,address)\":[{\"params\":{\"delegatee\":\"The address of the delegatee.\",\"delegator\":\"The address of the delegator.\"}}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"params\":{\"functionSelector\":\"The function selector in question.\"}}],\"World_InsufficientBalance(uint256,uint256)\":[{\"params\":{\"amount\":\"The amount needed.\",\"balance\":\"The current balance.\"}}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"params\":{\"contractAddress\":\"The address of the contract in question.\",\"interfaceId\":\"The ID of the interface.\"}}],\"World_InvalidNamespace(bytes14)\":[{\"params\":{\"namespace\":\"The invalid namespace.\"}}],\"World_InvalidResourceId(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"params\":{\"expected\":\"The expected resource type.\",\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_ResourceNotFound(bytes32,string)\":[{\"params\":{\"resourceId\":\"The ID of the resource.\",\"resourceIdString\":\"The string representation of the resource ID.\"}}],\"World_SystemAlreadyExists(address)\":[{\"params\":{\"system\":\"The address of the system.\"}}]},\"events\":{\"HelloStore(bytes32)\":{\"params\":{\"storeVersion\":\"The protocol version of the Store.\"}},\"HelloWorld(bytes32)\":{\"params\":{\"worldVersion\":\"The protocol version of the World.\"}},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"params\":{\"keyTuple\":\"An array representing the composite key for the record.\",\"tableId\":\"The ID of the table where the record is deleted.\"}},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"params\":{\"dynamicData\":\"The dynamic data of the record.\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"staticData\":\"The static data of the record.\",\"tableId\":\"The ID of the table where the record is set.\"}},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"params\":{\"data\":\"The data to insert into the dynamic data of the record at the start byte.\",\"deleteCount\":\"The number of bytes to delete in the splice operation.\",\"dynamicFieldIndex\":\"The index of the dynamic field to splice data, relative to the start of the dynamic fields. (Dynamic field index = field index - number of static fields)\",\"encodedLengths\":\"The encoded lengths of the dynamic data of the record.\",\"keyTuple\":\"An array representing the composite key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"details\":\"In static data, data is always overwritten starting at the start position, so the total length of the data remains the same and no data is shifted.\",\"params\":{\"data\":\"The data to write to the static data of the record at the start byte.\",\"keyTuple\":\"An array representing the key for the record.\",\"start\":\"The start position in bytes for the splice operation.\",\"tableId\":\"The ID of the table where the data is spliced.\"}}},\"kind\":\"dev\",\"methods\":{\"call(bytes32,bytes)\":{\"details\":\"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"callFrom(address,bytes32,bytes)\":{\"details\":\"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).\",\"params\":{\"callData\":\"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.\",\"delegator\":\"The address on whose behalf the call is made.\",\"systemId\":\"The ID of the system to be called.\"},\"returns\":{\"_0\":\"The abi encoded return data from the called system.\"}},\"creator()\":{\"returns\":{\"_0\":\"The address of the World's creator.\"}},\"initialize(address)\":{\"details\":\"Can only be called once by the creator.\",\"params\":{\"initModule\":\"The InitModule to be installed during initialization.\"}},\"installRootModule(address,bytes)\":{\"details\":\"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.\",\"params\":{\"encodedArgs\":\"The ABI encoded arguments for the module installation.\",\"module\":\"The module to be installed.\"}},\"storeVersion()\":{\"returns\":{\"version\":\"The protocol version of the Store contract.\"}},\"worldVersion()\":{\"returns\":{\"_0\":\"The protocol version of the World.\"}}},\"title\":\"IWorld\",\"version\":1},\"userdoc\":{\"errors\":{\"EncodedLengths_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided encoded lengths has an invalid length.\"}],\"FieldLayout_Empty()\":[{\"notice\":\"Error raised when the provided field layout is empty.\"}],\"FieldLayout_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has an invalid static data length.\"}],\"FieldLayout_StaticLengthDoesNotFitInAWord(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length that does not fit in a word (32 bytes).\"}],\"FieldLayout_StaticLengthIsNotZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a nonzero static data length.\"}],\"FieldLayout_StaticLengthIsZero(uint256)\":[{\"notice\":\"Error raised when the provided field layout has a static data length of zero.\"}],\"FieldLayout_TooManyDynamicFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many dynamic fields.\"}],\"FieldLayout_TooManyFields(uint256,uint256)\":[{\"notice\":\"Error raised when the provided field layout has too many fields.\"}],\"Module_AlreadyInstalled()\":[{\"notice\":\"Error raised if the provided module is already installed.\"}],\"Module_MissingDependency(address)\":[{\"notice\":\"Error raised if the provided module is missing a dependency.\"}],\"Module_NonRootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in non-root is not supported.\"}],\"Module_RootInstallNotSupported()\":[{\"notice\":\"Error raised if installing in root is not supported.\"}],\"Schema_InvalidLength(uint256)\":[{\"notice\":\"Error raised when the provided schema has an invalid length.\"}],\"Schema_StaticTypeAfterDynamicType()\":[{\"notice\":\"Error raised when a static type is placed after a dynamic type in a schema.\"}],\"Slice_OutOfBounds(bytes,uint256,uint256)\":[{\"notice\":\"Error raised when the provided slice is out of bounds.\"}],\"Store_IndexOutOfBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided index is out of bounds.\"}],\"Store_InvalidBounds(uint256,uint256)\":[{\"notice\":\"Error raised if the provided slice bounds are invalid.\"}],\"Store_InvalidFieldNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided field names length is invalid.\"}],\"Store_InvalidKeyNamesLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided key names length is invalid.\"}],\"Store_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Error raised if the provided resource ID cannot be found.\"}],\"Store_InvalidSplice(uint40,uint40,uint40)\":[{\"notice\":\"Error raised if the provided splice is invalid.\"}],\"Store_InvalidStaticDataLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided static data length is invalid.\"}],\"Store_InvalidValueSchemaDynamicLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema dynamic length is invalid.\"}],\"Store_InvalidValueSchemaLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided value schema length is invalid.\"}],\"Store_InvalidValueSchemaStaticLength(uint256,uint256)\":[{\"notice\":\"Error raised if the provided schema static length is invalid.\"}],\"Store_TableAlreadyExists(bytes32,string)\":[{\"notice\":\"Error raised if the provided table already exists.\"}],\"Store_TableNotFound(bytes32,string)\":[{\"notice\":\"Error raised if the provided table cannot be found.\"}],\"World_AccessDenied(string,address)\":[{\"notice\":\"Raised when a user tries to access a resource they don't have permission for.\"}],\"World_AlreadyInitialized()\":[{\"notice\":\"Raised when trying to initialize an already initialized World.\"}],\"World_CallbackNotAllowed(bytes4)\":[{\"notice\":\"Raised when the World is calling itself via an external call.\"}],\"World_DelegationNotFound(address,address)\":[{\"notice\":\"Raised when the specified delegation is not found.\"}],\"World_FunctionSelectorAlreadyExists(bytes4)\":[{\"notice\":\"Raised when trying to register a function selector that already exists.\"}],\"World_FunctionSelectorNotFound(bytes4)\":[{\"notice\":\"Raised when the specified function selector is not found.\"}],\"World_InsufficientBalance(uint256,uint256)\":[{\"notice\":\"Raised when there's an insufficient balance for a particular operation.\"}],\"World_InterfaceNotSupported(address,bytes4)\":[{\"notice\":\"Raised when the specified interface is not supported by the contract.\"}],\"World_InvalidNamespace(bytes14)\":[{\"notice\":\"Raised when an namespace contains an invalid sequence of characters (\\\"__\\\").\"}],\"World_InvalidResourceId(bytes32,string)\":[{\"notice\":\"Raised when an invalid resource ID is provided.\"}],\"World_InvalidResourceType(bytes2,bytes32,string)\":[{\"notice\":\"Raised when an invalid resource type is provided.\"}],\"World_ResourceAlreadyExists(bytes32,string)\":[{\"notice\":\"Raised when trying to register a resource that already exists.\"}],\"World_ResourceNotFound(bytes32,string)\":[{\"notice\":\"Raised when the specified resource is not found.\"}],\"World_SystemAlreadyExists(address)\":[{\"notice\":\"Raised when trying to register a system that already exists.\"}],\"World_UnlimitedDelegationNotAllowed()\":[{\"notice\":\"Raised when trying to create an unlimited delegation in a context where it is not allowed, e.g. when registering a namespace fallback delegation.\"}]},\"events\":{\"HelloStore(bytes32)\":{\"notice\":\"Emitted when the Store is created.\"},\"HelloWorld(bytes32)\":{\"notice\":\"Emitted when the World is created.\"},\"Store_DeleteRecord(bytes32,bytes32[])\":{\"notice\":\"Emitted when a record is deleted from the store.\"},\"Store_SetRecord(bytes32,bytes32[],bytes,bytes32,bytes)\":{\"notice\":\"Emitted when a new record is set in the store.\"},\"Store_SpliceDynamicData(bytes32,bytes32[],uint8,uint48,uint40,bytes32,bytes)\":{\"notice\":\"Emitted when dynamic data in the store is spliced.\"},\"Store_SpliceStaticData(bytes32,bytes32[],uint48,bytes)\":{\"notice\":\"Emitted when static data in the store is spliced.\"}},\"kind\":\"user\",\"methods\":{\"call(bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID.\"},\"callFrom(address,bytes32,bytes)\":{\"notice\":\"Call the system at the given system ID on behalf of the given delegator.\"},\"creator()\":{\"notice\":\"Retrieve the immutable original deployer of the World.\"},\"getDynamicField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)\"},\"getDynamicFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single dynamic field from the given tableId and key tuple\"},\"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)\":{\"notice\":\"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow.\"},\"getField(bytes32,bytes32[],uint8)\":{\"notice\":\"Get a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single field from the given tableId and key tuple, with the given field layout\"},\"getFieldLength(bytes32,bytes32[],uint8)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage\"},\"getFieldLength(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout\"},\"getRecord(bytes32,bytes32[])\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage\"},\"getRecord(bytes32,bytes32[],bytes32)\":{\"notice\":\"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout\"},\"getStaticField(bytes32,bytes32[],uint8,bytes32)\":{\"notice\":\"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed.\"},\"initialize(address)\":{\"notice\":\"Initializes the World.\"},\"installRootModule(address,bytes)\":{\"notice\":\"Install the given root module in the World.\"},\"storeVersion()\":{\"notice\":\"Returns the protocol version of the Store contract.\"},\"worldVersion()\":{\"notice\":\"Retrieve the protocol version of the World.\"}},\"notice\":\"This interface integrates all systems and associated function selectors that are dynamically registered in the World during deployment.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/codegen/world/IWorld.sol\":\"IWorld\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@codegen/=src/codegen/\",\":@erc1155/=lib/ERC1155-puppet/\",\":@interfaces/=src/interfaces/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\",\":@openzeppelin/=node_modules/@openzeppelin/contracts/\",\":@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/\",\":@systems/=src/systems/\",\":@tables/=src/codegen/tables/\",\":@test/=test/\",\":@world/=src/codegen/world/\",\":ERC1155-puppet/=lib/ERC1155-puppet/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IModule.sol\":{\"keccak256\":\"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2\",\"dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1\"]},\"node_modules/@latticexyz/world/src/IModuleErrors.sol\":{\"keccak256\":\"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea\",\"dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ\"]},\"node_modules/@latticexyz/world/src/ISystemHook.sol\":{\"keccak256\":\"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f\",\"dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/IWorldErrors.sol\":{\"keccak256\":\"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf\",\"dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B\"]},\"node_modules/@latticexyz/world/src/IWorldEvents.sol\":{\"keccak256\":\"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57\",\"dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy\"]},\"node_modules/@latticexyz/world/src/IWorldKernel.sol\":{\"keccak256\":\"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092\",\"dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC\"]},\"node_modules/@latticexyz/world/src/System.sol\":{\"keccak256\":\"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f\",\"dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol\":{\"keccak256\":\"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48\",\"dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol\":{\"keccak256\":\"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83\",\"dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol\":{\"keccak256\":\"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81\",\"dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol\":{\"keccak256\":\"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2\",\"dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol\":{\"keccak256\":\"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b\",\"dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol\":{\"keccak256\":\"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c\",\"dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL\"]},\"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol\":{\"keccak256\":\"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27\",\"dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/modules/init/types.sol\":{\"keccak256\":\"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525\",\"dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/codegen/common.sol\":{\"keccak256\":\"0x4c2ba8a0a49d1b05659c3ede28e5c038375449d2e1b7406efc24cbbccd7a219a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ce39aeab3df49bef03cb5a6f1089719750a38eb0cb207a04c4f64097ae53018\",\"dweb:/ipfs/QmZASMaZu5zZRMcKs5rg1TXoniuaeeseeU4E4cExm8xEgb\"]},\"src/codegen/index.sol\":{\"keccak256\":\"0xf2a99956e725d137a95cb987b7dd4e1b38a9250e7b5ee62aa8fe5d7890d05525\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ca5ef8c6b910dcaa9c378850c4fc08e4ac77f5cbb60f08042708005d0236246\",\"dweb:/ipfs/QmSW43brvMvLZtyDDDqpQr2uzPdAdKvEHDNqy88sNMbZmT\"]},\"src/codegen/tables/Admin.sol\":{\"keccak256\":\"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614\",\"dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ\"]},\"src/codegen/tables/CharacterEquipment.sol\":{\"keccak256\":\"0x1f206f05e1f359a4734d85132f95fe3230161352e27bc5c6a27d3c0b35ddd4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59144a593b681fb3143185b226d333e979805cc1e58c31c9c8bb276ae3b114a6\",\"dweb:/ipfs/QmUfoXGmWwDTK25vuUWan9U5r6SP72u2RFpFK1pawDJ3Yt\"]},\"src/codegen/tables/CharacterStats.sol\":{\"keccak256\":\"0x0e912302c0e02af68fb8ecc9cd9a3574fa4c60e4272072d5fbfdaa9e30615627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35478c40410a7ce1fb3e0ba81c6cfd36fa59b0d2edcf71e39a6229f819079fd4\",\"dweb:/ipfs/QmdsJbJ2ZHZYHe7jYvDNoUvWGBMSzu76PFJXFoD2VRWq4b\"]},\"src/codegen/tables/Characters.sol\":{\"keccak256\":\"0xdc9c589cae6aa924e1492c4a10c26e7ec3c803dd670a61d3620b87dea19de2c7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c5d5915e34cec622b908230b5b485bf52236ede9027fbf7643c01d358d39e6\",\"dweb:/ipfs/Qmah6n47amtAYhtbLM3WdtCi7yHpTbaXm6FUsyu8pFdMYf\"]},\"src/codegen/tables/CombatEncounter.sol\":{\"keccak256\":\"0xff0a6e9e6e34d739d3260d2e0ef2db0190dfb6eed6acf9b5e631228a35c37c42\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2bc2c8f088539657ffc555483e094d771ca60e12eb211af1fd5fc5d58d4fac74\",\"dweb:/ipfs/Qmd7PuyowVmPhRWoFQQMRaTihnn9iFQsaKQQRjTaW99eYP\"]},\"src/codegen/tables/Counters.sol\":{\"keccak256\":\"0x7d947002a120f45313a6a6adfc4d2079fb0b68eace00581c8a3485973565c3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b66f9f7e26e93029eab174b37fa575e4ce8aaab5261d6f0a4e24b14de1229bdf\",\"dweb:/ipfs/QmYnpaXwp1fPRHYWBBixJUrFpqcxsQghhgbauknqEE6bpS\"]},\"src/codegen/tables/Items.sol\":{\"keccak256\":\"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da\",\"dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV\"]},\"src/codegen/tables/Levels.sol\":{\"keccak256\":\"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4\",\"dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp\"]},\"src/codegen/tables/MapConfig.sol\":{\"keccak256\":\"0xd172cd15d5c85a660110c0cfdab2562e64c26d5d215c3a56478be7bb639f4ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://628bb2ad2860cae232cf49744e940d9829727fad8bcab745deab707eece4efa5\",\"dweb:/ipfs/QmZ3x6znC3Km4hGxgxARCKdnKRa9AatiFgGVdEZzBP5iw8\"]},\"src/codegen/tables/MobEntity.sol\":{\"keccak256\":\"0x76d773fe3fb2332766bf7fdecc6bd31442fd32fdd18a8ac7781efee20511ffe5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87200a6ec462b9a847f33e18b730739b3fe78120c93fe3d896ba31130b85a5c0\",\"dweb:/ipfs/QmWsFsoAQBxZEn3RDkZBgEHsmWPANqz8cPvquK6qduhFfh\"]},\"src/codegen/tables/MobStats.sol\":{\"keccak256\":\"0x18959e45a14e6ef240b46da0b370f1ca1fbd399f3cdfd229d39932f44644ec57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da3d1b0c4da5d4df93cbaafcd084768961391f838b7251d815c4b3ea2bccdd09\",\"dweb:/ipfs/QmXGD6eRifAord2Ubck5Fgp4zP8NMVGNECTPsYurwaWX1K\"]},\"src/codegen/tables/Mobs.sol\":{\"keccak256\":\"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060\",\"dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9\"]},\"src/codegen/tables/Name.sol\":{\"keccak256\":\"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4\",\"dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81\"]},\"src/codegen/tables/NameExists.sol\":{\"keccak256\":\"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf\",\"dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC\"]},\"src/codegen/tables/Position.sol\":{\"keccak256\":\"0xb76e5c75e445427aed7dd080b473d83c8cdae669cad005231da7be69e0100c6d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34bf576714068f92596b61043352fa6fd6f4c463c43150bf9d0ec0436e35412a\",\"dweb:/ipfs/QmbR8rTTnRSA5hBbaEfpvkms7PPhns5FJzXboVHKDKkS66\"]},\"src/codegen/tables/RandomNumbers.sol\":{\"keccak256\":\"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5\",\"dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA\"]},\"src/codegen/tables/Spawned.sol\":{\"keccak256\":\"0x78f5cad0e139c3698f9d2fce1657ffca64786ca2750076bdd2ea4fbceb15589f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71ed806c48834caf05c7457fc03f8ad6365e4c2268d2fb9380a3d7f23cc9b8a2\",\"dweb:/ipfs/QmXLnBTDgXeXVw5fBFhEW54AaYc8tDWVvkYhcmLAUQt7F7\"]},\"src/codegen/tables/StarterItems.sol\":{\"keccak256\":\"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3\",\"dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso\"]},\"src/codegen/tables/UltimateDominionConfig.sol\":{\"keccak256\":\"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256\",\"dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w\"]},\"src/codegen/world/ICharacterSystem.sol\":{\"keccak256\":\"0xb0d27dd67d9ea10ef835a91c9f1f264107dc2a4cdbeb5531049a5006704cc991\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89727edf1e326df28d8c42d231d46df10a285ea2fdf7b73fe19f21c0901c22b\",\"dweb:/ipfs/QmeRQ4nkXiuh1DSWuGCrC5inRejZKhDZLwtNZn8ai1bV88\"]},\"src/codegen/world/ICombatSystem.sol\":{\"keccak256\":\"0x70caf9c80ea6c72b8f5bb5262f5fc4e8733ebc249c24b7dfb5c881f7b85dab9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3d1ef91292b619f37f8ad93ab9d3cb8e45b91674ab1edee5a7fc1c5d071a0c3\",\"dweb:/ipfs/QmNP2royisUVREpoqfYK1a2hhYodd6iS39yhYpvAPJnG4H\"]},\"src/codegen/world/IItemsSystem.sol\":{\"keccak256\":\"0x1795d0914aa67a81ffcf51328b6eeb9a5359692cd58122047354cf2b9be9c44e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75ddc8d7780fd47d6981aa6324e545814f37ff3fb2be2b27e1e5aed97b15f225\",\"dweb:/ipfs/Qmcv98XaSvzK9fijokfySYEMDtyxu8RKp1mT9S2fDvJYoA\"]},\"src/codegen/world/IMapSystem.sol\":{\"keccak256\":\"0x7da1718c8d9b4f1b926018108c149eb9ad5869aa90b6b0f18555b6eb744c5816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1755b2fae83b5b300860fe7971cc1b05fcbfcd457375973404ea390a742401cf\",\"dweb:/ipfs/QmeUmH5251rGSAow3KHvPiwkK5qwi5quQe9NZfDrtVi2Kn\"]},\"src/codegen/world/IMobSystem.sol\":{\"keccak256\":\"0x9ec61276ea8d11ee9b1babc9e3fd052de53d2b70ba8046f716cad9345cada6ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f7187f27c11d1d0caa1e3bdf3760be52401f3252adf096f6004379e926c1134\",\"dweb:/ipfs/QmbVHG5x57VpFRzaCDvc186V4kX3jJRuwHB26JLYh6a8s4\"]},\"src/codegen/world/IUltimateDominionConfigSystem.sol\":{\"keccak256\":\"0xba90101aabcf40e70392a7cb70705414abd0ae15cc3611ff896a4fac2f7a42d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://befe8dc2fb28a22feb31c6ac8f8d6796985db0fe49a411b60d860d34b45813c6\",\"dweb:/ipfs/QmaGKJ9ipwXJKt7uVqEGwGdqo45AkAuQHQdpSgqo1vCTbf\"]},\"src/codegen/world/IWorld.sol\":{\"keccak256\":\"0x10bd7030021b23f7ee711f1283793dd449901fc7b3a07bc588a9e19a32165544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6e2a41cb62ef1a7d0cf5b0216c50b38b2b29efc62b9ebd6784f7bded7d24939\",\"dweb:/ipfs/QmVtZjgsSLx1TkDJsQ6SXVto4nYyaKe5sxDbGHpxfENP3c\"]},\"src/interfaces/Structs.sol\":{\"keccak256\":\"0x7472fa5be64b4a6e032d4f1b8ed11d8f91fbad483c8ab4c71dee909233fade6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff2517c3d7bacf21162560ffbfaef377f2e98ee16e676fa3cfd22b384b09d9b8\",\"dweb:/ipfs/QmQCw3aMxqDwtitsAPGzP2FmjgjdSCX75WemQog4ieseas\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"EncodedLengths_InvalidLength"},{"inputs":[],"type":"error","name":"FieldLayout_Empty"},{"inputs":[{"internalType":"uint256","name":"staticDataLength","type":"uint256"},{"internalType":"uint256","name":"computedStaticDataLength","type":"uint256"}],"type":"error","name":"FieldLayout_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthDoesNotFitInAWord"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsNotZero"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"FieldLayout_StaticLengthIsZero"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyDynamicFields"},{"inputs":[{"internalType":"uint256","name":"numFields","type":"uint256"},{"internalType":"uint256","name":"maxFields","type":"uint256"}],"type":"error","name":"FieldLayout_TooManyFields"},{"inputs":[],"type":"error","name":"Module_AlreadyInstalled"},{"inputs":[{"internalType":"address","name":"dependency","type":"address"}],"type":"error","name":"Module_MissingDependency"},{"inputs":[],"type":"error","name":"Module_NonRootInstallNotSupported"},{"inputs":[],"type":"error","name":"Module_RootInstallNotSupported"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"Schema_InvalidLength"},{"inputs":[],"type":"error","name":"Schema_StaticTypeAfterDynamicType"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Slice_OutOfBounds"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"},{"internalType":"uint256","name":"accessedIndex","type":"uint256"}],"type":"error","name":"Store_IndexOutOfBounds"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"type":"error","name":"Store_InvalidBounds"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidFieldNamesLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidKeyNamesLength"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"Store_InvalidResourceType"},{"inputs":[{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"uint40","name":"fieldLength","type":"uint40"}],"type":"error","name":"Store_InvalidSplice"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidStaticDataLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaDynamicLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaLength"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"received","type":"uint256"}],"type":"error","name":"Store_InvalidValueSchemaStaticLength"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"string","name":"tableIdString","type":"string"}],"type":"error","name":"Store_TableNotFound"},{"inputs":[{"internalType":"string","name":"resource","type":"string"},{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"World_AccessDenied"},{"inputs":[],"type":"error","name":"World_AlreadyInitialized"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_CallbackNotAllowed"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"type":"error","name":"World_DelegationNotFound"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorAlreadyExists"},{"inputs":[{"internalType":"bytes4","name":"functionSelector","type":"bytes4"}],"type":"error","name":"World_FunctionSelectorNotFound"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"type":"error","name":"World_InsufficientBalance"},{"inputs":[{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"type":"error","name":"World_InterfaceNotSupported"},{"inputs":[{"internalType":"bytes14","name":"namespace","type":"bytes14"}],"type":"error","name":"World_InvalidNamespace"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceId"},{"inputs":[{"internalType":"bytes2","name":"expected","type":"bytes2"},{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_InvalidResourceType"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceAlreadyExists"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"string","name":"resourceIdString","type":"string"}],"type":"error","name":"World_ResourceNotFound"},{"inputs":[{"internalType":"address","name":"system","type":"address"}],"type":"error","name":"World_SystemAlreadyExists"},{"inputs":[],"type":"error","name":"World_UnlimitedDelegationNotAllowed"},{"inputs":[{"internalType":"bytes32","name":"storeVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloStore","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"worldVersion","type":"bytes32","indexed":true}],"type":"event","name":"HelloWorld","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false}],"type":"event","name":"Store_DeleteRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"bytes","name":"staticData","type":"bytes","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"dynamicData","type":"bytes","indexed":false}],"type":"event","name":"Store_SetRecord","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"uint40","name":"deleteCount","type":"uint40","indexed":false},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceDynamicData","anonymous":false},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32","indexed":true},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]","indexed":false},{"internalType":"uint48","name":"start","type":"uint48","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Store_SpliceStaticData","anonymous":false},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__checkRequirements","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"enum ItemType","name":"itemType","type":"uint8"},{"internalType":"uint256","name":"supply","type":"uint256"},{"internalType":"bytes","name":"stats","type":"bytes"},{"internalType":"string","name":"itemMetadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum ItemType[]","name":"itemTypes","type":"uint8[]"},{"internalType":"uint256[]","name":"supply","type":"uint256[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"itemMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createItems"},{"inputs":[{"internalType":"enum EncounterType","name":"encounterType","type":"uint8"},{"internalType":"uint256[]","name":"attackers","type":"uint256[]"},{"internalType":"bytes32[]","name":"defenders","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMatch","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadataUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMob","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"enum MobType[]","name":"mobTypes","type":"uint8[]"},{"internalType":"bytes[]","name":"stats","type":"bytes[]"},{"internalType":"string[]","name":"mobMetadataURIs","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__createMobs"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"UD__createSkill","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__enterGame"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__equipItems"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCharacterStats","outputs":[{"internalType":"struct CharacterStatsData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"strength","type":"uint256"},{"internalType":"uint256","name":"agility","type":"uint256"},{"internalType":"uint256","name":"intelligence","type":"uint256"},{"internalType":"uint256","name":"hitPoints","type":"uint256"},{"internalType":"int256","name":"damageTaken","type":"int256"},{"internalType":"uint256","name":"experience","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getCharacterToken","outputs":[{"internalType":"address","name":"_characterToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getClass","outputs":[{"internalType":"enum Classes","name":"_class","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"experience","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getCurrentLevel","outputs":[{"internalType":"uint256","name":"currentLevel","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getEntropy","outputs":[{"internalType":"address","name":"_entropy","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getExperience","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getGoldToken","outputs":[{"internalType":"address","name":"_goldToken","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getItemType","outputs":[{"internalType":"enum ItemType","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getItemsContract","outputs":[{"internalType":"address","name":"_erc1155","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMob","outputs":[{"internalType":"struct MobsData","name":"","type":"tuple","components":[{"internalType":"enum MobType","name":"mobType","type":"uint8"},{"internalType":"bytes","name":"mobStats","type":"bytes"},{"internalType":"string","name":"mobMetadata","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getMonsterStats","outputs":[{"internalType":"struct MonsterStats","name":"","type":"tuple","components":[{"internalType":"uint256","name":"hp","type":"uint256"},{"internalType":"uint256","name":"armor","type":"uint256"},{"internalType":"uint256","name":"level","type":"uint256"},{"internalType":"uint256","name":"baseDamage","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"inventory","type":"uint256[]"},{"internalType":"uint256","name":"experience","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getName","outputs":[{"internalType":"bytes32","name":"_name","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"mobId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getNpcStats","outputs":[{"internalType":"struct NPCStats","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256[]","name":"storyPathIds","type":"uint256[]"},{"internalType":"enum Alignment","name":"alignment","type":"uint8"}]}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UD__getPythProvider","outputs":[{"internalType":"address","name":"_provider","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getTotalSupply","outputs":[{"internalType":"uint256","name":"_supply","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__getWeaponStats","outputs":[{"internalType":"struct WeaponStats","name":"_weaponStats","type":"tuple","components":[{"internalType":"uint256","name":"damage","type":"uint256"},{"internalType":"uint256","name":"speed","type":"uint256"},{"internalType":"uint8[]","name":"classRestrictions","type":"uint8[]"},{"internalType":"uint256","name":"minLevel","type":"uint256"}]}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"view","type":"function","name":"UD__isEquipped","outputs":[{"internalType":"bool","name":"_isEquipped","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__issueStarterItems"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__mintCharacter","outputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint32","name":"x","type":"uint32"},{"internalType":"uint32","name":"y","type":"uint32"}],"stateMutability":"nonpayable","type":"function","name":"UD__move"},{"inputs":[{"internalType":"bytes32","name":"userRandomNumber","type":"bytes32"},{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"enum Classes","name":"class","type":"uint8"}],"stateMutability":"payable","type":"function","name":"UD__rollStats"},{"inputs":[{"internalType":"enum Classes","name":"class","type":"uint8"},{"internalType":"uint256[]","name":"itemIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"UD__setStarterItems"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"tokenUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"UD__setTokenUri"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__spawn"},{"inputs":[{"internalType":"uint256","name":"characterId","type":"uint256"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"UD__unequipItem","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"struct SystemCallData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCall","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"struct SystemCallFromData[]","name":"systemCalls","type":"tuple[]","components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"batchCallFrom","outputs":[{"internalType":"bytes[]","name":"returnDatas","type":"bytes[]"}]},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"call","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"bytes","name":"callData","type":"bytes"}],"stateMutability":"payable","type":"function","name":"callFrom","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"creator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function","name":"deleteRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicField","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getDynamicFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"stateMutability":"view","type":"function","name":"getDynamicFieldSlice","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getField","outputs":[{"internalType":"bytes","name":"data","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLayout","outputs":[{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"}],"stateMutability":"view","type":"function","name":"getFieldLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getKeySchema","outputs":[{"internalType":"Schema","name":"keySchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"getRecord","outputs":[{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStaticField","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getValueSchema","outputs":[{"internalType":"Schema","name":"valueSchema","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantAccess"},{"inputs":[{"internalType":"contract IModule","name":"initModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installModule"},{"inputs":[{"internalType":"contract IModule","name":"module","type":"address"},{"internalType":"bytes","name":"encodedArgs","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"installRootModule"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint256","name":"byteLengthToPop","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"popFromDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"dataToPush","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"pushToDynamicField"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"delegationControlId","type":"bytes32"},{"internalType":"bytes","name":"initCallData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"string","name":"worldFunctionSignature","type":"string"},{"internalType":"string","name":"systemFunctionSignature","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"registerRootFunctionSelector","outputs":[{"internalType":"bytes4","name":"worldFunctionSelector","type":"bytes4"}]},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract System","name":"system","type":"address"},{"internalType":"bool","name":"publicAccess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"registerSystem"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"},{"internalType":"uint8","name":"enabledHooksBitmap","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerSystemHook"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"},{"internalType":"Schema","name":"keySchema","type":"bytes32"},{"internalType":"Schema","name":"valueSchema","type":"bytes32"},{"internalType":"string[]","name":"keyNames","type":"string[]"},{"internalType":"string[]","name":"fieldNames","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"registerTable"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"ResourceId","name":"resourceId","type":"bytes32"},{"internalType":"address","name":"grantee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeAccess"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setDynamicField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"bytes","name":"staticData","type":"bytes"},{"internalType":"EncodedLengths","name":"encodedLengths","type":"bytes32"},{"internalType":"bytes","name":"dynamicData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setRecord"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"fieldIndex","type":"uint8"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"FieldLayout","name":"fieldLayout","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"setStaticField"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint8","name":"dynamicFieldIndex","type":"uint8"},{"internalType":"uint40","name":"startWithinField","type":"uint40"},{"internalType":"uint40","name":"deleteCount","type":"uint40"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceDynamicData"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"bytes32[]","name":"keyTuple","type":"bytes32[]"},{"internalType":"uint48","name":"start","type":"uint48"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"spliceStaticData"},{"inputs":[],"stateMutability":"view","type":"function","name":"storeVersion","outputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}]},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"address","name":"toAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToAddress"},{"inputs":[{"internalType":"ResourceId","name":"fromNamespaceId","type":"bytes32"},{"internalType":"ResourceId","name":"toNamespaceId","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferBalanceToNamespace"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterDelegation"},{"inputs":[{"internalType":"ResourceId","name":"namespaceId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unregisterNamespaceDelegation"},{"inputs":[{"internalType":"ResourceId","name":"tableId","type":"bytes32"},{"internalType":"contract IStoreHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterStoreHook"},{"inputs":[{"internalType":"ResourceId","name":"systemId","type":"bytes32"},{"internalType":"contract ISystemHook","name":"hookAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterSystemHook"},{"inputs":[],"stateMutability":"view","type":"function","name":"worldVersion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"call(bytes32,bytes)":{"details":"If the system is not public, the caller must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"callFrom(address,bytes32,bytes)":{"details":"If the system is not public, the delegator must have access to the namespace or name (encoded in the system ID).","params":{"callData":"The data to pass with the call, function selector (4 bytes) followed by the ABI encoded parameters.","delegator":"The address on whose behalf the call is made.","systemId":"The ID of the system to be called."},"returns":{"_0":"The abi encoded return data from the called system."}},"creator()":{"returns":{"_0":"The address of the World's creator."}},"initialize(address)":{"details":"Can only be called once by the creator.","params":{"initModule":"The InitModule to be installed during initialization."}},"installRootModule(address,bytes)":{"details":"Requires the caller to own the root namespace. The module is delegatecalled and installed in the root namespace.","params":{"encodedArgs":"The ABI encoded arguments for the module installation.","module":"The module to be installed."}},"storeVersion()":{"returns":{"version":"The protocol version of the Store contract."}},"worldVersion()":{"returns":{"_0":"The protocol version of the World."}}},"version":1},"userdoc":{"kind":"user","methods":{"call(bytes32,bytes)":{"notice":"Call the system at the given system ID."},"callFrom(address,bytes32,bytes)":{"notice":"Call the system at the given system ID on behalf of the given delegator."},"creator()":{"notice":"Retrieve the immutable original deployer of the World."},"getDynamicField(bytes32,bytes32[],uint8)":{"notice":"Get a single dynamic field from the given tableId and key tuple at the given dynamic field index. (Dynamic field index = field index - number of static fields)"},"getDynamicFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single dynamic field from the given tableId and key tuple"},"getDynamicFieldSlice(bytes32,bytes32[],uint8,uint256,uint256)":{"notice":"Get a byte slice (including start, excluding end) of a single dynamic field from the given tableId and key tuple, with the given value field layout. The slice is unchecked and will return invalid data if `start`:`end` overflow."},"getField(bytes32,bytes32[],uint8)":{"notice":"Get a single field from the given tableId and key tuple, loading the field layout from storage"},"getField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single field from the given tableId and key tuple, with the given field layout"},"getFieldLength(bytes32,bytes32[],uint8)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, loading the field layout from storage"},"getFieldLength(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get the byte length of a single field from the given tableId and key tuple, with the given value field layout"},"getRecord(bytes32,bytes32[])":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, loading the field layout from storage"},"getRecord(bytes32,bytes32[],bytes32)":{"notice":"Get full record (all fields, static and dynamic data) for the given tableId and key tuple, with the given field layout"},"getStaticField(bytes32,bytes32[],uint8,bytes32)":{"notice":"Get a single static field from the given tableId and key tuple, with the given value field layout. Note: the field value is left-aligned in the returned bytes32, the rest of the word is not zeroed out. Consumers are expected to truncate the returned value as needed."},"initialize(address)":{"notice":"Initializes the World."},"installRootModule(address,bytes)":{"notice":"Install the given root module in the World."},"storeVersion()":{"notice":"Returns the protocol version of the Store contract."},"worldVersion()":{"notice":"Retrieve the protocol version of the World."}},"version":1}},"settings":{"remappings":["@codegen/=src/codegen/","@erc1155/=lib/ERC1155-puppet/","@interfaces/=src/interfaces/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/","@openzeppelin/=node_modules/@openzeppelin/contracts/","@pythnetwork/=node_modules/@pythnetwork/entropy-sdk-solidity/","@systems/=src/systems/","@tables/=src/codegen/tables/","@test/=test/","@world/=src/codegen/world/","ERC1155-puppet/=lib/ERC1155-puppet/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/codegen/world/IWorld.sol":"IWorld"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModule.sol":{"keccak256":"0xbb926cf64e685bbf2770d60124664cc84ab70bd3038e17a074f2d472c3fc2c57","urls":["bzz-raw://143c3dcbdf1702dd4f9c869629609386c12f7c0247e88a6d062dc4d519ebe0d2","dweb:/ipfs/QmQJSDd8uFL4sssw9fb9NHo4s6zjuDUgmrLHj3zsJuhMo1"],"license":"MIT"},"node_modules/@latticexyz/world/src/IModuleErrors.sol":{"keccak256":"0x60917e029779c81cfea1f5140c389269e51d7adb78987f39101b9e0d7bdad12d","urls":["bzz-raw://513f41920d67ca28c3e0fe247403c28a4d342785192df449c99d5f92db04fcea","dweb:/ipfs/QmeAG2TtxAgcJQR4QxftuSvQrxisYQ1i1GZoyd7oeFQBDJ"],"license":"MIT"},"node_modules/@latticexyz/world/src/ISystemHook.sol":{"keccak256":"0x81f1743d7ca6a9c7efc4997cf95e603ccb2070885265ca0e540f461aa7430721","urls":["bzz-raw://93d99e78b541b33ecd501bf0cd407a78cef490fec8eaef2f188bddb9e293a99f","dweb:/ipfs/QmPrcMDxwhvBZTr2AxoGqJA9L3Mjx27KBc98h3gXSsa3PM"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldErrors.sol":{"keccak256":"0x0abae6f4ed1b3070bddd0ed194c08b83a948b61ae959396202cf627bf1056a2b","urls":["bzz-raw://a7037954f281cc0188a5aafc1d0cca0aabc110fd0234e6c43dca35ad69ed3baf","dweb:/ipfs/Qmbv2nfK1qPpnoAbqNJFqWwo7AuyaX2ZEgZMFspMv7DR5B"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldEvents.sol":{"keccak256":"0x39f6d8930db431c04158b85cc2a612c48d43dc81ec998f267076b12293c5d243","urls":["bzz-raw://d68f1543e5e166d639372d1aec57e3e193b5bb3b37270b6cb0488fab2c0ebe57","dweb:/ipfs/QmdJUFDx87AHWFKP3jVrYg8xqAkiPfuT1M3tEotNt7KUoy"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldKernel.sol":{"keccak256":"0xdaa1e92439036e392fe79892819ae165732f416b831f84d38050ca3d958e549b","urls":["bzz-raw://ea8dc52e31a62e8971322ea9ed8f2e83d562ec199d7f93a392c293e96ff7f092","dweb:/ipfs/QmSbM8MgHbrJLYP7uzemfZeC4xctqdyKDbspwHUsgeeVJC"],"license":"MIT"},"node_modules/@latticexyz/world/src/System.sol":{"keccak256":"0xadcb32bdc444a4420909b738d81fa662dc63739455fe93d5aa89c93a3ccfd2dd","urls":["bzz-raw://d303094c84ebfb0f9f114c54ff4dfc68bfa1e526d0ebe304be6fbeb7cb2f0d3f","dweb:/ipfs/QmYvUx1mNDhkxZFqxLeswW3w9HkvVqeoJiJKj1HN1SB7Gi"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IAccessManagementSystem.sol":{"keccak256":"0x7e7321b86836bfbf4b96d0fb2a424ed678efcf01b15fa3d0b4ae4f0b975ad5dc","urls":["bzz-raw://ead41554796bd0507e390f2997aa4a8df7bff8b51523b86fa3c5bd8acb1fec48","dweb:/ipfs/QmVe1VUhfbRy8tviA7UcCtS8NjXhsF1E6Re9xLqWS5aRTK"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBalanceTransferSystem.sol":{"keccak256":"0xe57042e82311847c56fa569377ed84459bf55afccdd3123312a5dff90c1d06f4","urls":["bzz-raw://baf3258c9118bf16ba68ebcfecdb5e5ffc85d5c0cdc2815ca298283dfcff2c83","dweb:/ipfs/QmcBVyUBR3PVejz7249VrEBMCMKHi72KoUXQ8DFmMmY48F"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol":{"keccak256":"0xf7acdfa0eb01c710d11fba129d613863fe86f1bed352f0bc5630bea81cceae17","urls":["bzz-raw://3e4107681cd20c018cd8f5dff6da72e8a4b02f631c7c59b618e8743482c7bc81","dweb:/ipfs/QmXS8NLaKVXcf97HrD8U4hGHqb9ytYGwdZrTVHHb5EwrRj"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IBatchCallSystem.sol":{"keccak256":"0x600cc362780c319e640950ad3520af7fa558171268baab252ff4da4414aa0f1c","urls":["bzz-raw://6d113a833b64bccbbe852f3d0261efd80ad4a0f6771802dc91af79c762a33ff2","dweb:/ipfs/QmaXEdJJaMMQF8nZieWyXdVD15yuXnH89QLZHwD18LAndz"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IModuleInstallationSystem.sol":{"keccak256":"0x7070453d969eba7defd90047d58ae979e27e5c1fcf05598daa4d17fedbe84c35","urls":["bzz-raw://ee5c196c5e339ac0222cd1d14fd9d09451d255605f73732abc33397a9512503b","dweb:/ipfs/QmYwNsWnxP24RzDqFYLnBYswZY97YE3nwG6Xf55f5FqNXa"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IRegistrationSystem.sol":{"keccak256":"0xe08d3af994098120b5507c71a1c3558763b8c1a88c6eae506aa438c2af78f800","urls":["bzz-raw://bb0c47b16ff524140388765fe9ef99211dd7d9b9374dae09144a9956138de00c","dweb:/ipfs/Qma8ibVu6WZs1hFW3hMnUykV3pPXGZhZ3xJwJXNj6Xu7aL"],"license":"MIT"},"node_modules/@latticexyz/world/src/codegen/interfaces/IWorldRegistrationSystem.sol":{"keccak256":"0x70bed82da026058ddccf52766823c7d55c7d29faad0ab1d76d763786d5277f7c","urls":["bzz-raw://1da6476d62e450d3d935ea8292723612a84fa1d07342fbc052ee851181701a27","dweb:/ipfs/Qmd1FQpmEVbQciLDPkHPXSKB7aYW1YB74BN5JXqn74erhR"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/modules/init/types.sol":{"keccak256":"0x81b75eb286ec515bde6cbb16c3d089054abb530b744865bbace68343d23177bc","urls":["bzz-raw://afc77bd51e24da666260bb48c44ff611869fb2e550921d732e5aac84a1f09525","dweb:/ipfs/QmeU5N4yeRh5nEA65pvGtQQJNv1GvEPy4PkhMVRYRMoMvh"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/codegen/common.sol":{"keccak256":"0x4c2ba8a0a49d1b05659c3ede28e5c038375449d2e1b7406efc24cbbccd7a219a","urls":["bzz-raw://1ce39aeab3df49bef03cb5a6f1089719750a38eb0cb207a04c4f64097ae53018","dweb:/ipfs/QmZASMaZu5zZRMcKs5rg1TXoniuaeeseeU4E4cExm8xEgb"],"license":"MIT"},"src/codegen/index.sol":{"keccak256":"0xf2a99956e725d137a95cb987b7dd4e1b38a9250e7b5ee62aa8fe5d7890d05525","urls":["bzz-raw://5ca5ef8c6b910dcaa9c378850c4fc08e4ac77f5cbb60f08042708005d0236246","dweb:/ipfs/QmSW43brvMvLZtyDDDqpQr2uzPdAdKvEHDNqy88sNMbZmT"],"license":"MIT"},"src/codegen/tables/Admin.sol":{"keccak256":"0xe3b7e993ca2e420d73b845fb37388d453486e24522b941503a2f81c639769725","urls":["bzz-raw://e638c35d3ec5805180122b70849bd3a93aa680f3251ac9e7fe4f0ff24722f614","dweb:/ipfs/QmVL3xJPrsVDgXQTdxBEkq4PRmyNDCFHGHKJxLQzuFy9XJ"],"license":"MIT"},"src/codegen/tables/CharacterEquipment.sol":{"keccak256":"0x1f206f05e1f359a4734d85132f95fe3230161352e27bc5c6a27d3c0b35ddd4d8","urls":["bzz-raw://59144a593b681fb3143185b226d333e979805cc1e58c31c9c8bb276ae3b114a6","dweb:/ipfs/QmUfoXGmWwDTK25vuUWan9U5r6SP72u2RFpFK1pawDJ3Yt"],"license":"MIT"},"src/codegen/tables/CharacterStats.sol":{"keccak256":"0x0e912302c0e02af68fb8ecc9cd9a3574fa4c60e4272072d5fbfdaa9e30615627","urls":["bzz-raw://35478c40410a7ce1fb3e0ba81c6cfd36fa59b0d2edcf71e39a6229f819079fd4","dweb:/ipfs/QmdsJbJ2ZHZYHe7jYvDNoUvWGBMSzu76PFJXFoD2VRWq4b"],"license":"MIT"},"src/codegen/tables/Characters.sol":{"keccak256":"0xdc9c589cae6aa924e1492c4a10c26e7ec3c803dd670a61d3620b87dea19de2c7","urls":["bzz-raw://47c5d5915e34cec622b908230b5b485bf52236ede9027fbf7643c01d358d39e6","dweb:/ipfs/Qmah6n47amtAYhtbLM3WdtCi7yHpTbaXm6FUsyu8pFdMYf"],"license":"MIT"},"src/codegen/tables/CombatEncounter.sol":{"keccak256":"0xff0a6e9e6e34d739d3260d2e0ef2db0190dfb6eed6acf9b5e631228a35c37c42","urls":["bzz-raw://2bc2c8f088539657ffc555483e094d771ca60e12eb211af1fd5fc5d58d4fac74","dweb:/ipfs/Qmd7PuyowVmPhRWoFQQMRaTihnn9iFQsaKQQRjTaW99eYP"],"license":"MIT"},"src/codegen/tables/Counters.sol":{"keccak256":"0x7d947002a120f45313a6a6adfc4d2079fb0b68eace00581c8a3485973565c3ad","urls":["bzz-raw://b66f9f7e26e93029eab174b37fa575e4ce8aaab5261d6f0a4e24b14de1229bdf","dweb:/ipfs/QmYnpaXwp1fPRHYWBBixJUrFpqcxsQghhgbauknqEE6bpS"],"license":"MIT"},"src/codegen/tables/Items.sol":{"keccak256":"0x3cd69d8fc6f1beb049b8a5e37fb53404cc7517a39230f84a0c6b2e2c764b2c30","urls":["bzz-raw://666fd263955c6d05cf07686d79e7763ed13007246cc608712b0065c87d55b9da","dweb:/ipfs/QmfP5vNwnRKzY7ug1BET3ZF4bNHSfiM2LACKnU2kAKnPTV"],"license":"MIT"},"src/codegen/tables/Levels.sol":{"keccak256":"0x535e0e176169629b241caa38851bb5fe8862f822301552e8163bb405c9fc2327","urls":["bzz-raw://b22ef6fbbcdff6d59ccb2e1f3b48cd416ee58d64252aa1865f92ca53792ce7c4","dweb:/ipfs/QmQ7yKMUUcHcVH4RFZTDx9jSnr3rwyiTa7zeVLPK6qUQtp"],"license":"MIT"},"src/codegen/tables/MapConfig.sol":{"keccak256":"0xd172cd15d5c85a660110c0cfdab2562e64c26d5d215c3a56478be7bb639f4ce1","urls":["bzz-raw://628bb2ad2860cae232cf49744e940d9829727fad8bcab745deab707eece4efa5","dweb:/ipfs/QmZ3x6znC3Km4hGxgxARCKdnKRa9AatiFgGVdEZzBP5iw8"],"license":"MIT"},"src/codegen/tables/MobEntity.sol":{"keccak256":"0x76d773fe3fb2332766bf7fdecc6bd31442fd32fdd18a8ac7781efee20511ffe5","urls":["bzz-raw://87200a6ec462b9a847f33e18b730739b3fe78120c93fe3d896ba31130b85a5c0","dweb:/ipfs/QmWsFsoAQBxZEn3RDkZBgEHsmWPANqz8cPvquK6qduhFfh"],"license":"MIT"},"src/codegen/tables/MobStats.sol":{"keccak256":"0x18959e45a14e6ef240b46da0b370f1ca1fbd399f3cdfd229d39932f44644ec57","urls":["bzz-raw://da3d1b0c4da5d4df93cbaafcd084768961391f838b7251d815c4b3ea2bccdd09","dweb:/ipfs/QmXGD6eRifAord2Ubck5Fgp4zP8NMVGNECTPsYurwaWX1K"],"license":"MIT"},"src/codegen/tables/Mobs.sol":{"keccak256":"0x0d6040fb2c459f26ffe1f563af1b547c9844cc3b53ba3d8d21f8051cfccbf6f3","urls":["bzz-raw://e7e422a289617179f3ecbdd519468996f36841526a30ab7245348ea78275d060","dweb:/ipfs/QmZYLGnLb7witVgCqz3ppfwa8EejMNdAHhdGfBxe3NDVU9"],"license":"MIT"},"src/codegen/tables/Name.sol":{"keccak256":"0x5b244643b0cc0f74c380fcd34e6cbe59cf0fabf15362bbaf04db527443f5df99","urls":["bzz-raw://cce9aed9aa8dc6a071b9c8f958ae9f73e50f17ca24dc3c2cc2a58752efc7d1a4","dweb:/ipfs/QmaYLEjYKUnULFRcm35PUk4PQeWMpNEgg3N1JT6f6crf81"],"license":"MIT"},"src/codegen/tables/NameExists.sol":{"keccak256":"0xa8a8560b33be580fadbe6d92d8ee51225ea232788afd74252a12d1f724f7f9ab","urls":["bzz-raw://1bdc023458c300d9fd442c684d91bb3c48f8acc40ef629f7e6956af452bdcfdf","dweb:/ipfs/Qme9weCKgFBzqvRosTTCGyZoRNyU9mz2jkECiZPUMbFpQC"],"license":"MIT"},"src/codegen/tables/Position.sol":{"keccak256":"0xb76e5c75e445427aed7dd080b473d83c8cdae669cad005231da7be69e0100c6d","urls":["bzz-raw://34bf576714068f92596b61043352fa6fd6f4c463c43150bf9d0ec0436e35412a","dweb:/ipfs/QmbR8rTTnRSA5hBbaEfpvkms7PPhns5FJzXboVHKDKkS66"],"license":"MIT"},"src/codegen/tables/RandomNumbers.sol":{"keccak256":"0x36271b8a638ab379293882f001c77c5b2c911c707c3cfaf8c63327a047e4fa22","urls":["bzz-raw://b764ae3b7573d191b544f66e01095e23c09c033a766c8d4f9fd635c780382df5","dweb:/ipfs/QmZEDexSqLHBX84DDpYVpjvcxzYL1d4qtkupowY13ixQeA"],"license":"MIT"},"src/codegen/tables/Spawned.sol":{"keccak256":"0x78f5cad0e139c3698f9d2fce1657ffca64786ca2750076bdd2ea4fbceb15589f","urls":["bzz-raw://71ed806c48834caf05c7457fc03f8ad6365e4c2268d2fb9380a3d7f23cc9b8a2","dweb:/ipfs/QmXLnBTDgXeXVw5fBFhEW54AaYc8tDWVvkYhcmLAUQt7F7"],"license":"MIT"},"src/codegen/tables/StarterItems.sol":{"keccak256":"0x5ee8da401ed86fbcfe390b5dbd301e2553c278970b13e942a91b37eb930d8de3","urls":["bzz-raw://ea2e69871f31015e9080b07a0c8fa8fa01519c0827e3dcd1409a5192994205e3","dweb:/ipfs/QmV2raKphNUK5X6hds4e3c5AAk2XUP1vBNBMtsSz4VKGso"],"license":"MIT"},"src/codegen/tables/UltimateDominionConfig.sol":{"keccak256":"0x6f439f3fef2c4db3b295718bb3e277f59500a3183f2306fe70890a30c3eeff26","urls":["bzz-raw://bde32ff627c137c1b52e6f45ff82df52eee9e6fe8fa668fc791132dba187f256","dweb:/ipfs/Qmcj4S8ysUA1Lv8xbA5i1dzn4wwKPQrCEjpUd1MW6rh21w"],"license":"MIT"},"src/codegen/world/ICharacterSystem.sol":{"keccak256":"0xb0d27dd67d9ea10ef835a91c9f1f264107dc2a4cdbeb5531049a5006704cc991","urls":["bzz-raw://e89727edf1e326df28d8c42d231d46df10a285ea2fdf7b73fe19f21c0901c22b","dweb:/ipfs/QmeRQ4nkXiuh1DSWuGCrC5inRejZKhDZLwtNZn8ai1bV88"],"license":"MIT"},"src/codegen/world/ICombatSystem.sol":{"keccak256":"0x70caf9c80ea6c72b8f5bb5262f5fc4e8733ebc249c24b7dfb5c881f7b85dab9d","urls":["bzz-raw://c3d1ef91292b619f37f8ad93ab9d3cb8e45b91674ab1edee5a7fc1c5d071a0c3","dweb:/ipfs/QmNP2royisUVREpoqfYK1a2hhYodd6iS39yhYpvAPJnG4H"],"license":"MIT"},"src/codegen/world/IItemsSystem.sol":{"keccak256":"0x1795d0914aa67a81ffcf51328b6eeb9a5359692cd58122047354cf2b9be9c44e","urls":["bzz-raw://75ddc8d7780fd47d6981aa6324e545814f37ff3fb2be2b27e1e5aed97b15f225","dweb:/ipfs/Qmcv98XaSvzK9fijokfySYEMDtyxu8RKp1mT9S2fDvJYoA"],"license":"MIT"},"src/codegen/world/IMapSystem.sol":{"keccak256":"0x7da1718c8d9b4f1b926018108c149eb9ad5869aa90b6b0f18555b6eb744c5816","urls":["bzz-raw://1755b2fae83b5b300860fe7971cc1b05fcbfcd457375973404ea390a742401cf","dweb:/ipfs/QmeUmH5251rGSAow3KHvPiwkK5qwi5quQe9NZfDrtVi2Kn"],"license":"MIT"},"src/codegen/world/IMobSystem.sol":{"keccak256":"0x9ec61276ea8d11ee9b1babc9e3fd052de53d2b70ba8046f716cad9345cada6ad","urls":["bzz-raw://2f7187f27c11d1d0caa1e3bdf3760be52401f3252adf096f6004379e926c1134","dweb:/ipfs/QmbVHG5x57VpFRzaCDvc186V4kX3jJRuwHB26JLYh6a8s4"],"license":"MIT"},"src/codegen/world/IUltimateDominionConfigSystem.sol":{"keccak256":"0xba90101aabcf40e70392a7cb70705414abd0ae15cc3611ff896a4fac2f7a42d9","urls":["bzz-raw://befe8dc2fb28a22feb31c6ac8f8d6796985db0fe49a411b60d860d34b45813c6","dweb:/ipfs/QmaGKJ9ipwXJKt7uVqEGwGdqo45AkAuQHQdpSgqo1vCTbf"],"license":"MIT"},"src/codegen/world/IWorld.sol":{"keccak256":"0x10bd7030021b23f7ee711f1283793dd449901fc7b3a07bc588a9e19a32165544","urls":["bzz-raw://b6e2a41cb62ef1a7d0cf5b0216c50b38b2b29efc62b9ebd6784f7bded7d24939","dweb:/ipfs/QmVtZjgsSLx1TkDJsQ6SXVto4nYyaKe5sxDbGHpxfENP3c"],"license":"MIT"},"src/interfaces/Structs.sol":{"keccak256":"0x7472fa5be64b4a6e032d4f1b8ed11d8f91fbad483c8ab4c71dee909233fade6e","urls":["bzz-raw://ff2517c3d7bacf21162560ffbfaef377f2e98ee16e676fa3cfd22b384b09d9b8","dweb:/ipfs/QmQCw3aMxqDwtitsAPGzP2FmjgjdSCX75WemQog4ieseas"],"license":"MIT"}},"version":1},"id":200} \ No newline at end of file diff --git a/packages/contracts/script/PostDeploy.s.sol b/packages/contracts/script/PostDeploy.s.sol index bc001cb3..1e68e02d 100644 --- a/packages/contracts/script/PostDeploy.s.sol +++ b/packages/contracts/script/PostDeploy.s.sol @@ -1,234 +1,250 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.24; -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {StoreSwitch} from "@latticexyz/store/src/StoreSwitch.sol"; -import {StoreCore, EncodedLengths} from "@latticexyz/store/src/StoreCore.sol"; -import {MockEntropy} from "@test/mocks/MockEntropy.sol"; -import {PuppetModule} from "@latticexyz/world-modules/src/modules/puppet/PuppetModule.sol"; -import {Systems} from "@latticexyz/world/src/codegen/tables/Systems.sol"; -import {IWorld} from "@world/IWorld.sol"; -import {UltimateDominionConfig, Levels} from "@codegen/index.sol"; -import {ResourceIdLib} from "@latticexyz/store/src/ResourceId.sol"; -import {ResourceId, WorldResourceIdLib, WorldResourceIdInstance} from "@latticexyz/world/src/WorldResourceId.sol"; -import {RESOURCE_SYSTEM} from "@latticexyz/world/src/worldResourceTypes.sol"; -import {DeployGold} from "./DeployGold.sol"; -import {DeployCharacters} from "./DeployCharacters.sol"; -import {RngSystem} from "../src/systems/RngSystem.sol"; -import {IERC721Mintable} from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol"; -import {registerERC721} from "@latticexyz/world-modules/src/modules/erc721-puppet/registerERC721.sol"; -import {ERC721System} from "@latticexyz/world-modules/src/modules/erc721-puppet/ERC721System.sol"; -import {ERC721MetadataData} from "@latticexyz/world-modules/src/modules/erc721-puppet/tables/ERC721Metadata.sol"; -import { - GOLD_NAMESPACE, - CHARACTERS_NAMESPACE, - ERC721_NAME, - ERC721_SYMBOL, - ITEMS_NAMESPACE, - TOKEN_URI -} from "../constants.sol"; -import {NoTransferHook} from "../src/NoTransferHook.sol"; -import {BEFORE_CALL_SYSTEM} from "@latticexyz/world/src/systemHookTypes.sol"; -import {Classes, ItemType} from "@codegen/common.sol"; -import {WeaponStats} from "@interfaces/Structs.sol"; -import {IERC20Mintable} from "@latticexyz/world-modules/src/modules/erc20-puppet/IERC20Mintable.sol"; -import {ERC20MetadataData} from "@latticexyz/world-modules/src/modules/erc20-puppet/tables/ERC20Metadata.sol"; -import {ERC20System} from "@latticexyz/world-modules/src/modules/erc20-puppet/ERC20System.sol"; -import {registerERC20} from "@latticexyz/world-modules/src/modules/erc20-puppet/registerERC20.sol"; -import {System} from "@latticexyz/world/src/System.sol"; -import {CharacterSystem} from "../src/systems/CharacterSystem.sol"; - -import {ERC1155Module} from "@erc1155/ERC1155Module.sol"; -import {ERC1155System} from "@erc1155/ERC1155System.sol"; -import {IERC1155} from "@erc1155/IERC1155.sol"; -import {registerERC1155} from "@erc1155/registerERC1155.sol"; -import {_erc1155SystemId} from "@erc1155/utils.sol"; +import { Script } from "forge-std/Script.sol"; +import { console } from "forge-std/console.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore, EncodedLengths } from "@latticexyz/store/src/StoreCore.sol"; +import { MockEntropy } from "@test/mocks/MockEntropy.sol"; +import { PuppetModule } from "@latticexyz/world-modules/src/modules/puppet/PuppetModule.sol"; +import { Systems } from "@latticexyz/world/src/codegen/tables/Systems.sol"; +import { IWorld } from "@world/IWorld.sol"; +import { UltimateDominionConfig, Levels, MapConfig } from "@codegen/index.sol"; +import { ResourceIdLib } from "@latticexyz/store/src/ResourceId.sol"; +import { ResourceId, WorldResourceIdLib, WorldResourceIdInstance } from "@latticexyz/world/src/WorldResourceId.sol"; +import { RESOURCE_SYSTEM } from "@latticexyz/world/src/worldResourceTypes.sol"; +import { DeployGold } from "./DeployGold.sol"; +import { DeployCharacters } from "./DeployCharacters.sol"; +import { RngSystem } from "../src/systems/RngSystem.sol"; +import { IERC721Mintable } from "@latticexyz/world-modules/src/modules/erc721-puppet/IERC721Mintable.sol"; +import { registerERC721 } from "@latticexyz/world-modules/src/modules/erc721-puppet/registerERC721.sol"; +import { ERC721System } from "@latticexyz/world-modules/src/modules/erc721-puppet/ERC721System.sol"; +import { ERC721MetadataData } from "@latticexyz/world-modules/src/modules/erc721-puppet/tables/ERC721Metadata.sol"; +import { GOLD_NAMESPACE, CHARACTERS_NAMESPACE, ERC721_NAME, ERC721_SYMBOL, ITEMS_NAMESPACE, TOKEN_URI } from "../constants.sol"; +import { NoTransferHook } from "../src/NoTransferHook.sol"; +import { BEFORE_CALL_SYSTEM } from "@latticexyz/world/src/systemHookTypes.sol"; +import { Classes, ItemType } from "@codegen/common.sol"; +import { WeaponStats } from "@interfaces/Structs.sol"; +import { IERC20Mintable } from "@latticexyz/world-modules/src/modules/erc20-puppet/IERC20Mintable.sol"; +import { ERC20MetadataData } from "@latticexyz/world-modules/src/modules/erc20-puppet/tables/ERC20Metadata.sol"; +import { ERC20System } from "@latticexyz/world-modules/src/modules/erc20-puppet/ERC20System.sol"; +import { registerERC20 } from "@latticexyz/world-modules/src/modules/erc20-puppet/registerERC20.sol"; +import { System } from "@latticexyz/world/src/System.sol"; +import { CharacterSystem } from "../src/systems/CharacterSystem.sol"; + +import { ERC1155Module } from "@erc1155/ERC1155Module.sol"; +import { ERC1155System } from "@erc1155/ERC1155System.sol"; +import { IERC1155 } from "@erc1155/IERC1155.sol"; +import { registerERC1155 } from "@erc1155/registerERC1155.sol"; +import { _erc1155SystemId } from "@erc1155/utils.sol"; import "forge-std/console2.sol"; struct ResourceIds { - ResourceId erc721SystemId; - ResourceId erc721NamespaceId; - ResourceId characterSystemId; - ResourceId erc20SystemId; - ResourceId erc20NamespaceId; - ResourceId rngSystemId; - ResourceId erc1155SystemId; - ResourceId erc1155NamespaceId; - ResourceId itemsSystemId; + ResourceId erc721SystemId; + ResourceId erc721NamespaceId; + ResourceId characterSystemId; + ResourceId erc20SystemId; + ResourceId erc20NamespaceId; + ResourceId rngSystemId; + ResourceId erc1155SystemId; + ResourceId erc1155NamespaceId; + ResourceId itemsSystemId; } contract PostDeploy is Script { - IWorld public world; - ResourceIds public resourceIds; - address public worldAddress; - - function run(address _worldAddress) external { - worldAddress = _worldAddress; - world = IWorld(worldAddress); - // Specify a store so that you can use tables directly in PostDeploy - StoreSwitch.setStoreAddress(worldAddress); - - // Load the private key from the `PRIVATE_KEY` environment variable (in .env) - uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); - - // Start broadcasting transactions from the deployer account - vm.startBroadcast(deployerPrivateKey); - if (block.chainid == 31337) { - // Set entropy contracts - address mockEntropy = address(new MockEntropy()); - UltimateDominionConfig.setEntropy(mockEntropy); - UltimateDominionConfig.setPythProvider(address(1)); - } else if (block.chainid == 84532) { - UltimateDominionConfig.setEntropy(0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c); - UltimateDominionConfig.setPythProvider(0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344); - } else if (block.chainid == 8453) { - UltimateDominionConfig.setEntropy(0x6E7D74FA7d5c90FEF9F0512987605a6d546181Bb); - UltimateDominionConfig.setPythProvider(0x52DeaA1c84233F7bb8C8A45baeDE41091c616506); - } - - //install puppet - world.installModule(new PuppetModule(), new bytes(0)); - - _addRngSystem(); - - // install gold module - IERC20Mintable goldToken = registerERC20( - world, GOLD_NAMESPACE, ERC20MetadataData({decimals: 18, name: "GoldToken", symbol: unicode"🜚"}) - ); - - UltimateDominionConfig.setGoldToken(address(goldToken)); - - // characters - IERC721Mintable characters = registerERC721( - world, - CHARACTERS_NAMESPACE, - ERC721MetadataData({name: ERC721_NAME, symbol: ERC721_SYMBOL, baseURI: TOKEN_URI}) - ); - - UltimateDominionConfig.setCharacterToken(address(characters)); - - { - resourceIds.erc20NamespaceId = WorldResourceIdLib.encodeNamespace(GOLD_NAMESPACE); - resourceIds.erc20SystemId = - WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "Gold", name: "GoldToken"}); - - resourceIds.characterSystemId = - WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "UD", name: "CharacterSystem"}); - - resourceIds.erc721NamespaceId = WorldResourceIdLib.encodeNamespace(CHARACTERS_NAMESPACE); - - resourceIds.erc721SystemId = - WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "Characters", name: "ERC721System"}); - - resourceIds.erc1155SystemId = _erc1155SystemId(ITEMS_NAMESPACE); - resourceIds.erc1155NamespaceId = WorldResourceIdLib.encodeNamespace(ITEMS_NAMESPACE); - resourceIds.itemsSystemId = - WorldResourceIdLib.encode({typeId: RESOURCE_SYSTEM, namespace: "UD", name: "ItemsSystem"}); - } - - address characterSystemAddress = Systems.getSystem(resourceIds.characterSystemId); - - System goldSystemContract = new ERC20System(); - - world.registerSystem(resourceIds.erc20SystemId, goldSystemContract, true); - - IWorld(worldAddress).grantAccess(resourceIds.erc20NamespaceId, worldAddress); - IWorld(worldAddress).registerFunctionSelector(resourceIds.erc20SystemId, "mint(address,uint256)"); - - world.transferOwnership(resourceIds.erc20NamespaceId, address(characterSystemAddress)); - - System systemContract = new ERC721System(); - world.registerSystem(resourceIds.erc721SystemId, systemContract, true); - - NoTransferHook characterHook = new NoTransferHook(); - - world.registerSystemHook(resourceIds.erc721SystemId, characterHook, BEFORE_CALL_SYSTEM); - - // Transfer characters namespace to World - world.grantAccess(resourceIds.erc721SystemId, worldAddress); - world.grantAccess(resourceIds.erc721SystemId, characterSystemAddress); - world.transferOwnership(resourceIds.erc721NamespaceId, characterSystemAddress); - - address items = _deployErc1155(world, ITEMS_NAMESPACE); - UltimateDominionConfig.setItems(address(items)); - - _createStarterItems(); - setLevels(); - vm.stopBroadcast(); - } - - function _deployErc1155(IWorld _world, bytes14 itemsNamespace) internal returns (address) { - IERC1155 _items = registerERC1155(_world, itemsNamespace, "test_Items_uri/"); - - // ERC1155System erc1155System = new ERC1155System(); - address itemsSystemAddress = Systems.getSystem(resourceIds.itemsSystemId); - - // _world.registerSystem(resourceIds.erc1155SystemId, erc1155System, false); - _world.grantAccess(resourceIds.erc1155SystemId, worldAddress); - world.transferOwnership(resourceIds.erc1155NamespaceId, itemsSystemAddress); - return address(_items); - } - - function _addRngSystem() internal { - System rngSystem = new RngSystem(); - - resourceIds.rngSystemId = WorldResourceIdLib.encode(RESOURCE_SYSTEM, "", "RngSystem"); - - world.registerSystem(resourceIds.rngSystemId, rngSystem, true); - world.registerRootFunctionSelector( - resourceIds.rngSystemId, "getRng(bytes32,uint8,bytes)", "getRng(bytes32,uint8,bytes)" - ); - world.registerRootFunctionSelector( - resourceIds.rngSystemId, - "entropyCallback(uint64,address,bytes32)", - "entropyCallback(uint64,address,bytes32)" - ); - world.registerRootFunctionSelector( - resourceIds.rngSystemId, - "_entropyCallback(uint64,address,bytes32)", - "_entropyCallback(uint64,address,bytes32)" - ); - world.registerRootFunctionSelector(resourceIds.rngSystemId, "getFee()", "getFee()"); - world.registerRootFunctionSelector(resourceIds.rngSystemId, "getEntropy()", "getEntropy()"); + IWorld public world; + ResourceIds public resourceIds; + address public worldAddress; + + function run(address _worldAddress) external { + worldAddress = _worldAddress; + world = IWorld(worldAddress); + // Specify a store so that you can use tables directly in PostDeploy + StoreSwitch.setStoreAddress(worldAddress); + + // Load the private key from the `PRIVATE_KEY` environment variable (in .env) + uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY"); + + // Start broadcasting transactions from the deployer account + vm.startBroadcast(deployerPrivateKey); + if (block.chainid == 31337) { + // Set entropy contracts + address mockEntropy = address(new MockEntropy()); + UltimateDominionConfig.setEntropy(mockEntropy); + UltimateDominionConfig.setPythProvider(address(1)); + } else if (block.chainid == 84532) { + UltimateDominionConfig.setEntropy(0x41c9e39574F40Ad34c79f1C99B66A45eFB830d4c); + UltimateDominionConfig.setPythProvider(0x6CC14824Ea2918f5De5C2f75A9Da968ad4BD6344); + } else if (block.chainid == 8453) { + UltimateDominionConfig.setEntropy(0x6E7D74FA7d5c90FEF9F0512987605a6d546181Bb); + UltimateDominionConfig.setPythProvider(0x52DeaA1c84233F7bb8C8A45baeDE41091c616506); } - function _createStarterItems() internal { - uint8[] memory restrictions = new uint8[](0); - WeaponStats memory weaponStats = - WeaponStats({damage: 1, speed: 2, classRestrictions: restrictions, minLevel: 0}); - - uint256 starterItemId = - world.UD__createItem(ItemType.Weapon, 10 ether, abi.encode(weaponStats), "starter-weapon-uri/"); - uint256[] memory itemIds = new uint256[](1); - itemIds[0] = starterItemId; - uint256[] memory amounts = new uint256[](1); - amounts[0] = 1; - world.UD__setStarterItems(Classes.Rogue, itemIds, amounts); - world.UD__setStarterItems(Classes.Warrior, itemIds, amounts); - world.UD__setStarterItems(Classes.Mage, itemIds, amounts); + uint32 height = uint32(10); + uint32 width = uint32(10); + MapConfig.set(width, height); + + //install puppet + world.installModule(new PuppetModule(), new bytes(0)); + + _addRngSystem(); + + // install gold module + IERC20Mintable goldToken = registerERC20( + world, + GOLD_NAMESPACE, + ERC20MetadataData({ decimals: 18, name: "GoldToken", symbol: unicode"🜚" }) + ); + + UltimateDominionConfig.setGoldToken(address(goldToken)); + + // characters + IERC721Mintable characters = registerERC721( + world, + CHARACTERS_NAMESPACE, + ERC721MetadataData({ name: ERC721_NAME, symbol: ERC721_SYMBOL, baseURI: TOKEN_URI }) + ); + + UltimateDominionConfig.setCharacterToken(address(characters)); + + { + resourceIds.erc20NamespaceId = WorldResourceIdLib.encodeNamespace(GOLD_NAMESPACE); + resourceIds.erc20SystemId = WorldResourceIdLib.encode({ + typeId: RESOURCE_SYSTEM, + namespace: "Gold", + name: "GoldToken" + }); + + resourceIds.characterSystemId = WorldResourceIdLib.encode({ + typeId: RESOURCE_SYSTEM, + namespace: "UD", + name: "CharacterSystem" + }); + + resourceIds.erc721NamespaceId = WorldResourceIdLib.encodeNamespace(CHARACTERS_NAMESPACE); + + resourceIds.erc721SystemId = WorldResourceIdLib.encode({ + typeId: RESOURCE_SYSTEM, + namespace: "Characters", + name: "ERC721System" + }); + + resourceIds.erc1155SystemId = _erc1155SystemId(ITEMS_NAMESPACE); + resourceIds.erc1155NamespaceId = WorldResourceIdLib.encodeNamespace(ITEMS_NAMESPACE); + resourceIds.itemsSystemId = WorldResourceIdLib.encode({ + typeId: RESOURCE_SYSTEM, + namespace: "UD", + name: "ItemsSystem" + }); } - function setLevels() internal { - Levels.setExperience(1, 300); - Levels.setExperience(2, 900); - Levels.setExperience(3, 2700); - Levels.setExperience(4, 6500); - Levels.setExperience(5, 14000); - Levels.setExperience(6, 23000); - Levels.setExperience(7, 34000); - Levels.setExperience(8, 48000); - Levels.setExperience(9, 64000); - Levels.setExperience(10, 85000); - Levels.setExperience(11, 100000); - Levels.setExperience(12, 120000); - Levels.setExperience(13, 140000); - Levels.setExperience(14, 165000); - Levels.setExperience(15, 195000); - Levels.setExperience(16, 225000); - Levels.setExperience(17, 265000); - Levels.setExperience(18, 305000); - Levels.setExperience(19, 355000); - } + address characterSystemAddress = Systems.getSystem(resourceIds.characterSystemId); + + System goldSystemContract = new ERC20System(); + + world.registerSystem(resourceIds.erc20SystemId, goldSystemContract, true); + + IWorld(worldAddress).grantAccess(resourceIds.erc20NamespaceId, worldAddress); + IWorld(worldAddress).registerFunctionSelector(resourceIds.erc20SystemId, "mint(address,uint256)"); + + world.transferOwnership(resourceIds.erc20NamespaceId, address(characterSystemAddress)); + + System systemContract = new ERC721System(); + world.registerSystem(resourceIds.erc721SystemId, systemContract, true); + + NoTransferHook characterHook = new NoTransferHook(); + + world.registerSystemHook(resourceIds.erc721SystemId, characterHook, BEFORE_CALL_SYSTEM); + + // Transfer characters namespace to World + world.grantAccess(resourceIds.erc721SystemId, worldAddress); + world.grantAccess(resourceIds.erc721SystemId, characterSystemAddress); + world.transferOwnership(resourceIds.erc721NamespaceId, characterSystemAddress); + + address items = _deployErc1155(world, ITEMS_NAMESPACE); + UltimateDominionConfig.setItems(address(items)); + + _createStarterItems(); + setLevels(); + vm.stopBroadcast(); + } + + function _deployErc1155(IWorld _world, bytes14 itemsNamespace) internal returns (address) { + IERC1155 _items = registerERC1155(_world, itemsNamespace, "test_Items_uri/"); + + // ERC1155System erc1155System = new ERC1155System(); + address itemsSystemAddress = Systems.getSystem(resourceIds.itemsSystemId); + + // _world.registerSystem(resourceIds.erc1155SystemId, erc1155System, false); + _world.grantAccess(resourceIds.erc1155SystemId, worldAddress); + world.transferOwnership(resourceIds.erc1155NamespaceId, itemsSystemAddress); + return address(_items); + } + + function _addRngSystem() internal { + System rngSystem = new RngSystem(); + + resourceIds.rngSystemId = WorldResourceIdLib.encode(RESOURCE_SYSTEM, "", "RngSystem"); + + world.registerSystem(resourceIds.rngSystemId, rngSystem, true); + world.registerRootFunctionSelector( + resourceIds.rngSystemId, + "getRng(bytes32,uint8,bytes)", + "getRng(bytes32,uint8,bytes)" + ); + world.registerRootFunctionSelector( + resourceIds.rngSystemId, + "entropyCallback(uint64,address,bytes32)", + "entropyCallback(uint64,address,bytes32)" + ); + world.registerRootFunctionSelector( + resourceIds.rngSystemId, + "_entropyCallback(uint64,address,bytes32)", + "_entropyCallback(uint64,address,bytes32)" + ); + world.registerRootFunctionSelector(resourceIds.rngSystemId, "getFee()", "getFee()"); + world.registerRootFunctionSelector(resourceIds.rngSystemId, "getEntropy()", "getEntropy()"); + } + + function _createStarterItems() internal { + uint8[] memory restrictions = new uint8[](0); + WeaponStats memory weaponStats = WeaponStats({ damage: 1, speed: 2, classRestrictions: restrictions, minLevel: 0 }); + + uint256 starterItemId = world.UD__createItem( + ItemType.Weapon, + 10 ether, + abi.encode(weaponStats), + "starter-weapon-uri/" + ); + uint256[] memory itemIds = new uint256[](1); + itemIds[0] = starterItemId; + uint256[] memory amounts = new uint256[](1); + amounts[0] = 1; + world.UD__setStarterItems(Classes.Rogue, itemIds, amounts); + world.UD__setStarterItems(Classes.Warrior, itemIds, amounts); + world.UD__setStarterItems(Classes.Mage, itemIds, amounts); + } + + function setLevels() internal { + Levels.setExperience(1, 300); + Levels.setExperience(2, 900); + Levels.setExperience(3, 2700); + Levels.setExperience(4, 6500); + Levels.setExperience(5, 14000); + Levels.setExperience(6, 23000); + Levels.setExperience(7, 34000); + Levels.setExperience(8, 48000); + Levels.setExperience(9, 64000); + Levels.setExperience(10, 85000); + Levels.setExperience(11, 100000); + Levels.setExperience(12, 120000); + Levels.setExperience(13, 140000); + Levels.setExperience(14, 165000); + Levels.setExperience(15, 195000); + Levels.setExperience(16, 225000); + Levels.setExperience(17, 265000); + Levels.setExperience(18, 305000); + Levels.setExperience(19, 355000); + } } diff --git a/packages/contracts/src/codegen/index.sol b/packages/contracts/src/codegen/index.sol index a0e96dbb..02f43c75 100644 --- a/packages/contracts/src/codegen/index.sol +++ b/packages/contracts/src/codegen/index.sol @@ -6,6 +6,9 @@ pragma solidity >=0.8.24; import { Admin } from "./tables/Admin.sol"; import { Characters, CharactersData } from "./tables/Characters.sol"; import { CharacterStats, CharacterStatsData } from "./tables/CharacterStats.sol"; +import { MapConfig } from "./tables/MapConfig.sol"; +import { Position } from "./tables/Position.sol"; +import { Spawned } from "./tables/Spawned.sol"; import { MobStats, MobStatsData } from "./tables/MobStats.sol"; import { Levels } from "./tables/Levels.sol"; import { CharacterEquipment, CharacterEquipmentData } from "./tables/CharacterEquipment.sol"; diff --git a/packages/contracts/src/codegen/tables/MapConfig.sol b/packages/contracts/src/codegen/tables/MapConfig.sol new file mode 100644 index 00000000..b97cd80b --- /dev/null +++ b/packages/contracts/src/codegen/tables/MapConfig.sol @@ -0,0 +1,267 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +/* Autogenerated file. Do not edit manually. */ + +// Import store internals +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; + +library MapConfig { + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "MapConfig", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x746255440000000000000000000000004d6170436f6e66696700000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0008020004040000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of () + Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint32, uint32) + Schema constant _valueSchema = Schema.wrap(0x0008020003030000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](0); + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "height"; + fieldNames[1] = "width"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get height. + */ + function getHeight() internal view returns (uint32 height) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Get height. + */ + function _getHeight() internal view returns (uint32 height) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Set height. + */ + function setHeight(uint32 height) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); + } + + /** + * @notice Set height. + */ + function _setHeight(uint32 height) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((height)), _fieldLayout); + } + + /** + * @notice Get width. + */ + function getWidth() internal view returns (uint32 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Get width. + */ + function _getWidth() internal view returns (uint32 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Set width. + */ + function setWidth(uint32 width) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); + } + + /** + * @notice Set width. + */ + function _setWidth(uint32 width) internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((width)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get() internal view returns (uint32 height, uint32 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get() internal view returns (uint32 height, uint32 width) { + bytes32[] memory _keyTuple = new bytes32[](0); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint32 height, uint32 width) internal { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint32 height, uint32 width) internal { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (uint32 height, uint32 width) { + height = (uint32(Bytes.getBytes4(_blob, 0))); + + width = (uint32(Bytes.getBytes4(_blob, 4))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode( + bytes memory _staticData, + EncodedLengths, + bytes memory + ) internal pure returns (uint32 height, uint32 width) { + (height, width) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord() internal { + bytes32[] memory _keyTuple = new bytes32[](0); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint32 height, uint32 width) internal pure returns (bytes memory) { + return abi.encodePacked(height, width); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint32 height, uint32 width) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(height, width); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple() internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](0); + + return _keyTuple; + } +} diff --git a/packages/contracts/src/codegen/tables/Position.sol b/packages/contracts/src/codegen/tables/Position.sol new file mode 100644 index 00000000..96872e2e --- /dev/null +++ b/packages/contracts/src/codegen/tables/Position.sol @@ -0,0 +1,279 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +/* Autogenerated file. Do not edit manually. */ + +// Import store internals +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; + +library Position { + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Position", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000506f736974696f6e0000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0008020004040000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (uint32, uint32) + Schema constant _valueSchema = Schema.wrap(0x0008020003030000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "characterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](2); + fieldNames[0] = "x"; + fieldNames[1] = "y"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get x. + */ + function getX(uint256 characterId) internal view returns (uint32 x) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Get x. + */ + function _getX(uint256 characterId) internal view returns (uint32 x) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Set x. + */ + function setX(uint256 characterId, uint32 x) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); + } + + /** + * @notice Set x. + */ + function _setX(uint256 characterId, uint32 x) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((x)), _fieldLayout); + } + + /** + * @notice Get y. + */ + function getY(uint256 characterId) internal view returns (uint32 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Get y. + */ + function _getY(uint256 characterId) internal view returns (uint32 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 1, _fieldLayout); + return (uint32(bytes4(_blob))); + } + + /** + * @notice Set y. + */ + function setY(uint256 characterId, uint32 y) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); + } + + /** + * @notice Set y. + */ + function _setY(uint256 characterId, uint32 y) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 1, abi.encodePacked((y)), _fieldLayout); + } + + /** + * @notice Get the full data. + */ + function get(uint256 characterId) internal view returns (uint32 x, uint32 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreSwitch.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Get the full data. + */ + function _get(uint256 characterId) internal view returns (uint32 x, uint32 y) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + (bytes memory _staticData, EncodedLengths _encodedLengths, bytes memory _dynamicData) = StoreCore.getRecord( + _tableId, + _keyTuple, + _fieldLayout + ); + return decode(_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function set(uint256 characterId, uint32 x, uint32 y) internal { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Set the full data using individual values. + */ + function _set(uint256 characterId, uint32 x, uint32 y) internal { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.setRecord(_tableId, _keyTuple, _staticData, _encodedLengths, _dynamicData, _fieldLayout); + } + + /** + * @notice Decode the tightly packed blob of static data using this table's field layout. + */ + function decodeStatic(bytes memory _blob) internal pure returns (uint32 x, uint32 y) { + x = (uint32(Bytes.getBytes4(_blob, 0))); + + y = (uint32(Bytes.getBytes4(_blob, 4))); + } + + /** + * @notice Decode the tightly packed blobs using this table's field layout. + * @param _staticData Tightly packed static fields. + * + * + */ + function decode(bytes memory _staticData, EncodedLengths, bytes memory) internal pure returns (uint32 x, uint32 y) { + (x, y) = decodeStatic(_staticData); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(uint32 x, uint32 y) internal pure returns (bytes memory) { + return abi.encodePacked(x, y); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(uint32 x, uint32 y) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(x, y); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 characterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + return _keyTuple; + } +} diff --git a/packages/contracts/src/codegen/tables/Spawned.sol b/packages/contracts/src/codegen/tables/Spawned.sol new file mode 100644 index 00000000..e1f90a0f --- /dev/null +++ b/packages/contracts/src/codegen/tables/Spawned.sol @@ -0,0 +1,211 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +/* Autogenerated file. Do not edit manually. */ + +// Import store internals +import { IStore } from "@latticexyz/store/src/IStore.sol"; +import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol"; +import { StoreCore } from "@latticexyz/store/src/StoreCore.sol"; +import { Bytes } from "@latticexyz/store/src/Bytes.sol"; +import { Memory } from "@latticexyz/store/src/Memory.sol"; +import { SliceLib } from "@latticexyz/store/src/Slice.sol"; +import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol"; +import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol"; +import { Schema } from "@latticexyz/store/src/Schema.sol"; +import { EncodedLengths, EncodedLengthsLib } from "@latticexyz/store/src/EncodedLengths.sol"; +import { ResourceId } from "@latticexyz/store/src/ResourceId.sol"; + +library Spawned { + // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "UD", name: "Spawned", typeId: RESOURCE_TABLE });` + ResourceId constant _tableId = ResourceId.wrap(0x74625544000000000000000000000000537061776e6564000000000000000000); + + FieldLayout constant _fieldLayout = + FieldLayout.wrap(0x0001010001000000000000000000000000000000000000000000000000000000); + + // Hex-encoded key schema of (uint256) + Schema constant _keySchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000); + // Hex-encoded value schema of (bool) + Schema constant _valueSchema = Schema.wrap(0x0001010060000000000000000000000000000000000000000000000000000000); + + /** + * @notice Get the table's key field names. + * @return keyNames An array of strings with the names of key fields. + */ + function getKeyNames() internal pure returns (string[] memory keyNames) { + keyNames = new string[](1); + keyNames[0] = "characterId"; + } + + /** + * @notice Get the table's value field names. + * @return fieldNames An array of strings with the names of value fields. + */ + function getFieldNames() internal pure returns (string[] memory fieldNames) { + fieldNames = new string[](1); + fieldNames[0] = "spawned"; + } + + /** + * @notice Register the table with its config. + */ + function register() internal { + StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Register the table with its config. + */ + function _register() internal { + StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames()); + } + + /** + * @notice Get spawned. + */ + function getSpawned(uint256 characterId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function _getSpawned(uint256 characterId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function get(uint256 characterId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreSwitch.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Get spawned. + */ + function _get(uint256 characterId) internal view returns (bool spawned) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + bytes32 _blob = StoreCore.getStaticField(_tableId, _keyTuple, 0, _fieldLayout); + return (_toBool(uint8(bytes1(_blob)))); + } + + /** + * @notice Set spawned. + */ + function setSpawned(uint256 characterId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function _setSpawned(uint256 characterId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function set(uint256 characterId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Set spawned. + */ + function _set(uint256 characterId, bool spawned) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.setStaticField(_tableId, _keyTuple, 0, abi.encodePacked((spawned)), _fieldLayout); + } + + /** + * @notice Delete all data for given keys. + */ + function deleteRecord(uint256 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreSwitch.deleteRecord(_tableId, _keyTuple); + } + + /** + * @notice Delete all data for given keys. + */ + function _deleteRecord(uint256 characterId) internal { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + StoreCore.deleteRecord(_tableId, _keyTuple, _fieldLayout); + } + + /** + * @notice Tightly pack static (fixed length) data using this table's schema. + * @return The static data, encoded into a sequence of bytes. + */ + function encodeStatic(bool spawned) internal pure returns (bytes memory) { + return abi.encodePacked(spawned); + } + + /** + * @notice Encode all of a record's fields. + * @return The static (fixed length) data, encoded into a sequence of bytes. + * @return The lengths of the dynamic fields (packed into a single bytes32 value). + * @return The dynamic (variable length) data, encoded into a sequence of bytes. + */ + function encode(bool spawned) internal pure returns (bytes memory, EncodedLengths, bytes memory) { + bytes memory _staticData = encodeStatic(spawned); + + EncodedLengths _encodedLengths; + bytes memory _dynamicData; + + return (_staticData, _encodedLengths, _dynamicData); + } + + /** + * @notice Encode keys as a bytes32 array using this table's field layout. + */ + function encodeKeyTuple(uint256 characterId) internal pure returns (bytes32[] memory) { + bytes32[] memory _keyTuple = new bytes32[](1); + _keyTuple[0] = bytes32(uint256(characterId)); + + return _keyTuple; + } +} + +/** + * @notice Cast a value to a bool. + * @dev Boolean values are encoded as uint8 (1 = true, 0 = false), but Solidity doesn't allow casting between uint8 and bool. + * @param value The uint8 value to convert. + * @return result The boolean value. + */ +function _toBool(uint8 value) pure returns (bool result) { + assembly { + result := value + } +} diff --git a/packages/contracts/src/codegen/world/IMapSystem.sol b/packages/contracts/src/codegen/world/IMapSystem.sol new file mode 100644 index 00000000..048a7d2d --- /dev/null +++ b/packages/contracts/src/codegen/world/IMapSystem.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +/* Autogenerated file. Do not edit manually. */ + +/** + * @title IMapSystem + * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz) + * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually. + */ +interface IMapSystem { + function UD__move(uint256 characterId, uint32 x, uint32 y) external; + + function UD__spawn(uint256 characterId) external; +} diff --git a/packages/contracts/src/codegen/world/IWorld.sol b/packages/contracts/src/codegen/world/IWorld.sol index 3f40542d..a15139dd 100644 --- a/packages/contracts/src/codegen/world/IWorld.sol +++ b/packages/contracts/src/codegen/world/IWorld.sol @@ -8,6 +8,7 @@ import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld. import { ICharacterSystem } from "./ICharacterSystem.sol"; import { ICombatSystem } from "./ICombatSystem.sol"; import { IItemsSystem } from "./IItemsSystem.sol"; +import { IMapSystem } from "./IMapSystem.sol"; import { IMobSystem } from "./IMobSystem.sol"; import { IUltimateDominionConfigSystem } from "./IUltimateDominionConfigSystem.sol"; @@ -23,6 +24,7 @@ interface IWorld is ICharacterSystem, ICombatSystem, IItemsSystem, + IMapSystem, IMobSystem, IUltimateDominionConfigSystem {} diff --git a/packages/contracts/src/systems/MapSystem.sol b/packages/contracts/src/systems/MapSystem.sol new file mode 100644 index 00000000..e720211e --- /dev/null +++ b/packages/contracts/src/systems/MapSystem.sol @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.24; + +import { System } from "@latticexyz/world/src/System.sol"; +import { Characters, MapConfig, Position, Spawned } from "../codegen/index.sol"; + +contract MapSystem is System { + function move(uint256 characterId, uint32 x, uint32 y) public { + address owner = Characters.getOwner(characterId); + require(_msgSender() == owner, "Only the owner can move a character"); + + require(Spawned.getSpawned(characterId), "Character not spawned"); + + (uint32 currentX, uint32 currentY) = Position.get(characterId); + (uint32 height, uint32 width) = MapConfig.get(); + + require(x < width, "X out of bounds"); + require(y < height, "Y out of bounds"); + require(distance(currentX, currentY, x, y) == 1, "Can only move 1 tile at a time"); + + Position.set(characterId, x, y); + } + + function spawn(uint256 characterId) public { + address owner = Characters.getOwner(characterId); + require(_msgSender() == owner, "Only the owner can spawn a character"); + + require(!Spawned.getSpawned(characterId), "Character already spawned"); + + Position.set(characterId, 0, 0); + Spawned.setSpawned(characterId, true); + } + + function distance(uint32 fromX, uint32 fromY, uint32 toX, uint32 toY) internal pure returns (uint32) { + uint32 deltaX = fromX > toX ? fromX - toX : toX - fromX; + uint32 deltaY = fromY > toY ? fromY - toY : toY - fromY; + return deltaX + deltaY; + } +}