@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
  interface IERC20Events {
5
5
  /**
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
3
3
 
4
- pragma solidity >=0.8.24;
4
+ pragma solidity >=0.8.21;
5
5
 
6
6
  import { IERC20 } from "./IERC20.sol";
7
7
 
@@ -1,9 +1,10 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
4
4
  import { RESOURCE_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
5
5
  import { RESOURCE_SYSTEM, RESOURCE_NAMESPACE } from "@latticexyz/world/src/worldResourceTypes.sol";
6
6
 
7
+ bytes16 constant MODULE_NAME = "erc20-puppet";
7
8
  bytes14 constant MODULE_NAMESPACE = "erc20-puppet";
8
9
  ResourceId constant MODULE_NAMESPACE_ID = ResourceId.wrap(
9
10
  bytes32(abi.encodePacked(RESOURCE_NAMESPACE, MODULE_NAMESPACE))
@@ -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 { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
5
5
  import { NamespaceOwner } from "@latticexyz/world/src/codegen/tables/NamespaceOwner.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,47 @@ 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
+ 0x0020010020000000000000000000000000000000000000000000000000000000
25
+ );
18
26
 
19
27
  library Allowances {
20
- FieldLayout constant _fieldLayout =
21
- FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000);
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[](2);
42
+ _keySchema[0] = SchemaType.ADDRESS;
43
+ _keySchema[1] = SchemaType.ADDRESS;
44
+
45
+ return SchemaLib.encode(_keySchema);
46
+ }
22
47
 
23
- // Hex-encoded key schema of (address, address)
24
- Schema constant _keySchema = Schema.wrap(0x0028020061610000000000000000000000000000000000000000000000000000);
25
- // Hex-encoded value schema of (uint256)
26
- Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000);
48
+ /**
49
+ * @notice Get the table's value schema.
50
+ * @return _valueSchema The value schema for the table.
51
+ */
52
+ function getValueSchema() internal pure returns (Schema) {
53
+ SchemaType[] memory _valueSchema = new SchemaType[](1);
54
+ _valueSchema[0] = SchemaType.UINT256;
55
+
56
+ return SchemaLib.encode(_valueSchema);
57
+ }
27
58
 
28
59
  /**
29
60
  * @notice Get the table's key field names.
@@ -48,14 +79,14 @@ library Allowances {
48
79
  * @notice Register the table with its config.
49
80
  */
50
81
  function register(ResourceId _tableId) internal {
51
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
82
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
52
83
  }
53
84
 
54
85
  /**
55
86
  * @notice Register the table with its config.
56
87
  */
57
88
  function _register(ResourceId _tableId) internal {
58
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
89
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
59
90
  }
60
91
 
61
92
  /**
@@ -184,7 +215,7 @@ library Allowances {
184
215
  * @notice Encode all of a record's fields.
185
216
  * @return The static (fixed length) data, encoded into a sequence of bytes.
186
217
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
187
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
218
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
188
219
  */
189
220
  function encode(uint256 value) internal pure returns (bytes memory, PackedCounter, bytes memory) {
190
221
  bytes memory _staticData = encodeStatic(value);
@@ -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,10 +14,15 @@ 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
+ 0x0001010201000000000000000000000000000000000000000000000000000000
25
+ );
18
26
 
19
27
  struct ERC20MetadataData {
20
28
  uint8 decimals;
@@ -23,13 +31,36 @@ struct ERC20MetadataData {
23
31
  }
24
32
 
25
33
  library ERC20Metadata {
26
- FieldLayout constant _fieldLayout =
27
- FieldLayout.wrap(0x0001010201000000000000000000000000000000000000000000000000000000);
34
+ /**
35
+ * @notice Get the table values' field layout.
36
+ * @return _fieldLayout The field layout for the table.
37
+ */
38
+ function getFieldLayout() internal pure returns (FieldLayout) {
39
+ return _fieldLayout;
40
+ }
41
+
42
+ /**
43
+ * @notice Get the table's key schema.
44
+ * @return _keySchema The key schema for the table.
45
+ */
46
+ function getKeySchema() internal pure returns (Schema) {
47
+ SchemaType[] memory _keySchema = new SchemaType[](0);
48
+
49
+ return SchemaLib.encode(_keySchema);
50
+ }
28
51
 
29
- // Hex-encoded key schema of ()
30
- Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000);
31
- // Hex-encoded value schema of (uint8, string, string)
32
- Schema constant _valueSchema = Schema.wrap(0x0001010200c5c500000000000000000000000000000000000000000000000000);
52
+ /**
53
+ * @notice Get the table's value schema.
54
+ * @return _valueSchema The value schema for the table.
55
+ */
56
+ function getValueSchema() internal pure returns (Schema) {
57
+ SchemaType[] memory _valueSchema = new SchemaType[](3);
58
+ _valueSchema[0] = SchemaType.UINT8;
59
+ _valueSchema[1] = SchemaType.STRING;
60
+ _valueSchema[2] = SchemaType.STRING;
61
+
62
+ return SchemaLib.encode(_valueSchema);
63
+ }
33
64
 
34
65
  /**
35
66
  * @notice Get the table's key field names.
@@ -54,14 +85,14 @@ library ERC20Metadata {
54
85
  * @notice Register the table with its config.
55
86
  */
56
87
  function register(ResourceId _tableId) internal {
57
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
88
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
58
89
  }
59
90
 
60
91
  /**
61
92
  * @notice Register the table with its config.
62
93
  */
63
94
  function _register(ResourceId _tableId) internal {
64
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
95
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
65
96
  }
66
97
 
67
98
  /**
@@ -486,7 +517,7 @@ library ERC20Metadata {
486
517
  * @notice Decode the tightly packed blob of static data using this table's field layout.
487
518
  */
488
519
  function decodeStatic(bytes memory _blob) internal pure returns (uint8 decimals) {
489
- decimals = (uint8(Bytes.getBytes1(_blob, 0)));
520
+ decimals = (uint8(Bytes.slice1(_blob, 0)));
490
521
  }
491
522
 
492
523
  /**
@@ -578,7 +609,7 @@ library ERC20Metadata {
578
609
  * @notice Encode all of a record's fields.
579
610
  * @return The static (fixed length) data, encoded into a sequence of bytes.
580
611
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
581
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
612
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
582
613
  */
583
614
  function encode(
584
615
  uint8 decimals,
@@ -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,22 +14,49 @@ 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
+ FieldLayout constant _fieldLayout = FieldLayout.wrap(
27
+ 0x0014010014000000000000000000000000000000000000000000000000000000
28
+ );
29
+
22
30
  library ERC20Registry {
23
- FieldLayout constant _fieldLayout =
24
- FieldLayout.wrap(0x0014010014000000000000000000000000000000000000000000000000000000);
31
+ /**
32
+ * @notice Get the table values' field layout.
33
+ * @return _fieldLayout The field layout for the table.
34
+ */
35
+ function getFieldLayout() internal pure returns (FieldLayout) {
36
+ return _fieldLayout;
37
+ }
38
+
39
+ /**
40
+ * @notice Get the table's key schema.
41
+ * @return _keySchema The key schema for the table.
42
+ */
43
+ function getKeySchema() internal pure returns (Schema) {
44
+ SchemaType[] memory _keySchema = new SchemaType[](1);
45
+ _keySchema[0] = SchemaType.BYTES32;
46
+
47
+ return SchemaLib.encode(_keySchema);
48
+ }
25
49
 
26
- // Hex-encoded key schema of (bytes32)
27
- Schema constant _keySchema = Schema.wrap(0x002001005f000000000000000000000000000000000000000000000000000000);
28
- // Hex-encoded value schema of (address)
29
- Schema constant _valueSchema = Schema.wrap(0x0014010061000000000000000000000000000000000000000000000000000000);
50
+ /**
51
+ * @notice Get the table's value schema.
52
+ * @return _valueSchema The value schema for the table.
53
+ */
54
+ function getValueSchema() internal pure returns (Schema) {
55
+ SchemaType[] memory _valueSchema = new SchemaType[](1);
56
+ _valueSchema[0] = SchemaType.ADDRESS;
57
+
58
+ return SchemaLib.encode(_valueSchema);
59
+ }
30
60
 
31
61
  /**
32
62
  * @notice Get the table's key field names.
@@ -50,14 +80,14 @@ library ERC20Registry {
50
80
  * @notice Register the table with its config.
51
81
  */
52
82
  function register(ResourceId _tableId) internal {
53
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
83
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
54
84
  }
55
85
 
56
86
  /**
57
87
  * @notice Register the table with its config.
58
88
  */
59
89
  function _register(ResourceId _tableId) internal {
60
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
90
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
61
91
  }
62
92
 
63
93
  /**
@@ -176,7 +206,7 @@ library ERC20Registry {
176
206
  * @notice Encode all of a record's fields.
177
207
  * @return The static (fixed length) data, encoded into a sequence of bytes.
178
208
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
179
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
209
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
180
210
  */
181
211
  function encode(address tokenAddress) internal pure returns (bytes memory, PackedCounter, bytes memory) {
182
212
  bytes memory _staticData = encodeStatic(tokenAddress);
@@ -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,45 @@ 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
+ 0x0020010020000000000000000000000000000000000000000000000000000000
25
+ );
18
26
 
19
27
  library TotalSupply {
20
- FieldLayout constant _fieldLayout =
21
- FieldLayout.wrap(0x0020010020000000000000000000000000000000000000000000000000000000);
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[](0);
42
+
43
+ return SchemaLib.encode(_keySchema);
44
+ }
22
45
 
23
- // Hex-encoded key schema of ()
24
- Schema constant _keySchema = Schema.wrap(0x0000000000000000000000000000000000000000000000000000000000000000);
25
- // Hex-encoded value schema of (uint256)
26
- Schema constant _valueSchema = Schema.wrap(0x002001001f000000000000000000000000000000000000000000000000000000);
46
+ /**
47
+ * @notice Get the table's value schema.
48
+ * @return _valueSchema The value schema for the table.
49
+ */
50
+ function getValueSchema() internal pure returns (Schema) {
51
+ SchemaType[] memory _valueSchema = new SchemaType[](1);
52
+ _valueSchema[0] = SchemaType.UINT256;
53
+
54
+ return SchemaLib.encode(_valueSchema);
55
+ }
27
56
 
28
57
  /**
29
58
  * @notice Get the table's key field names.
@@ -46,14 +75,14 @@ library TotalSupply {
46
75
  * @notice Register the table with its config.
47
76
  */
48
77
  function register(ResourceId _tableId) internal {
49
- StoreSwitch.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
78
+ StoreSwitch.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
50
79
  }
51
80
 
52
81
  /**
53
82
  * @notice Register the table with its config.
54
83
  */
55
84
  function _register(ResourceId _tableId) internal {
56
- StoreCore.registerTable(_tableId, _fieldLayout, _keySchema, _valueSchema, getKeyNames(), getFieldNames());
85
+ StoreCore.registerTable(_tableId, _fieldLayout, getKeySchema(), getValueSchema(), getKeyNames(), getFieldNames());
57
86
  }
58
87
 
59
88
  /**
@@ -162,7 +191,7 @@ library TotalSupply {
162
191
  * @notice Encode all of a record's fields.
163
192
  * @return The static (fixed length) data, encoded into a sequence of bytes.
164
193
  * @return The lengths of the dynamic fields (packed into a single bytes32 value).
165
- * @return The dynamic (variable length) data, encoded into a sequence of bytes.
194
+ * @return The dyanmic (variable length) data, encoded into a sequence of bytes.
166
195
  */
167
196
  function encode(uint256 totalSupply) internal pure returns (bytes memory, PackedCounter, bytes memory) {
168
197
  bytes memory _staticData = encodeStatic(totalSupply);
@@ -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 { RESOURCE_TABLE } from "@latticexyz/store/src/storeResourceTypes.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 { ResourceIds } from "@latticexyz/store/src/codegen/tables/ResourceIds.sol";
5
5
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
@@ -7,13 +7,13 @@ import { Module } from "@latticexyz/world/src/Module.sol";
7
7
  import { WorldResourceIdLib } from "@latticexyz/world/src/WorldResourceId.sol";
8
8
  import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
9
9
  import { InstalledModules } from "@latticexyz/world/src/codegen/tables/InstalledModules.sol";
10
- import { revertWithBytes } from "@latticexyz/world/src/revertWithBytes.sol";
11
10
 
12
11
  import { Puppet } from "../puppet/Puppet.sol";
13
12
  import { createPuppet } from "../puppet/createPuppet.sol";
13
+ import { MODULE_NAME as PUPPET_MODULE_NAME } from "../puppet/constants.sol";
14
14
  import { Balances } from "../tokens/tables/Balances.sol";
15
15
 
16
- import { MODULE_NAMESPACE, MODULE_NAMESPACE_ID, ERC721_REGISTRY_TABLE_ID } from "./constants.sol";
16
+ import { MODULE_NAME, MODULE_NAMESPACE, MODULE_NAMESPACE_ID, ERC721_REGISTRY_TABLE_ID } from "./constants.sol";
17
17
  import { _erc721SystemId, _balancesTableId, _metadataTableId, _tokenUriTableId, _operatorApprovalTableId, _ownersTableId, _tokenApprovalTableId } from "./utils.sol";
18
18
  import { ERC721System } from "./ERC721System.sol";
19
19
 
@@ -29,24 +29,37 @@ contract ERC721Module is Module {
29
29
 
30
30
  address immutable registrationLibrary = address(new ERC721ModuleRegistrationLibrary());
31
31
 
32
- function install(bytes memory encodedArgs) public {
32
+ function getName() public pure override returns (bytes16) {
33
+ return MODULE_NAME;
34
+ }
35
+
36
+ function _requireDependencies() internal {
37
+ // Require PuppetModule to be installed
38
+ if (InstalledModules.get(PUPPET_MODULE_NAME, keccak256(new bytes(0))) == address(0)) {
39
+ revert Module_MissingDependency(string(bytes.concat(PUPPET_MODULE_NAME)));
40
+ }
41
+ }
42
+
43
+ function install(bytes memory args) public {
33
44
  // Require the module to not be installed with these args yet
34
- requireNotInstalled(__self, encodedArgs);
45
+ if (InstalledModules.get(MODULE_NAME, keccak256(args)) != address(0)) {
46
+ revert Module_AlreadyInstalled();
47
+ }
35
48
 
36
- // Decode args
37
- (bytes14 namespace, ERC721MetadataData memory metadata) = abi.decode(encodedArgs, (bytes14, ERC721MetadataData));
49
+ // Extract args
50
+ (bytes14 namespace, ERC721MetadataData memory metadata) = abi.decode(args, (bytes14, ERC721MetadataData));
38
51
 
39
52
  // Require the namespace to not be the module's namespace
40
53
  if (namespace == MODULE_NAMESPACE) {
41
54
  revert ERC721Module_InvalidNamespace(namespace);
42
55
  }
43
56
 
57
+ // Require dependencies
58
+ _requireDependencies();
59
+
44
60
  // Register the ERC721 tables and system
45
61
  IBaseWorld world = IBaseWorld(_world());
46
- (bool success, bytes memory returnData) = registrationLibrary.delegatecall(
47
- abi.encodeCall(ERC721ModuleRegistrationLibrary.register, (world, namespace))
48
- );
49
- if (!success) revertWithBytes(returnData);
62
+ registrationLibrary.delegatecall(abi.encodeCall(ERC721ModuleRegistrationLibrary.register, (world, namespace)));
50
63
 
51
64
  // Initialize the Metadata
52
65
  ERC721Metadata.set(_metadataTableId(namespace), metadata);
@@ -61,7 +74,6 @@ contract ERC721Module is Module {
61
74
 
62
75
  // Register the ERC721 in the ERC20Registry
63
76
  if (!ResourceIds.getExists(ERC721_REGISTRY_TABLE_ID)) {
64
- world.registerNamespace(MODULE_NAMESPACE_ID);
65
77
  ERC721Registry.register(ERC721_REGISTRY_TABLE_ID);
66
78
  }
67
79
  ERC721Registry.set(ERC721_REGISTRY_TABLE_ID, namespaceId, puppet);
@@ -77,11 +89,8 @@ contract ERC721ModuleRegistrationLibrary {
77
89
  * Register systems and tables for a new ERC721 token in a given namespace
78
90
  */
79
91
  function register(IBaseWorld world, bytes14 namespace) public {
80
- // Register the namespace if it doesn't exist yet
81
- ResourceId tokenNamespace = WorldResourceIdLib.encodeNamespace(namespace);
82
- world.registerNamespace(tokenNamespace);
83
-
84
92
  // Register the tables
93
+
85
94
  OperatorApproval.register(_operatorApprovalTableId(namespace));
86
95
  Owners.register(_ownersTableId(namespace));
87
96
  TokenApproval.register(_tokenApprovalTableId(namespace));
@@ -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,6 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)
3
- pragma solidity >=0.8.24;
3
+ pragma solidity >=0.8.21;
4
4
 
5
5
  import { IERC721Events } from "./IERC721Events.sol";
6
6
  import { IERC721Errors } from "./IERC721Errors.sol";
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
3
- pragma solidity >=0.8.24;
3
+ pragma solidity >=0.8.21;
4
4
 
5
5
  /**
6
6
  * @dev Standard ERC721 Errors
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)
3
- pragma solidity >=0.8.24;
3
+ pragma solidity >=0.8.21;
4
4
 
5
5
  /**
6
6
  * @dev Events emitted by an ERC721 compliant contract.
@@ -1,12 +1,11 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)
3
- pragma solidity >=0.8.24;
3
+ pragma solidity >=0.8.21;
4
4
 
5
5
  import { IERC721 } from "./IERC721.sol";
6
6
 
7
7
  /**
8
8
  * @title ERC-721 Non-Fungible Token Standard, optional metadata extension
9
- * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
10
9
  * @dev See https://eips.ethereum.org/EIPS/eip-721
11
10
  */
12
11
  interface IERC721Metadata is IERC721 {
@@ -1,6 +1,6 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
3
- pragma solidity >=0.8.24;
3
+ pragma solidity >=0.8.21;
4
4
 
5
5
  import { IERC721 } from "./IERC721.sol";
6
6
 
@@ -1,10 +1,9 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
  // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)
3
- pragma solidity >=0.8.24;
3
+ pragma solidity >=0.8.21;
4
4
 
5
5
  /**
6
6
  * @title ERC721 token receiver interface
7
- * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
8
7
  * @dev Interface for any contract that wants to support safeTransfers
9
8
  * from ERC721 asset contracts.
10
9
  */
@@ -1,9 +1,10 @@
1
1
  // SPDX-License-Identifier: MIT
2
- pragma solidity >=0.8.24;
2
+ pragma solidity >=0.8.21;
3
3
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
4
4
  import { RESOURCE_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
5
5
  import { RESOURCE_SYSTEM, RESOURCE_NAMESPACE } from "@latticexyz/world/src/worldResourceTypes.sol";
6
6
 
7
+ bytes16 constant MODULE_NAME = "erc721-puppet";
7
8
  bytes14 constant MODULE_NAMESPACE = "erc721-puppet";
8
9
  ResourceId constant MODULE_NAMESPACE_ID = ResourceId.wrap(
9
10
  bytes32(abi.encodePacked(RESOURCE_NAMESPACE, MODULE_NAMESPACE))
@@ -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 { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
5
5
  import { NamespaceOwner } from "@latticexyz/world/src/codegen/tables/NamespaceOwner.sol";