@latticexyz/world-module-erc20 2.2.20-391575967cd09bd527d819222232a54a7d722fc2 → 2.2.20-b774ab28b3de6cefcbfce5e1bb6fcb68b9374abf
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.
- package/README.md +11 -39
- package/out/AccessControl.sol/AccessControl.json +1 -1
- package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json +1 -1
- package/out/AccessManagementSystem.sol/AccessManagementSystem.abi.json.d.ts +1 -1
- package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
- package/out/Allowances.sol/Allowances.json +1 -1
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json +1 -1
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.abi.json.d.ts +1 -1
- package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
- package/out/Balances.sol/Balances.json +1 -1
- package/out/Base.sol/CommonBase.json +1 -1
- package/out/Base.sol/ScriptBase.json +1 -1
- package/out/Base.sol/TestBase.json +1 -1
- package/out/BatchCallSystem.sol/BatchCallSystem.abi.json +1 -1
- package/out/BatchCallSystem.sol/BatchCallSystem.abi.json.d.ts +1 -1
- package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
- package/out/Bytes.sol/Bytes.json +1 -1
- package/out/Constants.sol/ERC20TableNames.json +1 -1
- package/out/Constants.sol/ModuleConstants.json +1 -1
- package/out/Constants.sol/OwnableTableNames.json +1 -1
- package/out/Constants.sol/PausableTableNames.json +1 -1
- package/out/DecodeSlice.sol/DecodeSlice.json +1 -1
- package/out/Delegation.sol/Delegation.json +1 -1
- package/out/ERC165Checker.sol/ERC165Checker.json +1 -1
- package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.abi.json +7 -0
- package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.abi.json.d.ts +7 -0
- package/out/ERC20BaseTest.t.sol/ERC20BehaviorTest.json +1 -1
- package/out/ERC20BaseTest.t.sol/{ERC20WithWorldTest.json → ERC20Test.json} +1 -1
- package/out/ERC20BaseTest.t.sol/MockERC20Base.abi.json +160 -6
- package/out/ERC20BaseTest.t.sol/MockERC20Base.abi.json.d.ts +160 -6
- package/out/ERC20BaseTest.t.sol/MockERC20Base.json +1 -1
- package/out/ERC20BaseTest.t.sol/TestConstants.json +1 -1
- package/out/ERC20Burnable.sol/ERC20Burnable.abi.json +155 -6
- package/out/ERC20Burnable.sol/ERC20Burnable.abi.json.d.ts +155 -6
- package/out/ERC20Burnable.sol/ERC20Burnable.json +1 -1
- package/out/ERC20Burnable.t.sol/ERC20BurnableTest.abi.json +7 -0
- package/out/ERC20Burnable.t.sol/ERC20BurnableTest.abi.json.d.ts +7 -0
- package/out/ERC20Burnable.t.sol/ERC20BurnableTest.json +1 -1
- package/out/ERC20Burnable.t.sol/{MockERC20WithWorldBurnable.abi.json → MockERC20Burnable.abi.json} +53 -42
- package/out/ERC20Burnable.t.sol/{MockERC20WithWorldBurnable.abi.json.d.ts → MockERC20Burnable.abi.json.d.ts} +53 -42
- package/out/ERC20Burnable.t.sol/MockERC20Burnable.json +1 -0
- package/out/ERC20Metadata.sol/ERC20Metadata.json +1 -1
- package/out/ERC20Module.sol/ERC20Module.abi.json +1 -1
- package/out/ERC20Module.sol/ERC20Module.abi.json.d.ts +1 -1
- package/out/ERC20Module.sol/ERC20Module.json +1 -1
- package/out/ERC20Module.sol/ERC20RegistryLib.json +1 -1
- package/out/ERC20Module.t.sol/ERC20ModuleTest.json +1 -1
- package/out/ERC20Module.t.sol/TestConstants.json +1 -1
- package/out/ERC20Pausable.sol/ERC20Pausable.abi.json +155 -6
- package/out/ERC20Pausable.sol/ERC20Pausable.abi.json.d.ts +155 -6
- package/out/ERC20Pausable.sol/ERC20Pausable.json +1 -1
- package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.abi.json +7 -0
- package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.abi.json.d.ts +7 -0
- package/out/ERC20Pausable.t.sol/ERC20PausableBehaviorTest.json +1 -1
- package/out/ERC20Pausable.t.sol/MockERC20Pausable.abi.json +191 -6
- package/out/ERC20Pausable.t.sol/MockERC20Pausable.abi.json.d.ts +191 -6
- package/out/ERC20Pausable.t.sol/MockERC20Pausable.json +1 -1
- package/out/{ERC20WithWorld.sol/ERC20WithWorld.abi.json → ERC20PausableBurnable.sol/ERC20PausableBurnable.abi.json} +57 -46
- package/out/{ERC20WithWorld.sol/ERC20WithWorld.abi.json.d.ts → ERC20PausableBurnable.sol/ERC20PausableBurnable.abi.json.d.ts} +57 -46
- package/out/ERC20PausableBurnable.sol/ERC20PausableBurnable.json +1 -0
- package/out/ERC20Registry.sol/ERC20Registry.json +1 -1
- package/out/EncodeArray.sol/EncodeArray.json +1 -1
- package/out/EncodedLengths.sol/EncodedLengthsInstance.json +1 -1
- package/out/EncodedLengths.sol/EncodedLengthsLib.json +1 -1
- package/out/FieldLayout.sol/FieldLayoutInstance.json +1 -1
- package/out/FieldLayout.sol/FieldLayoutLib.json +1 -1
- package/out/FunctionSelectors.sol/FunctionSelectors.json +1 -1
- package/out/FunctionSignatures.sol/FunctionSignatures.json +1 -1
- package/out/GasReporter.sol/GasReporter.json +1 -1
- package/out/Hook.sol/HookInstance.json +1 -1
- package/out/Hook.sol/HookLib.json +1 -1
- package/out/Hooks.sol/Hooks.json +1 -1
- package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +1 -1
- package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +1 -1
- package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
- package/out/IBatchCallSystem.sol/IBatchCallSystem.json +1 -1
- package/out/IDelegationControl.sol/IDelegationControl.json +1 -1
- package/out/IERC165.sol/IERC165.json +1 -1
- package/out/IERC20.sol/IERC20.json +1 -1
- package/out/IERC20Errors.sol/IERC20Errors.json +1 -1
- package/out/IERC20Events.sol/IERC20Events.json +1 -1
- package/out/IERC20Metadata.sol/IERC20Metadata.json +1 -1
- package/out/IEncodedLengthsErrors.sol/IEncodedLengthsErrors.json +1 -1
- package/out/IFieldLayoutErrors.sol/IFieldLayoutErrors.json +1 -1
- package/out/IModule.sol/IModule.json +1 -1
- package/out/IModuleErrors.sol/IModuleErrors.json +1 -1
- package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +1 -1
- package/out/IMulticall3.sol/IMulticall3.json +1 -1
- package/out/IRegistrationSystem.sol/IRegistrationSystem.json +1 -1
- package/out/ISchemaErrors.sol/ISchemaErrors.json +1 -1
- package/out/ISliceErrors.sol/ISliceErrors.json +1 -1
- package/out/IStore.sol/IStore.json +1 -1
- package/out/IStoreErrors.sol/IStoreErrors.json +1 -1
- package/out/IStoreEvents.sol/IStoreEvents.json +1 -1
- package/out/IStoreHook.sol/IStoreHook.json +1 -1
- package/out/IStoreKernel.sol/IStoreKernel.json +1 -1
- package/out/IStoreRead.sol/IStoreRead.json +1 -1
- package/out/IStoreRegistration.sol/IStoreRegistration.json +1 -1
- package/out/IStoreWrite.sol/IStoreWrite.json +1 -1
- package/out/ISystemHook.sol/ISystemHook.json +1 -1
- package/out/IWorldContextConsumer.sol/IWorldContextConsumer.json +1 -1
- package/out/IWorldErrors.sol/IWorldErrors.json +1 -1
- package/out/IWorldEvents.sol/IWorldEvents.json +1 -1
- package/out/IWorldKernel.sol/IWorldCall.json +1 -1
- package/out/IWorldKernel.sol/IWorldKernel.json +1 -1
- package/out/IWorldKernel.sol/IWorldModuleInstallation.json +1 -1
- package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
- package/out/InitModule.sol/InitModule.abi.json +1 -1
- package/out/InitModule.sol/InitModule.abi.json.d.ts +1 -1
- package/out/InitModule.sol/InitModule.json +1 -1
- package/out/InitModuleAddress.sol/InitModuleAddress.json +1 -1
- package/out/InstalledModules.sol/InstalledModules.json +1 -1
- package/out/LimitedCallContext.sol/LimitedCallContext.json +1 -1
- package/out/MUDERC20.sol/MUDERC20.abi.json +155 -6
- package/out/MUDERC20.sol/MUDERC20.abi.json.d.ts +155 -6
- package/out/MUDERC20.sol/MUDERC20.json +1 -1
- package/out/Memory.sol/Memory.json +1 -1
- package/out/Module.sol/Module.abi.json +1 -1
- package/out/Module.sol/Module.abi.json.d.ts +1 -1
- package/out/Module.sol/Module.json +1 -1
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json +1 -1
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.abi.json.d.ts +1 -1
- package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
- package/out/NamespaceDelegationControl.sol/NamespaceDelegationControl.json +1 -1
- package/out/NamespaceOwner.sol/NamespaceOwner.json +1 -1
- package/out/Owner.sol/Owner.json +1 -1
- package/out/Pausable.sol/Pausable.abi.json +151 -2
- package/out/Pausable.sol/Pausable.abi.json.d.ts +151 -2
- package/out/Pausable.sol/Pausable.json +1 -1
- package/out/Paused.sol/Paused.json +1 -1
- package/out/RegistrationSystem.sol/RegistrationSystem.abi.json +1 -1
- package/out/RegistrationSystem.sol/RegistrationSystem.abi.json.d.ts +1 -1
- package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
- package/out/ResourceAccess.sol/ResourceAccess.json +1 -1
- package/out/ResourceId.sol/ResourceIdInstance.json +1 -1
- package/out/ResourceId.sol/ResourceIdLib.json +1 -1
- package/out/ResourceIds.sol/ResourceIds.json +1 -1
- package/out/Schema.sol/SchemaInstance.json +1 -1
- package/out/Schema.sol/SchemaLib.json +1 -1
- package/out/Slice.sol/SliceInstance.json +1 -1
- package/out/Slice.sol/SliceLib.json +1 -1
- package/out/StdAssertions.sol/StdAssertions.json +1 -1
- package/out/StdChains.sol/StdChains.json +1 -1
- package/out/StdCheats.sol/StdCheats.json +1 -1
- package/out/StdCheats.sol/StdCheatsSafe.json +1 -1
- package/out/StdError.sol/stdError.json +1 -1
- package/out/StdInvariant.sol/StdInvariant.json +1 -1
- package/out/StdJson.sol/stdJson.json +1 -1
- package/out/StdMath.sol/stdMath.json +1 -1
- package/out/StdStorage.sol/stdStorage.json +1 -1
- package/out/StdStorage.sol/stdStorageSafe.json +1 -1
- package/out/StdStyle.sol/StdStyle.json +1 -1
- package/out/StdUtils.sol/StdUtils.json +1 -1
- package/out/Storage.sol/Storage.json +1 -1
- package/out/StoreCore.sol/StoreCore.json +1 -1
- package/out/StoreCore.sol/StoreCoreInternal.json +1 -1
- package/out/StoreHooks.sol/StoreHooks.json +1 -1
- package/out/StoreKernel.sol/StoreKernel.json +1 -1
- package/out/StoreRead.sol/StoreRead.json +1 -1
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json +1 -1
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.abi.json.d.ts +1 -1
- package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
- package/out/StoreSwitch.sol/StoreSwitch.json +1 -1
- package/out/System.sol/System.abi.json +1 -1
- package/out/System.sol/System.abi.json.d.ts +1 -1
- package/out/System.sol/System.json +1 -1
- package/out/SystemCall.sol/SystemCall.json +1 -1
- package/out/SystemHooks.sol/SystemHooks.json +1 -1
- package/out/SystemRegistry.sol/SystemRegistry.json +1 -1
- package/out/Systems.sol/Systems.json +1 -1
- package/out/Tables.sol/Tables.json +1 -1
- package/out/Test.sol/Test.json +1 -1
- package/out/TightCoder.sol/TightCoder.json +1 -1
- package/out/TotalSupply.sol/TotalSupply.json +1 -1
- package/out/UserDelegationControl.sol/UserDelegationControl.json +1 -1
- package/out/Vm.sol/Vm.json +1 -1
- package/out/Vm.sol/VmSafe.json +1 -1
- package/out/World.sol/World.json +1 -1
- package/out/WorldConsumer.sol/WorldConsumer.abi.json +177 -0
- package/out/WorldConsumer.sol/WorldConsumer.abi.json.d.ts +179 -0
- package/out/WorldConsumer.sol/WorldConsumer.json +1 -0
- package/out/WorldContext.sol/WorldContextConsumer.abi.json +1 -1
- package/out/WorldContext.sol/WorldContextConsumer.abi.json.d.ts +1 -1
- package/out/WorldContext.sol/WorldContextConsumer.json +1 -1
- package/out/WorldContext.sol/WorldContextConsumerLib.json +1 -1
- package/out/WorldContext.sol/WorldContextProviderLib.json +1 -1
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json +1 -1
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.abi.json.d.ts +1 -1
- package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
- package/out/WorldResourceId.sol/WorldResourceIdInstance.json +1 -1
- package/out/WorldResourceId.sol/WorldResourceIdLib.json +1 -1
- package/out/build-info/3a51d1e90905a7ef4d37017d85f9a6c1.json +1 -0
- package/out/console.sol/console.json +1 -1
- package/out/console2.sol/console2.json +1 -1
- package/out/constants.sol/LayoutOffsets.json +1 -1
- package/out/safeconsole.sol/safeconsole.json +1 -1
- package/out/src/IERC165.sol/IERC165.json +1 -1
- package/out/tables/Balances.sol/Balances.json +1 -1
- package/out/test.sol/DSTest.json +1 -1
- package/package.json +8 -8
- package/src/examples/{ERC20WithWorld.sol → ERC20PausableBurnable.sol} +4 -9
- package/src/experimental/ERC20Module.sol +2 -2
- package/src/experimental/MUDERC20.sol +8 -7
- package/src/experimental/Pausable.sol +5 -4
- package/out/Context.sol/Context.abi.json +0 -15
- package/out/Context.sol/Context.abi.json.d.ts +0 -17
- package/out/Context.sol/Context.json +0 -1
- package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.abi.json +0 -949
- package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.abi.json.d.ts +0 -951
- package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreBehaviorTest.json +0 -1
- package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.abi.json +0 -949
- package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.abi.json.d.ts +0 -951
- package/out/ERC20BaseTest.t.sol/ERC20WithInternalStoreTest.json +0 -1
- package/out/ERC20BaseTest.t.sol/ERC20WithWorldBehaviorTest.json +0 -1
- package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.abi.json +0 -956
- package/out/ERC20BaseTest.t.sol/ERC20WithWorldTest.abi.json.d.ts +0 -958
- package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.abi.json +0 -696
- package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.abi.json.d.ts +0 -698
- package/out/ERC20BaseTest.t.sol/MockERC20WithInternalStore.json +0 -1
- package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.abi.json +0 -839
- package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.abi.json.d.ts +0 -841
- package/out/ERC20BaseTest.t.sol/MockERC20WithWorld.json +0 -1
- package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.abi.json +0 -956
- package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.abi.json.d.ts +0 -958
- package/out/ERC20Burnable.t.sol/ERC20BurnableWithInternalStoreTest.json +0 -1
- package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.abi.json +0 -963
- package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.abi.json.d.ts +0 -965
- package/out/ERC20Burnable.t.sol/ERC20BurnableWithWorldTest.json +0 -1
- package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.abi.json +0 -727
- package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.abi.json.d.ts +0 -729
- package/out/ERC20Burnable.t.sol/MockERC20WithInternalStoreBurnable.json +0 -1
- package/out/ERC20Burnable.t.sol/MockERC20WithWorldBurnable.json +0 -1
- package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.abi.json +0 -956
- package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.abi.json.d.ts +0 -958
- package/out/ERC20Pausable.t.sol/ERC20PausableWithInternalStoreTest.json +0 -1
- package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.abi.json +0 -963
- package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.abi.json.d.ts +0 -965
- package/out/ERC20Pausable.t.sol/ERC20PausableWithWorldTest.json +0 -1
- package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.abi.json +0 -759
- package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.abi.json.d.ts +0 -761
- package/out/ERC20Pausable.t.sol/MockERC20WithInternalStorePausable.json +0 -1
- package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.abi.json +0 -897
- package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.abi.json.d.ts +0 -899
- package/out/ERC20Pausable.t.sol/MockERC20WithWorldPausable.json +0 -1
- package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.abi.json +0 -851
- package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.abi.json.d.ts +0 -853
- package/out/ERC20WithInternalStore.sol/ERC20WithInternalStore.json +0 -1
- package/out/ERC20WithWorld.sol/ERC20WithWorld.json +0 -1
- package/out/Ownable.sol/Ownable.abi.json +0 -426
- package/out/Ownable.sol/Ownable.abi.json.d.ts +0 -428
- package/out/Ownable.sol/Ownable.json +0 -1
- package/out/Store.sol/Store.abi.json +0 -1261
- package/out/Store.sol/Store.abi.json.d.ts +0 -1263
- package/out/Store.sol/Store.json +0 -1
- package/out/StoreConsumer.sol/StoreConsumer.abi.json +0 -15
- package/out/StoreConsumer.sol/StoreConsumer.abi.json.d.ts +0 -17
- package/out/StoreConsumer.sol/StoreConsumer.json +0 -1
- package/out/WithStore.sol/WithStore.abi.json +0 -352
- package/out/WithStore.sol/WithStore.abi.json.d.ts +0 -354
- package/out/WithStore.sol/WithStore.json +0 -1
- package/out/WithWorld.sol/WithWorld.abi.json +0 -490
- package/out/WithWorld.sol/WithWorld.abi.json.d.ts +0 -492
- package/out/WithWorld.sol/WithWorld.json +0 -1
- package/out/build-info/175d99f81f5752e758f7c3af96b26ced.json +0 -1
- package/src/examples/ERC20WithInternalStore.sol +0 -32
- package/src/experimental/Ownable.sol +0 -110
- /package/out/ERC20BaseTest.t.sol/{ERC20WithWorldBehaviorTest.abi.json → ERC20Test.abi.json} +0 -0
- /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 {
|
|
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
|
|
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
|
-
)
|
|
20
|
+
) WorldConsumer(world, namespace, true) MUDERC20(name, symbol) {
|
|
22
21
|
// Transfer namespace ownership to the creator
|
|
23
|
-
world.transferOwnership(
|
|
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,7 +11,7 @@ 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 {
|
|
14
|
+
import { ERC20PausableBurnable } from "../examples/ERC20PausableBurnable.sol";
|
|
15
15
|
import { ModuleConstants } from "./Constants.sol";
|
|
16
16
|
|
|
17
17
|
contract ERC20Module is Module {
|
|
@@ -39,7 +39,7 @@ contract ERC20Module is Module {
|
|
|
39
39
|
|
|
40
40
|
IBaseWorld world = IBaseWorld(_world());
|
|
41
41
|
|
|
42
|
-
|
|
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));
|
|
@@ -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 {
|
|
7
|
-
import {
|
|
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
|
|
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 =
|
|
29
|
-
balancesId =
|
|
30
|
-
allowancesId =
|
|
31
|
-
metadataId =
|
|
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 {
|
|
7
|
-
import {
|
|
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
|
|
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 =
|
|
49
|
+
pausedId = WorldResourceIdLib.encode(RESOURCE_TABLE, namespace, PausableTableNames.PAUSED);
|
|
49
50
|
PausedTable.register(pausedId);
|
|
50
51
|
PausedTable.set(pausedId, false);
|
|
51
52
|
}
|
|
@@ -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}
|