@latticexyz/world-module-erc20 2.2.19 → 2.2.20-06e48e0239a5c7994ce73b4d2752860743fec4b0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/README.md +11 -39
  2. package/out/AccessControl.sol/AccessControl.json +1 -1
  3. package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json +1 -1
  4. package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json.d.ts +1 -1
  5. package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
  6. package/out/Allowances.sol/Allowances.json +1 -1
  7. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json +1 -1
  8. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json.d.ts +1 -1
  9. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
  10. package/out/Balances.sol/Balances.json +1 -1
  11. package/out/Base.sol/CommonBase.json +1 -1
  12. package/out/Base.sol/ScriptBase.json +1 -1
  13. package/out/Base.sol/TestBase.json +1 -1
  14. package/out/BatchCallSystem.sol/BatchCallSystem.abi.json +1 -1
  15. package/out/BatchCallSystem.sol/BatchCallSystem.abi.json.d.ts +1 -1
  16. package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
  17. package/out/Bytes.sol/Bytes.json +1 -1
  18. package/out/Constants.sol/ERC20TableNames.json +1 -1
  19. package/out/Constants.sol/ModuleConstants.json +1 -1
  20. package/out/Constants.sol/OwnableTableNames.json +1 -1
  21. package/out/Constants.sol/PausableTableNames.json +1 -1
  22. package/out/DecodeSlice.sol/DecodeSlice.json +1 -1
  23. package/out/Delegation.sol/Delegation.json +1 -1
  24. package/out/ERC165Checker.sol/ERC165Checker.json +1 -1
  25. package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.abi.json +7 -0
  26. package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.abi.json.d.ts +7 -0
  27. package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.json +1 -1
  28. package/out/ERC20BaseTest.t.sol/{ERC20WithWorldTest.json → ERC20Test.json} +1 -1
  29. package/out/ERC20BaseTest.t.sol/MockERC20Base.abi.json +160 -6
  30. package/out/ERC20BaseTest.t.sol/MockERC20Base.abi.json.d.ts +160 -6
  31. package/out/ERC20BaseTest.t.sol/MockERC20Base.json +1 -1
  32. package/out/ERC20BaseTest.t.sol/TestConstants.json +1 -1
  33. package/out/ERC20Burnable.sol/ERC20Burnable.abi.json +155 -6
  34. package/out/ERC20Burnable.sol/ERC20Burnable.abi.json.d.ts +155 -6
  35. package/out/ERC20Burnable.sol/ERC20Burnable.json +1 -1
  36. package/out/ERC20Burnable.t.sol/ERC20BurnableTest.abi.json +7 -0
  37. package/out/ERC20Burnable.t.sol/ERC20BurnableTest.abi.json.d.ts +7 -0
  38. package/out/ERC20Burnable.t.sol/ERC20BurnableTest.json +1 -1
  39. package/out/ERC20Burnable.t.sol/{MockERC20WithWorldBurnable.abi.json → MockERC20Burnable.abi.json} +53 -42
  40. package/out/ERC20Burnable.t.sol/{MockERC20WithWorldBurnable.abi.json.d.ts → MockERC20Burnable.abi.json.d.ts} +53 -42
  41. package/out/ERC20Burnable.t.sol/MockERC20Burnable.json +1 -0
  42. package/out/ERC20Metadata.sol/ERC20Metadata.json +1 -1
  43. package/out/ERC20Module.sol/ERC20Module.abi.json +3 -3
  44. package/out/ERC20Module.sol/ERC20Module.abi.json.d.ts +3 -3
  45. package/out/ERC20Module.sol/ERC20Module.json +1 -1
  46. package/out/ERC20Module.sol/ERC20RegistryLib.json +1 -1
  47. package/out/ERC20Module.t.sol/ERC20ModuleTest.json +1 -1
  48. package/out/ERC20Module.t.sol/TestConstants.json +1 -1
  49. package/out/ERC20Pausable.sol/ERC20Pausable.abi.json +155 -6
  50. package/out/ERC20Pausable.sol/ERC20Pausable.abi.json.d.ts +155 -6
  51. package/out/ERC20Pausable.sol/ERC20Pausable.json +1 -1
  52. package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.abi.json +7 -0
  53. package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.abi.json.d.ts +7 -0
  54. package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.json +1 -1
  55. package/out/ERC20Pausable.t.sol/MockERC20Pausable.abi.json +191 -6
  56. package/out/ERC20Pausable.t.sol/MockERC20Pausable.abi.json.d.ts +191 -6
  57. package/out/ERC20Pausable.t.sol/MockERC20Pausable.json +1 -1
  58. package/out/{ERC20WithWorld.sol/ERC20WithWorld.abi.json → ERC20PausableBurnable.sol/ERC20PausableBurnable.abi.json} +57 -46
  59. package/out/{ERC20WithWorld.sol/ERC20WithWorld.abi.json.d.ts → ERC20PausableBurnable.sol/ERC20PausableBurnable.abi.json.d.ts} +57 -46
  60. package/out/ERC20PausableBurnable.sol/ERC20PausableBurnable.json +1 -0
  61. package/out/ERC20Registry.sol/ERC20Registry.json +1 -1
  62. package/out/EncodeArray.sol/EncodeArray.json +1 -1
  63. package/out/EncodedLengths.sol/EncodedLengthsInstance.json +1 -1
  64. package/out/EncodedLengths.sol/EncodedLengthsLib.json +1 -1
  65. package/out/FieldLayout.sol/FieldLayoutInstance.json +1 -1
  66. package/out/FieldLayout.sol/FieldLayoutLib.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.json +1 -1
  74. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +1 -1
  75. package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
  76. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
  77. package/out/IDelegationControl.sol/IDelegationControl.json +1 -1
  78. package/out/IERC165.sol/IERC165.json +1 -1
  79. package/out/IERC20.sol/IERC20.json +1 -1
  80. package/out/IERC20Errors.sol/IERC20Errors.json +1 -1
  81. package/out/IERC20Events.sol/IERC20Events.json +1 -1
  82. package/out/IERC20Metadata.sol/IERC20Metadata.json +1 -1
  83. package/out/IEncodedLengthsErrors.sol/IEncodedLengthsErrors.json +1 -1
  84. package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.json +1 -1
  85. package/out/IModule.sol/IModule.json +1 -1
  86. package/out/IModuleErrors.sol/IModuleErrors.json +1 -1
  87. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
  88. package/out/IMulticall3.sol/IMulticall3.json +1 -1
  89. package/out/IRegistrationSystem.sol/IRegistrationSystem.json +1 -1
  90. package/out/ISchemaErrors.sol/ISchemaErrors.json +1 -1
  91. package/out/ISliceErrors.sol/ISliceErrors.json +1 -1
  92. package/out/IStore.sol/IStore.json +1 -1
  93. package/out/IStoreErrors.sol/IStoreErrors.json +1 -1
  94. package/out/IStoreEvents.sol/IStoreEvents.json +1 -1
  95. package/out/IStoreHook.sol/IStoreHook.json +1 -1
  96. package/out/IStoreKernel.sol/IStoreKernel.json +1 -1
  97. package/out/IStoreRead.sol/IStoreRead.json +1 -1
  98. package/out/IStoreRegistration.sol/IStoreRegistration.json +1 -1
  99. package/out/IStoreWrite.sol/IStoreWrite.json +1 -1
  100. package/out/ISystemHook.sol/ISystemHook.json +1 -1
  101. package/out/IWorldContextConsumer.sol/IWorldContextConsumer.json +1 -1
  102. package/out/IWorldErrors.sol/IWorldErrors.json +1 -1
  103. package/out/IWorldEvents.sol/IWorldEvents.json +1 -1
  104. package/out/IWorldKernel.sol/IWorldCall.json +1 -1
  105. package/out/IWorldKernel.sol/IWorldKernel.json +1 -1
  106. package/out/IWorldKernel.sol/IWorldModuleInstallation.json +1 -1
  107. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
  108. package/out/InitModule.sol/InitModule.abi.json +3 -3
  109. package/out/InitModule.sol/InitModule.abi.json.d.ts +3 -3
  110. package/out/InitModule.sol/InitModule.json +1 -1
  111. package/out/InitModuleAddress.sol/InitModuleAddress.json +1 -1
  112. package/out/InstalledModules.sol/InstalledModules.json +1 -1
  113. package/out/LimitedCallContext.sol/LimitedCallContext.json +1 -1
  114. package/out/MUDERC20.sol/MUDERC20.abi.json +155 -6
  115. package/out/MUDERC20.sol/MUDERC20.abi.json.d.ts +155 -6
  116. package/out/MUDERC20.sol/MUDERC20.json +1 -1
  117. package/out/Memory.sol/Memory.json +1 -1
  118. package/out/Module.sol/Module.abi.json +1 -1
  119. package/out/Module.sol/Module.abi.json.d.ts +1 -1
  120. package/out/Module.sol/Module.json +1 -1
  121. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json +1 -1
  122. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json.d.ts +1 -1
  123. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
  124. package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
  125. package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
  126. package/out/Owner.sol/Owner.json +1 -1
  127. package/out/Pausable.sol/Pausable.abi.json +151 -2
  128. package/out/Pausable.sol/Pausable.abi.json.d.ts +151 -2
  129. package/out/Pausable.sol/Pausable.json +1 -1
  130. package/out/Paused.sol/Paused.json +1 -1
  131. package/out/RegistrationSystem.sol/RegistrationSystem.abi.json +1 -1
  132. package/out/RegistrationSystem.sol/RegistrationSystem.abi.json.d.ts +1 -1
  133. package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
  134. package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
  135. package/out/ResourceId.sol/ResourceIdInstance.json +1 -1
  136. package/out/ResourceId.sol/ResourceIdLib.json +1 -1
  137. package/out/ResourceIds.sol/ResourceIds.json +1 -1
  138. package/out/Schema.sol/SchemaInstance.json +1 -1
  139. package/out/Schema.sol/SchemaLib.json +1 -1
  140. package/out/Slice.sol/SliceInstance.json +1 -1
  141. package/out/Slice.sol/SliceLib.json +1 -1
  142. package/out/StdAssertions.sol/StdAssertions.json +1 -1
  143. package/out/StdChains.sol/StdChains.json +1 -1
  144. package/out/StdCheats.sol/StdCheats.json +1 -1
  145. package/out/StdCheats.sol/StdCheatsSafe.json +1 -1
  146. package/out/StdError.sol/stdError.json +1 -1
  147. package/out/StdInvariant.sol/StdInvariant.json +1 -1
  148. package/out/StdJson.sol/stdJson.json +1 -1
  149. package/out/StdMath.sol/stdMath.json +1 -1
  150. package/out/StdStorage.sol/stdStorage.json +1 -1
  151. package/out/StdStorage.sol/stdStorageSafe.json +1 -1
  152. package/out/StdStyle.sol/StdStyle.json +1 -1
  153. package/out/StdUtils.sol/StdUtils.json +1 -1
  154. package/out/Storage.sol/Storage.json +1 -1
  155. package/out/StoreCore.sol/StoreCore.json +1 -1
  156. package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
  157. package/out/StoreHooks.sol/StoreHooks.json +1 -1
  158. package/out/StoreKernel.sol/StoreKernel.json +1 -1
  159. package/out/StoreRead.sol/StoreRead.json +1 -1
  160. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json +1 -1
  161. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json.d.ts +1 -1
  162. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
  163. package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
  164. package/out/System.sol/System.abi.json +1 -1
  165. package/out/System.sol/System.abi.json.d.ts +1 -1
  166. package/out/System.sol/System.json +1 -1
  167. package/out/SystemCall.sol/SystemCall.json +1 -1
  168. package/out/SystemHooks.sol/SystemHooks.json +1 -1
  169. package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
  170. package/out/Systems.sol/Systems.json +1 -1
  171. package/out/Tables.sol/Tables.json +1 -1
  172. package/out/Test.sol/Test.json +1 -1
  173. package/out/TightCoder.sol/TightCoder.json +1 -1
  174. package/out/TotalSupply.sol/TotalSupply.json +1 -1
  175. package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
  176. package/out/Vm.sol/Vm.json +1 -1
  177. package/out/Vm.sol/VmSafe.json +1 -1
  178. package/out/World.sol/World.json +1 -1
  179. package/out/WorldConsumer.sol/WorldConsumer.abi.json +177 -0
  180. package/out/WorldConsumer.sol/WorldConsumer.abi.json.d.ts +179 -0
  181. package/out/WorldConsumer.sol/WorldConsumer.json +1 -0
  182. package/out/WorldContext.sol/WorldContextConsumer.abi.json +1 -1
  183. package/out/WorldContext.sol/WorldContextConsumer.abi.json.d.ts +1 -1
  184. package/out/WorldContext.sol/WorldContextConsumer.json +1 -1
  185. package/out/WorldContext.sol/WorldContextConsumerLib.json +1 -1
  186. package/out/WorldContext.sol/WorldContextProviderLib.json +1 -1
  187. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json +1 -1
  188. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json.d.ts +1 -1
  189. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
  190. package/out/WorldResourceId.sol/WorldResourceIdInstance.json +1 -1
  191. package/out/WorldResourceId.sol/WorldResourceIdLib.json +1 -1
  192. package/out/build-info/575e1001b22e51590748b4ce55e7c596.json +1 -0
  193. package/out/console.sol/console.json +1 -1
  194. package/out/console2.sol/console2.json +1 -1
  195. package/out/constants.sol/LayoutOffsets.json +1 -1
  196. package/out/safeconsole.sol/safeconsole.json +1 -1
  197. package/out/src/IERC165.sol/IERC165.json +1 -1
  198. package/out/tables/Balances.sol/Balances.json +1 -1
  199. package/out/test.sol/DSTest.json +1 -1
  200. package/package.json +8 -8
  201. package/src/examples/{ERC20WithWorld.sol → ERC20PausableBurnable.sol} +4 -9
  202. package/src/experimental/ERC20Module.sol +3 -7
  203. package/src/experimental/MUDERC20.sol +8 -7
  204. package/src/experimental/Pausable.sol +5 -4
  205. package/out/Context.sol/Context.abi.json +0 -15
  206. package/out/Context.sol/Context.abi.json.d.ts +0 -17
  207. package/out/Context.sol/Context.json +0 -1
  208. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.abi.json +0 -949
  209. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.abi.json.d.ts +0 -951
  210. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.json +0 -1
  211. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.abi.json +0 -949
  212. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.abi.json.d.ts +0 -951
  213. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.json +0 -1
  214. package/out/ERC20BaseTest.t.sol/ERC20WithWorldBehaviorTest.json +0 -1
  215. package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.abi.json +0 -956
  216. package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.abi.json.d.ts +0 -958
  217. package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.abi.json +0 -696
  218. package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.abi.json.d.ts +0 -698
  219. package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.json +0 -1
  220. package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.abi.json +0 -839
  221. package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.abi.json.d.ts +0 -841
  222. package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.json +0 -1
  223. package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.abi.json +0 -956
  224. package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.abi.json.d.ts +0 -958
  225. package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.json +0 -1
  226. package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.abi.json +0 -963
  227. package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.abi.json.d.ts +0 -965
  228. package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.json +0 -1
  229. package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.abi.json +0 -727
  230. package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.abi.json.d.ts +0 -729
  231. package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.json +0 -1
  232. package/out/ERC20Burnable.t.sol/MockERC20WithWorldBurnable.json +0 -1
  233. package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.abi.json +0 -956
  234. package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.abi.json.d.ts +0 -958
  235. package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.json +0 -1
  236. package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.abi.json +0 -963
  237. package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.abi.json.d.ts +0 -965
  238. package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.json +0 -1
  239. package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.abi.json +0 -759
  240. package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.abi.json.d.ts +0 -761
  241. package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.json +0 -1
  242. package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.abi.json +0 -897
  243. package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.abi.json.d.ts +0 -899
  244. package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.json +0 -1
  245. package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.abi.json +0 -851
  246. package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.abi.json.d.ts +0 -853
  247. package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.json +0 -1
  248. package/out/ERC20WithWorld.sol/ERC20WithWorld.json +0 -1
  249. package/out/Ownable.sol/Ownable.abi.json +0 -426
  250. package/out/Ownable.sol/Ownable.abi.json.d.ts +0 -428
  251. package/out/Ownable.sol/Ownable.json +0 -1
  252. package/out/Store.sol/Store.abi.json +0 -1261
  253. package/out/Store.sol/Store.abi.json.d.ts +0 -1263
  254. package/out/Store.sol/Store.json +0 -1
  255. package/out/StoreConsumer.sol/StoreConsumer.abi.json +0 -15
  256. package/out/StoreConsumer.sol/StoreConsumer.abi.json.d.ts +0 -17
  257. package/out/StoreConsumer.sol/StoreConsumer.json +0 -1
  258. package/out/WithStore.sol/WithStore.abi.json +0 -352
  259. package/out/WithStore.sol/WithStore.abi.json.d.ts +0 -354
  260. package/out/WithStore.sol/WithStore.json +0 -1
  261. package/out/WithWorld.sol/WithWorld.abi.json +0 -490
  262. package/out/WithWorld.sol/WithWorld.abi.json.d.ts +0 -492
  263. package/out/WithWorld.sol/WithWorld.json +0 -1
  264. package/out/build-info/60c60a9593fdb00b3264c36836a28f39.json +0 -1
  265. package/src/examples/ERC20WithInternalStore.sol +0 -32
  266. package/src/experimental/Ownable.sol +0 -110
  267. /package/out/ERC20BaseTest.t.sol/{ERC20WithWorldBehaviorTest.abi.json → ERC20Test.abi.json} +0 -0
  268. /package/out/ERC20BaseTest.t.sol/{ERC20WithWorldBehaviorTest.abi.json.d.ts → ERC20Test.abi.json.d.ts} +0 -0
@@ -5,22 +5,21 @@ pragma solidity >=0.8.24;
5
5
 
6
6
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
7
7
  import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
8
- import { WithWorld } from "@latticexyz/store-consumer/src/experimental/WithWorld.sol";
9
- import { Context } from "@latticexyz/store-consumer/src/experimental/Context.sol";
8
+ import { WorldConsumer } from "@latticexyz/world-consumer/src/experimental/WorldConsumer.sol";
10
9
 
11
10
  import { ERC20Pausable } from "../experimental/ERC20Pausable.sol";
12
11
  import { ERC20Burnable } from "../experimental/ERC20Burnable.sol";
13
12
  import { MUDERC20 } from "../experimental/MUDERC20.sol";
14
13
 
15
- contract ERC20WithWorld is WithWorld, MUDERC20, ERC20Pausable, ERC20Burnable {
14
+ contract ERC20PausableBurnable is MUDERC20, ERC20Pausable, ERC20Burnable {
16
15
  constructor(
17
16
  IBaseWorld world,
18
17
  bytes14 namespace,
19
18
  string memory name,
20
19
  string memory symbol
21
- ) WithWorld(world, namespace, true) MUDERC20(name, symbol) {
20
+ ) WorldConsumer(world, namespace, true) MUDERC20(name, symbol) {
22
21
  // Transfer namespace ownership to the creator
23
- world.transferOwnership(getNamespaceId(), _msgSender());
22
+ world.transferOwnership(namespaceId, _msgSender());
24
23
  }
25
24
 
26
25
  function mint(address to, uint256 value) public onlyNamespace {
@@ -37,10 +36,6 @@ contract ERC20WithWorld is WithWorld, MUDERC20, ERC20Pausable, ERC20Burnable {
37
36
 
38
37
  // The following functions are overrides required by Solidity.
39
38
 
40
- function _msgSender() public view override(Context, WithWorld) returns (address sender) {
41
- return WithWorld._msgSender();
42
- }
43
-
44
39
  function _update(address from, address to, uint256 value) internal override(MUDERC20, ERC20Pausable) {
45
40
  super._update(from, to, value);
46
41
  }
@@ -11,14 +11,14 @@ import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.
11
11
  import { revertWithBytes } from "@latticexyz/world/src/revertWithBytes.sol";
12
12
 
13
13
  import { ERC20Registry } from "../codegen/tables/ERC20Registry.sol";
14
- import { ERC20WithWorld } from "../examples/ERC20WithWorld.sol";
14
+ import { ERC20PausableBurnable } from "../examples/ERC20PausableBurnable.sol";
15
15
  import { ModuleConstants } from "./Constants.sol";
16
16
 
17
17
  contract ERC20Module is Module {
18
18
  error ERC20Module_InvalidNamespace(bytes14 namespace);
19
19
  error ERC20Module_NamespaceAlreadyExists(bytes14 namespace);
20
20
 
21
- function install(bytes memory encodedArgs) public {
21
+ function install(bytes memory encodedArgs) public override {
22
22
  // TODO: we should probably check just for namespace, not for all args
23
23
  requireNotInstalled(__self, encodedArgs);
24
24
 
@@ -39,7 +39,7 @@ contract ERC20Module is Module {
39
39
 
40
40
  IBaseWorld world = IBaseWorld(_world());
41
41
 
42
- ERC20WithWorld token = new ERC20WithWorld(world, namespace, name, symbol);
42
+ ERC20PausableBurnable token = new ERC20PausableBurnable(world, namespace, name, symbol);
43
43
 
44
44
  // Grant access to the token so it can write to tables after transferring ownership
45
45
  world.grantAccess(namespaceId, address(token));
@@ -52,10 +52,6 @@ contract ERC20Module is Module {
52
52
 
53
53
  ERC20RegistryLib.register(world, namespaceId, address(token));
54
54
  }
55
-
56
- function installRoot(bytes memory) public pure {
57
- revert Module_RootInstallNotSupported();
58
- }
59
55
  }
60
56
 
61
57
  library ERC20RegistryLib {
@@ -3,8 +3,9 @@
3
3
  pragma solidity >=0.8.24;
4
4
 
5
5
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
6
- import { StoreConsumer } from "@latticexyz/store-consumer/src/experimental/StoreConsumer.sol";
7
- import { Context } from "@latticexyz/store-consumer/src/experimental/Context.sol";
6
+ import { WorldConsumer } from "@latticexyz/world-consumer/src/experimental/WorldConsumer.sol";
7
+ import { WorldResourceIdLib } from "@latticexyz/world/src/WorldResourceId.sol";
8
+ import { RESOURCE_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
8
9
 
9
10
  import { ERC20Metadata, ERC20MetadataData } from "../codegen/tables/ERC20Metadata.sol";
10
11
  import { TotalSupply } from "../codegen/tables/TotalSupply.sol";
@@ -17,7 +18,7 @@ import { IERC20Errors } from "../interfaces/IERC20Errors.sol";
17
18
 
18
19
  import { ERC20TableNames } from "./Constants.sol";
19
20
 
20
- abstract contract MUDERC20 is Context, IERC20, IERC20Metadata, IERC20Errors, StoreConsumer {
21
+ abstract contract MUDERC20 is IERC20, IERC20Metadata, IERC20Errors, WorldConsumer {
21
22
  ResourceId internal immutable totalSupplyId;
22
23
  ResourceId internal immutable balancesId;
23
24
  ResourceId internal immutable allowancesId;
@@ -25,10 +26,10 @@ abstract contract MUDERC20 is Context, IERC20, IERC20Metadata, IERC20Errors, Sto
25
26
 
26
27
  constructor(string memory _name, string memory _symbol) {
27
28
  // Needs to be inlined in the constructor
28
- totalSupplyId = _encodeTableId(ERC20TableNames.TOTAL_SUPPLY);
29
- balancesId = _encodeTableId(ERC20TableNames.BALANCES);
30
- allowancesId = _encodeTableId(ERC20TableNames.ALLOWANCES);
31
- metadataId = _encodeTableId(ERC20TableNames.METADATA);
29
+ totalSupplyId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.TOTAL_SUPPLY);
30
+ balancesId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.BALANCES);
31
+ allowancesId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.ALLOWANCES);
32
+ metadataId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.METADATA);
32
33
 
33
34
  // Register each table
34
35
  TotalSupply.register(totalSupplyId);
@@ -2,9 +2,10 @@
2
2
  // Adapted from OpenZeppelin Contracts [utils/Pausable.sol](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/f989fff93168606c726bc5e831ef50dd6e543f45/contracts/utils/Pausable.sol)
3
3
  pragma solidity >=0.8.24;
4
4
 
5
+ import { RESOURCE_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
5
6
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
6
- import { StoreConsumer } from "@latticexyz/store-consumer/src/experimental/StoreConsumer.sol";
7
- import { Context } from "@latticexyz/store-consumer/src/experimental/Context.sol";
7
+ import { WorldResourceIdLib } from "@latticexyz/world/src/WorldResourceId.sol";
8
+ import { WorldConsumer } from "@latticexyz/world-consumer/src/experimental/WorldConsumer.sol";
8
9
 
9
10
  import { Paused as PausedTable } from "../codegen/tables/Paused.sol";
10
11
  import { PausableTableNames } from "./Constants.sol";
@@ -18,7 +19,7 @@ import { PausableTableNames } from "./Constants.sol";
18
19
  * the functions of your contract. Note that they will not be pausable by
19
20
  * simply including this module, only once the modifiers are put in place.
20
21
  */
21
- abstract contract Pausable is Context, StoreConsumer {
22
+ abstract contract Pausable is WorldConsumer {
22
23
  ResourceId internal immutable pausedId;
23
24
 
24
25
  /**
@@ -45,7 +46,7 @@ abstract contract Pausable is Context, StoreConsumer {
45
46
  * @dev Initializes the contract in unpaused state.
46
47
  */
47
48
  constructor() {
48
- pausedId = _encodeTableId(PausableTableNames.PAUSED);
49
+ pausedId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, PausableTableNames.PAUSED);
49
50
  PausedTable.register(pausedId);
50
51
  PausedTable.set(pausedId, false);
51
52
  }
@@ -1,15 +0,0 @@
1
- [
2
- {
3
- "type": "function",
4
- "name": "_msgSender",
5
- "inputs": [],
6
- "outputs": [
7
- {
8
- "name": "",
9
- "type": "address",
10
- "internalType": "address"
11
- }
12
- ],
13
- "stateMutability": "view"
14
- }
15
- ]
@@ -1,17 +0,0 @@
1
- declare const abi: [
2
- {
3
- "type": "function",
4
- "name": "_msgSender",
5
- "inputs": [],
6
- "outputs": [
7
- {
8
- "name": "",
9
- "type": "address",
10
- "internalType": "address"
11
- }
12
- ],
13
- "stateMutability": "view"
14
- }
15
- ];
16
-
17
- export default abi;
@@ -1 +0,0 @@
1
- {"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/store-consumer/src/experimental/Context.sol\":\"Context\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@latticexyz/=node_modules/@latticexyz/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\"]},\"sources\":{\"node_modules/@latticexyz/store-consumer/src/experimental/Context.sol\":{\"keccak256\":\"0x09cd9a25b10c485528869e476cbe4acfb12193285aa06e2afd368bbed7e95f9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6706d0c3a3b54f04a38674a24bfdfad5b9fc1a9a8be822fd62c6845c4692f41\",\"dweb:/ipfs/QmaY1iDT4STHLF72bNn3U7WAN3X6J61KxeowKopS58VGPL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@latticexyz/=node_modules/@latticexyz/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"node_modules/@latticexyz/store-consumer/src/experimental/Context.sol":"Context"},"evmVersion":"cancun","libraries":{}},"sources":{"node_modules/@latticexyz/store-consumer/src/experimental/Context.sol":{"keccak256":"0x09cd9a25b10c485528869e476cbe4acfb12193285aa06e2afd368bbed7e95f9a","urls":["bzz-raw://a6706d0c3a3b54f04a38674a24bfdfad5b9fc1a9a8be822fd62c6845c4692f41","dweb:/ipfs/QmaY1iDT4STHLF72bNn3U7WAN3X6J61KxeowKopS58VGPL"],"license":"MIT"}},"version":1},"id":2}