@latticexyz/world 2.2.19 → 2.2.20-06e48e0239a5c7994ce73b4d2752860743fec4b0

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 (236) hide show
  1. package/dist/{System.abi-ENBBMWQJ.js → System.abi-QE5PR27M.js} +2 -2
  2. package/dist/{System.abi-ENBBMWQJ.js.map → System.abi-QE5PR27M.js.map} +1 -1
  3. package/dist/{chunk-SGZK356L.js → chunk-PZKG3J66.js} +40 -21
  4. package/dist/chunk-PZKG3J66.js.map +1 -0
  5. package/dist/internal.js +1 -1
  6. package/dist/mud.config.d.ts +242 -131
  7. package/dist/mud.config.js +7 -5
  8. package/dist/node.js +21 -19
  9. package/dist/node.js.map +1 -1
  10. package/out/AccessControl.t.sol/AccessControlTest.json +1 -1
  11. package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json +1 -1
  12. package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json.d.ts +1 -1
  13. package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
  14. package/out/AccessManagementSystemLib.sol/AccessManagementSystemLib.abi.json +7 -0
  15. package/out/AccessManagementSystemLib.sol/AccessManagementSystemLib.abi.json.d.ts +9 -0
  16. package/out/AccessManagementSystemLib.sol/AccessManagementSystemLib.json +1 -0
  17. package/out/AccessManagementSystemLib.sol/_grantAccess_ResourceId_address.abi.json +20 -0
  18. package/out/AccessManagementSystemLib.sol/_grantAccess_ResourceId_address.abi.json.d.ts +22 -0
  19. package/out/AccessManagementSystemLib.sol/_grantAccess_ResourceId_address.json +1 -0
  20. package/out/AccessManagementSystemLib.sol/_renounceOwnership_ResourceId.abi.json +15 -0
  21. package/out/AccessManagementSystemLib.sol/_renounceOwnership_ResourceId.abi.json.d.ts +17 -0
  22. package/out/AccessManagementSystemLib.sol/_renounceOwnership_ResourceId.json +1 -0
  23. package/out/AccessManagementSystemLib.sol/_revokeAccess_ResourceId_address.abi.json +20 -0
  24. package/out/AccessManagementSystemLib.sol/_revokeAccess_ResourceId_address.abi.json.d.ts +22 -0
  25. package/out/AccessManagementSystemLib.sol/_revokeAccess_ResourceId_address.json +1 -0
  26. package/out/AccessManagementSystemLib.sol/_transferOwnership_ResourceId_address.abi.json +20 -0
  27. package/out/AccessManagementSystemLib.sol/_transferOwnership_ResourceId_address.abi.json.d.ts +22 -0
  28. package/out/AccessManagementSystemLib.sol/_transferOwnership_ResourceId_address.json +1 -0
  29. package/out/AddressArray.sol/AddressArray.json +1 -1
  30. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json +1 -1
  31. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json.d.ts +1 -1
  32. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
  33. package/out/BalanceTransferSystemLib.sol/BalanceTransferSystemLib.abi.json +7 -0
  34. package/out/BalanceTransferSystemLib.sol/BalanceTransferSystemLib.abi.json.d.ts +9 -0
  35. package/out/BalanceTransferSystemLib.sol/BalanceTransferSystemLib.json +1 -0
  36. package/out/BalanceTransferSystemLib.sol/_transferBalanceToAddress_ResourceId_address_uint256.abi.json +25 -0
  37. package/out/BalanceTransferSystemLib.sol/_transferBalanceToAddress_ResourceId_address_uint256.abi.json.d.ts +27 -0
  38. package/out/BalanceTransferSystemLib.sol/_transferBalanceToAddress_ResourceId_address_uint256.json +1 -0
  39. package/out/BalanceTransferSystemLib.sol/_transferBalanceToNamespace_ResourceId_ResourceId_uint256.abi.json +25 -0
  40. package/out/BalanceTransferSystemLib.sol/_transferBalanceToNamespace_ResourceId_ResourceId_uint256.abi.json.d.ts +27 -0
  41. package/out/BalanceTransferSystemLib.sol/_transferBalanceToNamespace_ResourceId_ResourceId_uint256.json +1 -0
  42. package/out/Balances.sol/Balances.json +1 -1
  43. package/out/BatchCall.t.sol/BatchCallTest.json +1 -1
  44. package/out/BatchCall.t.sol/TestSystem.abi.json +1 -1
  45. package/out/BatchCall.t.sol/TestSystem.abi.json.d.ts +1 -1
  46. package/out/BatchCall.t.sol/TestSystem.json +1 -1
  47. package/out/BatchCallSystem.sol/BatchCallSystem.abi.json +1 -1
  48. package/out/BatchCallSystem.sol/BatchCallSystem.abi.json.d.ts +1 -1
  49. package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
  50. package/out/BatchCallSystemLib.sol/BatchCallSystemLib.abi.json +7 -0
  51. package/out/BatchCallSystemLib.sol/BatchCallSystemLib.abi.json.d.ts +9 -0
  52. package/out/BatchCallSystemLib.sol/BatchCallSystemLib.json +1 -0
  53. package/out/BatchCallSystemLib.sol/_batchCallFrom_SystemCallFromDataArray.abi.json +32 -0
  54. package/out/BatchCallSystemLib.sol/_batchCallFrom_SystemCallFromDataArray.abi.json.d.ts +34 -0
  55. package/out/BatchCallSystemLib.sol/_batchCallFrom_SystemCallFromDataArray.json +1 -0
  56. package/out/BatchCallSystemLib.sol/_batchCall_SystemCallDataArray.abi.json +27 -0
  57. package/out/BatchCallSystemLib.sol/_batchCall_SystemCallDataArray.abi.json.d.ts +29 -0
  58. package/out/BatchCallSystemLib.sol/_batchCall_SystemCallDataArray.json +1 -0
  59. package/out/Bool.sol/Bool.json +1 -1
  60. package/out/Create2Factory.sol/Create2Factory.json +1 -1
  61. package/out/Delegation.sol/Delegation.json +1 -1
  62. package/out/DelegationControl.sol/DelegationControl.abi.json +1 -1
  63. package/out/DelegationControl.sol/DelegationControl.abi.json.d.ts +1 -1
  64. package/out/DelegationControl.sol/DelegationControl.json +1 -1
  65. package/out/DelegationControlMock.sol/DelegationControlMock.abi.json +1 -1
  66. package/out/DelegationControlMock.sol/DelegationControlMock.abi.json.d.ts +1 -1
  67. package/out/DelegationControlMock.sol/DelegationControlMock.json +1 -1
  68. package/out/EchoSubscriber.sol/EchoSubscriber.json +1 -1
  69. package/out/Factories.t.sol/FactoriesTest.json +1 -1
  70. package/out/FunctionSelectors.sol/FunctionSelectors.json +1 -1
  71. package/out/FunctionSignatures.sol/FunctionSignatures.json +1 -1
  72. package/out/GasReporter.sol/GasReporter.json +1 -1
  73. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +1 -1
  74. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +1 -1
  75. package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
  76. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
  77. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
  78. package/out/IRegistrationSystem.sol/IRegistrationSystem.json +1 -1
  79. package/out/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.abi.json +81 -0
  80. package/out/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.abi.json.d.ts +83 -0
  81. package/out/IStoreRegistrationSystem.sol/IStoreRegistrationSystem.json +1 -0
  82. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
  83. package/out/InitModule.sol/InitModule.abi.json +3 -3
  84. package/out/InitModule.sol/InitModule.abi.json.d.ts +3 -3
  85. package/out/InitModule.sol/InitModule.json +1 -1
  86. package/out/InitModule.t.sol/InitModuleTest.json +1 -1
  87. package/out/InitModule.t.sol/WorldMock.json +1 -1
  88. package/out/InitModuleAddress.sol/InitModuleAddress.json +1 -1
  89. package/out/InitSystems.t.sol/LimitedCallContextTest.json +1 -1
  90. package/out/InstalledModules.sol/InstalledModules.json +1 -1
  91. package/out/LimitedCallContext.sol/LimitedCallContext.json +1 -1
  92. package/out/Module.sol/Module.abi.json +1 -1
  93. package/out/Module.sol/Module.abi.json.d.ts +1 -1
  94. package/out/Module.sol/Module.json +1 -1
  95. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json +1 -1
  96. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json.d.ts +1 -1
  97. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
  98. package/out/ModuleInstallationSystemLib.sol/ModuleInstallationSystemLib.abi.json +7 -0
  99. package/out/ModuleInstallationSystemLib.sol/ModuleInstallationSystemLib.abi.json.d.ts +9 -0
  100. package/out/ModuleInstallationSystemLib.sol/ModuleInstallationSystemLib.json +1 -0
  101. package/out/ModuleInstallationSystemLib.sol/_installModule_IModule_bytes.abi.json +20 -0
  102. package/out/ModuleInstallationSystemLib.sol/_installModule_IModule_bytes.abi.json.d.ts +22 -0
  103. package/out/ModuleInstallationSystemLib.sol/_installModule_IModule_bytes.json +1 -0
  104. package/out/MudTest.t.sol/MudTest.json +1 -1
  105. package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
  106. package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
  107. package/out/RegistrationSystem.sol/RegistrationSystem.abi.json +1 -1
  108. package/out/RegistrationSystem.sol/RegistrationSystem.abi.json.d.ts +1 -1
  109. package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
  110. package/out/RegistrationSystemLib.sol/RegistrationSystemLib.abi.json +7 -0
  111. package/out/RegistrationSystemLib.sol/RegistrationSystemLib.abi.json.d.ts +9 -0
  112. package/out/RegistrationSystemLib.sol/RegistrationSystemLib.json +1 -0
  113. package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
  114. package/out/RevertSubscriber.sol/RevertSubscriber.json +1 -1
  115. package/out/RevertWithBytes.t.sol/RevertWithBytesTest.json +1 -1
  116. package/out/StdError.sol/stdError.json +1 -1
  117. package/out/StoreMock.sol/StoreMock.json +1 -1
  118. package/out/StoreRead.sol/StoreRead.json +1 -1
  119. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json +1 -1
  120. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json.d.ts +1 -1
  121. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
  122. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.abi.json +7 -0
  123. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.abi.json.d.ts +9 -0
  124. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.json +1 -0
  125. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.abi.json +25 -0
  126. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.abi.json.d.ts +27 -0
  127. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.json +1 -0
  128. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.abi.json +40 -0
  129. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.abi.json.d.ts +42 -0
  130. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.json +1 -0
  131. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.abi.json +20 -0
  132. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.abi.json.d.ts +22 -0
  133. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.json +1 -0
  134. package/out/System.sol/System.abi.json +1 -1
  135. package/out/System.sol/System.abi.json.d.ts +1 -1
  136. package/out/System.sol/System.json +1 -1
  137. package/out/System.t.sol/SystemTest.json +1 -1
  138. package/out/System.t.sol/TestSystem.abi.json +1 -1
  139. package/out/System.t.sol/TestSystem.abi.json.d.ts +1 -1
  140. package/out/System.t.sol/TestSystem.json +1 -1
  141. package/out/SystemCall.sol/SystemCall.json +1 -1
  142. package/out/SystemHook.t.sol/SystemHookTest.json +1 -1
  143. package/out/SystemHooks.sol/SystemHooks.json +1 -1
  144. package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
  145. package/out/Systems.sol/Systems.json +1 -1
  146. package/out/TwoFields.sol/TwoFields.json +1 -1
  147. package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
  148. package/out/Utils.t.sol/UtilsTest.json +1 -1
  149. package/out/Utils.t.sol/UtilsTestSystem.abi.json +1 -1
  150. package/out/Utils.t.sol/UtilsTestSystem.abi.json.d.ts +1 -1
  151. package/out/Utils.t.sol/UtilsTestSystem.json +1 -1
  152. package/out/World.sol/World.json +1 -1
  153. package/out/World.t.sol/EchoSystemHook.json +1 -1
  154. package/out/World.t.sol/IWorldTestSystem.json +1 -1
  155. package/out/World.t.sol/PayableFallbackSystem.abi.json +1 -1
  156. package/out/World.t.sol/PayableFallbackSystem.abi.json.d.ts +1 -1
  157. package/out/World.t.sol/PayableFallbackSystem.json +1 -1
  158. package/out/World.t.sol/RevertSystemHook.json +1 -1
  159. package/out/World.t.sol/WorldTest.json +1 -1
  160. package/out/World.t.sol/WorldTestSystem.abi.json +1 -1
  161. package/out/World.t.sol/WorldTestSystem.abi.json.d.ts +1 -1
  162. package/out/World.t.sol/WorldTestSystem.json +1 -1
  163. package/out/WorldBalance.t.sol/WorldBalanceTest.json +1 -1
  164. package/out/WorldBalance.t.sol/WorldBalanceTestSystem.abi.json +1 -1
  165. package/out/WorldBalance.t.sol/WorldBalanceTestSystem.abi.json.d.ts +1 -1
  166. package/out/WorldBalance.t.sol/WorldBalanceTestSystem.json +1 -1
  167. package/out/WorldContext.sol/WorldContextConsumer.abi.json +1 -1
  168. package/out/WorldContext.sol/WorldContextConsumer.abi.json.d.ts +1 -1
  169. package/out/WorldContext.sol/WorldContextConsumer.json +1 -1
  170. package/out/WorldContext.sol/WorldContextConsumerLib.json +1 -1
  171. package/out/WorldContext.sol/WorldContextProviderLib.json +1 -1
  172. package/out/WorldContext.t.sol/TestContextConsumer.abi.json +1 -1
  173. package/out/WorldContext.t.sol/TestContextConsumer.abi.json.d.ts +1 -1
  174. package/out/WorldContext.t.sol/TestContextConsumer.json +1 -1
  175. package/out/WorldContext.t.sol/WorldContextTest.json +1 -1
  176. package/out/WorldDynamicUpdate.t.sol/UpdateInDynamicFieldTest.json +1 -1
  177. package/out/WorldFactory.sol/WorldFactory.json +1 -1
  178. package/out/WorldProxy.sol/WorldProxy.json +1 -1
  179. package/out/WorldProxy.t.sol/WorldProxyTest.json +1 -1
  180. package/out/WorldProxyFactory.sol/WorldProxyFactory.json +1 -1
  181. package/out/WorldProxyFactory.t.sol/WorldProxyFactoryTest.json +1 -1
  182. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json +1 -1
  183. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json.d.ts +1 -1
  184. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
  185. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.abi.json +7 -0
  186. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.abi.json.d.ts +9 -0
  187. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.json +1 -0
  188. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.abi.json +25 -0
  189. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.abi.json.d.ts +27 -0
  190. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.json +1 -0
  191. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.abi.json +20 -0
  192. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.abi.json.d.ts +22 -0
  193. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.json +1 -0
  194. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.abi.json +25 -0
  195. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.abi.json.d.ts +27 -0
  196. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.json +1 -0
  197. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.abi.json +15 -0
  198. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.abi.json.d.ts +17 -0
  199. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.json +1 -0
  200. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.abi.json +25 -0
  201. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.abi.json.d.ts +27 -0
  202. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.json +1 -0
  203. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.abi.json +25 -0
  204. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.abi.json.d.ts +27 -0
  205. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.json +1 -0
  206. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.abi.json +25 -0
  207. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.abi.json.d.ts +27 -0
  208. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.json +1 -0
  209. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.abi.json +15 -0
  210. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.abi.json.d.ts +17 -0
  211. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.json +1 -0
  212. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.abi.json +15 -0
  213. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.abi.json.d.ts +17 -0
  214. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.json +1 -0
  215. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.abi.json +20 -0
  216. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.abi.json.d.ts +22 -0
  217. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.json +1 -0
  218. package/out/WorldResourceId.t.sol/WorldResourceIdTest.json +1 -1
  219. package/out/build-info/{27bef2dac23cc424daa40171c98ac387.json → 6366a746548e984842b93ef762b76b99.json} +1 -1
  220. package/out/test.sol/DSTest.json +1 -1
  221. package/package.json +9 -9
  222. package/src/Module.sol +21 -0
  223. package/src/WorldContext.sol +1 -1
  224. package/src/codegen/experimental/systems/AccessManagementSystemLib.sol +182 -0
  225. package/src/codegen/experimental/systems/BalanceTransferSystemLib.sol +169 -0
  226. package/src/codegen/experimental/systems/BatchCallSystemLib.sol +153 -0
  227. package/src/codegen/experimental/systems/ModuleInstallationSystemLib.sol +107 -0
  228. package/src/codegen/experimental/systems/RegistrationSystemLib.sol +71 -0
  229. package/src/codegen/experimental/systems/StoreRegistrationSystemLib.sol +228 -0
  230. package/src/codegen/experimental/systems/WorldRegistrationSystemLib.sol +471 -0
  231. package/src/codegen/interfaces/IStoreRegistrationSystem.sol +29 -0
  232. package/src/modules/init/InitModule.sol +0 -8
  233. package/src/modules/init/implementations/ModuleInstallationSystem.sol +1 -1
  234. package/src/modules/init/implementations/StoreRegistrationSystem.sol +2 -1
  235. package/src/modules/init/implementations/WorldRegistrationSystem.sol +1 -1
  236. package/dist/chunk-SGZK356L.js.map +0 -1
@@ -0,0 +1,471 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.8.24;
3
+
4
+ /* Autogenerated file. Do not edit manually. */
5
+
6
+ import { WorldRegistrationSystem } from "../../../modules/init/implementations/WorldRegistrationSystem.sol";
7
+ import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
8
+ import { ISystemHook } from "../../../ISystemHook.sol";
9
+ import { System } from "../../../System.sol";
10
+ import { revertWithBytes } from "../../../revertWithBytes.sol";
11
+ import { IWorldCall } from "../../../IWorldKernel.sol";
12
+ import { SystemCall } from "../../../SystemCall.sol";
13
+ import { WorldContextConsumerLib } from "../../../WorldContext.sol";
14
+ import { Systems } from "../../../codegen/tables/Systems.sol";
15
+ import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
16
+
17
+ type WorldRegistrationSystemType is bytes32;
18
+
19
+ // equivalent to WorldResourceIdLib.encode({ typeId: RESOURCE_SYSTEM, namespace: "", name: "Registration" }))
20
+ WorldRegistrationSystemType constant worldRegistrationSystem = WorldRegistrationSystemType.wrap(
21
+ 0x73790000000000000000000000000000526567697374726174696f6e00000000
22
+ );
23
+
24
+ struct CallWrapper {
25
+ ResourceId systemId;
26
+ address from;
27
+ }
28
+
29
+ struct RootCallWrapper {
30
+ ResourceId systemId;
31
+ address from;
32
+ }
33
+
34
+ /**
35
+ * @title WorldRegistrationSystemLib
36
+ * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
37
+ * @dev This library is automatically generated from the corresponding system contract. Do not edit manually.
38
+ */
39
+ library WorldRegistrationSystemLib {
40
+ error WorldRegistrationSystemLib_CallingFromRootSystem();
41
+
42
+ function registerNamespace(WorldRegistrationSystemType self, ResourceId namespaceId) internal {
43
+ return CallWrapper(self.toResourceId(), address(0)).registerNamespace(namespaceId);
44
+ }
45
+
46
+ function registerSystemHook(
47
+ WorldRegistrationSystemType self,
48
+ ResourceId systemId,
49
+ ISystemHook hookAddress,
50
+ uint8 enabledHooksBitmap
51
+ ) internal {
52
+ return CallWrapper(self.toResourceId(), address(0)).registerSystemHook(systemId, hookAddress, enabledHooksBitmap);
53
+ }
54
+
55
+ function unregisterSystemHook(
56
+ WorldRegistrationSystemType self,
57
+ ResourceId systemId,
58
+ ISystemHook hookAddress
59
+ ) internal {
60
+ return CallWrapper(self.toResourceId(), address(0)).unregisterSystemHook(systemId, hookAddress);
61
+ }
62
+
63
+ function registerSystem(
64
+ WorldRegistrationSystemType self,
65
+ ResourceId systemId,
66
+ System system,
67
+ bool publicAccess
68
+ ) internal {
69
+ return CallWrapper(self.toResourceId(), address(0)).registerSystem(systemId, system, publicAccess);
70
+ }
71
+
72
+ function registerFunctionSelector(
73
+ WorldRegistrationSystemType self,
74
+ ResourceId systemId,
75
+ string memory systemFunctionSignature
76
+ ) internal returns (bytes4 worldFunctionSelector) {
77
+ return CallWrapper(self.toResourceId(), address(0)).registerFunctionSelector(systemId, systemFunctionSignature);
78
+ }
79
+
80
+ function registerRootFunctionSelector(
81
+ WorldRegistrationSystemType self,
82
+ ResourceId systemId,
83
+ string memory worldFunctionSignature,
84
+ string memory systemFunctionSignature
85
+ ) internal returns (bytes4 worldFunctionSelector) {
86
+ return
87
+ CallWrapper(self.toResourceId(), address(0)).registerRootFunctionSelector(
88
+ systemId,
89
+ worldFunctionSignature,
90
+ systemFunctionSignature
91
+ );
92
+ }
93
+
94
+ function registerDelegation(
95
+ WorldRegistrationSystemType self,
96
+ address delegatee,
97
+ ResourceId delegationControlId,
98
+ bytes memory initCallData
99
+ ) internal {
100
+ return
101
+ CallWrapper(self.toResourceId(), address(0)).registerDelegation(delegatee, delegationControlId, initCallData);
102
+ }
103
+
104
+ function unregisterDelegation(WorldRegistrationSystemType self, address delegatee) internal {
105
+ return CallWrapper(self.toResourceId(), address(0)).unregisterDelegation(delegatee);
106
+ }
107
+
108
+ function registerNamespaceDelegation(
109
+ WorldRegistrationSystemType self,
110
+ ResourceId namespaceId,
111
+ ResourceId delegationControlId,
112
+ bytes memory initCallData
113
+ ) internal {
114
+ return
115
+ CallWrapper(self.toResourceId(), address(0)).registerNamespaceDelegation(
116
+ namespaceId,
117
+ delegationControlId,
118
+ initCallData
119
+ );
120
+ }
121
+
122
+ function unregisterNamespaceDelegation(WorldRegistrationSystemType self, ResourceId namespaceId) internal {
123
+ return CallWrapper(self.toResourceId(), address(0)).unregisterNamespaceDelegation(namespaceId);
124
+ }
125
+
126
+ function registerNamespace(CallWrapper memory self, ResourceId namespaceId) internal {
127
+ // if the contract calling this function is a root system, it should use `callAsRoot`
128
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
129
+
130
+ bytes memory systemCall = abi.encodeCall(_registerNamespace_ResourceId.registerNamespace, (namespaceId));
131
+ self.from == address(0)
132
+ ? _world().call(self.systemId, systemCall)
133
+ : _world().callFrom(self.from, self.systemId, systemCall);
134
+ }
135
+
136
+ function registerSystemHook(
137
+ CallWrapper memory self,
138
+ ResourceId systemId,
139
+ ISystemHook hookAddress,
140
+ uint8 enabledHooksBitmap
141
+ ) internal {
142
+ // if the contract calling this function is a root system, it should use `callAsRoot`
143
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
144
+
145
+ bytes memory systemCall = abi.encodeCall(
146
+ _registerSystemHook_ResourceId_ISystemHook_uint8.registerSystemHook,
147
+ (systemId, hookAddress, enabledHooksBitmap)
148
+ );
149
+ self.from == address(0)
150
+ ? _world().call(self.systemId, systemCall)
151
+ : _world().callFrom(self.from, self.systemId, systemCall);
152
+ }
153
+
154
+ function unregisterSystemHook(CallWrapper memory self, ResourceId systemId, ISystemHook hookAddress) internal {
155
+ // if the contract calling this function is a root system, it should use `callAsRoot`
156
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
157
+
158
+ bytes memory systemCall = abi.encodeCall(
159
+ _unregisterSystemHook_ResourceId_ISystemHook.unregisterSystemHook,
160
+ (systemId, hookAddress)
161
+ );
162
+ self.from == address(0)
163
+ ? _world().call(self.systemId, systemCall)
164
+ : _world().callFrom(self.from, self.systemId, systemCall);
165
+ }
166
+
167
+ function registerSystem(CallWrapper memory self, ResourceId systemId, System system, bool publicAccess) internal {
168
+ // if the contract calling this function is a root system, it should use `callAsRoot`
169
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
170
+
171
+ bytes memory systemCall = abi.encodeCall(
172
+ _registerSystem_ResourceId_System_bool.registerSystem,
173
+ (systemId, system, publicAccess)
174
+ );
175
+ self.from == address(0)
176
+ ? _world().call(self.systemId, systemCall)
177
+ : _world().callFrom(self.from, self.systemId, systemCall);
178
+ }
179
+
180
+ function registerFunctionSelector(
181
+ CallWrapper memory self,
182
+ ResourceId systemId,
183
+ string memory systemFunctionSignature
184
+ ) internal returns (bytes4 worldFunctionSelector) {
185
+ // if the contract calling this function is a root system, it should use `callAsRoot`
186
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
187
+
188
+ bytes memory systemCall = abi.encodeCall(
189
+ _registerFunctionSelector_ResourceId_string.registerFunctionSelector,
190
+ (systemId, systemFunctionSignature)
191
+ );
192
+
193
+ bytes memory result = self.from == address(0)
194
+ ? _world().call(self.systemId, systemCall)
195
+ : _world().callFrom(self.from, self.systemId, systemCall);
196
+ return abi.decode(result, (bytes4));
197
+ }
198
+
199
+ function registerRootFunctionSelector(
200
+ CallWrapper memory self,
201
+ ResourceId systemId,
202
+ string memory worldFunctionSignature,
203
+ string memory systemFunctionSignature
204
+ ) internal returns (bytes4 worldFunctionSelector) {
205
+ // if the contract calling this function is a root system, it should use `callAsRoot`
206
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
207
+
208
+ bytes memory systemCall = abi.encodeCall(
209
+ _registerRootFunctionSelector_ResourceId_string_string.registerRootFunctionSelector,
210
+ (systemId, worldFunctionSignature, systemFunctionSignature)
211
+ );
212
+
213
+ bytes memory result = self.from == address(0)
214
+ ? _world().call(self.systemId, systemCall)
215
+ : _world().callFrom(self.from, self.systemId, systemCall);
216
+ return abi.decode(result, (bytes4));
217
+ }
218
+
219
+ function registerDelegation(
220
+ CallWrapper memory self,
221
+ address delegatee,
222
+ ResourceId delegationControlId,
223
+ bytes memory initCallData
224
+ ) internal {
225
+ // if the contract calling this function is a root system, it should use `callAsRoot`
226
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
227
+
228
+ bytes memory systemCall = abi.encodeCall(
229
+ _registerDelegation_address_ResourceId_bytes.registerDelegation,
230
+ (delegatee, delegationControlId, initCallData)
231
+ );
232
+ self.from == address(0)
233
+ ? _world().call(self.systemId, systemCall)
234
+ : _world().callFrom(self.from, self.systemId, systemCall);
235
+ }
236
+
237
+ function unregisterDelegation(CallWrapper memory self, address delegatee) internal {
238
+ // if the contract calling this function is a root system, it should use `callAsRoot`
239
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
240
+
241
+ bytes memory systemCall = abi.encodeCall(_unregisterDelegation_address.unregisterDelegation, (delegatee));
242
+ self.from == address(0)
243
+ ? _world().call(self.systemId, systemCall)
244
+ : _world().callFrom(self.from, self.systemId, systemCall);
245
+ }
246
+
247
+ function registerNamespaceDelegation(
248
+ CallWrapper memory self,
249
+ ResourceId namespaceId,
250
+ ResourceId delegationControlId,
251
+ bytes memory initCallData
252
+ ) internal {
253
+ // if the contract calling this function is a root system, it should use `callAsRoot`
254
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
255
+
256
+ bytes memory systemCall = abi.encodeCall(
257
+ _registerNamespaceDelegation_ResourceId_ResourceId_bytes.registerNamespaceDelegation,
258
+ (namespaceId, delegationControlId, initCallData)
259
+ );
260
+ self.from == address(0)
261
+ ? _world().call(self.systemId, systemCall)
262
+ : _world().callFrom(self.from, self.systemId, systemCall);
263
+ }
264
+
265
+ function unregisterNamespaceDelegation(CallWrapper memory self, ResourceId namespaceId) internal {
266
+ // if the contract calling this function is a root system, it should use `callAsRoot`
267
+ if (address(_world()) == address(this)) revert WorldRegistrationSystemLib_CallingFromRootSystem();
268
+
269
+ bytes memory systemCall = abi.encodeCall(
270
+ _unregisterNamespaceDelegation_ResourceId.unregisterNamespaceDelegation,
271
+ (namespaceId)
272
+ );
273
+ self.from == address(0)
274
+ ? _world().call(self.systemId, systemCall)
275
+ : _world().callFrom(self.from, self.systemId, systemCall);
276
+ }
277
+
278
+ function registerNamespace(RootCallWrapper memory self, ResourceId namespaceId) internal {
279
+ bytes memory systemCall = abi.encodeCall(_registerNamespace_ResourceId.registerNamespace, (namespaceId));
280
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
281
+ }
282
+
283
+ function registerSystemHook(
284
+ RootCallWrapper memory self,
285
+ ResourceId systemId,
286
+ ISystemHook hookAddress,
287
+ uint8 enabledHooksBitmap
288
+ ) internal {
289
+ bytes memory systemCall = abi.encodeCall(
290
+ _registerSystemHook_ResourceId_ISystemHook_uint8.registerSystemHook,
291
+ (systemId, hookAddress, enabledHooksBitmap)
292
+ );
293
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
294
+ }
295
+
296
+ function unregisterSystemHook(RootCallWrapper memory self, ResourceId systemId, ISystemHook hookAddress) internal {
297
+ bytes memory systemCall = abi.encodeCall(
298
+ _unregisterSystemHook_ResourceId_ISystemHook.unregisterSystemHook,
299
+ (systemId, hookAddress)
300
+ );
301
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
302
+ }
303
+
304
+ function registerSystem(RootCallWrapper memory self, ResourceId systemId, System system, bool publicAccess) internal {
305
+ bytes memory systemCall = abi.encodeCall(
306
+ _registerSystem_ResourceId_System_bool.registerSystem,
307
+ (systemId, system, publicAccess)
308
+ );
309
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
310
+ }
311
+
312
+ function registerFunctionSelector(
313
+ RootCallWrapper memory self,
314
+ ResourceId systemId,
315
+ string memory systemFunctionSignature
316
+ ) internal returns (bytes4 worldFunctionSelector) {
317
+ bytes memory systemCall = abi.encodeCall(
318
+ _registerFunctionSelector_ResourceId_string.registerFunctionSelector,
319
+ (systemId, systemFunctionSignature)
320
+ );
321
+
322
+ bytes memory result = SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
323
+ return abi.decode(result, (bytes4));
324
+ }
325
+
326
+ function registerRootFunctionSelector(
327
+ RootCallWrapper memory self,
328
+ ResourceId systemId,
329
+ string memory worldFunctionSignature,
330
+ string memory systemFunctionSignature
331
+ ) internal returns (bytes4 worldFunctionSelector) {
332
+ bytes memory systemCall = abi.encodeCall(
333
+ _registerRootFunctionSelector_ResourceId_string_string.registerRootFunctionSelector,
334
+ (systemId, worldFunctionSignature, systemFunctionSignature)
335
+ );
336
+
337
+ bytes memory result = SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
338
+ return abi.decode(result, (bytes4));
339
+ }
340
+
341
+ function registerDelegation(
342
+ RootCallWrapper memory self,
343
+ address delegatee,
344
+ ResourceId delegationControlId,
345
+ bytes memory initCallData
346
+ ) internal {
347
+ bytes memory systemCall = abi.encodeCall(
348
+ _registerDelegation_address_ResourceId_bytes.registerDelegation,
349
+ (delegatee, delegationControlId, initCallData)
350
+ );
351
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
352
+ }
353
+
354
+ function unregisterDelegation(RootCallWrapper memory self, address delegatee) internal {
355
+ bytes memory systemCall = abi.encodeCall(_unregisterDelegation_address.unregisterDelegation, (delegatee));
356
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
357
+ }
358
+
359
+ function registerNamespaceDelegation(
360
+ RootCallWrapper memory self,
361
+ ResourceId namespaceId,
362
+ ResourceId delegationControlId,
363
+ bytes memory initCallData
364
+ ) internal {
365
+ bytes memory systemCall = abi.encodeCall(
366
+ _registerNamespaceDelegation_ResourceId_ResourceId_bytes.registerNamespaceDelegation,
367
+ (namespaceId, delegationControlId, initCallData)
368
+ );
369
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
370
+ }
371
+
372
+ function unregisterNamespaceDelegation(RootCallWrapper memory self, ResourceId namespaceId) internal {
373
+ bytes memory systemCall = abi.encodeCall(
374
+ _unregisterNamespaceDelegation_ResourceId.unregisterNamespaceDelegation,
375
+ (namespaceId)
376
+ );
377
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
378
+ }
379
+
380
+ function callFrom(WorldRegistrationSystemType self, address from) internal pure returns (CallWrapper memory) {
381
+ return CallWrapper(self.toResourceId(), from);
382
+ }
383
+
384
+ function callAsRoot(WorldRegistrationSystemType self) internal view returns (RootCallWrapper memory) {
385
+ return RootCallWrapper(self.toResourceId(), WorldContextConsumerLib._msgSender());
386
+ }
387
+
388
+ function callAsRootFrom(
389
+ WorldRegistrationSystemType self,
390
+ address from
391
+ ) internal pure returns (RootCallWrapper memory) {
392
+ return RootCallWrapper(self.toResourceId(), from);
393
+ }
394
+
395
+ function toResourceId(WorldRegistrationSystemType self) internal pure returns (ResourceId) {
396
+ return ResourceId.wrap(WorldRegistrationSystemType.unwrap(self));
397
+ }
398
+
399
+ function fromResourceId(ResourceId resourceId) internal pure returns (WorldRegistrationSystemType) {
400
+ return WorldRegistrationSystemType.wrap(resourceId.unwrap());
401
+ }
402
+
403
+ function getAddress(WorldRegistrationSystemType self) internal view returns (address) {
404
+ return Systems.getSystem(self.toResourceId());
405
+ }
406
+
407
+ function _world() private view returns (IWorldCall) {
408
+ return IWorldCall(StoreSwitch.getStoreAddress());
409
+ }
410
+ }
411
+
412
+ /**
413
+ * System Function Interfaces
414
+ *
415
+ * We generate an interface for each system function, which is then used for encoding system calls.
416
+ * This is necessary to handle function overloading correctly (which abi.encodeCall cannot).
417
+ *
418
+ * Each interface is uniquely named based on the function name and parameters to prevent collisions.
419
+ */
420
+
421
+ interface _registerNamespace_ResourceId {
422
+ function registerNamespace(ResourceId namespaceId) external;
423
+ }
424
+
425
+ interface _registerSystemHook_ResourceId_ISystemHook_uint8 {
426
+ function registerSystemHook(ResourceId systemId, ISystemHook hookAddress, uint8 enabledHooksBitmap) external;
427
+ }
428
+
429
+ interface _unregisterSystemHook_ResourceId_ISystemHook {
430
+ function unregisterSystemHook(ResourceId systemId, ISystemHook hookAddress) external;
431
+ }
432
+
433
+ interface _registerSystem_ResourceId_System_bool {
434
+ function registerSystem(ResourceId systemId, System system, bool publicAccess) external;
435
+ }
436
+
437
+ interface _registerFunctionSelector_ResourceId_string {
438
+ function registerFunctionSelector(ResourceId systemId, string memory systemFunctionSignature) external;
439
+ }
440
+
441
+ interface _registerRootFunctionSelector_ResourceId_string_string {
442
+ function registerRootFunctionSelector(
443
+ ResourceId systemId,
444
+ string memory worldFunctionSignature,
445
+ string memory systemFunctionSignature
446
+ ) external;
447
+ }
448
+
449
+ interface _registerDelegation_address_ResourceId_bytes {
450
+ function registerDelegation(address delegatee, ResourceId delegationControlId, bytes memory initCallData) external;
451
+ }
452
+
453
+ interface _unregisterDelegation_address {
454
+ function unregisterDelegation(address delegatee) external;
455
+ }
456
+
457
+ interface _registerNamespaceDelegation_ResourceId_ResourceId_bytes {
458
+ function registerNamespaceDelegation(
459
+ ResourceId namespaceId,
460
+ ResourceId delegationControlId,
461
+ bytes memory initCallData
462
+ ) external;
463
+ }
464
+
465
+ interface _unregisterNamespaceDelegation_ResourceId {
466
+ function unregisterNamespaceDelegation(ResourceId namespaceId) external;
467
+ }
468
+
469
+ using WorldRegistrationSystemLib for WorldRegistrationSystemType global;
470
+ using WorldRegistrationSystemLib for CallWrapper global;
471
+ using WorldRegistrationSystemLib for RootCallWrapper global;
@@ -0,0 +1,29 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.8.24;
3
+
4
+ /* Autogenerated file. Do not edit manually. */
5
+
6
+ import { ResourceId } from "../../WorldResourceId.sol";
7
+ import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
8
+ import { Schema } from "@latticexyz/store/src/Schema.sol";
9
+ import { IStoreHook } from "@latticexyz/store/src/IStoreHook.sol";
10
+
11
+ /**
12
+ * @title IStoreRegistrationSystem
13
+ * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
14
+ * @dev This interface is automatically generated from the corresponding system contract. Do not edit manually.
15
+ */
16
+ interface IStoreRegistrationSystem {
17
+ function registerTable(
18
+ ResourceId tableId,
19
+ FieldLayout fieldLayout,
20
+ Schema keySchema,
21
+ Schema valueSchema,
22
+ string[] calldata keyNames,
23
+ string[] calldata fieldNames
24
+ ) external;
25
+
26
+ function registerStoreHook(ResourceId tableId, IStoreHook hookAddress, uint8 enabledHooksBitmap) external;
27
+
28
+ function unregisterStoreHook(ResourceId tableId, IStoreHook hookAddress) external;
29
+ }
@@ -68,14 +68,6 @@ contract InitModule is Module {
68
68
  _registerFunctionSelectors();
69
69
  }
70
70
 
71
- /**
72
- * @notice Non-root installation of the module.
73
- * @dev Installation is only supported at root level, so this function will always revert.
74
- */
75
- function install(bytes memory) public pure {
76
- revert Module_NonRootInstallNotSupported();
77
- }
78
-
79
71
  /**
80
72
  * @notice Register World's tables.
81
73
  * @dev This internal function registers various tables and sets initial permissions.
@@ -14,7 +14,7 @@ import { LimitedCallContext } from "../LimitedCallContext.sol";
14
14
  * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
15
15
  * @dev A system contract to handle the installation of (non-root) modules in the World.
16
16
  */
17
- contract ModuleInstallationSystem is System, LimitedCallContext {
17
+ abstract contract ModuleInstallationSystem is System, LimitedCallContext {
18
18
  /**
19
19
  * @notice Installs a module into the World under a specified namespace.
20
20
  * @dev Validates the given module against the IModule interface and delegates the installation process.
@@ -3,6 +3,7 @@ pragma solidity >=0.8.24;
3
3
 
4
4
  import { IStoreHook } from "@latticexyz/store/src/IStoreHook.sol";
5
5
  import { StoreCore } from "@latticexyz/store/src/StoreCore.sol";
6
+ import { IStoreRegistration } from "@latticexyz/store/src/IStoreRegistration.sol";
6
7
  import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
7
8
  import { Schema } from "@latticexyz/store/src/Schema.sol";
8
9
 
@@ -25,7 +26,7 @@ import { WorldRegistrationSystem } from "./WorldRegistrationSystem.sol";
25
26
  * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
26
27
  * @dev This contract provides functionality for the registration of store-related resources within the World framework.
27
28
  */
28
- contract StoreRegistrationSystem is System, IWorldErrors, LimitedCallContext {
29
+ abstract contract StoreRegistrationSystem is System, IWorldErrors, IStoreRegistration, LimitedCallContext {
29
30
  using WorldResourceIdInstance for ResourceId;
30
31
 
31
32
  /**
@@ -38,7 +38,7 @@ import { createDelegation } from "./createDelegation.sol";
38
38
  * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
39
39
  * @dev This contract provides functions related to registering resources other than tables in the World.
40
40
  */
41
- contract WorldRegistrationSystem is System, IWorldErrors, LimitedCallContext {
41
+ abstract contract WorldRegistrationSystem is System, IWorldErrors, LimitedCallContext {
42
42
  using WorldResourceIdInstance for ResourceId;
43
43
 
44
44
  /**
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../mud.config.ts"],"sourcesContent":["import { defineWorld } from \"./ts/config/v2/world\";\n\n/**\n * @internal\n */\nexport const configInput = {\n namespace: \"world\", // NOTE: this namespace is only used for tables, the core system is deployed in the root namespace.\n codegen: {\n worldImportPath: \"./src\",\n worldgenDirectory: \"interfaces\",\n worldInterfaceName: \"IBaseWorld\",\n },\n userTypes: {\n ResourceId: { filePath: \"@latticexyz/store/src/ResourceId.sol\", type: \"bytes32\" },\n },\n tables: {\n NamespaceOwner: {\n schema: {\n namespaceId: \"ResourceId\",\n owner: \"address\",\n },\n key: [\"namespaceId\"],\n },\n ResourceAccess: {\n schema: {\n resourceId: \"ResourceId\",\n caller: \"address\",\n access: \"bool\",\n },\n key: [\"resourceId\", \"caller\"],\n },\n InstalledModules: {\n schema: {\n moduleAddress: \"address\",\n argumentsHash: \"bytes32\", // Hash of the params passed to the `install` function\n isInstalled: \"bool\",\n },\n key: [\"moduleAddress\", \"argumentsHash\"],\n },\n UserDelegationControl: {\n schema: {\n delegator: \"address\",\n delegatee: \"address\",\n delegationControlId: \"ResourceId\",\n },\n key: [\"delegator\", \"delegatee\"],\n },\n NamespaceDelegationControl: {\n schema: {\n namespaceId: \"ResourceId\",\n delegationControlId: \"ResourceId\",\n },\n key: [\"namespaceId\"],\n },\n Balances: {\n schema: {\n namespaceId: \"ResourceId\",\n balance: \"uint256\",\n },\n key: [\"namespaceId\"],\n },\n Systems: {\n schema: {\n systemId: \"ResourceId\",\n system: \"address\",\n publicAccess: \"bool\",\n },\n key: [\"systemId\"],\n codegen: {\n dataStruct: false,\n },\n },\n SystemRegistry: {\n schema: {\n system: \"address\",\n systemId: \"ResourceId\",\n },\n key: [\"system\"],\n },\n SystemHooks: {\n schema: {\n systemId: \"ResourceId\",\n value: \"bytes21[]\",\n },\n key: [\"systemId\"],\n },\n FunctionSelectors: {\n schema: {\n worldFunctionSelector: \"bytes4\",\n systemId: \"ResourceId\",\n systemFunctionSelector: \"bytes4\",\n },\n key: [\"worldFunctionSelector\"],\n codegen: {\n dataStruct: false,\n },\n },\n FunctionSignatures: {\n type: \"offchainTable\",\n schema: {\n functionSelector: \"bytes4\",\n functionSignature: \"string\",\n },\n key: [\"functionSelector\"],\n },\n InitModuleAddress: {\n schema: {\n value: \"address\",\n },\n key: [],\n },\n },\n excludeSystems: [\n // Worldgen currently does not support systems inheriting logic\n // from other contracts, so all parts of RegistrationSystem are named\n // System too to be included in the IBaseWorld interface.\n // However, IStoreRegistrationSystem overlaps with IStore if\n // included in IBaseWorld, so it needs to be excluded from worldgen.\n // TODO: add support for inheritance to worldgen\n // (see: https://github.com/latticexyz/mud/issues/631)\n \"StoreRegistrationSystem\",\n ],\n} as const;\n\nexport default defineWorld(configInput);\n"],"mappings":";;;;;AAKO,IAAM,cAAc;AAAA,EACzB,WAAW;AAAA;AAAA,EACX,SAAS;AAAA,IACP,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,EACtB;AAAA,EACA,WAAW;AAAA,IACT,YAAY,EAAE,UAAU,wCAAwC,MAAM,UAAU;AAAA,EAClF;AAAA,EACA,QAAQ;AAAA,IACN,gBAAgB;AAAA,MACd,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA,KAAK,CAAC,aAAa;AAAA,IACrB;AAAA,IACA,gBAAgB;AAAA,MACd,QAAQ;AAAA,QACN,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,MACA,KAAK,CAAC,cAAc,QAAQ;AAAA,IAC9B;AAAA,IACA,kBAAkB;AAAA,MAChB,QAAQ;AAAA,QACN,eAAe;AAAA,QACf,eAAe;AAAA;AAAA,QACf,aAAa;AAAA,MACf;AAAA,MACA,KAAK,CAAC,iBAAiB,eAAe;AAAA,IACxC;AAAA,IACA,uBAAuB;AAAA,MACrB,QAAQ;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,QACX,qBAAqB;AAAA,MACvB;AAAA,MACA,KAAK,CAAC,aAAa,WAAW;AAAA,IAChC;AAAA,IACA,4BAA4B;AAAA,MAC1B,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,qBAAqB;AAAA,MACvB;AAAA,MACA,KAAK,CAAC,aAAa;AAAA,IACrB;AAAA,IACA,UAAU;AAAA,MACR,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,SAAS;AAAA,MACX;AAAA,MACA,KAAK,CAAC,aAAa;AAAA,IACrB;AAAA,IACA,SAAS;AAAA,MACP,QAAQ;AAAA,QACN,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,cAAc;AAAA,MAChB;AAAA,MACA,KAAK,CAAC,UAAU;AAAA,MAChB,SAAS;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,gBAAgB;AAAA,MACd,QAAQ;AAAA,QACN,QAAQ;AAAA,QACR,UAAU;AAAA,MACZ;AAAA,MACA,KAAK,CAAC,QAAQ;AAAA,IAChB;AAAA,IACA,aAAa;AAAA,MACX,QAAQ;AAAA,QACN,UAAU;AAAA,QACV,OAAO;AAAA,MACT;AAAA,MACA,KAAK,CAAC,UAAU;AAAA,IAClB;AAAA,IACA,mBAAmB;AAAA,MACjB,QAAQ;AAAA,QACN,uBAAuB;AAAA,QACvB,UAAU;AAAA,QACV,wBAAwB;AAAA,MAC1B;AAAA,MACA,KAAK,CAAC,uBAAuB;AAAA,MAC7B,SAAS;AAAA,QACP,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,QAAQ;AAAA,QACN,kBAAkB;AAAA,QAClB,mBAAmB;AAAA,MACrB;AAAA,MACA,KAAK,CAAC,kBAAkB;AAAA,IAC1B;AAAA,IACA,mBAAmB;AAAA,MACjB,QAAQ;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,KAAK,CAAC;AAAA,IACR;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQd;AAAA,EACF;AACF;AAEA,IAAO,qBAAQ,YAAY,WAAW;","names":[]}