@latticexyz/world 2.0.0-main-cf2104eb → 2.0.0-main-fe005ee0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/ts/node/index.js +10 -9
  2. package/dist/ts/node/index.js.map +1 -1
  3. package/out/AccessControl.sol/AccessControl.json +19 -19
  4. package/out/AccessManagementSystem.sol/AccessManagementSystem.json +281 -302
  5. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +443 -465
  6. package/out/Balances.sol/Balances.json +894 -894
  7. package/out/BatchCallSystem.sol/BatchCallSystem.json +533 -557
  8. package/out/CoreModule.sol/CoreModule.json +706 -741
  9. package/out/CoreSystem.sol/CoreSystem.json +197 -354
  10. package/out/Delegation.sol/Delegation.json +31 -31
  11. package/out/DelegationControl.sol/DelegationControl.json +13 -13
  12. package/out/DelegationControlMock.sol/DelegationControlMock.json +89 -89
  13. package/out/FunctionSelectors.sol/FunctionSelectors.json +1329 -1329
  14. package/out/FunctionSignatures.sol/FunctionSignatures.json +16 -16
  15. package/out/Hook.sol/HookInstance.json +13 -13
  16. package/out/Hook.sol/HookLib.json +13 -13
  17. package/out/Hooks.sol/Hooks.json +2872 -2872
  18. package/out/IBaseWorld.sol/IBaseWorld.json +67 -67
  19. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +19 -19
  20. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +13 -13
  21. package/out/InstalledModules.sol/InstalledModules.json +990 -990
  22. package/out/Module.sol/Module.json +13 -13
  23. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +194 -201
  24. package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +940 -940
  25. package/out/NamespaceOwner.sol/NamespaceOwner.json +894 -894
  26. package/out/ResourceAccess.sol/ResourceAccess.json +1216 -1216
  27. package/out/ResourceIds.sol/ResourceIds.json +919 -919
  28. package/out/StoreCore.sol/StoreCore.json +13 -13
  29. package/out/StoreCore.sol/StoreCoreInternal.json +13 -13
  30. package/out/StoreData.sol/StoreData.json +40 -40
  31. package/out/StoreHooks.sol/StoreHooks.json +2647 -2647
  32. package/out/StoreRead.sol/StoreRead.json +14 -14
  33. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +578 -604
  34. package/out/StoreSwitch.sol/StoreSwitch.json +13 -13
  35. package/out/System.sol/System.json +13 -13
  36. package/out/SystemCall.sol/SystemCall.json +42 -42
  37. package/out/SystemHooks.sol/SystemHooks.json +2672 -2672
  38. package/out/SystemRegistry.sol/SystemRegistry.json +988 -988
  39. package/out/Systems.sol/Systems.json +1396 -1396
  40. package/out/Tables.sol/Tables.json +4611 -4611
  41. package/out/UserDelegationControl.sol/UserDelegationControl.json +1276 -1276
  42. package/out/Utils.sol/Utils.json +16 -16
  43. package/out/World.sol/World.json +84 -84
  44. package/out/WorldContext.sol/WorldContextConsumer.json +18 -18
  45. package/out/WorldContext.sol/WorldContextProvider.json +18 -18
  46. package/out/WorldFactory.sol/WorldFactory.json +49 -49
  47. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1676 -1751
  48. package/out/WorldResourceId.sol/WorldResourceIdInstance.json +7 -7
  49. package/out/WorldResourceId.sol/WorldResourceIdLib.json +7 -7
  50. package/out/codegen/tables/AddressArray.sol/AddressArray.json +5727 -5727
  51. package/out/codegen/tables/Bool.sol/Bool.json +1829 -1829
  52. package/out/codegen/tables/TwoFields.sol/TwoFields.json +3173 -3173
  53. package/out/constants.sol/constants.json +68 -68
  54. package/out/index.sol/index.json +23 -23
  55. package/out/requireInterface.sol/requireInterface.json +59 -59
  56. package/out/revertWithBytes.sol/revertWithBytes.json +15 -15
  57. package/out/src/FieldLayout.sol/FieldLayoutInstance.json +47 -47
  58. package/out/src/FieldLayout.sol/FieldLayoutLib.json +47 -47
  59. package/out/src/Hook.sol/HookInstance.json +22 -22
  60. package/out/src/Hook.sol/HookLib.json +22 -22
  61. package/out/src/IStore.sol/IStore.json +31 -31
  62. package/out/src/IStoreHook.sol/IStoreHook.json +8 -8
  63. package/out/src/Memory.sol/Memory.json +4 -4
  64. package/out/src/Schema.sol/SchemaInstance.json +42 -42
  65. package/out/src/Schema.sol/SchemaLib.json +42 -42
  66. package/out/src/Slice.sol/SliceInstance.json +4 -4
  67. package/out/src/Slice.sol/SliceLib.json +4 -4
  68. package/out/src/StoreCore.sol/StoreCore.json +177 -177
  69. package/out/src/StoreCore.sol/StoreCoreInternal.json +177 -177
  70. package/out/src/StoreSwitch.sol/StoreSwitch.json +39 -39
  71. package/out/systemHookTypes.sol/systemHookTypes.json +25 -25
  72. package/out/tables/AddressArray.sol/AddressArray.json +3123 -3123
  73. package/out/tables/Bool.sol/Bool.json +1085 -1085
  74. package/out/tables/ResourceIds.sol/ResourceIds.json +925 -925
  75. package/out/tables/TwoFields.sol/TwoFields.json +1835 -1835
  76. package/out/tightcoder/EncodeArray.sol/EncodeArray.json +297 -297
  77. package/out/types.sol/types.json +52 -64
  78. package/out/version.sol/version.json +7 -7
  79. package/out/worldResourceTypes.sol/worldResourceTypes.json +48 -48
  80. package/package.json +7 -7
  81. package/src/codegen/interfaces/IBaseWorld.sol +3 -2
  82. package/src/codegen/tables/Balances.sol +36 -12
  83. package/src/codegen/tables/FunctionSelectors.sol +36 -12
  84. package/src/codegen/tables/InstalledModules.sol +36 -12
  85. package/src/codegen/tables/NamespaceDelegationControl.sol +36 -12
  86. package/src/codegen/tables/NamespaceOwner.sol +36 -12
  87. package/src/codegen/tables/ResourceAccess.sol +36 -12
  88. package/src/codegen/tables/SystemHooks.sol +114 -54
  89. package/src/codegen/tables/SystemRegistry.sol +36 -12
  90. package/src/codegen/tables/Systems.sol +36 -12
  91. package/src/codegen/tables/UserDelegationControl.sol +36 -12
  92. package/src/modules/core/CoreModule.sol +11 -26
  93. package/src/modules/core/CoreSystem.sol +3 -3
  94. package/src/modules/core/constants.sol +0 -8
  95. package/src/modules/core/implementations/AccessManagementSystem.sol +8 -14
  96. package/src/modules/core/implementations/BalanceTransferSystem.sol +2 -14
  97. package/src/modules/core/implementations/BatchCallSystem.sol +2 -12
  98. package/src/modules/core/implementations/ModuleInstallationSystem.sol +2 -7
  99. package/src/modules/core/implementations/StoreRegistrationSystem.sol +6 -22
  100. package/src/modules/core/implementations/WorldRegistrationSystem.sol +13 -45
  101. package/src/modules/core/types.sol +0 -15
  102. package/ts/node/render-solidity/renderWorld.ts +3 -2
@@ -1,7 +1,7 @@
1
- import{c as u}from"../../chunk-LIKHOVM7.js";import{renderArguments as c,renderList as y,renderedSolidityHeader as O,renderImports as A}from"@latticexyz/common/codegen";function I(e){let{imports:r,name:i,functionPrefix:s,functions:o,errors:m}=e;return`
1
+ import{c as u}from"../../chunk-LIKHOVM7.js";import{renderArguments as c,renderList as y,renderedSolidityHeader as O,renderImports as v}from"@latticexyz/common/codegen";function I(e){let{imports:r,name:i,functionPrefix:s,functions:o,errors:m}=e;return`
2
2
  ${O}
3
3
 
4
- ${A(r)}
4
+ ${v(r)}
5
5
 
6
6
  interface ${i} {
7
7
  ${y(m,({name:n,parameters:a})=>`error ${n}(${c(a)});`)}
@@ -9,21 +9,22 @@ import{c as u}from"../../chunk-LIKHOVM7.js";import{renderArguments as c,renderLi
9
9
  ${y(o,({name:n,parameters:a,stateMutability:f,returnParameters:t})=>`
10
10
  function ${s}${n}(
11
11
  ${c(a)}
12
- ) external ${f} ${D(t)};
12
+ ) external ${f} ${A(t)};
13
13
  `)}
14
14
  }
15
- `}function D(e){return e.length>0?`returns (${c(e)})`:""}import{renderArguments as j,renderedSolidityHeader as v,renderAbsoluteImports as C,renderRelativeImports as N}from"@latticexyz/common/codegen";function h(e){let{interfaceName:r,storeImportPath:i,worldImportPath:s,imports:o}=e,m=r==="IBaseWorld"?[{symbol:"IStore",path:`${i}IStore.sol`},{symbol:"IWorldKernel",path:`${s}IWorldKernel.sol`}]:[{symbol:"IBaseWorld",path:`${s}codegen/interfaces/IBaseWorld.sol`}],n=[...m,...o].map(({symbol:a})=>a);return`
16
- ${v}
15
+ `}function A(e){return e.length>0?`returns (${c(e)})`:""}import{renderArguments as D,renderedSolidityHeader as j,renderAbsoluteImports as C,renderRelativeImports as N}from"@latticexyz/common/codegen";function h(e){let{interfaceName:r,storeImportPath:i,worldImportPath:s,imports:o}=e,m=r==="IBaseWorld"?[{symbol:"IStore",path:`${i}IStore.sol`},{symbol:"IWorldKernel",path:`${s}IWorldKernel.sol`}]:[{symbol:"IBaseWorld",path:`${s}codegen/interfaces/IBaseWorld.sol`}],n=[...m,...o].map(({symbol:a})=>a);return`
16
+ ${j}
17
17
 
18
18
  ${C(m)}
19
19
 
20
20
  ${N(o)}
21
21
 
22
22
  /**
23
- * The ${r} interface includes all systems dynamically added to the World
24
- * during the deploy process.
23
+ * @title ${r}
24
+ * @notice This interface integrates all systems that are dynamically added to the World during deployment.
25
+ * @dev This is an autogenerated file; do not edit manually.
25
26
  */
26
- interface ${r} is ${j(n)} {
27
+ interface ${r} is ${D(n)} {
27
28
  }
28
- `}import{readFileSync as B}from"fs";import d from"path";import{formatAndWriteSolidity as $,contractToInterface as G}from"@latticexyz/common/codegen";async function M(e,r,i){let s=u(e,r.map(({basename:t})=>t)),o=d.join(i,e.worldgenDirectory),m=r.filter(({basename:t})=>Object.keys(s.systems).includes(t)),n=[];for(let t of m){let b=B(t.path,"utf8"),{functions:P,errors:W,symbolImports:S}=G(b,t.basename),g=S.map(p=>p.path[0]==="."?{symbol:p.symbol,fromPath:d.join(d.dirname(t.path),p.path),usedInPath:o}:{symbol:p.symbol,path:p.path}),l=`I${t.basename}`,{name:w}=s.systems[t.basename],x=I({name:l,functionPrefix:e.namespace===""?"":`${e.namespace}_${w}_`,functions:P,errors:W,imports:g}),R=d.join(o,l+".sol");await $(x,R,"Generated system interface"),n.push({symbol:l,fromPath:`${l}.sol`,usedInPath:"./"})}let a=h({interfaceName:e.worldInterfaceName,imports:n,storeImportPath:e.storeImportPath,worldImportPath:e.worldImportPath}),f=d.join(o,e.worldInterfaceName+".sol");await $(a,f,"Generated system interface")}export{I as renderSystemInterface,h as renderWorld,M as worldgen};
29
+ `}import{readFileSync as B}from"fs";import l from"path";import{formatAndWriteSolidity as $,contractToInterface as T}from"@latticexyz/common/codegen";async function M(e,r,i){let s=u(e,r.map(({basename:t})=>t)),o=l.join(i,e.worldgenDirectory),m=r.filter(({basename:t})=>Object.keys(s.systems).includes(t)),n=[];for(let t of m){let b=B(t.path,"utf8"),{functions:P,errors:W,symbolImports:S}=T(b,t.basename),g=S.map(d=>d.path[0]==="."?{symbol:d.symbol,fromPath:l.join(l.dirname(t.path),d.path),usedInPath:o}:{symbol:d.symbol,path:d.path}),p=`I${t.basename}`,{name:w}=s.systems[t.basename],x=I({name:p,functionPrefix:e.namespace===""?"":`${e.namespace}_${w}_`,functions:P,errors:W,imports:g}),R=l.join(o,p+".sol");await $(x,R,"Generated system interface"),n.push({symbol:p,fromPath:`${p}.sol`,usedInPath:"./"})}let a=h({interfaceName:e.worldInterfaceName,imports:n,storeImportPath:e.storeImportPath,worldImportPath:e.worldImportPath}),f=l.join(o,e.worldInterfaceName+".sol");await $(a,f,"Generated system interface")}export{I as renderSystemInterface,h as renderWorld,M as worldgen};
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../ts/node/render-solidity/renderSystemInterface.ts","../../../ts/node/render-solidity/renderWorld.ts","../../../ts/node/render-solidity/worldgen.ts"],"sourcesContent":["import { renderArguments, renderList, renderedSolidityHeader, renderImports } from \"@latticexyz/common/codegen\";\nimport { RenderSystemInterfaceOptions } from \"./types\";\n\nexport function renderSystemInterface(options: RenderSystemInterfaceOptions) {\n const { imports, name, functionPrefix, functions, errors } = options;\n\n return `\n ${renderedSolidityHeader}\n\n ${renderImports(imports)}\n\n interface ${name} {\n ${renderList(errors, ({ name, parameters }) => `error ${name}(${renderArguments(parameters)});`)}\n\n ${renderList(\n functions,\n ({ name, parameters, stateMutability, returnParameters }) => `\n function ${functionPrefix}${name}(\n ${renderArguments(parameters)}\n ) external ${stateMutability} ${renderReturnParameters(returnParameters)};\n `\n )}\n }\n `;\n}\n\nfunction renderReturnParameters(returnParameters: string[]) {\n if (returnParameters.length > 0) {\n return `returns (${renderArguments(returnParameters)})`;\n } else {\n return \"\";\n }\n}\n","import {\n renderArguments,\n renderedSolidityHeader,\n renderAbsoluteImports,\n renderRelativeImports,\n type AbsoluteImportDatum,\n} from \"@latticexyz/common/codegen\";\nimport type { RenderWorldOptions } from \"./types\";\n\nexport function renderWorld(options: RenderWorldOptions) {\n const { interfaceName, storeImportPath, worldImportPath, imports } = options;\n const baseImports: AbsoluteImportDatum[] =\n interfaceName === \"IBaseWorld\"\n ? [\n { symbol: \"IStore\", path: `${storeImportPath}IStore.sol` },\n { symbol: \"IWorldKernel\", path: `${worldImportPath}IWorldKernel.sol` },\n ]\n : [\n {\n symbol: \"IBaseWorld\",\n path: `${worldImportPath}codegen/interfaces/IBaseWorld.sol`,\n },\n ];\n const importSymbols = [...baseImports, ...imports].map(({ symbol }) => symbol);\n\n return `\n ${renderedSolidityHeader}\n\n ${renderAbsoluteImports(baseImports)}\n\n ${renderRelativeImports(imports)}\n\n /**\n * The ${interfaceName} interface includes all systems dynamically added to the World\n * during the deploy process.\n */\n interface ${interfaceName} is ${renderArguments(importSymbols)} {\n }\n `;\n}\n","import { readFileSync } from \"fs\";\nimport path from \"path\";\nimport { formatAndWriteSolidity, contractToInterface, type RelativeImportDatum } from \"@latticexyz/common/codegen\";\nimport { StoreConfig } from \"@latticexyz/store\";\nimport { renderSystemInterface } from \"./renderSystemInterface\";\nimport { renderWorld } from \"./renderWorld\";\nimport { resolveWorldConfig, WorldConfig } from \"../../library/config\";\n\nexport async function worldgen(\n config: StoreConfig & WorldConfig,\n existingContracts: { path: string; basename: string }[],\n outputBaseDirectory: string\n) {\n const resolvedConfig = resolveWorldConfig(\n config,\n existingContracts.map(({ basename }) => basename)\n );\n\n const worldgenBaseDirectory = path.join(outputBaseDirectory, config.worldgenDirectory);\n const systems = existingContracts.filter(({ basename }) => Object.keys(resolvedConfig.systems).includes(basename));\n\n const systemInterfaceImports: RelativeImportDatum[] = [];\n for (const system of systems) {\n const data = readFileSync(system.path, \"utf8\");\n // get external funcions from a contract\n const { functions, errors, symbolImports } = contractToInterface(data, system.basename);\n const imports = symbolImports.map((symbolImport) => {\n if (symbolImport.path[0] === \".\") {\n // relative import\n return {\n symbol: symbolImport.symbol,\n fromPath: path.join(path.dirname(system.path), symbolImport.path),\n usedInPath: worldgenBaseDirectory,\n };\n } else {\n // absolute import\n return {\n symbol: symbolImport.symbol,\n path: symbolImport.path,\n };\n }\n });\n const systemInterfaceName = `I${system.basename}`;\n // create an interface using the external functions and imports\n const { name } = resolvedConfig.systems[system.basename];\n const output = renderSystemInterface({\n name: systemInterfaceName,\n functionPrefix: config.namespace === \"\" ? \"\" : `${config.namespace}_${name}_`,\n functions,\n errors,\n imports,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, systemInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n\n // prepare imports for IWorld\n systemInterfaceImports.push({\n symbol: systemInterfaceName,\n fromPath: `${systemInterfaceName}.sol`,\n usedInPath: \"./\",\n });\n }\n\n // render IWorld\n const output = renderWorld({\n interfaceName: config.worldInterfaceName,\n imports: systemInterfaceImports,\n storeImportPath: config.storeImportPath,\n worldImportPath: config.worldImportPath,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, config.worldInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n}\n"],"mappings":"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","names":["renderArguments","renderList","renderedSolidityHeader","renderImports","renderSystemInterface","options","imports","name","functionPrefix","functions","errors","parameters","stateMutability","returnParameters","renderReturnParameters","renderArguments","renderedSolidityHeader","renderAbsoluteImports","renderRelativeImports","renderWorld","options","interfaceName","storeImportPath","worldImportPath","imports","baseImports","importSymbols","symbol","readFileSync","path","formatAndWriteSolidity","contractToInterface","worldgen","config","existingContracts","outputBaseDirectory","resolvedConfig","resolveWorldConfig","basename","worldgenBaseDirectory","path","systems","systemInterfaceImports","system","data","readFileSync","functions","errors","symbolImports","contractToInterface","imports","symbolImport","systemInterfaceName","name","output","renderSystemInterface","fullOutputPath","formatAndWriteSolidity","renderWorld"]}
1
+ {"version":3,"sources":["../../../ts/node/render-solidity/renderSystemInterface.ts","../../../ts/node/render-solidity/renderWorld.ts","../../../ts/node/render-solidity/worldgen.ts"],"sourcesContent":["import { renderArguments, renderList, renderedSolidityHeader, renderImports } from \"@latticexyz/common/codegen\";\nimport { RenderSystemInterfaceOptions } from \"./types\";\n\nexport function renderSystemInterface(options: RenderSystemInterfaceOptions) {\n const { imports, name, functionPrefix, functions, errors } = options;\n\n return `\n ${renderedSolidityHeader}\n\n ${renderImports(imports)}\n\n interface ${name} {\n ${renderList(errors, ({ name, parameters }) => `error ${name}(${renderArguments(parameters)});`)}\n\n ${renderList(\n functions,\n ({ name, parameters, stateMutability, returnParameters }) => `\n function ${functionPrefix}${name}(\n ${renderArguments(parameters)}\n ) external ${stateMutability} ${renderReturnParameters(returnParameters)};\n `\n )}\n }\n `;\n}\n\nfunction renderReturnParameters(returnParameters: string[]) {\n if (returnParameters.length > 0) {\n return `returns (${renderArguments(returnParameters)})`;\n } else {\n return \"\";\n }\n}\n","import {\n renderArguments,\n renderedSolidityHeader,\n renderAbsoluteImports,\n renderRelativeImports,\n type AbsoluteImportDatum,\n} from \"@latticexyz/common/codegen\";\nimport type { RenderWorldOptions } from \"./types\";\n\nexport function renderWorld(options: RenderWorldOptions) {\n const { interfaceName, storeImportPath, worldImportPath, imports } = options;\n const baseImports: AbsoluteImportDatum[] =\n interfaceName === \"IBaseWorld\"\n ? [\n { symbol: \"IStore\", path: `${storeImportPath}IStore.sol` },\n { symbol: \"IWorldKernel\", path: `${worldImportPath}IWorldKernel.sol` },\n ]\n : [\n {\n symbol: \"IBaseWorld\",\n path: `${worldImportPath}codegen/interfaces/IBaseWorld.sol`,\n },\n ];\n const importSymbols = [...baseImports, ...imports].map(({ symbol }) => symbol);\n\n return `\n ${renderedSolidityHeader}\n\n ${renderAbsoluteImports(baseImports)}\n\n ${renderRelativeImports(imports)}\n\n /**\n * @title ${interfaceName}\n * @notice This interface integrates all systems that are dynamically added to the World during deployment.\n * @dev This is an autogenerated file; do not edit manually.\n */\n interface ${interfaceName} is ${renderArguments(importSymbols)} {\n }\n `;\n}\n","import { readFileSync } from \"fs\";\nimport path from \"path\";\nimport { formatAndWriteSolidity, contractToInterface, type RelativeImportDatum } from \"@latticexyz/common/codegen\";\nimport { StoreConfig } from \"@latticexyz/store\";\nimport { renderSystemInterface } from \"./renderSystemInterface\";\nimport { renderWorld } from \"./renderWorld\";\nimport { resolveWorldConfig, WorldConfig } from \"../../library/config\";\n\nexport async function worldgen(\n config: StoreConfig & WorldConfig,\n existingContracts: { path: string; basename: string }[],\n outputBaseDirectory: string\n) {\n const resolvedConfig = resolveWorldConfig(\n config,\n existingContracts.map(({ basename }) => basename)\n );\n\n const worldgenBaseDirectory = path.join(outputBaseDirectory, config.worldgenDirectory);\n const systems = existingContracts.filter(({ basename }) => Object.keys(resolvedConfig.systems).includes(basename));\n\n const systemInterfaceImports: RelativeImportDatum[] = [];\n for (const system of systems) {\n const data = readFileSync(system.path, \"utf8\");\n // get external funcions from a contract\n const { functions, errors, symbolImports } = contractToInterface(data, system.basename);\n const imports = symbolImports.map((symbolImport) => {\n if (symbolImport.path[0] === \".\") {\n // relative import\n return {\n symbol: symbolImport.symbol,\n fromPath: path.join(path.dirname(system.path), symbolImport.path),\n usedInPath: worldgenBaseDirectory,\n };\n } else {\n // absolute import\n return {\n symbol: symbolImport.symbol,\n path: symbolImport.path,\n };\n }\n });\n const systemInterfaceName = `I${system.basename}`;\n // create an interface using the external functions and imports\n const { name } = resolvedConfig.systems[system.basename];\n const output = renderSystemInterface({\n name: systemInterfaceName,\n functionPrefix: config.namespace === \"\" ? \"\" : `${config.namespace}_${name}_`,\n functions,\n errors,\n imports,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, systemInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n\n // prepare imports for IWorld\n systemInterfaceImports.push({\n symbol: systemInterfaceName,\n fromPath: `${systemInterfaceName}.sol`,\n usedInPath: \"./\",\n });\n }\n\n // render IWorld\n const output = renderWorld({\n interfaceName: config.worldInterfaceName,\n imports: systemInterfaceImports,\n storeImportPath: config.storeImportPath,\n worldImportPath: config.worldImportPath,\n });\n // write to file\n const fullOutputPath = path.join(worldgenBaseDirectory, config.worldInterfaceName + \".sol\");\n await formatAndWriteSolidity(output, fullOutputPath, \"Generated system interface\");\n}\n"],"mappings":"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","names":["renderArguments","renderList","renderedSolidityHeader","renderImports","renderSystemInterface","options","imports","name","functionPrefix","functions","errors","parameters","stateMutability","returnParameters","renderReturnParameters","renderArguments","renderedSolidityHeader","renderAbsoluteImports","renderRelativeImports","renderWorld","options","interfaceName","storeImportPath","worldImportPath","imports","baseImports","importSymbols","symbol","readFileSync","path","formatAndWriteSolidity","contractToInterface","worldgen","config","existingContracts","outputBaseDirectory","resolvedConfig","resolveWorldConfig","basename","worldgenBaseDirectory","path","systems","systemInterfaceImports","system","data","readFileSync","functions","errors","symbolImports","contractToInterface","imports","symbolImport","systemInterfaceName","name","output","renderSystemInterface","fullOutputPath","formatAndWriteSolidity","renderWorld"]}
@@ -11,7 +11,7 @@
11
11
  "linkReferences": {}
12
12
  },
13
13
  "methodIdentifiers": {},
14
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides access control functions for checking permissions and ownership within a namespace.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"AccessControl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":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\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xb36724e0369ad053579ec04b9b51707dd8dcc4a72b38404cebdf018ce40bf202\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8745e1632b7ee94f128600837a36ae53fabaf73c506b0c6d1cae70ea2e9b086\",\"dweb:/ipfs/QmXuMqmybWjEPqWEx91DTM7KAUyxAmDcsj7riBfCfA427N\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0xadb7ac513012e59b66ca70b786eec1465f6b44ae268765de6d8ae1f1a9531192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa59a7d190154d7eba8fa6b5f0c6e5477f434a217f0e353c3b158a3c25895057\",\"dweb:/ipfs/QmeWTCwGJwZjjYYKdaSSWa1rzc4Uo4YXMUDotTQfdSCtRD\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd54d6067a7a8683c446c5c88c1a4b0019caca1cddcde8583f83a8f13f172a923\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f85e55447a4fdad532dd84e1ba7c169603848d210fc461b32dc57fd7b6b72410\",\"dweb:/ipfs/Qmejcoi7J3Ad5RZdndJsDQqRfmKs6FKW9aksALFvkxmm41\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x1a113ae394de69ca1db7e9acb1886eaee3967dcfed46fc78497e77bc26dd778f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://091e04dc9e8d5b3a492d1d39a6d06fd5b4bad3c282bd4c06a38d92bec3422513\",\"dweb:/ipfs/QmbfMi1bH9RAs4JMDxKmhVqpAoyoVgN9nd7o11SakJC1zQ\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0x2a7392d937f372fbcd0ee9333a5af33e2630587b6e6dd714b1cebf75d8cdfc15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dca5e58374dc496bbc33fbe7b0c3774d3767662b23630a515a59b13d69fe66c\",\"dweb:/ipfs/QmU15fFKVtmYgGivVG3wJfCnRKjsJY2jdEjp75FFCqUN7t\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xa6d353df9033207ea4b6b13cb13535d6d9abd6963e7c27749c5ca2a9bf5f8cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2827bf5d86d2011cde150e8a4c6b39d187398831870407ca8aa065257f04954a\",\"dweb:/ipfs/QmanvEbRTpN5u2YYnk8hTupoWugFAKL7xbj6cHUaZQ83WG\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x237a6871db470dda42feb50f4f237c066daf599cda28e48458d533d639f2b3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca670b27fc6cc824223b6e99d307632baf9ee66a7d58cfbdcfca57e2d5eb1488\",\"dweb:/ipfs/QmVQx23VfsyYRvyRy5ZQEeUvNyfuK75DZ8EF4uKCGEQ4sr\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0xa1f69881bc1e225e4edccbf50a055b9e1933acf1951448bfc43cd5af08ae593f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db08db3902fcc2cf1034a45d4a482204a2a676398bdded6419c6c55954db4954\",\"dweb:/ipfs/QmSRcCucWgpnhztKpCnYR6ZhTXHMoPY59aBgKaPrsBQHsF\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0x2e138ee1e68db71495ee97f9df9e508d2c83d75cacab25db647f3ed7b43b22a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9029b6380c6a62e2b647bdafeede3deff7737d1049de52248d79151c7a786c9\",\"dweb:/ipfs/QmdqJdN3V2LqUrK2kWF9fDvAHFPLNspCsPD73ECFPudZAb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xdb1003aeef88489dbf32e8a10a581949c245aab7136f6a8786130ba448c628a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77265a1beb7dbd951ea342e63a7aac9572203df4ee3231b5337a90c847b7232e\",\"dweb:/ipfs/QmcX937Nv56V576CnnTc8ASH1BgsK6DsmQK93npmAdVAC5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x1d4be2832c255456d50862c8da907d8d10ce1f1245548165297172b9d323dbc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6908b829a035d07d33a1c219a7f98d3d5b88b8d7f19806cb7967fc05791a791\",\"dweb:/ipfs/QmWbx4snYp92MhQse6TvXUgLoaPhJJGzjzYHxMNPh1Vgd4\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x7ab92a0033d9a7a332464d50173d9a4343ed53c26152218f2125ad0517563d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db2be1de5a22c4a85565c28231e421934fbbf1fbfa195110323b4a4171c34b8c\",\"dweb:/ipfs/Qmcosfb89Mbosar4McEsZp9oaTgwisKNJwSPvRazpSpii3\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"src/AccessControl.sol\":{\"keccak256\":\"0x10ca29a5d7075edb2fe5cd559077fc34857129182f9d6ea074a234dfbcdb313e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fe2783b7d0592d14a20b8be192dd3fa4216f8e541adea579859ea2bf1224da3\",\"dweb:/ipfs/QmTi9XDP5jsQpbqvJxPvkqyDByv7i88wKidrYnTtLdPhka\"]},\"src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"src/WorldResourceId.sol\":{\"keccak256\":\"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb\",\"dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK\"]},\"src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0x3e856186b7875d7363a02180f662a71d96f52154596218e39b2f91c8846ec207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2e567be0ab62a30b2829895a29d87c083146ffe168f1eee9c52e4f350c46481\",\"dweb:/ipfs/QmbApJzh1NkFVSqHcAu9frXcGXDBS2PqQcer8uH83emFEs\"]},\"src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0x97022a837082a1ee63aff8a6f38e9859294138702ce060a6edce952cbacf96da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c2a7ab46b8072b28ce2451ebb023c8b8dd0dcd32851d366c5f8442185582ff5\",\"dweb:/ipfs/QmSoyWrjU7gCv1K7pNkcK8xWkWhjRi9yUC2e2L7zHBg39Q\"]},\"src/constants.sol\":{\"keccak256\":\"0x36c772d51a5da46fcddf88831194d6d331083b8c8246fa79107c4b697c258d77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d2656374c398a2b075d5f26d2ab2c3ea315c99912e52d8030d50f5f8fdda8ac\",\"dweb:/ipfs/QmSG8uJr2ZbFVnht5cTG6xb6XbB6f3kvnznks4BdeAMYET\"]},\"src/worldResourceTypes.sol\":{\"keccak256\":\"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2\",\"dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9\"]}},\"version\":1}",
14
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides access control functions for checking permissions and ownership within a namespace.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"AccessControl\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":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\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xb36724e0369ad053579ec04b9b51707dd8dcc4a72b38404cebdf018ce40bf202\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8745e1632b7ee94f128600837a36ae53fabaf73c506b0c6d1cae70ea2e9b086\",\"dweb:/ipfs/QmXuMqmybWjEPqWEx91DTM7KAUyxAmDcsj7riBfCfA427N\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0xadb7ac513012e59b66ca70b786eec1465f6b44ae268765de6d8ae1f1a9531192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa59a7d190154d7eba8fa6b5f0c6e5477f434a217f0e353c3b158a3c25895057\",\"dweb:/ipfs/QmeWTCwGJwZjjYYKdaSSWa1rzc4Uo4YXMUDotTQfdSCtRD\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd54d6067a7a8683c446c5c88c1a4b0019caca1cddcde8583f83a8f13f172a923\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f85e55447a4fdad532dd84e1ba7c169603848d210fc461b32dc57fd7b6b72410\",\"dweb:/ipfs/Qmejcoi7J3Ad5RZdndJsDQqRfmKs6FKW9aksALFvkxmm41\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x1a113ae394de69ca1db7e9acb1886eaee3967dcfed46fc78497e77bc26dd778f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://091e04dc9e8d5b3a492d1d39a6d06fd5b4bad3c282bd4c06a38d92bec3422513\",\"dweb:/ipfs/QmbfMi1bH9RAs4JMDxKmhVqpAoyoVgN9nd7o11SakJC1zQ\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0x2a7392d937f372fbcd0ee9333a5af33e2630587b6e6dd714b1cebf75d8cdfc15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dca5e58374dc496bbc33fbe7b0c3774d3767662b23630a515a59b13d69fe66c\",\"dweb:/ipfs/QmU15fFKVtmYgGivVG3wJfCnRKjsJY2jdEjp75FFCqUN7t\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xa6d353df9033207ea4b6b13cb13535d6d9abd6963e7c27749c5ca2a9bf5f8cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2827bf5d86d2011cde150e8a4c6b39d187398831870407ca8aa065257f04954a\",\"dweb:/ipfs/QmanvEbRTpN5u2YYnk8hTupoWugFAKL7xbj6cHUaZQ83WG\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x237a6871db470dda42feb50f4f237c066daf599cda28e48458d533d639f2b3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca670b27fc6cc824223b6e99d307632baf9ee66a7d58cfbdcfca57e2d5eb1488\",\"dweb:/ipfs/QmVQx23VfsyYRvyRy5ZQEeUvNyfuK75DZ8EF4uKCGEQ4sr\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0xa1f69881bc1e225e4edccbf50a055b9e1933acf1951448bfc43cd5af08ae593f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db08db3902fcc2cf1034a45d4a482204a2a676398bdded6419c6c55954db4954\",\"dweb:/ipfs/QmSRcCucWgpnhztKpCnYR6ZhTXHMoPY59aBgKaPrsBQHsF\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0x1341e0a658af398bc76bbcd0083a1111e4b2ad6892475b5ef2d1f235aefdf625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50e811e36ea9d16143de3d4281f7751e8f3b4210e3f74c21de588cc81a203a33\",\"dweb:/ipfs/QmaLJ3LA5KbgAqt7WAcAmyNVDtMfHKYmigKPVpdT8kjp5Y\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xfe70e9225008614c395dc141722e2a14898c074da2ca3af17c004cf9f26bcf2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97e47beaee1176814c508b86c3fbb8b714a93ab258b16e3a29df4ea5610b4347\",\"dweb:/ipfs/QmdvrFW9G7boaeUu6cWAEMNrPAs8Rp1un2GNjb5sSJMiBJ\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xf57c568d5edb295564c63d8b72040973b264a3c11b7b77df70522341d1834d77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://133b004d033eba9448765a16b5483dbbae42c1c5b7f0d66eb1d8a912e1f0fc7c\",\"dweb:/ipfs/QmdVjv3WqNjKyZaWXZEbX6wGBdmuDMjqGkZMKXqewQGxYd\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x47d550b6ed67615443624630360cb80897ddd4e220f704fb368747ec484eaf28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://508477622f0706b336cb319ec22c0f7e5272afdb102fa87d62fe85496d249492\",\"dweb:/ipfs/QmUGfRyWhVECSi7rjbCZYtXpkRWR2rF5uJQoEPMLx7Fmpq\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]},\"src/AccessControl.sol\":{\"keccak256\":\"0x10ca29a5d7075edb2fe5cd559077fc34857129182f9d6ea074a234dfbcdb313e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fe2783b7d0592d14a20b8be192dd3fa4216f8e541adea579859ea2bf1224da3\",\"dweb:/ipfs/QmTi9XDP5jsQpbqvJxPvkqyDByv7i88wKidrYnTtLdPhka\"]},\"src/IWorldErrors.sol\":{\"keccak256\":\"0xc3e7975e5785574543229eac51e3441f4185863d7f5346c0ae08a27b4541f8a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62cc0dc109e6e5475bb07fb95643a31c74337c23521db0557a36dad6117a1e83\",\"dweb:/ipfs/Qmb8jbE1XQTUdreKFr4Jw3xmjctaLuReRZjPxZKQ2uW9p4\"]},\"src/WorldResourceId.sol\":{\"keccak256\":\"0xb7bfae2890004001221b3902d185c14cfea0e606d16914f6b7f81cf112aa9417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acfd0d09166fc1bf16a8a5c80fbae1bd42426b2fcbab3c492bc836ea5c0375fb\",\"dweb:/ipfs/QmTzZWHVBkx8hipFVpgEwAbZpr4c6hfr7yf7R71JojT3NK\"]},\"src/codegen/tables/NamespaceOwner.sol\":{\"keccak256\":\"0xc2d34f6979604e524725bad107ef41d40a477dc982ebdf7746e7f33193b21be0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9169810a2f23411dbc14d34728f0d53e375713f93a352678a2f89d57dac74fdf\",\"dweb:/ipfs/QmUt6H5hjxp2cqWv665kWhwjEv1xCTH6Wa8zPk6rTHC7bK\"]},\"src/codegen/tables/ResourceAccess.sol\":{\"keccak256\":\"0x9be0cc9c5b9d210c114ab99bd0bf140bebfaf39a11dffcab73b7338c48f06a98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1fa0a2fb2abd63e5c1feec7cbb125be0a4264e45b324bf85bf9a75c047cfca\",\"dweb:/ipfs/QmTdDY2awcKbySu2Z5vGMyiNhHdpMrEmDDGPMXEGgi9wME\"]},\"src/constants.sol\":{\"keccak256\":\"0x36c772d51a5da46fcddf88831194d6d331083b8c8246fa79107c4b697c258d77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d2656374c398a2b075d5f26d2ab2c3ea315c99912e52d8030d50f5f8fdda8ac\",\"dweb:/ipfs/QmSG8uJr2ZbFVnht5cTG6xb6XbB6f3kvnznks4BdeAMYET\"]},\"src/worldResourceTypes.sol\":{\"keccak256\":\"0xe31ee781596541f60ed71ef327c9d26ffc899e7fb3f4991c67406518bfc00746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7b864fea8c77833a322b16c4673f110d5065d0cafcedecd07895699cf4258c2\",\"dweb:/ipfs/QmRkzXVjMLwQFWxjEjgfdXVPAp6SU4zfxPo4NJcmz8HwH9\"]}},\"version\":1}",
15
15
  "metadata": {
16
16
  "compiler": {
17
17
  "version": "0.8.21+commit.d9974bed"
@@ -226,34 +226,34 @@
226
226
  "license": "MIT"
227
227
  },
228
228
  "node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol": {
229
- "keccak256": "0x2e138ee1e68db71495ee97f9df9e508d2c83d75cacab25db647f3ed7b43b22a4",
229
+ "keccak256": "0x1341e0a658af398bc76bbcd0083a1111e4b2ad6892475b5ef2d1f235aefdf625",
230
230
  "urls": [
231
- "bzz-raw://c9029b6380c6a62e2b647bdafeede3deff7737d1049de52248d79151c7a786c9",
232
- "dweb:/ipfs/QmdqJdN3V2LqUrK2kWF9fDvAHFPLNspCsPD73ECFPudZAb"
231
+ "bzz-raw://50e811e36ea9d16143de3d4281f7751e8f3b4210e3f74c21de588cc81a203a33",
232
+ "dweb:/ipfs/QmaLJ3LA5KbgAqt7WAcAmyNVDtMfHKYmigKPVpdT8kjp5Y"
233
233
  ],
234
234
  "license": "MIT"
235
235
  },
236
236
  "node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol": {
237
- "keccak256": "0xdb1003aeef88489dbf32e8a10a581949c245aab7136f6a8786130ba448c628a1",
237
+ "keccak256": "0xfe70e9225008614c395dc141722e2a14898c074da2ca3af17c004cf9f26bcf2e",
238
238
  "urls": [
239
- "bzz-raw://77265a1beb7dbd951ea342e63a7aac9572203df4ee3231b5337a90c847b7232e",
240
- "dweb:/ipfs/QmcX937Nv56V576CnnTc8ASH1BgsK6DsmQK93npmAdVAC5"
239
+ "bzz-raw://97e47beaee1176814c508b86c3fbb8b714a93ab258b16e3a29df4ea5610b4347",
240
+ "dweb:/ipfs/QmdvrFW9G7boaeUu6cWAEMNrPAs8Rp1un2GNjb5sSJMiBJ"
241
241
  ],
242
242
  "license": "MIT"
243
243
  },
244
244
  "node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol": {
245
- "keccak256": "0x1d4be2832c255456d50862c8da907d8d10ce1f1245548165297172b9d323dbc4",
245
+ "keccak256": "0xf57c568d5edb295564c63d8b72040973b264a3c11b7b77df70522341d1834d77",
246
246
  "urls": [
247
- "bzz-raw://a6908b829a035d07d33a1c219a7f98d3d5b88b8d7f19806cb7967fc05791a791",
248
- "dweb:/ipfs/QmWbx4snYp92MhQse6TvXUgLoaPhJJGzjzYHxMNPh1Vgd4"
247
+ "bzz-raw://133b004d033eba9448765a16b5483dbbae42c1c5b7f0d66eb1d8a912e1f0fc7c",
248
+ "dweb:/ipfs/QmdVjv3WqNjKyZaWXZEbX6wGBdmuDMjqGkZMKXqewQGxYd"
249
249
  ],
250
250
  "license": "MIT"
251
251
  },
252
252
  "node_modules/@latticexyz/store/src/codegen/tables/Tables.sol": {
253
- "keccak256": "0x7ab92a0033d9a7a332464d50173d9a4343ed53c26152218f2125ad0517563d68",
253
+ "keccak256": "0x47d550b6ed67615443624630360cb80897ddd4e220f704fb368747ec484eaf28",
254
254
  "urls": [
255
- "bzz-raw://db2be1de5a22c4a85565c28231e421934fbbf1fbfa195110323b4a4171c34b8c",
256
- "dweb:/ipfs/Qmcosfb89Mbosar4McEsZp9oaTgwisKNJwSPvRazpSpii3"
255
+ "bzz-raw://508477622f0706b336cb319ec22c0f7e5272afdb102fa87d62fe85496d249492",
256
+ "dweb:/ipfs/QmUGfRyWhVECSi7rjbCZYtXpkRWR2rF5uJQoEPMLx7Fmpq"
257
257
  ],
258
258
  "license": "MIT"
259
259
  },
@@ -346,18 +346,18 @@
346
346
  "license": "MIT"
347
347
  },
348
348
  "src/codegen/tables/NamespaceOwner.sol": {
349
- "keccak256": "0x3e856186b7875d7363a02180f662a71d96f52154596218e39b2f91c8846ec207",
349
+ "keccak256": "0xc2d34f6979604e524725bad107ef41d40a477dc982ebdf7746e7f33193b21be0",
350
350
  "urls": [
351
- "bzz-raw://a2e567be0ab62a30b2829895a29d87c083146ffe168f1eee9c52e4f350c46481",
352
- "dweb:/ipfs/QmbApJzh1NkFVSqHcAu9frXcGXDBS2PqQcer8uH83emFEs"
351
+ "bzz-raw://9169810a2f23411dbc14d34728f0d53e375713f93a352678a2f89d57dac74fdf",
352
+ "dweb:/ipfs/QmUt6H5hjxp2cqWv665kWhwjEv1xCTH6Wa8zPk6rTHC7bK"
353
353
  ],
354
354
  "license": "MIT"
355
355
  },
356
356
  "src/codegen/tables/ResourceAccess.sol": {
357
- "keccak256": "0x97022a837082a1ee63aff8a6f38e9859294138702ce060a6edce952cbacf96da",
357
+ "keccak256": "0x9be0cc9c5b9d210c114ab99bd0bf140bebfaf39a11dffcab73b7338c48f06a98",
358
358
  "urls": [
359
- "bzz-raw://4c2a7ab46b8072b28ce2451ebb023c8b8dd0dcd32851d366c5f8442185582ff5",
360
- "dweb:/ipfs/QmSoyWrjU7gCv1K7pNkcK8xWkWhjRi9yUC2e2L7zHBg39Q"
359
+ "bzz-raw://9b1fa0a2fb2abd63e5c1feec7cbb125be0a4264e45b324bf85bf9a75c047cfca",
360
+ "dweb:/ipfs/QmTdDY2awcKbySu2Z5vGMyiNhHdpMrEmDDGPMXEGgi9wME"
361
361
  ],
362
362
  "license": "MIT"
363
363
  },