@latticexyz/world-module-metadata 2.2.21-f4db683f90214b03bb8d68635a3825cc9bf58263 → 2.2.22-03af917786370b8251542adb3d53099aa85e754f

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 (61) hide show
  1. package/dist/mud.config.d.ts +5 -3
  2. package/dist/mud.config.js +5 -0
  3. package/dist/mud.config.js.map +1 -1
  4. package/out/AccessManagementSystem.sol/AccessManagementSystem.json +1 -1
  5. package/out/BalanceTransferSystem.sol/BalanceTransferSystem.json +1 -1
  6. package/out/BatchCallSystem.sol/BatchCallSystem.json +1 -1
  7. package/out/GasReporter.sol/GasReporter.json +1 -1
  8. package/out/IBaseWorld.sol/IBaseWorld.json +1 -1
  9. package/out/IMetadataSystem.sol/IMetadataSystem.json +1 -1
  10. package/out/IWorld.sol/IWorld.json +1 -1
  11. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +1 -1
  12. package/out/InitModule.sol/InitModule.json +1 -1
  13. package/out/MetadataModule.sol/MetadataModule.json +1 -1
  14. package/out/MetadataModule.t.sol/MetadataModuleTest.abi.json +1 -1
  15. package/out/MetadataModule.t.sol/MetadataModuleTest.abi.json.d.ts +1 -1
  16. package/out/MetadataModule.t.sol/MetadataModuleTest.json +1 -1
  17. package/out/MetadataSystem.sol/MetadataSystem.abi.json +0 -16
  18. package/out/MetadataSystem.sol/MetadataSystem.abi.json.d.ts +0 -16
  19. package/out/MetadataSystem.sol/MetadataSystem.json +1 -1
  20. package/out/MetadataSystemLib.sol/MetadataSystemLib.abi.json +7 -0
  21. package/out/MetadataSystemLib.sol/MetadataSystemLib.abi.json.d.ts +9 -0
  22. package/out/MetadataSystemLib.sol/MetadataSystemLib.json +1 -0
  23. package/out/MetadataSystemLib.sol/_deleteResourceTag_ResourceId_bytes32.abi.json +20 -0
  24. package/out/MetadataSystemLib.sol/_deleteResourceTag_ResourceId_bytes32.abi.json.d.ts +22 -0
  25. package/out/MetadataSystemLib.sol/_deleteResourceTag_ResourceId_bytes32.json +1 -0
  26. package/out/MetadataSystemLib.sol/_getResourceTag_ResourceId_bytes32.abi.json +20 -0
  27. package/out/MetadataSystemLib.sol/_getResourceTag_ResourceId_bytes32.abi.json.d.ts +22 -0
  28. package/out/MetadataSystemLib.sol/_getResourceTag_ResourceId_bytes32.json +1 -0
  29. package/out/MetadataSystemLib.sol/_setResourceTag_ResourceId_bytes32_bytes.abi.json +25 -0
  30. package/out/MetadataSystemLib.sol/_setResourceTag_ResourceId_bytes32_bytes.abi.json.d.ts +27 -0
  31. package/out/MetadataSystemLib.sol/_setResourceTag_ResourceId_bytes32_bytes.json +1 -0
  32. package/out/ModuleInstallationSystem.sol/ModuleInstallationSystem.json +1 -1
  33. package/out/RegistrationSystem.sol/RegistrationSystem.json +1 -1
  34. package/out/ResourceTag.sol/ResourceTag.json +1 -1
  35. package/out/StdError.sol/stdError.json +1 -1
  36. package/out/StoreRead.sol/StoreRead.json +1 -1
  37. package/out/StoreRegistrationSystem.sol/StoreRegistrationSystem.json +1 -1
  38. package/out/StoreRegistrationSystemLib.sol/StoreRegistrationSystemLib.json +1 -1
  39. package/out/StoreRegistrationSystemLib.sol/_registerStoreHook_ResourceId_IStoreHook_uint8.json +1 -1
  40. package/out/StoreRegistrationSystemLib.sol/_registerTable_ResourceId_FieldLayout_Schema_Schema_stringArray_stringArray.json +1 -1
  41. package/out/StoreRegistrationSystemLib.sol/_unregisterStoreHook_ResourceId_IStoreHook.json +1 -1
  42. package/out/System.sol/System.json +1 -1
  43. package/out/World.sol/World.json +1 -1
  44. package/out/WorldRegistrationSystem.sol/WorldRegistrationSystem.json +1 -1
  45. package/out/WorldRegistrationSystemLib.sol/WorldRegistrationSystemLib.json +1 -1
  46. package/out/WorldRegistrationSystemLib.sol/_registerDelegation_address_ResourceId_bytes.json +1 -1
  47. package/out/WorldRegistrationSystemLib.sol/_registerFunctionSelector_ResourceId_string.json +1 -1
  48. package/out/WorldRegistrationSystemLib.sol/_registerNamespaceDelegation_ResourceId_ResourceId_bytes.json +1 -1
  49. package/out/WorldRegistrationSystemLib.sol/_registerNamespace_ResourceId.json +1 -1
  50. package/out/WorldRegistrationSystemLib.sol/_registerRootFunctionSelector_ResourceId_string_string.json +1 -1
  51. package/out/WorldRegistrationSystemLib.sol/_registerSystemHook_ResourceId_ISystemHook_uint8.json +1 -1
  52. package/out/WorldRegistrationSystemLib.sol/_registerSystem_ResourceId_System_bool.json +1 -1
  53. package/out/WorldRegistrationSystemLib.sol/_unregisterDelegation_address.json +1 -1
  54. package/out/WorldRegistrationSystemLib.sol/_unregisterNamespaceDelegation_ResourceId.json +1 -1
  55. package/out/WorldRegistrationSystemLib.sol/_unregisterSystemHook_ResourceId_ISystemHook.json +1 -1
  56. package/out/build-info/{b4050048a431de169351a502bf331673.json → c0f8cd5008b459e06fd3cea120871480.json} +1 -1
  57. package/out/test.sol/DSTest.json +1 -1
  58. package/package.json +6 -6
  59. package/src/MetadataModule.sol +8 -8
  60. package/src/MetadataSystem.sol +0 -2
  61. package/src/codegen/experimental/systems/MetadataSystemLib.sol +174 -0
@@ -0,0 +1,174 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity >=0.8.24;
3
+
4
+ /* Autogenerated file. Do not edit manually. */
5
+
6
+ import { MetadataSystem } from "../../../MetadataSystem.sol";
7
+ import { ResourceId } from "@latticexyz/store/src/ResourceId.sol";
8
+ import { revertWithBytes } from "@latticexyz/world/src/revertWithBytes.sol";
9
+ import { IWorldCall } from "@latticexyz/world/src/IWorldKernel.sol";
10
+ import { SystemCall } from "@latticexyz/world/src/SystemCall.sol";
11
+ import { WorldContextConsumerLib } from "@latticexyz/world/src/WorldContext.sol";
12
+ import { Systems } from "@latticexyz/world/src/codegen/tables/Systems.sol";
13
+ import { StoreSwitch } from "@latticexyz/store/src/StoreSwitch.sol";
14
+
15
+ type MetadataSystemType is bytes32;
16
+
17
+ // equivalent to WorldResourceIdLib.encode({ typeId: RESOURCE_SYSTEM, namespace: "metadata", name: "MetadataSystem" }))
18
+ MetadataSystemType constant metadataSystem = MetadataSystemType.wrap(
19
+ 0x73796d657461646174610000000000004d6574616461746153797374656d0000
20
+ );
21
+
22
+ struct CallWrapper {
23
+ ResourceId systemId;
24
+ address from;
25
+ }
26
+
27
+ struct RootCallWrapper {
28
+ ResourceId systemId;
29
+ address from;
30
+ }
31
+
32
+ /**
33
+ * @title MetadataSystemLib
34
+ * @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)
35
+ * @dev This library is automatically generated from the corresponding system contract. Do not edit manually.
36
+ */
37
+ library MetadataSystemLib {
38
+ error MetadataSystemLib_CallingFromRootSystem();
39
+
40
+ function getResourceTag(
41
+ MetadataSystemType self,
42
+ ResourceId resource,
43
+ bytes32 tag
44
+ ) internal view returns (bytes memory) {
45
+ return CallWrapper(self.toResourceId(), address(0)).getResourceTag(resource, tag);
46
+ }
47
+
48
+ function setResourceTag(MetadataSystemType self, ResourceId resource, bytes32 tag, bytes memory value) internal {
49
+ return CallWrapper(self.toResourceId(), address(0)).setResourceTag(resource, tag, value);
50
+ }
51
+
52
+ function deleteResourceTag(MetadataSystemType self, ResourceId resource, bytes32 tag) internal {
53
+ return CallWrapper(self.toResourceId(), address(0)).deleteResourceTag(resource, tag);
54
+ }
55
+
56
+ function getResourceTag(
57
+ CallWrapper memory self,
58
+ ResourceId resource,
59
+ bytes32 tag
60
+ ) internal view returns (bytes memory) {
61
+ // if the contract calling this function is a root system, it should use `callAsRoot`
62
+ if (address(_world()) == address(this)) revert MetadataSystemLib_CallingFromRootSystem();
63
+
64
+ bytes memory systemCall = abi.encodeCall(_getResourceTag_ResourceId_bytes32.getResourceTag, (resource, tag));
65
+ bytes memory worldCall = self.from == address(0)
66
+ ? abi.encodeCall(IWorldCall.call, (self.systemId, systemCall))
67
+ : abi.encodeCall(IWorldCall.callFrom, (self.from, self.systemId, systemCall));
68
+ (bool success, bytes memory returnData) = address(_world()).staticcall(worldCall);
69
+ if (!success) revertWithBytes(returnData);
70
+
71
+ bytes memory result = abi.decode(returnData, (bytes));
72
+ return abi.decode(result, (bytes));
73
+ }
74
+
75
+ function setResourceTag(CallWrapper memory self, ResourceId resource, bytes32 tag, bytes memory value) internal {
76
+ // if the contract calling this function is a root system, it should use `callAsRoot`
77
+ if (address(_world()) == address(this)) revert MetadataSystemLib_CallingFromRootSystem();
78
+
79
+ bytes memory systemCall = abi.encodeCall(
80
+ _setResourceTag_ResourceId_bytes32_bytes.setResourceTag,
81
+ (resource, tag, value)
82
+ );
83
+ self.from == address(0)
84
+ ? _world().call(self.systemId, systemCall)
85
+ : _world().callFrom(self.from, self.systemId, systemCall);
86
+ }
87
+
88
+ function deleteResourceTag(CallWrapper memory self, ResourceId resource, bytes32 tag) internal {
89
+ // if the contract calling this function is a root system, it should use `callAsRoot`
90
+ if (address(_world()) == address(this)) revert MetadataSystemLib_CallingFromRootSystem();
91
+
92
+ bytes memory systemCall = abi.encodeCall(_deleteResourceTag_ResourceId_bytes32.deleteResourceTag, (resource, tag));
93
+ self.from == address(0)
94
+ ? _world().call(self.systemId, systemCall)
95
+ : _world().callFrom(self.from, self.systemId, systemCall);
96
+ }
97
+
98
+ function getResourceTag(
99
+ RootCallWrapper memory self,
100
+ ResourceId resource,
101
+ bytes32 tag
102
+ ) internal view returns (bytes memory) {
103
+ bytes memory systemCall = abi.encodeCall(_getResourceTag_ResourceId_bytes32.getResourceTag, (resource, tag));
104
+
105
+ bytes memory result = SystemCall.staticcallOrRevert(self.from, self.systemId, systemCall);
106
+ return abi.decode(result, (bytes));
107
+ }
108
+
109
+ function setResourceTag(RootCallWrapper memory self, ResourceId resource, bytes32 tag, bytes memory value) internal {
110
+ bytes memory systemCall = abi.encodeCall(
111
+ _setResourceTag_ResourceId_bytes32_bytes.setResourceTag,
112
+ (resource, tag, value)
113
+ );
114
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
115
+ }
116
+
117
+ function deleteResourceTag(RootCallWrapper memory self, ResourceId resource, bytes32 tag) internal {
118
+ bytes memory systemCall = abi.encodeCall(_deleteResourceTag_ResourceId_bytes32.deleteResourceTag, (resource, tag));
119
+ SystemCall.callWithHooksOrRevert(self.from, self.systemId, systemCall, msg.value);
120
+ }
121
+
122
+ function callFrom(MetadataSystemType self, address from) internal pure returns (CallWrapper memory) {
123
+ return CallWrapper(self.toResourceId(), from);
124
+ }
125
+
126
+ function callAsRoot(MetadataSystemType self) internal view returns (RootCallWrapper memory) {
127
+ return RootCallWrapper(self.toResourceId(), WorldContextConsumerLib._msgSender());
128
+ }
129
+
130
+ function callAsRootFrom(MetadataSystemType self, address from) internal pure returns (RootCallWrapper memory) {
131
+ return RootCallWrapper(self.toResourceId(), from);
132
+ }
133
+
134
+ function toResourceId(MetadataSystemType self) internal pure returns (ResourceId) {
135
+ return ResourceId.wrap(MetadataSystemType.unwrap(self));
136
+ }
137
+
138
+ function fromResourceId(ResourceId resourceId) internal pure returns (MetadataSystemType) {
139
+ return MetadataSystemType.wrap(resourceId.unwrap());
140
+ }
141
+
142
+ function getAddress(MetadataSystemType self) internal view returns (address) {
143
+ return Systems.getSystem(self.toResourceId());
144
+ }
145
+
146
+ function _world() private view returns (IWorldCall) {
147
+ return IWorldCall(StoreSwitch.getStoreAddress());
148
+ }
149
+ }
150
+
151
+ /**
152
+ * System Function Interfaces
153
+ *
154
+ * We generate an interface for each system function, which is then used for encoding system calls.
155
+ * This is necessary to handle function overloading correctly (which abi.encodeCall cannot).
156
+ *
157
+ * Each interface is uniquely named based on the function name and parameters to prevent collisions.
158
+ */
159
+
160
+ interface _getResourceTag_ResourceId_bytes32 {
161
+ function getResourceTag(ResourceId resource, bytes32 tag) external;
162
+ }
163
+
164
+ interface _setResourceTag_ResourceId_bytes32_bytes {
165
+ function setResourceTag(ResourceId resource, bytes32 tag, bytes memory value) external;
166
+ }
167
+
168
+ interface _deleteResourceTag_ResourceId_bytes32 {
169
+ function deleteResourceTag(ResourceId resource, bytes32 tag) external;
170
+ }
171
+
172
+ using MetadataSystemLib for MetadataSystemType global;
173
+ using MetadataSystemLib for CallWrapper global;
174
+ using MetadataSystemLib for RootCallWrapper global;