@latticexyz/world-module-erc20 2.2.20-b7901812d4035faa3ec9bb75f31ffe7af398bdf2 → 2.2.21-041031d271b62a7f41f7c6dc0098c1c0ae222bd5

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 (278) 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/PausableTableNames.json +1 -1
  21. package/out/DecodeSlice.sol/DecodeSlice.json +1 -1
  22. package/out/Delegation.sol/Delegation.json +1 -1
  23. package/out/ERC165Checker.sol/ERC165Checker.json +1 -1
  24. package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.abi.json +331 -0
  25. package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.abi.json.d.ts +331 -0
  26. package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.json +1 -1
  27. package/out/{ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.abi.json → ERC20BaseTest.t.sol/ERC20Test.abi.json} +324 -7
  28. package/out/{ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.abi.json.d.ts → ERC20BaseTest.t.sol/ERC20Test.abi.json.d.ts} +324 -7
  29. package/out/ERC20BaseTest.t.sol/ERC20Test.json +1 -0
  30. package/out/ERC20BaseTest.t.sol/MockERC20Base.abi.json +93 -198
  31. package/out/ERC20BaseTest.t.sol/MockERC20Base.abi.json.d.ts +93 -198
  32. package/out/ERC20BaseTest.t.sol/MockERC20Base.json +1 -1
  33. package/out/ERC20Burnable.sol/ERC20Burnable.abi.json +75 -235
  34. package/out/ERC20Burnable.sol/ERC20Burnable.abi.json.d.ts +75 -235
  35. package/out/ERC20Burnable.sol/ERC20Burnable.json +1 -1
  36. package/out/ERC20Burnable.t.sol/ERC20BurnableTest.abi.json +331 -0
  37. package/out/ERC20Burnable.t.sol/ERC20BurnableTest.abi.json.d.ts +331 -0
  38. package/out/ERC20Burnable.t.sol/ERC20BurnableTest.json +1 -1
  39. package/out/{ERC20BaseTest.t.sol/MockERC20WithInternalStore.abi.json → ERC20Burnable.t.sol/MockERC20Burnable.abi.json} +124 -198
  40. package/out/{ERC20BaseTest.t.sol/MockERC20WithInternalStore.abi.json.d.ts → ERC20Burnable.t.sol/MockERC20Burnable.abi.json.d.ts} +124 -198
  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/ERC20ModuleLib.json +1 -0
  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 +76 -236
  50. package/out/ERC20Pausable.sol/ERC20Pausable.abi.json.d.ts +76 -236
  51. package/out/ERC20Pausable.sol/ERC20Pausable.json +1 -1
  52. package/out/ERC20Pausable.t.sol/{ERC20PausableWithWorldTest.abi.json → ERC20PausableTest.abi.json} +324 -0
  53. package/out/ERC20Pausable.t.sol/{ERC20PausableWithWorldTest.abi.json.d.ts → ERC20PausableTest.abi.json.d.ts} +324 -0
  54. package/out/ERC20Pausable.t.sol/ERC20PausableTest.json +1 -0
  55. package/out/ERC20Pausable.t.sol/MockERC20Pausable.abi.json +130 -199
  56. package/out/ERC20Pausable.t.sol/MockERC20Pausable.abi.json.d.ts +130 -199
  57. package/out/ERC20Pausable.t.sol/MockERC20Pausable.json +1 -1
  58. package/out/{ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.abi.json → ERC20PausableBurnable.sol/ERC20PausableBurnable.abi.json} +163 -209
  59. package/out/{ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.abi.json.d.ts → ERC20PausableBurnable.sol/ERC20PausableBurnable.abi.json.d.ts} +163 -209
  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 +75 -235
  115. package/out/MUDERC20.sol/MUDERC20.abi.json.d.ts +75 -235
  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 +64 -276
  128. package/out/Pausable.sol/Pausable.abi.json.d.ts +64 -276
  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 +140 -0
  180. package/out/WorldConsumer.sol/WorldConsumer.abi.json.d.ts +142 -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/5dec426f2d87057b9b49f18296a28057.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/ERC20PausableBurnable.sol +55 -0
  202. package/src/experimental/Constants.sol +0 -4
  203. package/src/experimental/ERC20Module.sol +47 -14
  204. package/src/experimental/ERC20Pausable.sol +3 -0
  205. package/src/experimental/MUDERC20.sol +28 -32
  206. package/src/experimental/Pausable.sol +18 -17
  207. package/out/Constants.sol/OwnableTableNames.abi.json +0 -1
  208. package/out/Constants.sol/OwnableTableNames.json +0 -1
  209. package/out/Context.sol/Context.abi.json +0 -15
  210. package/out/Context.sol/Context.abi.json.d.ts +0 -17
  211. package/out/Context.sol/Context.json +0 -1
  212. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.abi.json +0 -949
  213. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.abi.json.d.ts +0 -951
  214. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.json +0 -1
  215. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.abi.json +0 -949
  216. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.abi.json.d.ts +0 -951
  217. package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.json +0 -1
  218. package/out/ERC20BaseTest.t.sol/ERC20WithWorldBehaviorTest.abi.json +0 -956
  219. package/out/ERC20BaseTest.t.sol/ERC20WithWorldBehaviorTest.abi.json.d.ts +0 -958
  220. package/out/ERC20BaseTest.t.sol/ERC20WithWorldBehaviorTest.json +0 -1
  221. package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.abi.json +0 -956
  222. package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.abi.json.d.ts +0 -958
  223. package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.json +0 -1
  224. package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.json +0 -1
  225. package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.abi.json +0 -839
  226. package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.abi.json.d.ts +0 -841
  227. package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.json +0 -1
  228. package/out/ERC20BaseTest.t.sol/TestConstants.abi.json +0 -1
  229. package/out/ERC20BaseTest.t.sol/TestConstants.json +0 -1
  230. package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.abi.json +0 -956
  231. package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.abi.json.d.ts +0 -958
  232. package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.json +0 -1
  233. package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.json +0 -1
  234. package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.abi.json +0 -727
  235. package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.abi.json.d.ts +0 -729
  236. package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.json +0 -1
  237. package/out/ERC20Burnable.t.sol/MockERC20WithWorldBurnable.abi.json +0 -865
  238. package/out/ERC20Burnable.t.sol/MockERC20WithWorldBurnable.abi.json.d.ts +0 -867
  239. package/out/ERC20Burnable.t.sol/MockERC20WithWorldBurnable.json +0 -1
  240. package/out/ERC20Module.sol/ERC20RegistryLib.json +0 -1
  241. package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.abi.json +0 -956
  242. package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.abi.json.d.ts +0 -958
  243. package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.json +0 -1
  244. package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.abi.json +0 -956
  245. package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.abi.json.d.ts +0 -958
  246. package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.json +0 -1
  247. package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.json +0 -1
  248. package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.json +0 -1
  249. package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.abi.json +0 -897
  250. package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.abi.json.d.ts +0 -899
  251. package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.json +0 -1
  252. package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.abi.json +0 -851
  253. package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.abi.json.d.ts +0 -853
  254. package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.json +0 -1
  255. package/out/ERC20WithWorld.sol/ERC20WithWorld.abi.json +0 -936
  256. package/out/ERC20WithWorld.sol/ERC20WithWorld.abi.json.d.ts +0 -938
  257. package/out/ERC20WithWorld.sol/ERC20WithWorld.json +0 -1
  258. package/out/Ownable.sol/Ownable.abi.json +0 -426
  259. package/out/Ownable.sol/Ownable.abi.json.d.ts +0 -428
  260. package/out/Ownable.sol/Ownable.json +0 -1
  261. package/out/Store.sol/Store.abi.json +0 -1261
  262. package/out/Store.sol/Store.abi.json.d.ts +0 -1263
  263. package/out/Store.sol/Store.json +0 -1
  264. package/out/StoreConsumer.sol/StoreConsumer.abi.json +0 -15
  265. package/out/StoreConsumer.sol/StoreConsumer.abi.json.d.ts +0 -17
  266. package/out/StoreConsumer.sol/StoreConsumer.json +0 -1
  267. package/out/WithStore.sol/WithStore.abi.json +0 -352
  268. package/out/WithStore.sol/WithStore.abi.json.d.ts +0 -354
  269. package/out/WithStore.sol/WithStore.json +0 -1
  270. package/out/WithWorld.sol/WithWorld.abi.json +0 -490
  271. package/out/WithWorld.sol/WithWorld.abi.json.d.ts +0 -492
  272. package/out/WithWorld.sol/WithWorld.json +0 -1
  273. package/out/build-info/60c60a9593fdb00b3264c36836a28f39.json +0 -1
  274. package/src/examples/ERC20WithInternalStore.sol +0 -32
  275. package/src/examples/ERC20WithWorld.sol +0 -47
  276. package/src/experimental/Ownable.sol +0 -110
  277. /package/out/ERC20Module.sol/{ERC20RegistryLib.abi.json → ERC20ModuleLib.abi.json} +0 -0
  278. /package/out/ERC20Module.sol/{ERC20RegistryLib.abi.json.d.ts → ERC20ModuleLib.abi.json.d.ts} +0 -0
@@ -0,0 +1,55 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.8.24;
3
+
4
+ // Adapted example from OpenZeppelin's Contract Wizard: https://wizard.openzeppelin.com/
5
+
6
+ import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
7
+ import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
8
+ import { WorldConsumer } from "@latticexyz/world-consumer/src/experimental/WorldConsumer.sol";
9
+
10
+ import { Pausable } from "../experimental/Pausable.sol";
11
+ import { ERC20Pausable } from "../experimental/ERC20Pausable.sol";
12
+ import { ERC20Burnable } from "../experimental/ERC20Burnable.sol";
13
+ import { MUDERC20 } from "../experimental/MUDERC20.sol";
14
+
15
+ contract ERC20PausableBurnable is MUDERC20, ERC20Pausable, ERC20Burnable {
16
+ error ERC20PausableBurnable_AlreadyInitialized();
17
+
18
+ bytes14 private immutable _namespace;
19
+
20
+ constructor(
21
+ IBaseWorld world,
22
+ bytes14 namespace,
23
+ ResourceId totalSupplyId,
24
+ ResourceId balancesId,
25
+ ResourceId allowancesId,
26
+ ResourceId metadataId,
27
+ ResourceId pausedId
28
+ ) WorldConsumer(world) MUDERC20(totalSupplyId, balancesId, allowancesId, metadataId) ERC20Pausable(pausedId) {
29
+ // Namespace used for access control
30
+ _namespace = namespace;
31
+ }
32
+
33
+ function initialize(string memory name, string memory symbol) external onlyNamespaceOwner(_namespace) {
34
+ _MUDERC20_init(name, symbol);
35
+ _Pausable_init();
36
+ }
37
+
38
+ function mint(address to, uint256 value) public onlyNamespace(_namespace) {
39
+ _mint(to, value);
40
+ }
41
+
42
+ function pause() public onlyNamespace(_namespace) {
43
+ _pause();
44
+ }
45
+
46
+ function unpause() public onlyNamespace(_namespace) {
47
+ _unpause();
48
+ }
49
+
50
+ // The following functions are overrides required by Solidity.
51
+
52
+ function _update(address from, address to, uint256 value) internal override(MUDERC20, ERC20Pausable) {
53
+ super._update(from, to, value);
54
+ }
55
+ }
@@ -27,10 +27,6 @@ library ERC20TableNames {
27
27
  bytes16 internal constant METADATA = "Metadata";
28
28
  }
29
29
 
30
- library OwnableTableNames {
31
- bytes16 internal constant OWNER = "Owner";
32
- }
33
-
34
30
  library PausableTableNames {
35
31
  bytes16 internal constant PAUSED = "Paused";
36
32
  }
@@ -3,22 +3,29 @@ pragma solidity >=0.8.24;
3
3
 
4
4
  import { ResourceIds } from "@latticexyz/store/src/codegen/tables/ResourceIds.sol";
5
5
  import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
6
+ import { RESOURCE_TABLE } from "@latticexyz/store/src/storeResourceTypes.sol";
6
7
 
7
8
  import { Module } from "@latticexyz/world/src/Module.sol";
8
9
  import { RESOURCE_SYSTEM } from "@latticexyz/world/src/worldResourceTypes.sol";
9
10
  import { WorldResourceIdLib } from "@latticexyz/world/src/WorldResourceId.sol";
10
11
  import { IBaseWorld } from "@latticexyz/world/src/codegen/interfaces/IBaseWorld.sol";
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";
15
- import { ModuleConstants } from "./Constants.sol";
14
+ import { ERC20PausableBurnable } from "../examples/ERC20PausableBurnable.sol";
15
+ import { MUDERC20 } from "../experimental/MUDERC20.sol";
16
+ import { ModuleConstants, ERC20TableNames, PausableTableNames } from "./Constants.sol";
17
+
18
+ import { ERC20Metadata, ERC20MetadataData } from "../codegen/tables/ERC20Metadata.sol";
19
+ import { TotalSupply } from "../codegen/tables/TotalSupply.sol";
20
+ import { Balances } from "../codegen/tables/Balances.sol";
21
+ import { Allowances } from "../codegen/tables/Allowances.sol";
22
+ import { Paused } from "../codegen/tables/Paused.sol";
16
23
 
17
24
  contract ERC20Module is Module {
18
25
  error ERC20Module_InvalidNamespace(bytes14 namespace);
19
26
  error ERC20Module_NamespaceAlreadyExists(bytes14 namespace);
20
27
 
21
- function install(bytes memory encodedArgs) public {
28
+ function install(bytes memory encodedArgs) public override {
22
29
  // TODO: we should probably check just for namespace, not for all args
23
30
  requireNotInstalled(__self, encodedArgs);
24
31
 
@@ -39,27 +46,53 @@ contract ERC20Module is Module {
39
46
 
40
47
  IBaseWorld world = IBaseWorld(_world());
41
48
 
42
- ERC20WithWorld token = new ERC20WithWorld(world, namespace, name, symbol);
49
+ world.registerNamespace(namespaceId);
50
+
51
+ ERC20PausableBurnable token = ERC20ModuleLib.deployAndRegisterTables(world, namespace);
43
52
 
44
- // Grant access to the token so it can write to tables after transferring ownership
53
+ // Grant access to the token so it can register and write to tables after transferring ownership
45
54
  world.grantAccess(namespaceId, address(token));
46
55
 
47
56
  // Register token as a system so its functions can be called through the world
48
57
  world.registerSystem(systemId, token, true);
49
58
 
50
- // The token should have transferred the namespace ownership to this module in its constructor
51
- world.transferOwnership(namespaceId, _msgSender());
59
+ // Set metadata and paused state by calling initialize (onlyNamespaceOwner)
60
+ world.call(systemId, abi.encodeCall(ERC20PausableBurnable.initialize, (name, symbol)));
52
61
 
53
- ERC20RegistryLib.register(world, namespaceId, address(token));
54
- }
62
+ ERC20ModuleLib.registerToken(world, namespaceId, address(token));
55
63
 
56
- function installRoot(bytes memory) public pure {
57
- revert Module_RootInstallNotSupported();
64
+ world.transferOwnership(namespaceId, _msgSender());
58
65
  }
59
66
  }
60
67
 
61
- library ERC20RegistryLib {
62
- function register(IBaseWorld world, ResourceId namespaceId, address token) public {
68
+ library ERC20ModuleLib {
69
+ function deployAndRegisterTables(IBaseWorld world, bytes14 namespace) public returns (ERC20PausableBurnable) {
70
+ ResourceId totalSupplyId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.TOTAL_SUPPLY);
71
+ ResourceId balancesId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.BALANCES);
72
+ ResourceId allowancesId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.ALLOWANCES);
73
+ ResourceId metadataId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, ERC20TableNames.METADATA);
74
+ ResourceId pausedId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, PausableTableNames.PAUSED);
75
+
76
+ // Register each table
77
+ TotalSupply.register(totalSupplyId);
78
+ Balances.register(balancesId);
79
+ Allowances.register(allowancesId);
80
+ ERC20Metadata.register(metadataId);
81
+ Paused.register(pausedId);
82
+
83
+ return
84
+ new ERC20PausableBurnable({
85
+ world: world,
86
+ namespace: namespace,
87
+ totalSupplyId: totalSupplyId,
88
+ balancesId: balancesId,
89
+ allowancesId: allowancesId,
90
+ metadataId: metadataId,
91
+ pausedId: pausedId
92
+ });
93
+ }
94
+
95
+ function registerToken(IBaseWorld world, ResourceId namespaceId, address token) public {
63
96
  ResourceId erc20RegistryTableId = ModuleConstants.registryTableId();
64
97
  if (!ResourceIds.getExists(erc20RegistryTableId)) {
65
98
  world.registerNamespace(ModuleConstants.namespaceId());
@@ -2,10 +2,13 @@
2
2
  // Adapted from OpenZeppelin's [ERC20Pausable extenstion](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/f989fff93168606c726bc5e831ef50dd6e543f45/contracts/token/ERC20/extensions/ERC20Pausable.sol)
3
3
  pragma solidity >=0.8.24;
4
4
 
5
+ import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
5
6
  import { Pausable } from "./Pausable.sol";
6
7
  import { MUDERC20 } from "./MUDERC20.sol";
7
8
 
8
9
  abstract contract ERC20Pausable is MUDERC20, Pausable {
10
+ constructor(ResourceId pausedId) Pausable(pausedId) {}
11
+
9
12
  function _update(address from, address to, uint256 value) internal virtual override whenNotPaused {
10
13
  super._update(from, to, value);
11
14
  }
@@ -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,26 +18,17 @@ 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
- ResourceId internal immutable totalSupplyId;
22
- ResourceId internal immutable balancesId;
23
- ResourceId internal immutable allowancesId;
24
- ResourceId internal immutable metadataId;
25
-
26
- constructor(string memory _name, string memory _symbol) {
27
- // 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);
32
-
33
- // Register each table
34
- TotalSupply.register(totalSupplyId);
35
- Balances.register(balancesId);
36
- Allowances.register(allowancesId);
37
- ERC20Metadata.register(metadataId);
38
-
39
- _setMetadata(_name, _symbol, 18);
21
+ abstract contract MUDERC20 is IERC20, IERC20Metadata, IERC20Errors, WorldConsumer {
22
+ ResourceId private immutable _totalSupplyId;
23
+ ResourceId private immutable _balancesId;
24
+ ResourceId private immutable _allowancesId;
25
+ ResourceId private immutable _metadataId;
26
+
27
+ constructor(ResourceId totalSupplyId, ResourceId balancesId, ResourceId allowancesId, ResourceId metadataId) {
28
+ _totalSupplyId = totalSupplyId;
29
+ _balancesId = balancesId;
30
+ _allowancesId = allowancesId;
31
+ _metadataId = metadataId;
40
32
  }
41
33
 
42
34
  /**
@@ -152,6 +144,10 @@ abstract contract MUDERC20 is Context, IERC20, IERC20Metadata, IERC20Errors, Sto
152
144
  return true;
153
145
  }
154
146
 
147
+ function _MUDERC20_init(string memory _name, string memory _symbol) internal {
148
+ _setMetadata(_name, _symbol, 18);
149
+ }
150
+
155
151
  /**
156
152
  * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).
157
153
  * Relies on the `_update` mechanism
@@ -283,43 +279,43 @@ abstract contract MUDERC20 is Context, IERC20, IERC20Metadata, IERC20Errors, Sto
283
279
  }
284
280
 
285
281
  function _getName() internal view returns (string memory) {
286
- return ERC20Metadata.getName(metadataId);
282
+ return ERC20Metadata.getName(_metadataId);
287
283
  }
288
284
 
289
285
  function _getSymbol() internal view returns (string memory) {
290
- return ERC20Metadata.getSymbol(metadataId);
286
+ return ERC20Metadata.getSymbol(_metadataId);
291
287
  }
292
288
 
293
289
  function _getDecimals() internal view returns (uint8) {
294
- return ERC20Metadata.getDecimals(metadataId);
290
+ return ERC20Metadata.getDecimals(_metadataId);
295
291
  }
296
292
 
297
293
  function _getTotalSupply() internal view returns (uint256) {
298
- return TotalSupply.get(totalSupplyId);
294
+ return TotalSupply.get(_totalSupplyId);
299
295
  }
300
296
 
301
297
  function _getBalance(address account) internal view returns (uint256) {
302
- return Balances.get(balancesId, account);
298
+ return Balances.get(_balancesId, account);
303
299
  }
304
300
 
305
301
  function _getAllowance(address owner, address spender) internal view returns (uint256) {
306
- return Allowances.get(allowancesId, owner, spender);
302
+ return Allowances.get(_allowancesId, owner, spender);
307
303
  }
308
304
 
309
305
  function _setTotalSupply(uint256 value) internal virtual {
310
- TotalSupply.set(totalSupplyId, value);
306
+ TotalSupply.set(_totalSupplyId, value);
311
307
  }
312
308
 
313
309
  function _setBalance(address account, uint256 value) internal virtual {
314
- Balances.set(balancesId, account, value);
310
+ Balances.set(_balancesId, account, value);
315
311
  }
316
312
 
317
313
  function _setAllowance(address owner, address spender, uint256 value) internal virtual {
318
- Allowances.set(allowancesId, owner, spender, value);
314
+ Allowances.set(_allowancesId, owner, spender, value);
319
315
  }
320
316
 
321
317
  function _setMetadata(string memory _name, string memory _symbol, uint8 _decimals) internal virtual {
322
318
  ERC20MetadataData memory metadata = ERC20MetadataData(_decimals, _name, _symbol);
323
- ERC20Metadata.set(metadataId, metadata);
319
+ ERC20Metadata.set(_metadataId, metadata);
324
320
  }
325
321
  }
@@ -3,11 +3,10 @@
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 { WorldResourceIdLib } from "@latticexyz/world/src/WorldResourceId.sol";
7
+ import { WorldConsumer } from "@latticexyz/world-consumer/src/experimental/WorldConsumer.sol";
8
8
 
9
9
  import { Paused as PausedTable } from "../codegen/tables/Paused.sol";
10
- import { PausableTableNames } from "./Constants.sol";
11
10
 
12
11
  /**
13
12
  * @dev Contract module which allows children to implement an emergency stop
@@ -18,8 +17,8 @@ import { PausableTableNames } from "./Constants.sol";
18
17
  * the functions of your contract. Note that they will not be pausable by
19
18
  * simply including this module, only once the modifiers are put in place.
20
19
  */
21
- abstract contract Pausable is Context, StoreConsumer {
22
- ResourceId internal immutable pausedId;
20
+ abstract contract Pausable is WorldConsumer {
21
+ ResourceId private immutable _pausedId;
23
22
 
24
23
  /**
25
24
  * @dev Emitted when the pause is triggered by `account`.
@@ -41,15 +40,6 @@ abstract contract Pausable is Context, StoreConsumer {
41
40
  */
42
41
  error ExpectedPause();
43
42
 
44
- /**
45
- * @dev Initializes the contract in unpaused state.
46
- */
47
- constructor() {
48
- pausedId = _encodeTableId(PausableTableNames.PAUSED);
49
- PausedTable.register(pausedId);
50
- PausedTable.set(pausedId, false);
51
- }
52
-
53
43
  /**
54
44
  * @dev Modifier to make a function callable only when the contract is not paused.
55
45
  *
@@ -74,11 +64,22 @@ abstract contract Pausable is Context, StoreConsumer {
74
64
  _;
75
65
  }
76
66
 
67
+ constructor(ResourceId pausedId) {
68
+ _pausedId = pausedId;
69
+ }
70
+
71
+ /**
72
+ * @dev Initializes the contract in unpaused state.
73
+ */
74
+ function _Pausable_init() internal {
75
+ PausedTable.set(_pausedId, false);
76
+ }
77
+
77
78
  /**
78
79
  * @dev Returns true if the contract is paused, and false otherwise.
79
80
  */
80
81
  function paused() public view virtual returns (bool) {
81
- return PausedTable.get(pausedId);
82
+ return PausedTable.get(_pausedId);
82
83
  }
83
84
 
84
85
  /**
@@ -107,7 +108,7 @@ abstract contract Pausable is Context, StoreConsumer {
107
108
  * - The contract must not be paused.
108
109
  */
109
110
  function _pause() internal virtual whenNotPaused {
110
- PausedTable.set(pausedId, true);
111
+ PausedTable.set(_pausedId, true);
111
112
  emit Paused(_msgSender());
112
113
  }
113
114
 
@@ -119,7 +120,7 @@ abstract contract Pausable is Context, StoreConsumer {
119
120
  * - The contract must be paused.
120
121
  */
121
122
  function _unpause() internal virtual whenPaused {
122
- PausedTable.set(pausedId, false);
123
+ PausedTable.set(_pausedId, false);
123
124
  emit Unpaused(_msgSender());
124
125
  }
125
126
  }
@@ -1 +0,0 @@
1
- {"abi":[],"bytecode":{"object":"0x602c6032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000818000a","sourceMap":"912:74:134:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;912:74:134;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea164736f6c6343000818000a","sourceMap":"912:74:134:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/experimental/Constants.sol\":\"OwnableTableNames\"},\"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/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b\",\"dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/world/src/WorldResourceId.sol\":{\"keccak256\":\"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea\",\"dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM\"]},\"node_modules/@latticexyz/world/src/constants.sol\":{\"keccak256\":\"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22\",\"dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV\"]},\"node_modules/@latticexyz/world/src/worldResourceTypes.sol\":{\"keccak256\":\"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea\",\"dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk\"]},\"src/experimental/Constants.sol\":{\"keccak256\":\"0x1828d78c43a249009f887c267a5fa4c5b7cdd86c6bedc1e6cb57416d2805470c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e5af1fde1db28001cf53728a23fc552bf3eb5130b9b20239c2e12faa618d83e\",\"dweb:/ipfs/QmUvfh2Vxqm22cdx2543fZ3Mco5bYLU8vp72wD7dtDmirU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"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":{"src/experimental/Constants.sol":"OwnableTableNames"},"evmVersion":"cancun","libraries":{}},"sources":{"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x842b07f2ff9df2e1ecf9bf424b0e5a77e1471c983d674cf86b76c365178d6cc5","urls":["bzz-raw://f4c2df8853b020aef1bb8615ac69d5512a9b5385b82c88e03b27dc521c9d007b","dweb:/ipfs/QmWEDiJn69DvHsdrikrMWY8DERWPSeWwVYgPcunfq3yiT7"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldResourceId.sol":{"keccak256":"0xaff9a22fac8a0f6eee5763b07a7ccb623c829d37922b85e42e914aad2ad417ee","urls":["bzz-raw://e598f0274d6d97c0a09806bf4fd1f0d054c310cf51b2123f5ce6380d6f3186ea","dweb:/ipfs/QmaaVvqm21YsCgxozDyShcM17jKUXJhf2y26bk2YzPYZoM"],"license":"MIT"},"node_modules/@latticexyz/world/src/constants.sol":{"keccak256":"0xb8320f88ed5519a4fe2554ad94815ce328a50fef7719932375d6ce695265c2f5","urls":["bzz-raw://a8f5de30fbcc63e469e46ad4a4d4bcd7d8e4b4f2d31fcf62a04aca48d999af22","dweb:/ipfs/QmXw1jDQM2szfRY3tAGrRy6fEzte6yVFgebJAqCLMDHndV"],"license":"MIT"},"node_modules/@latticexyz/world/src/worldResourceTypes.sol":{"keccak256":"0xeb042e7d3638430f6fd394107f3237cf14e4325154f0098624e8a7826584d465","urls":["bzz-raw://39e0b8eb87616b661f5a4f2fd7e1a727bd19b7fd8d40ad3d93fda26822f433ea","dweb:/ipfs/QmacYMatKV9pwEwirVRY9a6r89RoNs5yk99ic37ieWA8Dk"],"license":"MIT"},"src/experimental/Constants.sol":{"keccak256":"0x1828d78c43a249009f887c267a5fa4c5b7cdd86c6bedc1e6cb57416d2805470c","urls":["bzz-raw://2e5af1fde1db28001cf53728a23fc552bf3eb5130b9b20239c2e12faa618d83e","dweb:/ipfs/QmUvfh2Vxqm22cdx2543fZ3Mco5bYLU8vp72wD7dtDmirU"],"license":"MIT"}},"version":1},"id":134}
@@ -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}