@latticexyz/world-modules 2.0.0-main-fd10cff6 → 2.0.0-main-85218618

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 (87) hide show
  1. package/out/ArrayLib.sol/ArrayLib.json +255 -255
  2. package/out/CallboundDelegationControl.sol/CallboundDelegationControl.json +241 -217
  3. package/out/CallboundDelegations.sol/CallboundDelegations.json +2595 -2595
  4. package/out/DelegationControl.sol/DelegationControl.json +122 -98
  5. package/out/Hooks.sol/Hooks.json +45 -45
  6. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +64 -64
  7. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +53 -53
  8. package/out/IBaseWorld.sol/IBaseWorld.json +130 -85
  9. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +51 -51
  10. package/out/ICoreSystem.sol/ICoreSystem.json +6 -6
  11. package/out/IDelegationControl.sol/IDelegationControl.json +50 -26
  12. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +20 -20
  13. package/out/ISystemHook.sol/ISystemHook.json +171 -131
  14. package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +13 -13
  15. package/out/IWorldContextConsumer.sol/IWorldContextConsumer.json +157 -109
  16. package/out/IWorldErrors.sol/IWorldErrors.json +345 -255
  17. package/out/IWorldKernel.sol/IWorldCall.json +294 -254
  18. package/out/IWorldKernel.sol/IWorldKernel.json +321 -258
  19. package/out/IWorldKernel.sol/IWorldModuleInstallation.json +279 -253
  20. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +198 -198
  21. package/out/KeysInTable.sol/KeysInTable.json +10668 -10668
  22. package/out/KeysInTableHook.sol/KeysInTableHook.json +862 -862
  23. package/out/KeysInTableModule.sol/KeysInTableModule.json +570 -546
  24. package/out/KeysWithValue.sol/KeysWithValue.json +3828 -3828
  25. package/out/KeysWithValueHook.sol/KeysWithValueHook.json +1008 -1008
  26. package/out/KeysWithValueModule.sol/KeysWithValueModule.json +459 -435
  27. package/out/Module.sol/Module.json +106 -82
  28. package/out/ResourceIds.sol/ResourceIds.json +45 -45
  29. package/out/Schema.sol/SchemaInstance.json +30 -30
  30. package/out/Schema.sol/SchemaLib.json +30 -30
  31. package/out/SchemaType.sol/SchemaType.json +276 -276
  32. package/out/StandardDelegationsModule.sol/StandardDelegationsModule.json +336 -312
  33. package/out/StoreHook.sol/StoreHook.json +358 -358
  34. package/out/StoreHooks.sol/StoreHooks.json +45 -45
  35. package/out/System.sol/System.json +81 -38
  36. package/out/Tables.sol/Tables.json +73 -73
  37. package/out/TimeboundDelegationControl.sol/TimeboundDelegationControl.json +145 -121
  38. package/out/TimeboundDelegations.sol/TimeboundDelegations.json +1986 -1986
  39. package/out/UniqueEntity.sol/UniqueEntity.json +1402 -1402
  40. package/out/UniqueEntityModule.sol/UniqueEntityModule.json +363 -339
  41. package/out/UniqueEntitySystem.sol/UniqueEntitySystem.json +135 -99
  42. package/out/UsedKeysIndex.sol/UsedKeysIndex.json +2722 -2722
  43. package/out/WorldContext.sol/WorldContextConsumer.json +771 -674
  44. package/out/WorldContext.sol/WorldContextProvider.json +734 -674
  45. package/out/WorldResourceId.sol/WorldResourceIdInstance.json +777 -765
  46. package/out/WorldResourceId.sol/WorldResourceIdLib.json +777 -765
  47. package/out/constants.sol/constants.json +115 -115
  48. package/out/getKeysInTable.sol/getKeysInTable.json +564 -564
  49. package/out/getKeysWithValue.sol/getKeysWithValue.json +264 -264
  50. package/out/getTargetTableId.sol/getTargetTableId.json +163 -163
  51. package/out/getUniqueEntity.sol/getUniqueEntity.json +88 -88
  52. package/out/hasKey.sol/hasKey.json +130 -130
  53. package/out/index.sol/index.json +53 -53
  54. package/out/interfaces/IBaseWorld.sol/IBaseWorld.json +199 -154
  55. package/out/query.sol/query.json +1154 -1154
  56. package/out/revertWithBytes.sol/revertWithBytes.json +15 -15
  57. package/out/src/Bytes.sol/Bytes.json +1332 -1332
  58. package/out/src/FieldLayout.sol/FieldLayoutInstance.json +697 -697
  59. package/out/src/FieldLayout.sol/FieldLayoutLib.json +697 -697
  60. package/out/src/IStore.sol/IStore.json +53 -53
  61. package/out/src/IWorldKernel.sol/IWorldCall.json +307 -267
  62. package/out/src/IWorldKernel.sol/IWorldKernel.json +334 -271
  63. package/out/src/IWorldKernel.sol/IWorldModuleInstallation.json +292 -266
  64. package/out/src/Memory.sol/Memory.json +89 -89
  65. package/out/src/PackedCounter.sol/PackedCounterInstance.json +923 -923
  66. package/out/src/PackedCounter.sol/PackedCounterLib.json +923 -923
  67. package/out/src/ResourceId.sol/ResourceIdInstance.json +112 -112
  68. package/out/src/ResourceId.sol/ResourceIdLib.json +112 -112
  69. package/out/src/Schema.sol/SchemaInstance.json +787 -787
  70. package/out/src/Schema.sol/SchemaLib.json +787 -787
  71. package/out/src/Slice.sol/SliceInstance.json +429 -429
  72. package/out/src/Slice.sol/SliceLib.json +429 -429
  73. package/out/src/StoreCore.sol/StoreCore.json +4455 -4455
  74. package/out/src/StoreCore.sol/StoreCoreInternal.json +4455 -4455
  75. package/out/src/StoreSwitch.sol/StoreSwitch.json +2454 -2454
  76. package/out/src/WorldContext.sol/WorldContextConsumer.json +777 -680
  77. package/out/src/WorldContext.sol/WorldContextProvider.json +740 -680
  78. package/out/src/WorldResourceId.sol/WorldResourceIdInstance.json +777 -765
  79. package/out/src/WorldResourceId.sol/WorldResourceIdLib.json +777 -765
  80. package/out/storeHookTypes.sol/storeHookTypes.json +115 -115
  81. package/out/storeResourceTypes.sol/storeResourceTypes.json +12 -12
  82. package/out/tables/ResourceIds.sol/ResourceIds.json +1746 -1746
  83. package/out/tables/Tables.sol/Tables.json +7288 -7288
  84. package/out/tightcoder/EncodeArray.sol/EncodeArray.json +3246 -3246
  85. package/out/types.sol/types.json +39 -39
  86. package/out/worldResourceTypes.sol/worldResourceTypes.json +87 -87
  87. package/package.json +8 -8
@@ -75,7 +75,7 @@
75
75
  "_world()": "e1af802c",
76
76
  "supportsInterface(bytes4)": "01ffc9a7"
77
77
  },
78
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165.\"},\"returns\":{\"_0\":\"True if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, false otherwise.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol\":\"IWorldContextConsumer\"},\"evmVersion\":\"paris\",\"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\":{\"/home/runner/work/mud/mud/packages/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x0c0f9eba3a700d97a3b87678bbf12d4bbd8a80490e9b3a5841d049ebc1a89f93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a56466e8ddcaf10b9109bfbc581563f5e9eefcaff1963a6954ccd093859ef6d2\",\"dweb:/ipfs/QmNk6FvWzmLT3vnsUuzqr9MYMfaQRa7yLuNM7DVvpkuytf\"]}},\"version\":1}",
78
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_world\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract should only be used for contracts without their own storage, like Systems.\",\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"_0\":\"The address of the `msg.sender` that called the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_msgValue()\":{\"returns\":{\"_0\":\"The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_world()\":{\"returns\":{\"_0\":\"The address of the World contract that routed the call to this WorldContextConsumer.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function uses less than 30,000 gas.\",\"params\":{\"interfaceID\":\"The interface identifier, as specified in ERC-165.\"},\"returns\":{\"_0\":\"True if the contract implements `interfaceID` and `interfaceID` is not 0xffffffff, false otherwise.\"}}},\"title\":\"WorldContextConsumer - Extracting trusted context values from appended calldata.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface.\"}},\"notice\":\"This contract is designed to extract trusted context values (like msg.sender and msg.value) from the appended calldata. It provides mechanisms similar to EIP-2771 (https://eips.ethereum.org/EIPS/eip-2771), but allowing any contract to be the trusted forwarder.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol\":\"IWorldContextConsumer\"},\"evmVersion\":\"paris\",\"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\":{\"/home/runner/work/mud/mud/packages/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]}},\"version\":1}",
79
79
  "metadata": {
80
80
  "compiler": {
81
81
  "version": "0.8.21+commit.d9974bed"
@@ -145,6 +145,21 @@
145
145
  "devdoc": {
146
146
  "kind": "dev",
147
147
  "methods": {
148
+ "_msgSender()": {
149
+ "returns": {
150
+ "_0": "The address of the `msg.sender` that called the World contract before the World routed the call to the WorldContextConsumer contract."
151
+ }
152
+ },
153
+ "_msgValue()": {
154
+ "returns": {
155
+ "_0": "The `msg.value` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."
156
+ }
157
+ },
158
+ "_world()": {
159
+ "returns": {
160
+ "_0": "The address of the World contract that routed the call to this WorldContextConsumer."
161
+ }
162
+ },
148
163
  "supportsInterface(bytes4)": {
149
164
  "details": "Interface identification is specified in ERC-165. This function uses less than 30,000 gas.",
150
165
  "params": {
@@ -160,6 +175,15 @@
160
175
  "userdoc": {
161
176
  "kind": "user",
162
177
  "methods": {
178
+ "_msgSender()": {
179
+ "notice": "Extract the `msg.sender` from the context appended to the calldata."
180
+ },
181
+ "_msgValue()": {
182
+ "notice": "Extract the `msg.value` from the context appended to the calldata."
183
+ },
184
+ "_world()": {
185
+ "notice": "Get the address of the World contract that routed the call to this WorldContextConsumer."
186
+ },
163
187
  "supportsInterface(bytes4)": {
164
188
  "notice": "Query if a contract implements an interface."
165
189
  }
@@ -195,10 +219,10 @@
195
219
  "license": "MIT"
196
220
  },
197
221
  "/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol": {
198
- "keccak256": "0x0c0f9eba3a700d97a3b87678bbf12d4bbd8a80490e9b3a5841d049ebc1a89f93",
222
+ "keccak256": "0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500",
199
223
  "urls": [
200
- "bzz-raw://a56466e8ddcaf10b9109bfbc581563f5e9eefcaff1963a6954ccd093859ef6d2",
201
- "dweb:/ipfs/QmNk6FvWzmLT3vnsUuzqr9MYMfaQRa7yLuNM7DVvpkuytf"
224
+ "bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d",
225
+ "dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu"
202
226
  ],
203
227
  "license": "MIT"
204
228
  }
@@ -207,7 +231,7 @@
207
231
  },
208
232
  "ast": {
209
233
  "absolutePath": "/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol",
210
- "id": 23065,
234
+ "id": 23074,
211
235
  "exportedSymbols": {
212
236
  "ERC165_INTERFACE_ID": [
213
237
  22927
@@ -216,17 +240,17 @@
216
240
  22937
217
241
  ],
218
242
  "IWorldContextConsumer": [
219
- 23064
243
+ 23073
220
244
  ],
221
245
  "WORLD_CONTEXT_CONSUMER_INTERFACE_ID": [
222
- 23046
246
+ 23051
223
247
  ]
224
248
  },
225
249
  "nodeType": "SourceUnit",
226
- "src": "32:583:37",
250
+ "src": "32:1985:37",
227
251
  "nodes": [
228
252
  {
229
- "id": 23028,
253
+ "id": 23032,
230
254
  "nodeType": "PragmaDirective",
231
255
  "src": "32:25:37",
232
256
  "nodes": [],
@@ -238,19 +262,19 @@
238
262
  ]
239
263
  },
240
264
  {
241
- "id": 23031,
265
+ "id": 23035,
242
266
  "nodeType": "ImportDirective",
243
267
  "src": "59:61:37",
244
268
  "nodes": [],
245
269
  "absolutePath": "/home/runner/work/mud/mud/packages/world/src/IERC165.sol",
246
270
  "file": "./IERC165.sol",
247
271
  "nameLocation": "-1:-1:-1",
248
- "scope": 23065,
272
+ "scope": 23074,
249
273
  "sourceUnit": 22938,
250
274
  "symbolAliases": [
251
275
  {
252
276
  "foreign": {
253
- "id": 23029,
277
+ "id": 23033,
254
278
  "name": "IERC165",
255
279
  "nodeType": "Identifier",
256
280
  "overloadedDeclarations": [],
@@ -262,7 +286,7 @@
262
286
  },
263
287
  {
264
288
  "foreign": {
265
- "id": 23030,
289
+ "id": 23034,
266
290
  "name": "ERC165_INTERFACE_ID",
267
291
  "nodeType": "Identifier",
268
292
  "overloadedDeclarations": [],
@@ -276,15 +300,15 @@
276
300
  "unitAlias": ""
277
301
  },
278
302
  {
279
- "id": 23046,
303
+ "id": 23051,
280
304
  "nodeType": "VariableDeclaration",
281
- "src": "191:206:37",
305
+ "src": "431:206:37",
282
306
  "nodes": [],
283
307
  "constant": true,
284
308
  "mutability": "constant",
285
309
  "name": "WORLD_CONTEXT_CONSUMER_INTERFACE_ID",
286
- "nameLocation": "207:35:37",
287
- "scope": 23065,
310
+ "nameLocation": "447:35:37",
311
+ "scope": 23074,
288
312
  "stateVariable": false,
289
313
  "storageLocation": "default",
290
314
  "typeDescriptions": {
@@ -292,10 +316,10 @@
292
316
  "typeString": "bytes4"
293
317
  },
294
318
  "typeName": {
295
- "id": 23032,
319
+ "id": 23037,
296
320
  "name": "bytes4",
297
321
  "nodeType": "ElementaryTypeName",
298
- "src": "191:6:37",
322
+ "src": "431:6:37",
299
323
  "typeDescriptions": {
300
324
  "typeIdentifier": "t_bytes4",
301
325
  "typeString": "bytes4"
@@ -306,7 +330,7 @@
306
330
  "typeIdentifier": "t_bytes4",
307
331
  "typeString": "bytes4"
308
332
  },
309
- "id": 23045,
333
+ "id": 23050,
310
334
  "isConstant": false,
311
335
  "isLValue": false,
312
336
  "isPure": true,
@@ -316,7 +340,7 @@
316
340
  "typeIdentifier": "t_bytes4",
317
341
  "typeString": "bytes4"
318
342
  },
319
- "id": 23043,
343
+ "id": 23048,
320
344
  "isConstant": false,
321
345
  "isLValue": false,
322
346
  "isPure": true,
@@ -326,7 +350,7 @@
326
350
  "typeIdentifier": "t_bytes4",
327
351
  "typeString": "bytes4"
328
352
  },
329
- "id": 23039,
353
+ "id": 23044,
330
354
  "isConstant": false,
331
355
  "isLValue": false,
332
356
  "isPure": true,
@@ -334,41 +358,41 @@
334
358
  "leftExpression": {
335
359
  "expression": {
336
360
  "expression": {
337
- "id": 23033,
361
+ "id": 23038,
338
362
  "name": "IWorldContextConsumer",
339
363
  "nodeType": "Identifier",
340
364
  "overloadedDeclarations": [],
341
- "referencedDeclaration": 23064,
342
- "src": "245:21:37",
365
+ "referencedDeclaration": 23073,
366
+ "src": "485:21:37",
343
367
  "typeDescriptions": {
344
- "typeIdentifier": "t_type$_t_contract$_IWorldContextConsumer_$23064_$",
368
+ "typeIdentifier": "t_type$_t_contract$_IWorldContextConsumer_$23073_$",
345
369
  "typeString": "type(contract IWorldContextConsumer)"
346
370
  }
347
371
  },
348
- "id": 23034,
372
+ "id": 23039,
349
373
  "isConstant": false,
350
374
  "isLValue": false,
351
375
  "isPure": true,
352
376
  "lValueRequested": false,
353
- "memberLocation": "267:10:37",
377
+ "memberLocation": "507:10:37",
354
378
  "memberName": "_msgSender",
355
379
  "nodeType": "MemberAccess",
356
- "referencedDeclaration": 23053,
357
- "src": "245:32:37",
380
+ "referencedDeclaration": 23060,
381
+ "src": "485:32:37",
358
382
  "typeDescriptions": {
359
383
  "typeIdentifier": "t_function_declaration_view$__$returns$_t_address_$",
360
384
  "typeString": "function IWorldContextConsumer._msgSender() view returns (address)"
361
385
  }
362
386
  },
363
- "id": 23035,
387
+ "id": 23040,
364
388
  "isConstant": false,
365
389
  "isLValue": false,
366
390
  "isPure": true,
367
391
  "lValueRequested": false,
368
- "memberLocation": "278:8:37",
392
+ "memberLocation": "518:8:37",
369
393
  "memberName": "selector",
370
394
  "nodeType": "MemberAccess",
371
- "src": "245:41:37",
395
+ "src": "485:41:37",
372
396
  "typeDescriptions": {
373
397
  "typeIdentifier": "t_bytes4",
374
398
  "typeString": "bytes4"
@@ -379,47 +403,47 @@
379
403
  "rightExpression": {
380
404
  "expression": {
381
405
  "expression": {
382
- "id": 23036,
406
+ "id": 23041,
383
407
  "name": "IWorldContextConsumer",
384
408
  "nodeType": "Identifier",
385
409
  "overloadedDeclarations": [],
386
- "referencedDeclaration": 23064,
387
- "src": "291:21:37",
410
+ "referencedDeclaration": 23073,
411
+ "src": "531:21:37",
388
412
  "typeDescriptions": {
389
- "typeIdentifier": "t_type$_t_contract$_IWorldContextConsumer_$23064_$",
413
+ "typeIdentifier": "t_type$_t_contract$_IWorldContextConsumer_$23073_$",
390
414
  "typeString": "type(contract IWorldContextConsumer)"
391
415
  }
392
416
  },
393
- "id": 23037,
417
+ "id": 23042,
394
418
  "isConstant": false,
395
419
  "isLValue": false,
396
420
  "isPure": true,
397
421
  "lValueRequested": false,
398
- "memberLocation": "313:9:37",
422
+ "memberLocation": "553:9:37",
399
423
  "memberName": "_msgValue",
400
424
  "nodeType": "MemberAccess",
401
- "referencedDeclaration": 23058,
402
- "src": "291:31:37",
425
+ "referencedDeclaration": 23066,
426
+ "src": "531:31:37",
403
427
  "typeDescriptions": {
404
428
  "typeIdentifier": "t_function_declaration_view$__$returns$_t_uint256_$",
405
429
  "typeString": "function IWorldContextConsumer._msgValue() view returns (uint256)"
406
430
  }
407
431
  },
408
- "id": 23038,
432
+ "id": 23043,
409
433
  "isConstant": false,
410
434
  "isLValue": false,
411
435
  "isPure": true,
412
436
  "lValueRequested": false,
413
- "memberLocation": "323:8:37",
437
+ "memberLocation": "563:8:37",
414
438
  "memberName": "selector",
415
439
  "nodeType": "MemberAccess",
416
- "src": "291:40:37",
440
+ "src": "531:40:37",
417
441
  "typeDescriptions": {
418
442
  "typeIdentifier": "t_bytes4",
419
443
  "typeString": "bytes4"
420
444
  }
421
445
  },
422
- "src": "245:86:37",
446
+ "src": "485:86:37",
423
447
  "typeDescriptions": {
424
448
  "typeIdentifier": "t_bytes4",
425
449
  "typeString": "bytes4"
@@ -430,47 +454,47 @@
430
454
  "rightExpression": {
431
455
  "expression": {
432
456
  "expression": {
433
- "id": 23040,
457
+ "id": 23045,
434
458
  "name": "IWorldContextConsumer",
435
459
  "nodeType": "Identifier",
436
460
  "overloadedDeclarations": [],
437
- "referencedDeclaration": 23064,
438
- "src": "336:21:37",
461
+ "referencedDeclaration": 23073,
462
+ "src": "576:21:37",
439
463
  "typeDescriptions": {
440
- "typeIdentifier": "t_type$_t_contract$_IWorldContextConsumer_$23064_$",
464
+ "typeIdentifier": "t_type$_t_contract$_IWorldContextConsumer_$23073_$",
441
465
  "typeString": "type(contract IWorldContextConsumer)"
442
466
  }
443
467
  },
444
- "id": 23041,
468
+ "id": 23046,
445
469
  "isConstant": false,
446
470
  "isLValue": false,
447
471
  "isPure": true,
448
472
  "lValueRequested": false,
449
- "memberLocation": "358:6:37",
473
+ "memberLocation": "598:6:37",
450
474
  "memberName": "_world",
451
475
  "nodeType": "MemberAccess",
452
- "referencedDeclaration": 23063,
453
- "src": "336:28:37",
476
+ "referencedDeclaration": 23072,
477
+ "src": "576:28:37",
454
478
  "typeDescriptions": {
455
479
  "typeIdentifier": "t_function_declaration_view$__$returns$_t_address_$",
456
480
  "typeString": "function IWorldContextConsumer._world() view returns (address)"
457
481
  }
458
482
  },
459
- "id": 23042,
483
+ "id": 23047,
460
484
  "isConstant": false,
461
485
  "isLValue": false,
462
486
  "isPure": true,
463
487
  "lValueRequested": false,
464
- "memberLocation": "365:8:37",
488
+ "memberLocation": "605:8:37",
465
489
  "memberName": "selector",
466
490
  "nodeType": "MemberAccess",
467
- "src": "336:37:37",
491
+ "src": "576:37:37",
468
492
  "typeDescriptions": {
469
493
  "typeIdentifier": "t_bytes4",
470
494
  "typeString": "bytes4"
471
495
  }
472
496
  },
473
- "src": "245:128:37",
497
+ "src": "485:128:37",
474
498
  "typeDescriptions": {
475
499
  "typeIdentifier": "t_bytes4",
476
500
  "typeString": "bytes4"
@@ -479,18 +503,18 @@
479
503
  "nodeType": "BinaryOperation",
480
504
  "operator": "^",
481
505
  "rightExpression": {
482
- "id": 23044,
506
+ "id": 23049,
483
507
  "name": "ERC165_INTERFACE_ID",
484
508
  "nodeType": "Identifier",
485
509
  "overloadedDeclarations": [],
486
510
  "referencedDeclaration": 22927,
487
- "src": "378:19:37",
511
+ "src": "618:19:37",
488
512
  "typeDescriptions": {
489
513
  "typeIdentifier": "t_bytes4",
490
514
  "typeString": "bytes4"
491
515
  }
492
516
  },
493
- "src": "245:152:37",
517
+ "src": "485:152:37",
494
518
  "typeDescriptions": {
495
519
  "typeIdentifier": "t_bytes4",
496
520
  "typeString": "bytes4"
@@ -499,40 +523,46 @@
499
523
  "visibility": "internal"
500
524
  },
501
525
  {
502
- "id": 23064,
526
+ "id": 23073,
503
527
  "nodeType": "ContractDefinition",
504
- "src": "400:214:37",
528
+ "src": "1114:902:37",
505
529
  "nodes": [
506
530
  {
507
- "id": 23053,
531
+ "id": 23060,
508
532
  "nodeType": "FunctionDefinition",
509
- "src": "447:54:37",
533
+ "src": "1406:54:37",
510
534
  "nodes": [],
535
+ "documentation": {
536
+ "id": 23055,
537
+ "nodeType": "StructuredDocumentation",
538
+ "src": "1161:242:37",
539
+ "text": " @notice Extract the `msg.sender` from the context appended to the calldata.\n @return The address of the `msg.sender` that called the World contract\n before the World routed the call to the WorldContextConsumer contract."
540
+ },
511
541
  "functionSelector": "119df25f",
512
542
  "implemented": false,
513
543
  "kind": "function",
514
544
  "modifiers": [],
515
545
  "name": "_msgSender",
516
- "nameLocation": "456:10:37",
546
+ "nameLocation": "1415:10:37",
517
547
  "parameters": {
518
- "id": 23049,
548
+ "id": 23056,
519
549
  "nodeType": "ParameterList",
520
550
  "parameters": [],
521
- "src": "466:2:37"
551
+ "src": "1425:2:37"
522
552
  },
523
553
  "returnParameters": {
524
- "id": 23052,
554
+ "id": 23059,
525
555
  "nodeType": "ParameterList",
526
556
  "parameters": [
527
557
  {
528
558
  "constant": false,
529
- "id": 23051,
559
+ "id": 23058,
530
560
  "mutability": "mutable",
531
561
  "name": "",
532
562
  "nameLocation": "-1:-1:-1",
533
563
  "nodeType": "VariableDeclaration",
534
- "scope": 23053,
535
- "src": "492:7:37",
564
+ "scope": 23060,
565
+ "src": "1451:7:37",
536
566
  "stateVariable": false,
537
567
  "storageLocation": "default",
538
568
  "typeDescriptions": {
@@ -540,10 +570,10 @@
540
570
  "typeString": "address"
541
571
  },
542
572
  "typeName": {
543
- "id": 23050,
573
+ "id": 23057,
544
574
  "name": "address",
545
575
  "nodeType": "ElementaryTypeName",
546
- "src": "492:7:37",
576
+ "src": "1451:7:37",
547
577
  "stateMutability": "nonpayable",
548
578
  "typeDescriptions": {
549
579
  "typeIdentifier": "t_address",
@@ -553,43 +583,49 @@
553
583
  "visibility": "internal"
554
584
  }
555
585
  ],
556
- "src": "491:9:37"
586
+ "src": "1450:9:37"
557
587
  },
558
- "scope": 23064,
588
+ "scope": 23073,
559
589
  "stateMutability": "view",
560
590
  "virtual": false,
561
591
  "visibility": "external"
562
592
  },
563
593
  {
564
- "id": 23058,
594
+ "id": 23066,
565
595
  "nodeType": "FunctionDefinition",
566
- "src": "505:53:37",
596
+ "src": "1695:53:37",
567
597
  "nodes": [],
598
+ "documentation": {
599
+ "id": 23061,
600
+ "nodeType": "StructuredDocumentation",
601
+ "src": "1464:228:37",
602
+ "text": " @notice Extract the `msg.value` from the context appended to the calldata.\n @return The `msg.value` in the call to the World contract before the World routed the\n call to the WorldContextConsumer contract."
603
+ },
568
604
  "functionSelector": "45ec9354",
569
605
  "implemented": false,
570
606
  "kind": "function",
571
607
  "modifiers": [],
572
608
  "name": "_msgValue",
573
- "nameLocation": "514:9:37",
609
+ "nameLocation": "1704:9:37",
574
610
  "parameters": {
575
- "id": 23054,
611
+ "id": 23062,
576
612
  "nodeType": "ParameterList",
577
613
  "parameters": [],
578
- "src": "523:2:37"
614
+ "src": "1713:2:37"
579
615
  },
580
616
  "returnParameters": {
581
- "id": 23057,
617
+ "id": 23065,
582
618
  "nodeType": "ParameterList",
583
619
  "parameters": [
584
620
  {
585
621
  "constant": false,
586
- "id": 23056,
622
+ "id": 23064,
587
623
  "mutability": "mutable",
588
624
  "name": "",
589
625
  "nameLocation": "-1:-1:-1",
590
626
  "nodeType": "VariableDeclaration",
591
- "scope": 23058,
592
- "src": "549:7:37",
627
+ "scope": 23066,
628
+ "src": "1739:7:37",
593
629
  "stateVariable": false,
594
630
  "storageLocation": "default",
595
631
  "typeDescriptions": {
@@ -597,10 +633,10 @@
597
633
  "typeString": "uint256"
598
634
  },
599
635
  "typeName": {
600
- "id": 23055,
636
+ "id": 23063,
601
637
  "name": "uint256",
602
638
  "nodeType": "ElementaryTypeName",
603
- "src": "549:7:37",
639
+ "src": "1739:7:37",
604
640
  "typeDescriptions": {
605
641
  "typeIdentifier": "t_uint256",
606
642
  "typeString": "uint256"
@@ -609,43 +645,49 @@
609
645
  "visibility": "internal"
610
646
  }
611
647
  ],
612
- "src": "548:9:37"
648
+ "src": "1738:9:37"
613
649
  },
614
- "scope": 23064,
650
+ "scope": 23073,
615
651
  "stateMutability": "view",
616
652
  "virtual": false,
617
653
  "visibility": "external"
618
654
  },
619
655
  {
620
- "id": 23063,
656
+ "id": 23072,
621
657
  "nodeType": "FunctionDefinition",
622
- "src": "562:50:37",
658
+ "src": "1964:50:37",
623
659
  "nodes": [],
660
+ "documentation": {
661
+ "id": 23067,
662
+ "nodeType": "StructuredDocumentation",
663
+ "src": "1752:209:37",
664
+ "text": " @notice Get the address of the World contract that routed the call to this WorldContextConsumer.\n @return The address of the World contract that routed the call to this WorldContextConsumer."
665
+ },
624
666
  "functionSelector": "e1af802c",
625
667
  "implemented": false,
626
668
  "kind": "function",
627
669
  "modifiers": [],
628
670
  "name": "_world",
629
- "nameLocation": "571:6:37",
671
+ "nameLocation": "1973:6:37",
630
672
  "parameters": {
631
- "id": 23059,
673
+ "id": 23068,
632
674
  "nodeType": "ParameterList",
633
675
  "parameters": [],
634
- "src": "577:2:37"
676
+ "src": "1979:2:37"
635
677
  },
636
678
  "returnParameters": {
637
- "id": 23062,
679
+ "id": 23071,
638
680
  "nodeType": "ParameterList",
639
681
  "parameters": [
640
682
  {
641
683
  "constant": false,
642
- "id": 23061,
684
+ "id": 23070,
643
685
  "mutability": "mutable",
644
686
  "name": "",
645
687
  "nameLocation": "-1:-1:-1",
646
688
  "nodeType": "VariableDeclaration",
647
- "scope": 23063,
648
- "src": "603:7:37",
689
+ "scope": 23072,
690
+ "src": "2005:7:37",
649
691
  "stateVariable": false,
650
692
  "storageLocation": "default",
651
693
  "typeDescriptions": {
@@ -653,10 +695,10 @@
653
695
  "typeString": "address"
654
696
  },
655
697
  "typeName": {
656
- "id": 23060,
698
+ "id": 23069,
657
699
  "name": "address",
658
700
  "nodeType": "ElementaryTypeName",
659
- "src": "603:7:37",
701
+ "src": "2005:7:37",
660
702
  "stateMutability": "nonpayable",
661
703
  "typeDescriptions": {
662
704
  "typeIdentifier": "t_address",
@@ -666,9 +708,9 @@
666
708
  "visibility": "internal"
667
709
  }
668
710
  ],
669
- "src": "602:9:37"
711
+ "src": "2004:9:37"
670
712
  },
671
- "scope": 23064,
713
+ "scope": 23073,
672
714
  "stateMutability": "view",
673
715
  "virtual": false,
674
716
  "visibility": "external"
@@ -678,31 +720,37 @@
678
720
  "baseContracts": [
679
721
  {
680
722
  "baseName": {
681
- "id": 23047,
723
+ "id": 23053,
682
724
  "name": "IERC165",
683
725
  "nameLocations": [
684
- "435:7:37"
726
+ "1149:7:37"
685
727
  ],
686
728
  "nodeType": "IdentifierPath",
687
729
  "referencedDeclaration": 22937,
688
- "src": "435:7:37"
730
+ "src": "1149:7:37"
689
731
  },
690
- "id": 23048,
732
+ "id": 23054,
691
733
  "nodeType": "InheritanceSpecifier",
692
- "src": "435:7:37"
734
+ "src": "1149:7:37"
693
735
  }
694
736
  ],
695
737
  "canonicalName": "IWorldContextConsumer",
696
738
  "contractDependencies": [],
697
739
  "contractKind": "interface",
740
+ "documentation": {
741
+ "id": 23052,
742
+ "nodeType": "StructuredDocumentation",
743
+ "src": "640:473:37",
744
+ "text": " @title WorldContextConsumer - Extracting trusted context values from appended calldata.\n @notice This contract is designed to extract trusted context values (like msg.sender and msg.value)\n from the appended calldata. It provides mechanisms similar to EIP-2771 (https://eips.ethereum.org/EIPS/eip-2771),\n but allowing any contract to be the trusted forwarder.\n @dev This contract should only be used for contracts without their own storage, like Systems."
745
+ },
698
746
  "fullyImplemented": false,
699
747
  "linearizedBaseContracts": [
700
- 23064,
748
+ 23073,
701
749
  22937
702
750
  ],
703
751
  "name": "IWorldContextConsumer",
704
- "nameLocation": "410:21:37",
705
- "scope": 23065,
752
+ "nameLocation": "1124:21:37",
753
+ "scope": 23074,
706
754
  "usedErrors": [],
707
755
  "usedEvents": []
708
756
  }