@latticexyz/world-modules 2.0.0-main-711f6e2a → 2.0.0-march-19-skystrife-playtest-f0a343b1

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 (407) hide show
  1. package/out/AccessControl.sol/AccessControl.json +1 -1
  2. package/out/AccessControlLib.sol/AccessControlLib.json +1 -1
  3. package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json +0 -55
  4. package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json.d.ts +0 -55
  5. package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
  6. package/out/AddressArray.sol/AddressArray.json +1 -1
  7. package/out/Allowances.sol/Allowances.json +1 -1
  8. package/out/ArrayLib.sol/ArrayLib.json +1 -1
  9. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json +0 -16
  10. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json.d.ts +0 -16
  11. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
  12. package/out/Balances.sol/Balances.json +1 -1
  13. package/out/Base.sol/CommonBase.json +1 -1
  14. package/out/Base.sol/ScriptBase.json +1 -1
  15. package/out/Base.sol/TestBase.json +1 -1
  16. package/out/BatchCallSystem.sol/BatchCallSystem.abi.json +0 -5
  17. package/out/BatchCallSystem.sol/BatchCallSystem.abi.json.d.ts +0 -5
  18. package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
  19. package/out/Bool.sol/Bool.json +1 -1
  20. package/out/Bytes.sol/Bytes.json +1 -1
  21. package/out/CallboundDelegationControl.sol/CallboundDelegationControl.json +1 -1
  22. package/out/CallboundDelegations.sol/CallboundDelegations.json +1 -1
  23. package/out/{InitModule.sol/InitModule.abi.json → CoreModule.sol/CoreModule.abi.json} +23 -149
  24. package/out/{InitModule.sol/InitModule.abi.json.d.ts → CoreModule.sol/CoreModule.abi.json.d.ts} +23 -149
  25. package/out/CoreModule.sol/CoreModule.json +1 -0
  26. package/out/{RegistrationSystem.sol/RegistrationSystem.abi.json → CoreSystem.sol/CoreSystem.abi.json} +157 -167
  27. package/out/{RegistrationSystem.sol/RegistrationSystem.abi.json.d.ts → CoreSystem.sol/CoreSystem.abi.json.d.ts} +157 -167
  28. package/out/CoreSystem.sol/CoreSystem.json +1 -0
  29. package/out/DecodeSlice.sol/DecodeSlice.json +1 -1
  30. package/out/Delegation.sol/Delegation.json +1 -1
  31. package/out/DelegationControl.sol/DelegationControl.json +1 -1
  32. package/out/DelegationControlMock.sol/DelegationControlMock.json +1 -1
  33. package/out/ERC20.t.sol/ERC20Test.json +1 -1
  34. package/out/ERC20Metadata.sol/ERC20Metadata.json +1 -1
  35. package/out/ERC20Module.sol/ERC20Module.abi.json +24 -124
  36. package/out/ERC20Module.sol/ERC20Module.abi.json.d.ts +24 -124
  37. package/out/ERC20Module.sol/ERC20Module.json +1 -1
  38. package/out/ERC20Module.sol/ERC20ModuleRegistrationLibrary.abi.json +8 -121
  39. package/out/ERC20Module.sol/ERC20ModuleRegistrationLibrary.abi.json.d.ts +8 -121
  40. package/out/ERC20Module.sol/ERC20ModuleRegistrationLibrary.json +1 -1
  41. package/out/ERC20Registry.sol/ERC20Registry.json +1 -1
  42. package/out/ERC20System.sol/ERC20System.json +1 -1
  43. package/out/ERC721.t.sol/ERC721Recipient.json +1 -1
  44. package/out/ERC721.t.sol/ERC721Test.abi.json +1 -1
  45. package/out/ERC721.t.sol/ERC721Test.abi.json.d.ts +1 -1
  46. package/out/ERC721.t.sol/ERC721Test.json +1 -1
  47. package/out/ERC721.t.sol/ERC721TokenReceiver.json +1 -1
  48. package/out/ERC721.t.sol/NonERC721Recipient.json +1 -1
  49. package/out/ERC721.t.sol/RevertingERC721Recipient.json +1 -1
  50. package/out/ERC721.t.sol/WrongReturnDataERC721Recipient.json +1 -1
  51. package/out/ERC721Metadata.sol/ERC721Metadata.json +1 -1
  52. package/out/ERC721Module.sol/ERC721Module.abi.json +24 -124
  53. package/out/ERC721Module.sol/ERC721Module.abi.json.d.ts +24 -124
  54. package/out/ERC721Module.sol/ERC721Module.json +1 -1
  55. package/out/ERC721Module.sol/ERC721ModuleRegistrationLibrary.abi.json +8 -121
  56. package/out/ERC721Module.sol/ERC721ModuleRegistrationLibrary.abi.json.d.ts +8 -121
  57. package/out/ERC721Module.sol/ERC721ModuleRegistrationLibrary.json +1 -1
  58. package/out/ERC721Registry.sol/ERC721Registry.json +1 -1
  59. package/out/ERC721System.sol/ERC721System.json +1 -1
  60. package/out/EchoSubscriber.sol/EchoSubscriber.json +1 -1
  61. package/out/EncodeArray.sol/EncodeArray.json +1 -1
  62. package/out/FieldLayout.sol/FieldLayoutInstance.json +1 -1
  63. package/out/FieldLayout.sol/FieldLayoutLib.abi.json +23 -1
  64. package/out/FieldLayout.sol/FieldLayoutLib.abi.json.d.ts +23 -0
  65. package/out/FieldLayout.sol/FieldLayoutLib.json +1 -1
  66. package/out/FieldLayoutEncodeHelper.sol/FieldLayoutEncodeHelper.json +1 -1
  67. package/out/FunctionSelectors.sol/FunctionSelectors.json +1 -1
  68. package/out/FunctionSignatures.sol/FunctionSignatures.json +1 -1
  69. package/out/GasReporter.sol/GasReporter.json +1 -1
  70. package/out/Hook.sol/HookInstance.json +1 -1
  71. package/out/Hook.sol/HookLib.json +1 -1
  72. package/out/Hooks.sol/Hooks.json +1 -1
  73. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.abi.json +0 -13
  74. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.abi.json.d.ts +0 -13
  75. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +1 -1
  76. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +1 -1
  77. package/out/IBaseWorld.sol/IBaseWorld.abi.json +5 -230
  78. package/out/IBaseWorld.sol/IBaseWorld.abi.json.d.ts +5 -230
  79. package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
  80. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
  81. package/out/ICoreSystem.sol/ICoreSystem.json +1 -0
  82. package/out/IDelegationControl.sol/IDelegationControl.json +1 -1
  83. package/out/IERC20.sol/IERC20.json +1 -1
  84. package/out/IERC20Errors.sol/IERC20Errors.json +1 -1
  85. package/out/IERC20Events.sol/IERC20Events.json +1 -1
  86. package/out/IERC20Mintable.sol/IERC20Mintable.json +1 -1
  87. package/out/IERC20System.sol/IERC20System.json +1 -1
  88. package/out/IERC721.sol/IERC721.json +1 -1
  89. package/out/IERC721Errors.sol/IERC721Errors.json +1 -1
  90. package/out/IERC721Events.sol/IERC721Events.json +1 -1
  91. package/out/IERC721Metadata.sol/IERC721Metadata.json +1 -1
  92. package/out/IERC721Mintable.sol/IERC721Mintable.json +1 -1
  93. package/out/IERC721Receiver.sol/IERC721Receiver.json +1 -1
  94. package/out/IModule.sol/IModule.abi.json +17 -4
  95. package/out/IModule.sol/IModule.abi.json.d.ts +17 -4
  96. package/out/IModule.sol/IModule.json +1 -1
  97. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.abi.json +1 -1
  98. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.abi.json.d.ts +1 -1
  99. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
  100. package/out/IMulticall3.sol/IMulticall3.json +1 -1
  101. package/out/IPuppetFactorySystem.sol/IPuppetFactorySystem.json +1 -1
  102. package/out/IStore.sol/IStore.abi.json +3 -191
  103. package/out/IStore.sol/IStore.abi.json.d.ts +3 -191
  104. package/out/IStore.sol/IStore.json +1 -1
  105. package/out/IStoreData.sol/IStoreData.abi.json +0 -6
  106. package/out/IStoreData.sol/IStoreData.abi.json.d.ts +0 -6
  107. package/out/IStoreData.sol/IStoreData.json +1 -1
  108. package/out/IStoreErrors.sol/IStoreErrors.abi.json +3 -51
  109. package/out/IStoreErrors.sol/IStoreErrors.abi.json.d.ts +3 -51
  110. package/out/IStoreErrors.sol/IStoreErrors.json +1 -1
  111. package/out/IStoreEvents.sol/IStoreEvents.abi.json +0 -19
  112. package/out/IStoreEvents.sol/IStoreEvents.abi.json.d.ts +0 -19
  113. package/out/IStoreEvents.sol/IStoreEvents.json +1 -1
  114. package/out/IStoreHook.sol/IStoreHook.json +1 -1
  115. package/out/IStoreRead.sol/IStoreRead.json +1 -1
  116. package/out/IStoreRegistration.sol/IStoreRegistration.json +1 -1
  117. package/out/IStoreWrite.sol/IStoreWrite.abi.json +0 -19
  118. package/out/IStoreWrite.sol/IStoreWrite.abi.json.d.ts +0 -19
  119. package/out/IStoreWrite.sol/IStoreWrite.json +1 -1
  120. package/out/ISystemHook.sol/ISystemHook.json +1 -1
  121. package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.abi.json +15 -0
  122. package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.abi.json.d.ts +15 -0
  123. package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +1 -0
  124. package/out/IWorldContextConsumer.sol/IWorldContextConsumer.json +1 -1
  125. package/out/IWorldErrors.sol/IWorldErrors.abi.json +0 -11
  126. package/out/IWorldErrors.sol/IWorldErrors.abi.json.d.ts +0 -11
  127. package/out/IWorldErrors.sol/IWorldErrors.json +1 -1
  128. package/out/IWorldKernel.sol/IWorldCall.json +1 -1
  129. package/out/IWorldKernel.sol/IWorldKernel.abi.json +2 -39
  130. package/out/IWorldKernel.sol/IWorldKernel.abi.json.d.ts +2 -39
  131. package/out/IWorldKernel.sol/IWorldKernel.json +1 -1
  132. package/out/IWorldKernel.sol/IWorldModuleInstallation.abi.json +1 -1
  133. package/out/IWorldKernel.sol/IWorldModuleInstallation.abi.json.d.ts +1 -1
  134. package/out/IWorldKernel.sol/IWorldModuleInstallation.json +1 -1
  135. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.abi.json +4 -30
  136. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.abi.json.d.ts +4 -30
  137. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
  138. package/out/InstalledModules.sol/InstalledModules.json +1 -1
  139. package/out/KeysInTable.sol/KeysInTable.json +1 -1
  140. package/out/KeysInTableHook.sol/KeysInTableHook.abi.json +0 -22
  141. package/out/KeysInTableHook.sol/KeysInTableHook.abi.json.d.ts +0 -22
  142. package/out/KeysInTableHook.sol/KeysInTableHook.json +1 -1
  143. package/out/KeysInTableModule.sol/KeysInTableModule.abi.json +32 -3
  144. package/out/KeysInTableModule.sol/KeysInTableModule.abi.json.d.ts +32 -3
  145. package/out/KeysInTableModule.sol/KeysInTableModule.json +1 -1
  146. package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.abi.json +8 -41
  147. package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.abi.json.d.ts +8 -41
  148. package/out/KeysInTableModule.t.sol/KeysInTableModuleTest.json +1 -1
  149. package/out/KeysWithValue.sol/KeysWithValue.json +1 -1
  150. package/out/KeysWithValueHook.sol/KeysWithValueHook.abi.json +0 -6
  151. package/out/KeysWithValueHook.sol/KeysWithValueHook.abi.json.d.ts +0 -6
  152. package/out/KeysWithValueHook.sol/KeysWithValueHook.json +1 -1
  153. package/out/KeysWithValueModule.sol/KeysWithValueModule.abi.json +32 -3
  154. package/out/KeysWithValueModule.sol/KeysWithValueModule.abi.json.d.ts +32 -3
  155. package/out/KeysWithValueModule.sol/KeysWithValueModule.json +1 -1
  156. package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.abi.json +8 -41
  157. package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.abi.json.d.ts +8 -41
  158. package/out/KeysWithValueModule.t.sol/KeysWithValueModuleTest.json +1 -1
  159. package/out/Memory.sol/Memory.json +1 -1
  160. package/out/Module.sol/Module.abi.json +17 -4
  161. package/out/Module.sol/Module.abi.json.d.ts +17 -4
  162. package/out/Module.sol/Module.json +1 -1
  163. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json +1 -6
  164. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json.d.ts +1 -6
  165. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
  166. package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
  167. package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
  168. package/out/OperatorApproval.sol/OperatorApproval.json +1 -1
  169. package/out/Owners.sol/Owners.json +1 -1
  170. package/out/PackedCounter.sol/PackedCounterInstance.abi.json +13 -1
  171. package/out/PackedCounter.sol/PackedCounterInstance.json +1 -1
  172. package/out/PackedCounter.sol/PackedCounterLib.json +1 -1
  173. package/out/Puppet.sol/Puppet.json +1 -1
  174. package/out/PuppetDelegationControl.sol/PuppetDelegationControl.json +1 -1
  175. package/out/PuppetFactorySystem.sol/PuppetFactorySystem.json +1 -1
  176. package/out/PuppetMaster.sol/PuppetMaster.json +1 -1
  177. package/out/PuppetModule.sol/PuppetModule.abi.json +23 -123
  178. package/out/PuppetModule.sol/PuppetModule.abi.json.d.ts +23 -123
  179. package/out/PuppetModule.sol/PuppetModule.json +1 -1
  180. package/out/PuppetModule.t.sol/PuppetModuleTest.abi.json +0 -14
  181. package/out/PuppetModule.t.sol/PuppetModuleTest.abi.json.d.ts +0 -14
  182. package/out/PuppetModule.t.sol/PuppetModuleTest.json +1 -1
  183. package/out/PuppetModule.t.sol/PuppetTestSystem.json +1 -1
  184. package/out/PuppetRegistry.sol/PuppetRegistry.json +1 -1
  185. package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
  186. package/out/ResourceId.sol/ResourceIdInstance.json +1 -1
  187. package/out/ResourceId.sol/ResourceIdLib.json +1 -1
  188. package/out/ResourceIds.sol/ResourceIds.json +1 -1
  189. package/out/RevertSubscriber.sol/RevertSubscriber.json +1 -1
  190. package/out/Schema.sol/SchemaInstance.json +1 -1
  191. package/out/Schema.sol/SchemaLib.abi.json +18 -1
  192. package/out/{ISchemaErrors.sol/ISchemaErrors.abi.json.d.ts → Schema.sol/SchemaLib.abi.json.d.ts} +2 -2
  193. package/out/Schema.sol/SchemaLib.json +1 -1
  194. package/out/SchemaEncodeHelper.sol/SchemaEncodeHelper.json +1 -1
  195. package/out/Slice.sol/SliceInstance.json +1 -1
  196. package/out/Slice.sol/SliceLib.abi.json +23 -1
  197. package/out/Slice.sol/SliceLib.json +1 -1
  198. package/out/StandardDelegationsModule.sol/StandardDelegationsModule.abi.json +23 -123
  199. package/out/StandardDelegationsModule.sol/StandardDelegationsModule.abi.json.d.ts +23 -123
  200. package/out/StandardDelegationsModule.sol/StandardDelegationsModule.json +1 -1
  201. package/out/StandardDelegationsModule.t.sol/StandardDelegationsModuleTest.json +1 -1
  202. package/out/StdAssertions.sol/StdAssertions.json +1 -1
  203. package/out/StdChains.sol/StdChains.json +1 -1
  204. package/out/StdCheats.sol/StdCheats.json +1 -1
  205. package/out/StdCheats.sol/StdCheatsSafe.json +1 -1
  206. package/out/StdError.sol/stdError.json +1 -1
  207. package/out/StdInvariant.sol/StdInvariant.json +1 -1
  208. package/out/StdJson.sol/stdJson.json +1 -1
  209. package/out/StdMath.sol/stdMath.json +1 -1
  210. package/out/StdStorage.sol/stdStorage.json +1 -1
  211. package/out/StdStorage.sol/stdStorageSafe.json +1 -1
  212. package/out/StdStyle.sol/StdStyle.json +1 -1
  213. package/out/StdUtils.sol/StdUtils.json +1 -1
  214. package/out/Storage.sol/Storage.json +1 -1
  215. package/out/StoreCore.sol/StoreCore.abi.json +132 -1
  216. package/out/StoreCore.sol/StoreCore.abi.json.d.ts +132 -0
  217. package/out/StoreCore.sol/StoreCore.json +1 -1
  218. package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
  219. package/out/StoreData.sol/StoreData.abi.json +0 -22
  220. package/out/StoreData.sol/StoreData.abi.json.d.ts +0 -22
  221. package/out/StoreData.sol/StoreData.json +1 -1
  222. package/out/StoreHook.sol/StoreHook.json +1 -1
  223. package/out/StoreHooks.sol/StoreHooks.json +1 -1
  224. package/out/StoreRead.sol/StoreRead.abi.json +0 -16
  225. package/out/StoreRead.sol/StoreRead.abi.json.d.ts +0 -16
  226. package/out/StoreRead.sol/StoreRead.json +1 -1
  227. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json +8 -159
  228. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json.d.ts +8 -159
  229. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
  230. package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
  231. package/out/System.sol/System.json +1 -1
  232. package/out/SystemCall.sol/SystemCall.json +1 -1
  233. package/out/SystemHook.sol/SystemHook.json +1 -1
  234. package/out/SystemHooks.sol/SystemHooks.json +1 -1
  235. package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
  236. package/out/SystemSwitch.sol/SystemSwitch.json +1 -1
  237. package/out/SystemSwitch.t.sol/EchoSystem.abi.json +1 -98
  238. package/out/SystemSwitch.t.sol/EchoSystem.abi.json.d.ts +1 -98
  239. package/out/SystemSwitch.t.sol/EchoSystem.json +1 -1
  240. package/out/SystemSwitch.t.sol/SystemSwitchTest.abi.json +15 -43
  241. package/out/SystemSwitch.t.sol/SystemSwitchTest.abi.json.d.ts +15 -43
  242. package/out/SystemSwitch.t.sol/SystemSwitchTest.json +1 -1
  243. package/out/SystemboundDelegationControl.sol/SystemboundDelegationControl.json +1 -1
  244. package/out/SystemboundDelegations.sol/SystemboundDelegations.json +1 -1
  245. package/out/Systems.sol/Systems.json +1 -1
  246. package/out/Tables.sol/Tables.json +1 -1
  247. package/out/Test.sol/Test.json +1 -1
  248. package/out/TightCoder.sol/TightCoder.json +1 -1
  249. package/out/TimeboundDelegationControl.sol/TimeboundDelegationControl.json +1 -1
  250. package/out/TimeboundDelegations.sol/TimeboundDelegations.json +1 -1
  251. package/out/TokenApproval.sol/TokenApproval.json +1 -1
  252. package/out/TokenURI.sol/TokenURI.json +1 -1
  253. package/out/TotalSupply.sol/TotalSupply.json +1 -1
  254. package/out/TwoFields.sol/TwoFields.json +1 -1
  255. package/out/UniqueEntity.sol/UniqueEntity.json +1 -1
  256. package/out/UniqueEntityModule.sol/UniqueEntityModule.abi.json +25 -125
  257. package/out/UniqueEntityModule.sol/UniqueEntityModule.abi.json.d.ts +25 -125
  258. package/out/UniqueEntityModule.sol/UniqueEntityModule.json +1 -1
  259. package/out/UniqueEntityModule.t.sol/UniqueEntityModuleTest.json +1 -1
  260. package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.abi.json +0 -68
  261. package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.abi.json.d.ts +0 -68
  262. package/out/UniqueEntityModule.t.sol/UniqueEntityTestSystem.json +1 -1
  263. package/out/UniqueEntitySystem.sol/UniqueEntitySystem.json +1 -1
  264. package/out/UsedKeysIndex.sol/UsedKeysIndex.json +1 -1
  265. package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
  266. package/out/Vm.sol/Vm.json +1 -1
  267. package/out/Vm.sol/VmSafe.json +1 -1
  268. package/out/World.sol/World.abi.json +124 -53
  269. package/out/World.sol/World.abi.json.d.ts +124 -53
  270. package/out/World.sol/World.json +1 -1
  271. package/out/World.t.sol/EchoSystemHook.json +1 -1
  272. package/out/World.t.sol/IWorldTestSystem.abi.json +1 -1
  273. package/out/World.t.sol/IWorldTestSystem.abi.json.d.ts +1 -1
  274. package/out/World.t.sol/IWorldTestSystem.json +1 -1
  275. package/out/World.t.sol/PayableFallbackSystem.json +1 -1
  276. package/out/World.t.sol/RevertSystemHook.json +1 -1
  277. package/out/World.t.sol/WorldTest.abi.json +8 -76
  278. package/out/World.t.sol/WorldTest.abi.json.d.ts +8 -76
  279. package/out/World.t.sol/WorldTest.json +1 -1
  280. package/out/World.t.sol/WorldTestSystem.json +1 -1
  281. package/out/WorldContext.sol/WorldContextConsumer.json +1 -1
  282. package/out/WorldContext.sol/WorldContextConsumerLib.json +1 -1
  283. package/out/WorldContext.sol/WorldContextProviderLib.json +1 -1
  284. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json +4 -52
  285. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json.d.ts +4 -52
  286. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
  287. package/out/WorldResourceId.sol/WorldResourceIdInstance.json +1 -1
  288. package/out/WorldResourceId.sol/WorldResourceIdLib.json +1 -1
  289. package/out/console.sol/console.json +1 -1
  290. package/out/console2.sol/console2.json +1 -1
  291. package/out/constants.sol/LayoutOffsets.json +1 -1
  292. package/out/interfaces/IBaseWorld.sol/IBaseWorld.abi.json +10 -274
  293. package/out/interfaces/IBaseWorld.sol/IBaseWorld.abi.json.d.ts +10 -274
  294. package/out/interfaces/IBaseWorld.sol/IBaseWorld.json +1 -1
  295. package/out/query.t.sol/QueryTest.abi.json +8 -41
  296. package/out/query.t.sol/QueryTest.abi.json.d.ts +8 -41
  297. package/out/query.t.sol/QueryTest.json +1 -1
  298. package/out/safeconsole.sol/safeconsole.json +1 -1
  299. package/out/src/IERC165.sol/IERC165.json +1 -1
  300. package/out/tables/Balances.sol/Balances.json +1 -1
  301. package/out/test.sol/DSTest.json +1 -1
  302. package/out/world/src/IERC165.sol/IERC165.json +1 -1
  303. package/package.json +9 -9
  304. package/src/index.sol +6 -6
  305. package/src/interfaces/IBaseWorld.sol +4 -3
  306. package/src/interfaces/IERC20System.sol +1 -2
  307. package/src/interfaces/IPuppetFactorySystem.sol +1 -2
  308. package/src/interfaces/IUniqueEntitySystem.sol +7 -0
  309. package/src/modules/erc20-puppet/ERC20Module.sol +25 -16
  310. package/src/modules/erc20-puppet/ERC20System.sol +1 -1
  311. package/src/modules/erc20-puppet/IERC20.sol +1 -1
  312. package/src/modules/erc20-puppet/IERC20Errors.sol +1 -1
  313. package/src/modules/erc20-puppet/IERC20Events.sol +1 -1
  314. package/src/modules/erc20-puppet/IERC20Mintable.sol +1 -1
  315. package/src/modules/erc20-puppet/constants.sol +2 -1
  316. package/src/modules/erc20-puppet/registerERC20.sol +1 -1
  317. package/src/modules/erc20-puppet/tables/Allowances.sol +43 -12
  318. package/src/modules/erc20-puppet/tables/ERC20Metadata.sol +44 -13
  319. package/src/modules/erc20-puppet/tables/ERC20Registry.sol +42 -12
  320. package/src/modules/erc20-puppet/tables/TotalSupply.sol +41 -12
  321. package/src/modules/erc20-puppet/utils.sol +1 -1
  322. package/src/modules/erc721-puppet/ERC721Module.sol +25 -16
  323. package/src/modules/erc721-puppet/ERC721System.sol +1 -1
  324. package/src/modules/erc721-puppet/IERC721.sol +1 -1
  325. package/src/modules/erc721-puppet/IERC721Errors.sol +1 -1
  326. package/src/modules/erc721-puppet/IERC721Events.sol +1 -1
  327. package/src/modules/erc721-puppet/IERC721Metadata.sol +1 -2
  328. package/src/modules/erc721-puppet/IERC721Mintable.sol +1 -1
  329. package/src/modules/erc721-puppet/IERC721Receiver.sol +1 -2
  330. package/src/modules/erc721-puppet/constants.sol +2 -1
  331. package/src/modules/erc721-puppet/registerERC721.sol +1 -1
  332. package/src/modules/erc721-puppet/tables/ERC721Metadata.sol +43 -12
  333. package/src/modules/erc721-puppet/tables/ERC721Registry.sol +42 -12
  334. package/src/modules/erc721-puppet/tables/OperatorApproval.sol +43 -12
  335. package/src/modules/erc721-puppet/tables/Owners.sol +42 -12
  336. package/src/modules/erc721-puppet/tables/TokenApproval.sol +42 -12
  337. package/src/modules/erc721-puppet/tables/TokenURI.sol +42 -12
  338. package/src/modules/erc721-puppet/utils.sol +1 -1
  339. package/src/modules/keysintable/KeysInTableHook.sol +1 -1
  340. package/src/modules/keysintable/KeysInTableModule.sol +23 -17
  341. package/src/modules/keysintable/constants.sol +1 -1
  342. package/src/modules/keysintable/getKeysInTable.sol +1 -1
  343. package/src/modules/keysintable/hasKey.sol +1 -1
  344. package/src/modules/keysintable/query.sol +1 -1
  345. package/src/modules/keysintable/tables/KeysInTable.sol +51 -15
  346. package/src/modules/keysintable/tables/UsedKeysIndex.sol +51 -17
  347. package/src/modules/keyswithvalue/KeysWithValueHook.sol +1 -1
  348. package/src/modules/keyswithvalue/KeysWithValueModule.sol +17 -22
  349. package/src/modules/keyswithvalue/constants.sol +1 -1
  350. package/src/modules/keyswithvalue/getKeysWithValue.sol +1 -1
  351. package/src/modules/keyswithvalue/getTargetTableId.sol +1 -1
  352. package/src/modules/keyswithvalue/tables/KeysWithValue.sol +43 -13
  353. package/src/modules/puppet/Puppet.sol +1 -1
  354. package/src/modules/puppet/PuppetDelegationControl.sol +1 -1
  355. package/src/modules/puppet/PuppetFactorySystem.sol +1 -1
  356. package/src/modules/puppet/PuppetMaster.sol +1 -1
  357. package/src/modules/puppet/PuppetModule.sol +9 -24
  358. package/src/modules/puppet/constants.sol +3 -4
  359. package/src/modules/puppet/createPuppet.sol +1 -1
  360. package/src/modules/puppet/tables/PuppetRegistry.sol +42 -12
  361. package/src/modules/puppet/utils.sol +1 -1
  362. package/src/modules/std-delegations/CallboundDelegationControl.sol +1 -1
  363. package/src/modules/std-delegations/StandardDelegationsModule.sol +6 -2
  364. package/src/modules/std-delegations/SystemboundDelegationControl.sol +1 -1
  365. package/src/modules/std-delegations/TimeboundDelegationControl.sol +1 -1
  366. package/src/modules/std-delegations/constants.sol +3 -1
  367. package/src/modules/std-delegations/tables/CallboundDelegations.sol +49 -14
  368. package/src/modules/std-delegations/tables/SystemboundDelegations.sol +48 -14
  369. package/src/modules/std-delegations/tables/TimeboundDelegations.sol +47 -14
  370. package/src/modules/tokens/tables/Balances.sol +42 -12
  371. package/src/modules/uniqueentity/UniqueEntityModule.sol +15 -16
  372. package/src/modules/uniqueentity/UniqueEntitySystem.sol +1 -1
  373. package/src/modules/uniqueentity/constants.sol +3 -3
  374. package/src/modules/uniqueentity/getUniqueEntity.sol +3 -2
  375. package/src/modules/uniqueentity/tables/UniqueEntity.sol +42 -13
  376. package/src/modules/utils/ArrayLib.sol +2 -2
  377. package/src/utils/AccessControlLib.sol +1 -2
  378. package/src/utils/SystemSwitch.sol +10 -8
  379. package/dist/mud.config.d.ts +0 -256
  380. package/out/ERC165Checker.sol/ERC165Checker.json +0 -1
  381. package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.abi.json +0 -88
  382. package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.abi.json.d.ts +0 -88
  383. package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.json +0 -1
  384. package/out/IModuleErrors.sol/IModuleErrors.abi.json +0 -28
  385. package/out/IModuleErrors.sol/IModuleErrors.abi.json.d.ts +0 -28
  386. package/out/IModuleErrors.sol/IModuleErrors.json +0 -1
  387. package/out/IPackedCounterErrors.sol/IPackedCounterErrors.abi.json +0 -13
  388. package/out/IPackedCounterErrors.sol/IPackedCounterErrors.json +0 -1
  389. package/out/IRegistrationSystem.sol/IRegistrationSystem.abi.json +0 -1
  390. package/out/IRegistrationSystem.sol/IRegistrationSystem.json +0 -1
  391. package/out/ISchemaErrors.sol/ISchemaErrors.abi.json +0 -18
  392. package/out/ISchemaErrors.sol/ISchemaErrors.json +0 -1
  393. package/out/ISliceErrors.sol/ISliceErrors.abi.json +0 -23
  394. package/out/ISliceErrors.sol/ISliceErrors.json +0 -1
  395. package/out/IWorldEvents.sol/IWorldEvents.abi.json +0 -15
  396. package/out/IWorldEvents.sol/IWorldEvents.abi.json.d.ts +0 -15
  397. package/out/IWorldEvents.sol/IWorldEvents.json +0 -1
  398. package/out/InitModule.sol/InitModule.json +0 -1
  399. package/out/InitModuleAddress.sol/InitModuleAddress.abi.json +0 -1
  400. package/out/InitModuleAddress.sol/InitModuleAddress.json +0 -1
  401. package/out/LimitedCallContext.sol/LimitedCallContext.abi.json +0 -7
  402. package/out/LimitedCallContext.sol/LimitedCallContext.abi.json.d.ts +0 -7
  403. package/out/LimitedCallContext.sol/LimitedCallContext.json +0 -1
  404. package/out/RegistrationSystem.sol/RegistrationSystem.json +0 -1
  405. /package/out/{ERC165Checker.sol/ERC165Checker.abi.json → ICoreSystem.sol/ICoreSystem.abi.json} +0 -0
  406. /package/out/{IPackedCounterErrors.sol/IPackedCounterErrors.abi.json.d.ts → PackedCounter.sol/PackedCounterInstance.abi.json.d.ts} +0 -0
  407. /package/out/{ISliceErrors.sol/ISliceErrors.abi.json.d.ts → Slice.sol/SliceLib.abi.json.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { BEFORE_SET_RECORD, AFTER_SPLICE_STATIC_DATA, AFTER_SPLICE_DYNAMIC_DATA, BEFORE_DELETE_RECORD } from "@latticexyz/store/src/storeHookTypes.sol";
5
5
  import { ResourceIds } from "@latticexyz/store/src/codegen/tables/ResourceIds.sol";
@@ -13,8 +13,8 @@ import { ResourceId, WorldResourceIdInstance } from "@latticexyz/world/src/World
13
13
  import { revertWithBytes } from "@latticexyz/world/src/revertWithBytes.sol";
14
14
 
15
15
  import { KeysInTableHook } from "./KeysInTableHook.sol";
16
- import { KeysInTable } from "./tables/KeysInTable.sol";
17
- import { UsedKeysIndex } from "./tables/UsedKeysIndex.sol";
16
+ import { KeysInTable, KeysInTableTableId } from "./tables/KeysInTable.sol";
17
+ import { UsedKeysIndex, UsedKeysIndexTableId } from "./tables/UsedKeysIndex.sol";
18
18
 
19
19
  /**
20
20
  * This module deploys a hook that is called when a value is set in the `sourceTableId`
@@ -33,13 +33,19 @@ contract KeysInTableModule is Module {
33
33
  // from the source table id (passed as argument to the hook methods)
34
34
  KeysInTableHook private immutable hook = new KeysInTableHook();
35
35
 
36
- function installRoot(bytes memory encodedArgs) public override {
36
+ function getName() public pure returns (bytes16) {
37
+ return bytes16("keysInTable");
38
+ }
39
+
40
+ function installRoot(bytes memory args) public override {
37
41
  // Naive check to ensure this is only installed once
38
42
  // TODO: only revert if there's nothing to do
39
- requireNotInstalled(__self, encodedArgs);
43
+ if (InstalledModules.getModuleAddress(getName(), keccak256(args)) != address(0)) {
44
+ revert Module_AlreadyInstalled();
45
+ }
40
46
 
41
47
  // Extract source table id from args
42
- ResourceId sourceTableId = ResourceId.wrap(abi.decode(encodedArgs, (bytes32)));
48
+ ResourceId sourceTableId = ResourceId.wrap(abi.decode(args, (bytes32)));
43
49
 
44
50
  IBaseWorld world = IBaseWorld(_world());
45
51
 
@@ -47,16 +53,16 @@ contract KeysInTableModule is Module {
47
53
  bool success;
48
54
  bytes memory returnData;
49
55
 
50
- if (!ResourceIds._getExists(KeysInTable._tableId)) {
56
+ if (!ResourceIds._getExists(KeysInTableTableId)) {
51
57
  // Register the tables
52
58
  (success, returnData) = address(world).delegatecall(
53
59
  abi.encodeCall(
54
60
  world.registerTable,
55
61
  (
56
- KeysInTable._tableId,
57
- KeysInTable._fieldLayout,
58
- KeysInTable._keySchema,
59
- KeysInTable._valueSchema,
62
+ KeysInTableTableId,
63
+ KeysInTable.getFieldLayout(),
64
+ KeysInTable.getKeySchema(),
65
+ KeysInTable.getValueSchema(),
60
66
  KeysInTable.getKeyNames(),
61
67
  KeysInTable.getFieldNames()
62
68
  )
@@ -68,10 +74,10 @@ contract KeysInTableModule is Module {
68
74
  abi.encodeCall(
69
75
  world.registerTable,
70
76
  (
71
- UsedKeysIndex._tableId,
72
- UsedKeysIndex._fieldLayout,
73
- UsedKeysIndex._keySchema,
74
- UsedKeysIndex._valueSchema,
77
+ UsedKeysIndexTableId,
78
+ UsedKeysIndex.getFieldLayout(),
79
+ UsedKeysIndex.getKeySchema(),
80
+ UsedKeysIndex.getValueSchema(),
75
81
  UsedKeysIndex.getKeyNames(),
76
82
  UsedKeysIndex.getFieldNames()
77
83
  )
@@ -81,12 +87,12 @@ contract KeysInTableModule is Module {
81
87
 
82
88
  // Grant the hook access to the tables
83
89
  (success, returnData) = address(world).delegatecall(
84
- abi.encodeCall(world.grantAccess, (KeysInTable._tableId, address(hook)))
90
+ abi.encodeCall(world.grantAccess, (KeysInTableTableId, address(hook)))
85
91
  );
86
92
  if (!success) revertWithBytes(returnData);
87
93
 
88
94
  (success, returnData) = address(world).delegatecall(
89
- abi.encodeCall(world.grantAccess, (UsedKeysIndex._tableId, address(hook)))
95
+ abi.encodeCall(world.grantAccess, (UsedKeysIndexTableId, address(hook)))
90
96
  );
91
97
  if (!success) revertWithBytes(returnData);
92
98
  }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  // Limiting the module namespace to 8 bytes so the last 8 bytes
5
5
  // can be used for an identifier of the source table namespace to avoid
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { IStore } from "@latticexyz/store/src/IStore.sol";
5
5
  import { Schema } from "@latticexyz/store/src/Schema.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { IStore } from "@latticexyz/store/src/IStore.sol";
5
5
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { IStore } from "@latticexyz/store/src/IStore.sol";
5
5
  import { PackedCounter } from "@latticexyz/store/src/PackedCounter.sol";
@@ -1,8 +1,11 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  /* Autogenerated file. Do not edit manually. */
5
5
 
6
+ // Import schema type
7
+ import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
8
+
6
9
  // Import store internals
7
10
  import { IStore } from "@latticexyz/store/src/IStore.sol";
8
11
  import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
@@ -11,14 +14,24 @@ import { Bytes } from "@latticexyz/store/src/Bytes.sol";
11
14
  import { Memory } from "@latticexyz/store/src/Memory.sol";
12
15
  import { SliceLib } from "@latticexyz/store/src/Slice.sol";
13
16
  import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol";
14
- import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
15
- import { Schema } from "@latticexyz/store/src/Schema.sol";
17
+ import { FieldLayout, FieldLayoutLib } from "@latticexyz/store/src/FieldLayout.sol";
18
+ import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
16
19
  import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
17
20
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
21
+ import { RESOURCE_TABLE, RESOURCE_OFFCHAIN_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
18
22
 
19
23
  // Import user types
20
24
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
21
25
 
26
+ ResourceId constant _tableId = ResourceId.wrap(
27
+ bytes32(abi.encodePacked(RESOURCE_TABLE, bytes14(""), bytes16("KeysInTable")))
28
+ );
29
+ ResourceId constant KeysInTableTableId = _tableId;
30
+
31
+ FieldLayout constant _fieldLayout = FieldLayout.wrap(
32
+ 0x0000000500000000000000000000000000000000000000000000000000000000
33
+ );
34
+
22
35
  struct KeysInTableData {
23
36
  bytes32[] keys0;
24
37
  bytes32[] keys1;
@@ -28,16 +41,39 @@ struct KeysInTableData {
28
41
  }
29
42
 
30
43
  library KeysInTable {
31
- // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "", name: "KeysInTable", typeId: RESOURCE_TABLE });`
32
- ResourceId constant _tableId = ResourceId.wrap(0x746200000000000000000000000000004b657973496e5461626c650000000000);
44
+ /**
45
+ * @notice Get the table values' field layout.
46
+ * @return _fieldLayout The field layout for the table.
47
+ */
48
+ function getFieldLayout() internal pure returns (FieldLayout) {
49
+ return _fieldLayout;
50
+ }
51
+
52
+ /**
53
+ * @notice Get the table's key schema.
54
+ * @return _keySchema The key schema for the table.
55
+ */
56
+ function getKeySchema() internal pure returns (Schema) {
57
+ SchemaType[] memory _keySchema = new SchemaType[](1);
58
+ _keySchema[0] = SchemaType.BYTES32;
33
59
 
34
- FieldLayout constant _fieldLayout =
35
- FieldLayout.wrap(0x0000000500000000000000000000000000000000000000000000000000000000);
60
+ return SchemaLib.encode(_keySchema);
61
+ }
36
62
 
37
- // Hex-encoded key schema of (bytes32)
38
- Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000);
39
- // Hex-encoded value schema of (bytes32[], bytes32[], bytes32[], bytes32[], bytes32[])
40
- Schema constant _valueSchema = Schema.wrap(0x00000005c1c1c1c1c10000000000000000000000000000000000000000000000);
63
+ /**
64
+ * @notice Get the table's value schema.
65
+ * @return _valueSchema The value schema for the table.
66
+ */
67
+ function getValueSchema() internal pure returns (Schema) {
68
+ SchemaType[] memory _valueSchema = new SchemaType[](5);
69
+ _valueSchema[0] = SchemaType.BYTES32_ARRAY;
70
+ _valueSchema[1] = SchemaType.BYTES32_ARRAY;
71
+ _valueSchema[2] = SchemaType.BYTES32_ARRAY;
72
+ _valueSchema[3] = SchemaType.BYTES32_ARRAY;
73
+ _valueSchema[4] = SchemaType.BYTES32_ARRAY;
74
+
75
+ return SchemaLib.encode(_valueSchema);
76
+ }
41
77
 
42
78
  /**
43
79
  * @notice Get the table's key field names.
@@ -65,21 +101,21 @@ library KeysInTable {
65
101
  * @notice Register the table with its config.
66
102
  */
67
103
  function register() internal {
68
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
104
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
69
105
  }
70
106
 
71
107
  /**
72
108
  * @notice Register the table with its config.
73
109
  */
74
110
  function _register() internal {
75
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
111
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
76
112
  }
77
113
 
78
114
  /**
79
115
  * @notice Register the table with its config (using the specified store).
80
116
  */
81
117
  function register(IStore _store) internal {
82
- _store.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
118
+ _store.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
83
119
  }
84
120
 
85
121
  /**
@@ -1592,7 +1628,7 @@ library KeysInTable {
1592
1628
  * @notice Encode all of a record's fields.
1593
1629
  * @return The static (fixed length) data, encoded into a sequence of bytes.
1594
1630
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
1595
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
1631
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
1596
1632
  */
1597
1633
  function encode(
1598
1634
  bytes32[] memory keys0,
@@ -1,8 +1,11 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  /* Autogenerated file. Do not edit manually. */
5
5
 
6
+ // Import schema type
7
+ import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
8
+
6
9
  // Import store internals
7
10
  import { IStore } from "@latticexyz/store/src/IStore.sol";
8
11
  import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
@@ -11,25 +14,56 @@ import { Bytes } from "@latticexyz/store/src/Bytes.sol";
11
14
  import { Memory } from "@latticexyz/store/src/Memory.sol";
12
15
  import { SliceLib } from "@latticexyz/store/src/Slice.sol";
13
16
  import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol";
14
- import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
15
- import { Schema } from "@latticexyz/store/src/Schema.sol";
17
+ import { FieldLayout, FieldLayoutLib } from "@latticexyz/store/src/FieldLayout.sol";
18
+ import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
16
19
  import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
17
20
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
21
+ import { RESOURCE_TABLE, RESOURCE_OFFCHAIN_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
18
22
 
19
23
  // Import user types
20
24
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
21
25
 
26
+ ResourceId constant _tableId = ResourceId.wrap(
27
+ bytes32(abi.encodePacked(RESOURCE_TABLE, bytes14(""), bytes16("UsedKeysIndex")))
28
+ );
29
+ ResourceId constant UsedKeysIndexTableId = _tableId;
30
+
31
+ FieldLayout constant _fieldLayout = FieldLayout.wrap(
32
+ 0x0006020001050000000000000000000000000000000000000000000000000000
33
+ );
34
+
22
35
  library UsedKeysIndex {
23
- // Hex below is the result of `WorldResourceIdLib.encode({ namespace: "", name: "UsedKeysIndex", typeId: RESOURCE_TABLE });`
24
- ResourceId constant _tableId = ResourceId.wrap(0x74620000000000000000000000000000557365644b657973496e646578000000);
36
+ /**
37
+ * @notice Get the table values' field layout.
38
+ * @return _fieldLayout The field layout for the table.
39
+ */
40
+ function getFieldLayout() internal pure returns (FieldLayout) {
41
+ return _fieldLayout;
42
+ }
43
+
44
+ /**
45
+ * @notice Get the table's key schema.
46
+ * @return _keySchema The key schema for the table.
47
+ */
48
+ function getKeySchema() internal pure returns (Schema) {
49
+ SchemaType[] memory _keySchema = new SchemaType[](2);
50
+ _keySchema[0] = SchemaType.BYTES32;
51
+ _keySchema[1] = SchemaType.BYTES32;
25
52
 
26
- FieldLayout constant _fieldLayout =
27
- FieldLayout.wrap(0x0006020001050000000000000000000000000000000000000000000000000000);
53
+ return SchemaLib.encode(_keySchema);
54
+ }
28
55
 
29
- // Hex-encoded key schema of (bytes32, bytes32)
30
- Schema constant _keySchema = Schema.wrap(0x004002005f5f0000000000000000000000000000000000000000000000000000);
31
- // Hex-encoded value schema of (bool, uint40)
32
- Schema constant _valueSchema = Schema.wrap(0x0006020060040000000000000000000000000000000000000000000000000000);
56
+ /**
57
+ * @notice Get the table's value schema.
58
+ * @return _valueSchema The value schema for the table.
59
+ */
60
+ function getValueSchema() internal pure returns (Schema) {
61
+ SchemaType[] memory _valueSchema = new SchemaType[](2);
62
+ _valueSchema[0] = SchemaType.BOOL;
63
+ _valueSchema[1] = SchemaType.UINT40;
64
+
65
+ return SchemaLib.encode(_valueSchema);
66
+ }
33
67
 
34
68
  /**
35
69
  * @notice Get the table's key field names.
@@ -55,21 +89,21 @@ library UsedKeysIndex {
55
89
  * @notice Register the table with its config.
56
90
  */
57
91
  function register() internal {
58
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
92
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
59
93
  }
60
94
 
61
95
  /**
62
96
  * @notice Register the table with its config.
63
97
  */
64
98
  function _register() internal {
65
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
99
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
66
100
  }
67
101
 
68
102
  /**
69
103
  * @notice Register the table with its config (using the specified store).
70
104
  */
71
105
  function register(IStore _store) internal {
72
- _store.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
106
+ _store.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
73
107
  }
74
108
 
75
109
  /**
@@ -314,9 +348,9 @@ library UsedKeysIndex {
314
348
  * @notice Decode the tightly packed blob of static data using this table's field layout.
315
349
  */
316
350
  function decodeStatic(bytes memory _blob) internal pure returns (bool has, uint40 index) {
317
- has = (_toBool(uint8(Bytes.getBytes1(_blob, 0))));
351
+ has = (_toBool(uint8(Bytes.slice1(_blob, 0))));
318
352
 
319
- index = (uint40(Bytes.getBytes5(_blob, 1)));
353
+ index = (uint40(Bytes.slice5(_blob, 1)));
320
354
  }
321
355
 
322
356
  /**
@@ -378,7 +412,7 @@ library UsedKeysIndex {
378
412
  * @notice Encode all of a record's fields.
379
413
  * @return The static (fixed length) data, encoded into a sequence of bytes.
380
414
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
381
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
415
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
382
416
  */
383
417
  function encode(bool has, uint40 index) internal pure returns (bytes memory, PackedCounter, bytes memory) {
384
418
  bytes memory _staticData = encodeStatic(has, index);
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { StoreHook } from "@latticexyz/store/src/StoreHook.sol";
5
5
  import { Bytes } from "@latticexyz/store/src/Bytes.sol";
@@ -1,10 +1,9 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
  import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
4
4
  import { BEFORE_SET_RECORD, BEFORE_SPLICE_STATIC_DATA, AFTER_SPLICE_STATIC_DATA, BEFORE_SPLICE_DYNAMIC_DATA, AFTER_SPLICE_DYNAMIC_DATA, BEFORE_DELETE_RECORD } from "@latticexyz/store/src/storeHookTypes.sol";
5
- import { ResourceIds } from "@latticexyz/store/src/codegen/tables/ResourceIds.sol";
6
-
7
5
  import { Module } from "@latticexyz/world/src/Module.sol";
6
+
8
7
  import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
9
8
  import { InstalledModules } from "@latticexyz/world/src/codegen/index.sol";
10
9
 
@@ -35,45 +34,41 @@ contract KeysWithValueModule is Module {
35
34
  // from the source table id (passed as argument to the hook methods)
36
35
  KeysWithValueHook private immutable hook = new KeysWithValueHook();
37
36
 
38
- function installRoot(bytes memory encodedArgs) public {
37
+ function getName() public pure returns (bytes16) {
38
+ return bytes16("index");
39
+ }
40
+
41
+ function installRoot(bytes memory args) public {
39
42
  // Naive check to ensure this is only installed once
40
43
  // TODO: only revert if there's nothing to do
41
- requireNotInstalled(__self, encodedArgs);
44
+ if (InstalledModules.getModuleAddress(getName(), keccak256(args)) != address(0)) {
45
+ revert Module_AlreadyInstalled();
46
+ }
42
47
 
43
48
  // Extract source table id from args
44
- ResourceId sourceTableId = ResourceId.wrap(abi.decode(encodedArgs, (bytes32)));
45
- ResourceId targetTableId = getTargetTableId(MODULE_NAMESPACE, sourceTableId);
49
+ ResourceId sourceTableId = ResourceId.wrap(abi.decode(args, (bytes32)));
50
+ ResourceId targetTableSelector = getTargetTableId(MODULE_NAMESPACE, sourceTableId);
46
51
 
47
52
  IBaseWorld world = IBaseWorld(_world());
48
53
 
49
- // Register the target namespace if it doesn't exist yet
50
- if (!ResourceIds.getExists(targetTableId.getNamespaceId())) {
51
- (bool registrationSuccess, bytes memory registrationReturnData) = address(world).delegatecall(
52
- abi.encodeCall(world.registerNamespace, (targetTableId.getNamespaceId()))
53
- );
54
- if (!registrationSuccess) revertWithBytes(registrationReturnData);
55
- }
56
-
57
54
  // Register the target table
58
55
  (bool success, bytes memory returnData) = address(world).delegatecall(
59
56
  abi.encodeCall(
60
57
  world.registerTable,
61
58
  (
62
- targetTableId,
63
- KeysWithValue._fieldLayout,
64
- KeysWithValue._keySchema,
65
- KeysWithValue._valueSchema,
59
+ targetTableSelector,
60
+ KeysWithValue.getFieldLayout(),
61
+ KeysWithValue.getKeySchema(),
62
+ KeysWithValue.getValueSchema(),
66
63
  KeysWithValue.getKeyNames(),
67
64
  KeysWithValue.getFieldNames()
68
65
  )
69
66
  )
70
67
  );
71
68
 
72
- if (!success) revertWithBytes(returnData);
73
-
74
69
  // Grant the hook access to the target table
75
70
  (success, returnData) = address(world).delegatecall(
76
- abi.encodeCall(world.grantAccess, (targetTableId, address(hook)))
71
+ abi.encodeCall(world.grantAccess, (targetTableSelector, address(hook)))
77
72
  );
78
73
 
79
74
  if (!success) revertWithBytes(returnData);
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  // Limiting the module namespace to 7 bytes so the remaining 7 bytes
5
5
  // can be used for an identifier of the source table namespace to avoid
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { IStore } from "@latticexyz/store/src/IStore.sol";
5
5
  import { PackedCounter } from "@latticexyz/store/src/PackedCounter.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { TYPE_BITS } from "@latticexyz/store/src/ResourceId.sol";
5
5
  import { ResourceId, WorldResourceIdInstance, NAME_BITS } from "@latticexyz/world/src/WorldResourceId.sol";
@@ -1,8 +1,11 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  /* Autogenerated file. Do not edit manually. */
5
5
 
6
+ // Import schema type
7
+ import { SchemaType } from "@latticexyz/schema-type/src/solidity/SchemaType.sol";
8
+
6
9
  // Import store internals
7
10
  import { IStore } from "@latticexyz/store/src/IStore.sol";
8
11
  import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
@@ -11,19 +14,46 @@ import { Bytes } from "@latticexyz/store/src/Bytes.sol";
11
14
  import { Memory } from "@latticexyz/store/src/Memory.sol";
12
15
  import { SliceLib } from "@latticexyz/store/src/Slice.sol";
13
16
  import { EncodeArray } from "@latticexyz/store/src/tightcoder/EncodeArray.sol";
14
- import { FieldLayout } from "@latticexyz/store/src/FieldLayout.sol";
15
- import { Schema } from "@latticexyz/store/src/Schema.sol";
17
+ import { FieldLayout, FieldLayoutLib } from "@latticexyz/store/src/FieldLayout.sol";
18
+ import { Schema, SchemaLib } from "@latticexyz/store/src/Schema.sol";
16
19
  import { PackedCounter, PackedCounterLib } from "@latticexyz/store/src/PackedCounter.sol";
17
20
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
21
+ import { RESOURCE_TABLE, RESOURCE_OFFCHAIN_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
22
+
23
+ FieldLayout constant _fieldLayout = FieldLayout.wrap(
24
+ 0x0000000100000000000000000000000000000000000000000000000000000000
25
+ );
18
26
 
19
27
  library KeysWithValue {
20
- FieldLayout constant _fieldLayout =
21
- FieldLayout.wrap(0x0000000100000000000000000000000000000000000000000000000000000000);
28
+ /**
29
+ * @notice Get the table values' field layout.
30
+ * @return _fieldLayout The field layout for the table.
31
+ */
32
+ function getFieldLayout() internal pure returns (FieldLayout) {
33
+ return _fieldLayout;
34
+ }
35
+
36
+ /**
37
+ * @notice Get the table's key schema.
38
+ * @return _keySchema The key schema for the table.
39
+ */
40
+ function getKeySchema() internal pure returns (Schema) {
41
+ SchemaType[] memory _keySchema = new SchemaType[](1);
42
+ _keySchema[0] = SchemaType.BYTES32;
43
+
44
+ return SchemaLib.encode(_keySchema);
45
+ }
22
46
 
23
- // Hex-encoded key schema of (bytes32)
24
- Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000);
25
- // Hex-encoded value schema of (bytes32[])
26
- Schema constant _valueSchema = Schema.wrap(0x00000001c1000000000000000000000000000000000000000000000000000000);
47
+ /**
48
+ * @notice Get the table's value schema.
49
+ * @return _valueSchema The value schema for the table.
50
+ */
51
+ function getValueSchema() internal pure returns (Schema) {
52
+ SchemaType[] memory _valueSchema = new SchemaType[](1);
53
+ _valueSchema[0] = SchemaType.BYTES32_ARRAY;
54
+
55
+ return SchemaLib.encode(_valueSchema);
56
+ }
27
57
 
28
58
  /**
29
59
  * @notice Get the table's key field names.
@@ -47,21 +77,21 @@ library KeysWithValue {
47
77
  * @notice Register the table with its config.
48
78
  */
49
79
  function register(ResourceId _tableId) internal {
50
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
80
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
51
81
  }
52
82
 
53
83
  /**
54
84
  * @notice Register the table with its config.
55
85
  */
56
86
  function _register(ResourceId _tableId) internal {
57
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
87
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
58
88
  }
59
89
 
60
90
  /**
61
91
  * @notice Register the table with its config (using the specified store).
62
92
  */
63
93
  function register(IStore _store, ResourceId _tableId) internal {
64
- _store.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
94
+ _store.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
65
95
  }
66
96
 
67
97
  /**
@@ -646,7 +676,7 @@ library KeysWithValue {
646
676
  * @notice Encode all of a record's fields.
647
677
  * @return The static (fixed length) data, encoded into a sequence of bytes.
648
678
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
649
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
679
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
650
680
  */
651
681
  function encode(bytes32[] memory keysWithValue) internal pure returns (bytes memory, PackedCounter, bytes memory) {
652
682
  bytes memory _staticData;
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
5
5
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { DelegationControl } from "@latticexyz/world/src/DelegationControl.sol";
5
5
  import { ResourceId } from "@latticexyz/world/src/WorldResourceId.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
5
5
  import { System } from "@latticexyz/world/src/System.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
 
4
4
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
5
5
  import { SystemRegistry } from "@latticexyz/world/src/codegen/tables/SystemRegistry.sol";