@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\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"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\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@latticexyz/world/src/WorldContext.sol\":\"WorldContextConsumer\"},\"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\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xb36724e0369ad053579ec04b9b51707dd8dcc4a72b38404cebdf018ce40bf202\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8745e1632b7ee94f128600837a36ae53fabaf73c506b0c6d1cae70ea2e9b086\",\"dweb:/ipfs/QmXuMqmybWjEPqWEx91DTM7KAUyxAmDcsj7riBfCfA427N\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0xadb7ac513012e59b66ca70b786eec1465f6b44ae268765de6d8ae1f1a9531192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa59a7d190154d7eba8fa6b5f0c6e5477f434a217f0e353c3b158a3c25895057\",\"dweb:/ipfs/QmeWTCwGJwZjjYYKdaSSWa1rzc4Uo4YXMUDotTQfdSCtRD\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd54d6067a7a8683c446c5c88c1a4b0019caca1cddcde8583f83a8f13f172a923\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f85e55447a4fdad532dd84e1ba7c169603848d210fc461b32dc57fd7b6b72410\",\"dweb:/ipfs/Qmejcoi7J3Ad5RZdndJsDQqRfmKs6FKW9aksALFvkxmm41\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x1a113ae394de69ca1db7e9acb1886eaee3967dcfed46fc78497e77bc26dd778f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://091e04dc9e8d5b3a492d1d39a6d06fd5b4bad3c282bd4c06a38d92bec3422513\",\"dweb:/ipfs/QmbfMi1bH9RAs4JMDxKmhVqpAoyoVgN9nd7o11SakJC1zQ\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0x2a7392d937f372fbcd0ee9333a5af33e2630587b6e6dd714b1cebf75d8cdfc15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dca5e58374dc496bbc33fbe7b0c3774d3767662b23630a515a59b13d69fe66c\",\"dweb:/ipfs/QmU15fFKVtmYgGivVG3wJfCnRKjsJY2jdEjp75FFCqUN7t\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xa6d353df9033207ea4b6b13cb13535d6d9abd6963e7c27749c5ca2a9bf5f8cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2827bf5d86d2011cde150e8a4c6b39d187398831870407ca8aa065257f04954a\",\"dweb:/ipfs/QmanvEbRTpN5u2YYnk8hTupoWugFAKL7xbj6cHUaZQ83WG\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x237a6871db470dda42feb50f4f237c066daf599cda28e48458d533d639f2b3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca670b27fc6cc824223b6e99d307632baf9ee66a7d58cfbdcfca57e2d5eb1488\",\"dweb:/ipfs/QmVQx23VfsyYRvyRy5ZQEeUvNyfuK75DZ8EF4uKCGEQ4sr\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xa1872adf18790f030ebe59cdc938a4639a1753fe487aeebe14d952d6e032ab31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a15f9046013ab5628b7d934e2c740cf84ae39cb57de136c284090bf106c31b6\",\"dweb:/ipfs/QmZPrpunYTfgi5gDtqAq12GkdQDmrAGaUG7sVr2jVWe1Ye\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x1efd826172c7004d5771c2abe6e27a36a7fb05273e81f05f2ec36a3dcfb9af2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d024122b3f9d7f050fabd646a7151ab92dd90c0907b9025aa97656965b28e04\",\"dweb:/ipfs/QmYNyvdSDoMa6FaRzTV2JLcUZVSygnyS3HbRCdNZJ8PV7A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x4a61aefe72d6035b1e9aca7841aab44ebd26f8706bdbb447f382046fa94753b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f715743739e4f8f8a98d78397025a92299ecb3b5dde88cc53bc1ab72bf531fa6\",\"dweb:/ipfs/QmVsYAupGWZUemE4t6xjLqztGHadQ8cyo9E4mT5ZDKUmTs\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x07c1468d1776e76c451d7ce1e94509bd02f664f89e6fc98d82925cf06ecce31d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97bababaebe4bd8402fbff2db3395506f5277b8dcc53b88ceb636350f5438e3d\",\"dweb:/ipfs/QmP4dWkucmpgYztjv8HsXy21JqQYYn42nztzDAcSVuHSv1\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0x3c06a067ca8de1ea75b986837ef97d5fdce0637ca43d1ef0cf5e63c01f4b9161\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f48e754ba5033db9ae64a04d191bd66cccc432dc30931a7d1327bd7b2b76fd37\",\"dweb:/ipfs/QmQsoEbcy4SMLTjwi5Eonge3mpWpoVieaxif8W4TqafoEz\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0xba14c2766fb6c547448fa84f5e32664050684898ec6436537735dd294913ef7f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://834d14bb66e13974b281bb909c56ed93eb0b20362a6131fa3fc3466004667694\",\"dweb:/ipfs/Qmbo4xUPGEkziMS1MzSD279ZG2Ah7YYRebcmFLYYjveFiR\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0xa1f69881bc1e225e4edccbf50a055b9e1933acf1951448bfc43cd5af08ae593f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db08db3902fcc2cf1034a45d4a482204a2a676398bdded6419c6c55954db4954\",\"dweb:/ipfs/QmSRcCucWgpnhztKpCnYR6ZhTXHMoPY59aBgKaPrsBQHsF\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x56e2fc6b04c1d64a068b3a8e6e8900bea1b51b824a9bfb7f2fdb294015b99147\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b336a38da42d3aad9be5edecfa68e6c1ab18348f853ab4147a92f69527e107e2\",\"dweb:/ipfs/QmVeFQ5skNx4VJbJPt1zTE6JHH9FCQ39UorZj2NGSX3fEq\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0x2e138ee1e68db71495ee97f9df9e508d2c83d75cacab25db647f3ed7b43b22a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9029b6380c6a62e2b647bdafeede3deff7737d1049de52248d79151c7a786c9\",\"dweb:/ipfs/QmdqJdN3V2LqUrK2kWF9fDvAHFPLNspCsPD73ECFPudZAb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xdb1003aeef88489dbf32e8a10a581949c245aab7136f6a8786130ba448c628a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77265a1beb7dbd951ea342e63a7aac9572203df4ee3231b5337a90c847b7232e\",\"dweb:/ipfs/QmcX937Nv56V576CnnTc8ASH1BgsK6DsmQK93npmAdVAC5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x1d4be2832c255456d50862c8da907d8d10ce1f1245548165297172b9d323dbc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6908b829a035d07d33a1c219a7f98d3d5b88b8d7f19806cb7967fc05791a791\",\"dweb:/ipfs/QmWbx4snYp92MhQse6TvXUgLoaPhJJGzjzYHxMNPh1Vgd4\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x7ab92a0033d9a7a332464d50173d9a4343ed53c26152218f2125ad0517563d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db2be1de5a22c4a85565c28231e421934fbbf1fbfa195110323b4a4171c34b8c\",\"dweb:/ipfs/Qmcosfb89Mbosar4McEsZp9oaTgwisKNJwSPvRazpSpii3\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x3826d50fae1df0e69313e5f52c235e860a8c9ff2623a5e0ae3fd0438cfa557fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91806d1fe0ffa80ca861bd8eb7251911e523d0bbf72858300f0119ef12ae2961\",\"dweb:/ipfs/QmbPcr8eu32qhBwYfYem9nZ549BNc7Zjyc4VkYjFnM8nyQ\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0x9f5aaf307403002b45a2e4c2f999a21b90df70c7b796cfd66cc3d5431be894be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a2ae01c25a86aa4c7652c4a88099888d6445e871a9656790dc251eec6cdb97c\",\"dweb:/ipfs/QmVoUETvXqSUK6GfX9z67G2xQh7soGZLAwyUsKKpfPXEk6\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x574ec08fd11b930f375324026cbd2bad770a2fc5dfddfded9a694238a2eb6246\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb9de43e66c6ea6b9221236695a1b2e9c54f2b5bb5aa083b678b0d673563ccc\",\"dweb:/ipfs/QmYE25Ek4XdL2DKcwru1whS4kKTjr16JU1MhysCm2Vffob\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xb2c27c7b8f974f1e3c70dd82c92f35f5bbd2887e16afe454e6dbc38300a51feb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6cbdbcc95835f67030eebdebeaf0bfd6faa612381179e7f7be8b9d3c00b20878\",\"dweb:/ipfs/QmNeZU5MmRQqhcLxN6BA2BQvgEst8yg67F4VQoPJEEK6kg\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0xd64eae381daba3788cce62cc209a4ae05817bda80a63fc356b1e1c5bd81e7024\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://922453b0896758bdbd8dfb68137c1893f9ee7099c0e4d591578a9a1b26f9f6ef\",\"dweb:/ipfs/QmQVGnVvkRcQSphaRZW4GMTbr8rLKuGiJ6JKGh9ZDfsEzx\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0xbb895ba4c1470c5c16c65634f056865010b4a717983f82a289572fd804c87535\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a2bffa72d437ddcfde157cc918cc181ae668e949d4136e6e92f2520a875a898\",\"dweb:/ipfs/QmaAwtXNUv3TKAxkhvGqhWBZPtm57J8Qqi3XVsW6DWZfAo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5c66d7d7498df3e9ded0512506f2aa1a77077e18569975706049f53c2d009f20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://74783a2ec9c5733261c3b8747c30e91173d0be47bfc75656879235624f57ee2c\",\"dweb:/ipfs/QmaRkUAtpyinafhQ2u6WGXy9N9HTVuAwJUTEbr4sxFSg3g\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0xe973573981d86701f2749aeb81dd5e2b27b9b898f4467b779df9a0ce1a7d4d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20154e4d5f7ff8ec38f2056a8b62ef3e11380335266759b3e1547c2642007168\",\"dweb:/ipfs/QmUND96YPeQQ6n9jwztPyeK5FyNqg3NVMnWkUGXaA81quL\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x0c0f9eba3a700d97a3b87678bbf12d4bbd8a80490e9b3a5841d049ebc1a89f93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a56466e8ddcaf10b9109bfbc581563f5e9eefcaff1963a6954ccd093859ef6d2\",\"dweb:/ipfs/QmNk6FvWzmLT3vnsUuzqr9MYMfaQRa7yLuNM7DVvpkuytf\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x7b808edfeb5f548e06899db7e3fdfafa7b42fccf2f596a04b24a8193618a511b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acca2b5f96ef412f32da9359667c82fe1a854acc0663165864434620214b8078\",\"dweb:/ipfs/QmeaoYxRToMbMSDfDZZC1fumKjs9WUu6ZkxSLwJKx4FfC8\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xb4239b7d84f764babc15a46eab53ea45dae0ce5c3738f9c283d7ab2f6e8fddea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d495ceadc4e5506a4cec20329f5862f53cf7886cb3d8533bc5071c26ea2d2522\",\"dweb:/ipfs/QmaNDdqDGnZkc3stbjUKAKHa29Hzu4JJPVvcogDMe7r8sM\"]}},\"version\":1}",
78
+ "rawMetadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_msgValue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"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\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract should only be used for contracts without their own storage, like Systems.\",\"kind\":\"dev\",\"methods\":{\"_msgSender()\":{\"returns\":{\"sender\":\"The address of the trusted sender.\"}},\"_msgValue()\":{\"returns\":{\"value\":\"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)\":{\"params\":{\"interfaceId\":\"The ID of the interface in question.\"},\"returns\":{\"_0\":\"True if the interface is supported, false otherwise.\"}}},\"title\":\"WorldContextConsumer - Extracting trusted context values from appended calldata.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"_msgSender()\":{\"notice\":\"Extracts the trusted msg.sender value from the appended 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\":\"Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\"}},\"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\":{\"node_modules/@latticexyz/world/src/WorldContext.sol\":\"WorldContextConsumer\"},\"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\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x770eff7a38b9b7b1613dc11ca09db4f28b42a117c9b39b2a06a650a58a250bdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f544110658a53def52c2a4e33b8b158b95a4f14fccea58d5268b6e728d86d4\",\"dweb:/ipfs/QmTesj6tjSFbfAiKUitXapdNYWPStS8bLkB3r22qfyHwUC\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0xb36724e0369ad053579ec04b9b51707dd8dcc4a72b38404cebdf018ce40bf202\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8745e1632b7ee94f128600837a36ae53fabaf73c506b0c6d1cae70ea2e9b086\",\"dweb:/ipfs/QmXuMqmybWjEPqWEx91DTM7KAUyxAmDcsj7riBfCfA427N\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0xadb7ac513012e59b66ca70b786eec1465f6b44ae268765de6d8ae1f1a9531192\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa59a7d190154d7eba8fa6b5f0c6e5477f434a217f0e353c3b158a3c25895057\",\"dweb:/ipfs/QmeWTCwGJwZjjYYKdaSSWa1rzc4Uo4YXMUDotTQfdSCtRD\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd54d6067a7a8683c446c5c88c1a4b0019caca1cddcde8583f83a8f13f172a923\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f85e55447a4fdad532dd84e1ba7c169603848d210fc461b32dc57fd7b6b72410\",\"dweb:/ipfs/Qmejcoi7J3Ad5RZdndJsDQqRfmKs6FKW9aksALFvkxmm41\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x1a113ae394de69ca1db7e9acb1886eaee3967dcfed46fc78497e77bc26dd778f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://091e04dc9e8d5b3a492d1d39a6d06fd5b4bad3c282bd4c06a38d92bec3422513\",\"dweb:/ipfs/QmbfMi1bH9RAs4JMDxKmhVqpAoyoVgN9nd7o11SakJC1zQ\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x9092b65551d0f910e5645cebb5acadb387cdd192d75fa89cd6b293bd65b28827\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://478825a6f7eff9ddab968e71e1d55ebee279d3b318f10976d9334384000059c0\",\"dweb:/ipfs/Qme7NY976woRy3RQjE4tkkiwoXnoVtTmER3PbWCSbjZ2kb\"]},\"node_modules/@latticexyz/store/src/IStoreData.sol\":{\"keccak256\":\"0x2a7392d937f372fbcd0ee9333a5af33e2630587b6e6dd714b1cebf75d8cdfc15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6dca5e58374dc496bbc33fbe7b0c3774d3767662b23630a515a59b13d69fe66c\",\"dweb:/ipfs/QmU15fFKVtmYgGivVG3wJfCnRKjsJY2jdEjp75FFCqUN7t\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0xb9070663ded3cad82285bb7610949e422f88abb48c2ddbd792af83d127d64212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://830490f1c888bec86df1e7ef43773d60ebdbdfdb2b91ab7fe074e2f38d7439dc\",\"dweb:/ipfs/QmS26fpXdZuGgMmjcdQDf9k1Bedn2dhjk9byFZJoNkctPZ\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0xa6d353df9033207ea4b6b13cb13535d6d9abd6963e7c27749c5ca2a9bf5f8cef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2827bf5d86d2011cde150e8a4c6b39d187398831870407ca8aa065257f04954a\",\"dweb:/ipfs/QmanvEbRTpN5u2YYnk8hTupoWugFAKL7xbj6cHUaZQ83WG\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x237a6871db470dda42feb50f4f237c066daf599cda28e48458d533d639f2b3d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca670b27fc6cc824223b6e99d307632baf9ee66a7d58cfbdcfca57e2d5eb1488\",\"dweb:/ipfs/QmVQx23VfsyYRvyRy5ZQEeUvNyfuK75DZ8EF4uKCGEQ4sr\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xd2180d53ecd31069b1166f170ecdcd85917ac50f45fc26fb39b49cee7ba00e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1494bb0a3228e2d194bddaed4761fd3ca865979f0e3f3a53acd271143a4aa0ac\",\"dweb:/ipfs/Qmaddnzzmu99iP9dTWK9ZeByh5dZyjY9SpVnRdvyr2fBAo\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0xf448fbb2bc9c982721a43234463656da5a49cea08543e62148d54f11e1ac3e2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64b3579d9b9dcd73dca2beab3d4fcf60237420945ebbb2e9f4ffcc88f4110115\",\"dweb:/ipfs/QmaW5nN3zGEriSYHncye6Nz2TkAw1oo1CyG2JuJTJrJoXg\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x8b6c7af5ee330928aebb58c8872d3944304ee10ed11f8a325b6accc4ec5df81b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b866d158701c7a40834bed735194b804ef219f2bbe574e2307785fff7bcf9da1\",\"dweb:/ipfs/QmXzJfZkXVfyr2RFGwDuazeVnV3UWYmQxjKZ3KzFbbe75U\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xa1872adf18790f030ebe59cdc938a4639a1753fe487aeebe14d952d6e032ab31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a15f9046013ab5628b7d934e2c740cf84ae39cb57de136c284090bf106c31b6\",\"dweb:/ipfs/QmZPrpunYTfgi5gDtqAq12GkdQDmrAGaUG7sVr2jVWe1Ye\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x1efd826172c7004d5771c2abe6e27a36a7fb05273e81f05f2ec36a3dcfb9af2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d024122b3f9d7f050fabd646a7151ab92dd90c0907b9025aa97656965b28e04\",\"dweb:/ipfs/QmYNyvdSDoMa6FaRzTV2JLcUZVSygnyS3HbRCdNZJ8PV7A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x4a61aefe72d6035b1e9aca7841aab44ebd26f8706bdbb447f382046fa94753b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f715743739e4f8f8a98d78397025a92299ecb3b5dde88cc53bc1ab72bf531fa6\",\"dweb:/ipfs/QmVsYAupGWZUemE4t6xjLqztGHadQ8cyo9E4mT5ZDKUmTs\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x07c1468d1776e76c451d7ce1e94509bd02f664f89e6fc98d82925cf06ecce31d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97bababaebe4bd8402fbff2db3395506f5277b8dcc53b88ceb636350f5438e3d\",\"dweb:/ipfs/QmP4dWkucmpgYztjv8HsXy21JqQYYn42nztzDAcSVuHSv1\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0x3c06a067ca8de1ea75b986837ef97d5fdce0637ca43d1ef0cf5e63c01f4b9161\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f48e754ba5033db9ae64a04d191bd66cccc432dc30931a7d1327bd7b2b76fd37\",\"dweb:/ipfs/QmQsoEbcy4SMLTjwi5Eonge3mpWpoVieaxif8W4TqafoEz\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0xba14c2766fb6c547448fa84f5e32664050684898ec6436537735dd294913ef7f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://834d14bb66e13974b281bb909c56ed93eb0b20362a6131fa3fc3466004667694\",\"dweb:/ipfs/Qmbo4xUPGEkziMS1MzSD279ZG2Ah7YYRebcmFLYYjveFiR\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0xa1f69881bc1e225e4edccbf50a055b9e1933acf1951448bfc43cd5af08ae593f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db08db3902fcc2cf1034a45d4a482204a2a676398bdded6419c6c55954db4954\",\"dweb:/ipfs/QmSRcCucWgpnhztKpCnYR6ZhTXHMoPY59aBgKaPrsBQHsF\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x56e2fc6b04c1d64a068b3a8e6e8900bea1b51b824a9bfb7f2fdb294015b99147\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b336a38da42d3aad9be5edecfa68e6c1ab18348f853ab4147a92f69527e107e2\",\"dweb:/ipfs/QmVeFQ5skNx4VJbJPt1zTE6JHH9FCQ39UorZj2NGSX3fEq\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0xf337a5abb2d43ef00c1c200e7fbec30fc89c7c701e457ab4277194b700d2aea3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eccdf6158076b4e8f1b587a0310228f53323705e054a44eaa7733f38805c3ee6\",\"dweb:/ipfs/QmbXEVNTctg54dK9awdCVyAjeuUjR6ckfmmXBP8DrFmjyq\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0x2e138ee1e68db71495ee97f9df9e508d2c83d75cacab25db647f3ed7b43b22a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9029b6380c6a62e2b647bdafeede3deff7737d1049de52248d79151c7a786c9\",\"dweb:/ipfs/QmdqJdN3V2LqUrK2kWF9fDvAHFPLNspCsPD73ECFPudZAb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xdb1003aeef88489dbf32e8a10a581949c245aab7136f6a8786130ba448c628a1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77265a1beb7dbd951ea342e63a7aac9572203df4ee3231b5337a90c847b7232e\",\"dweb:/ipfs/QmcX937Nv56V576CnnTc8ASH1BgsK6DsmQK93npmAdVAC5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0x1d4be2832c255456d50862c8da907d8d10ce1f1245548165297172b9d323dbc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6908b829a035d07d33a1c219a7f98d3d5b88b8d7f19806cb7967fc05791a791\",\"dweb:/ipfs/QmWbx4snYp92MhQse6TvXUgLoaPhJJGzjzYHxMNPh1Vgd4\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x7ab92a0033d9a7a332464d50173d9a4343ed53c26152218f2125ad0517563d68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db2be1de5a22c4a85565c28231e421934fbbf1fbfa195110323b4a4171c34b8c\",\"dweb:/ipfs/Qmcosfb89Mbosar4McEsZp9oaTgwisKNJwSPvRazpSpii3\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x3826d50fae1df0e69313e5f52c235e860a8c9ff2623a5e0ae3fd0438cfa557fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91806d1fe0ffa80ca861bd8eb7251911e523d0bbf72858300f0119ef12ae2961\",\"dweb:/ipfs/QmbPcr8eu32qhBwYfYem9nZ549BNc7Zjyc4VkYjFnM8nyQ\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0x9f5aaf307403002b45a2e4c2f999a21b90df70c7b796cfd66cc3d5431be894be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a2ae01c25a86aa4c7652c4a88099888d6445e871a9656790dc251eec6cdb97c\",\"dweb:/ipfs/QmVoUETvXqSUK6GfX9z67G2xQh7soGZLAwyUsKKpfPXEk6\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x574ec08fd11b930f375324026cbd2bad770a2fc5dfddfded9a694238a2eb6246\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4eb9de43e66c6ea6b9221236695a1b2e9c54f2b5bb5aa083b678b0d673563ccc\",\"dweb:/ipfs/QmYE25Ek4XdL2DKcwru1whS4kKTjr16JU1MhysCm2Vffob\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xb2c27c7b8f974f1e3c70dd82c92f35f5bbd2887e16afe454e6dbc38300a51feb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6cbdbcc95835f67030eebdebeaf0bfd6faa612381179e7f7be8b9d3c00b20878\",\"dweb:/ipfs/QmNeZU5MmRQqhcLxN6BA2BQvgEst8yg67F4VQoPJEEK6kg\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0xd64eae381daba3788cce62cc209a4ae05817bda80a63fc356b1e1c5bd81e7024\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://922453b0896758bdbd8dfb68137c1893f9ee7099c0e4d591578a9a1b26f9f6ef\",\"dweb:/ipfs/QmQVGnVvkRcQSphaRZW4GMTbr8rLKuGiJ6JKGh9ZDfsEzx\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0xbb895ba4c1470c5c16c65634f056865010b4a717983f82a289572fd804c87535\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a2bffa72d437ddcfde157cc918cc181ae668e949d4136e6e92f2520a875a898\",\"dweb:/ipfs/QmaAwtXNUv3TKAxkhvGqhWBZPtm57J8Qqi3XVsW6DWZfAo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5c66d7d7498df3e9ded0512506f2aa1a77077e18569975706049f53c2d009f20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://74783a2ec9c5733261c3b8747c30e91173d0be47bfc75656879235624f57ee2c\",\"dweb:/ipfs/QmaRkUAtpyinafhQ2u6WGXy9N9HTVuAwJUTEbr4sxFSg3g\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0xe973573981d86701f2749aeb81dd5e2b27b9b898f4467b779df9a0ce1a7d4d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20154e4d5f7ff8ec38f2056a8b62ef3e11380335266759b3e1547c2642007168\",\"dweb:/ipfs/QmUND96YPeQQ6n9jwztPyeK5FyNqg3NVMnWkUGXaA81quL\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x45792667fe063195103e9fd74e3e9e0b0b4aea4fc4a0a8a3e69538c14751217b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cba8976da1e2f7e336045e8d65eba89d18ae49e4688de61ff61a95fb817fe9fc\",\"dweb:/ipfs/QmWoByJM6DmheS2jisxSvAzrqC6XWrgaKxoNNUr44aXJtE\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xb4239b7d84f764babc15a46eab53ea45dae0ce5c3738f9c283d7ab2f6e8fddea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d495ceadc4e5506a4cec20329f5862f53cf7886cb3d8533bc5071c26ea2d2522\",\"dweb:/ipfs/QmaNDdqDGnZkc3stbjUKAKHa29Hzu4JJPVvcogDMe7r8sM\"]}},\"version\":1}",
79
79
  "metadata": {
80
80
  "compiler": {
81
81
  "version": "0.8.21+commit.d9974bed"
@@ -144,12 +144,49 @@
144
144
  ],
145
145
  "devdoc": {
146
146
  "kind": "dev",
147
- "methods": {},
147
+ "methods": {
148
+ "_msgSender()": {
149
+ "returns": {
150
+ "sender": "The address of the trusted sender."
151
+ }
152
+ },
153
+ "_msgValue()": {
154
+ "returns": {
155
+ "value": "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
+ },
163
+ "supportsInterface(bytes4)": {
164
+ "params": {
165
+ "interfaceId": "The ID of the interface in question."
166
+ },
167
+ "returns": {
168
+ "_0": "True if the interface is supported, false otherwise."
169
+ }
170
+ }
171
+ },
148
172
  "version": 1
149
173
  },
150
174
  "userdoc": {
151
175
  "kind": "user",
152
- "methods": {},
176
+ "methods": {
177
+ "_msgSender()": {
178
+ "notice": "Extracts the trusted msg.sender value from the appended calldata."
179
+ },
180
+ "_msgValue()": {
181
+ "notice": "Extract the `msg.value` from the context appended to the calldata."
182
+ },
183
+ "_world()": {
184
+ "notice": "Get the address of the World contract that routed the call to this WorldContextConsumer."
185
+ },
186
+ "supportsInterface(bytes4)": {
187
+ "notice": "Checks if an interface is supported by the contract. using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)"
188
+ }
189
+ },
153
190
  "version": 1
154
191
  }
155
192
  },
@@ -453,18 +490,18 @@
453
490
  "license": "MIT"
454
491
  },
455
492
  "node_modules/@latticexyz/world/src/IWorldContextConsumer.sol": {
456
- "keccak256": "0x0c0f9eba3a700d97a3b87678bbf12d4bbd8a80490e9b3a5841d049ebc1a89f93",
493
+ "keccak256": "0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500",
457
494
  "urls": [
458
- "bzz-raw://a56466e8ddcaf10b9109bfbc581563f5e9eefcaff1963a6954ccd093859ef6d2",
459
- "dweb:/ipfs/QmNk6FvWzmLT3vnsUuzqr9MYMfaQRa7yLuNM7DVvpkuytf"
495
+ "bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d",
496
+ "dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu"
460
497
  ],
461
498
  "license": "MIT"
462
499
  },
463
500
  "node_modules/@latticexyz/world/src/WorldContext.sol": {
464
- "keccak256": "0x7b808edfeb5f548e06899db7e3fdfafa7b42fccf2f596a04b24a8193618a511b",
501
+ "keccak256": "0x45792667fe063195103e9fd74e3e9e0b0b4aea4fc4a0a8a3e69538c14751217b",
465
502
  "urls": [
466
- "bzz-raw://acca2b5f96ef412f32da9359667c82fe1a854acc0663165864434620214b8078",
467
- "dweb:/ipfs/QmeaoYxRToMbMSDfDZZC1fumKjs9WUu6ZkxSLwJKx4FfC8"
503
+ "bzz-raw://cba8976da1e2f7e336045e8d65eba89d18ae49e4688de61ff61a95fb817fe9fc",
504
+ "dweb:/ipfs/QmWoByJM6DmheS2jisxSvAzrqC6XWrgaKxoNNUr44aXJtE"
468
505
  ],
469
506
  "license": "MIT"
470
507
  },
@@ -481,38 +518,38 @@
481
518
  },
482
519
  "ast": {
483
520
  "absolutePath": "node_modules/@latticexyz/world/src/WorldContext.sol",
484
- "id": 38833,
521
+ "id": 38887,
485
522
  "exportedSymbols": {
486
523
  "CONTEXT_BYTES": [
487
- 38628
524
+ 38672
488
525
  ],
489
526
  "ERC165_INTERFACE_ID": [
490
- 60735
527
+ 60792
491
528
  ],
492
529
  "IWorldContextConsumer": [
493
- 60783
530
+ 60845
494
531
  ],
495
532
  "StoreSwitch": [
496
- 30830
533
+ 30870
497
534
  ],
498
535
  "WORLD_CONTEXT_CONSUMER_INTERFACE_ID": [
499
- 60765
536
+ 60823
500
537
  ],
501
538
  "WorldContextConsumer": [
502
- 38683
539
+ 38732
503
540
  ],
504
541
  "WorldContextProvider": [
505
- 38832
542
+ 38886
506
543
  ],
507
544
  "revertWithBytes": [
508
- 39224
545
+ 39280
509
546
  ]
510
547
  },
511
548
  "nodeType": "SourceUnit",
512
- "src": "32:3619:97",
549
+ "src": "32:6995:97",
513
550
  "nodes": [
514
551
  {
515
- "id": 38614,
552
+ "id": 38658,
516
553
  "nodeType": "PragmaDirective",
517
554
  "src": "32:25:97",
518
555
  "nodes": [],
@@ -524,23 +561,23 @@
524
561
  ]
525
562
  },
526
563
  {
527
- "id": 38616,
564
+ "id": 38660,
528
565
  "nodeType": "ImportDirective",
529
566
  "src": "59:68:97",
530
567
  "nodes": [],
531
568
  "absolutePath": "node_modules/@latticexyz/store/src/StoreSwitch.sol",
532
569
  "file": "@latticexyz/store/src/StoreSwitch.sol",
533
570
  "nameLocation": "-1:-1:-1",
534
- "scope": 38833,
535
- "sourceUnit": 30831,
571
+ "scope": 38887,
572
+ "sourceUnit": 30871,
536
573
  "symbolAliases": [
537
574
  {
538
575
  "foreign": {
539
- "id": 38615,
576
+ "id": 38659,
540
577
  "name": "StoreSwitch",
541
578
  "nodeType": "Identifier",
542
579
  "overloadedDeclarations": [],
543
- "referencedDeclaration": 30830,
580
+ "referencedDeclaration": 30870,
544
581
  "src": "68:11:97",
545
582
  "typeDescriptions": {}
546
583
  },
@@ -550,23 +587,23 @@
550
587
  "unitAlias": ""
551
588
  },
552
589
  {
553
- "id": 38618,
590
+ "id": 38662,
554
591
  "nodeType": "ImportDirective",
555
592
  "src": "128:56:97",
556
593
  "nodes": [],
557
594
  "absolutePath": "node_modules/@latticexyz/world/src/revertWithBytes.sol",
558
595
  "file": "./revertWithBytes.sol",
559
596
  "nameLocation": "-1:-1:-1",
560
- "scope": 38833,
561
- "sourceUnit": 39225,
597
+ "scope": 38887,
598
+ "sourceUnit": 39281,
562
599
  "symbolAliases": [
563
600
  {
564
601
  "foreign": {
565
- "id": 38617,
602
+ "id": 38661,
566
603
  "name": "revertWithBytes",
567
604
  "nodeType": "Identifier",
568
605
  "overloadedDeclarations": [],
569
- "referencedDeclaration": 39224,
606
+ "referencedDeclaration": 39280,
570
607
  "src": "137:15:97",
571
608
  "typeDescriptions": {}
572
609
  },
@@ -576,23 +613,23 @@
576
613
  "unitAlias": ""
577
614
  },
578
615
  {
579
- "id": 38620,
616
+ "id": 38664,
580
617
  "nodeType": "ImportDirective",
581
618
  "src": "185:52:97",
582
619
  "nodes": [],
583
620
  "absolutePath": "node_modules/@latticexyz/world/src/IERC165.sol",
584
621
  "file": "./IERC165.sol",
585
622
  "nameLocation": "-1:-1:-1",
586
- "scope": 38833,
587
- "sourceUnit": 60746,
623
+ "scope": 38887,
624
+ "sourceUnit": 60803,
588
625
  "symbolAliases": [
589
626
  {
590
627
  "foreign": {
591
- "id": 38619,
628
+ "id": 38663,
592
629
  "name": "ERC165_INTERFACE_ID",
593
630
  "nodeType": "Identifier",
594
631
  "overloadedDeclarations": [],
595
- "referencedDeclaration": 60735,
632
+ "referencedDeclaration": 60792,
596
633
  "src": "194:19:97",
597
634
  "typeDescriptions": {}
598
635
  },
@@ -602,23 +639,23 @@
602
639
  "unitAlias": ""
603
640
  },
604
641
  {
605
- "id": 38623,
642
+ "id": 38667,
606
643
  "nodeType": "ImportDirective",
607
644
  "src": "238:105:97",
608
645
  "nodes": [],
609
646
  "absolutePath": "node_modules/@latticexyz/world/src/IWorldContextConsumer.sol",
610
647
  "file": "./IWorldContextConsumer.sol",
611
648
  "nameLocation": "-1:-1:-1",
612
- "scope": 38833,
613
- "sourceUnit": 60784,
649
+ "scope": 38887,
650
+ "sourceUnit": 60846,
614
651
  "symbolAliases": [
615
652
  {
616
653
  "foreign": {
617
- "id": 38621,
654
+ "id": 38665,
618
655
  "name": "IWorldContextConsumer",
619
656
  "nodeType": "Identifier",
620
657
  "overloadedDeclarations": [],
621
- "referencedDeclaration": 60783,
658
+ "referencedDeclaration": 60845,
622
659
  "src": "247:21:97",
623
660
  "typeDescriptions": {}
624
661
  },
@@ -626,11 +663,11 @@
626
663
  },
627
664
  {
628
665
  "foreign": {
629
- "id": 38622,
666
+ "id": 38666,
630
667
  "name": "WORLD_CONTEXT_CONSUMER_INTERFACE_ID",
631
668
  "nodeType": "Identifier",
632
669
  "overloadedDeclarations": [],
633
- "referencedDeclaration": 60765,
670
+ "referencedDeclaration": 60823,
634
671
  "src": "270:35:97",
635
672
  "typeDescriptions": {}
636
673
  },
@@ -640,7 +677,7 @@
640
677
  "unitAlias": ""
641
678
  },
642
679
  {
643
- "id": 38628,
680
+ "id": 38672,
644
681
  "nodeType": "VariableDeclaration",
645
682
  "src": "420:40:97",
646
683
  "nodes": [],
@@ -648,7 +685,7 @@
648
685
  "mutability": "constant",
649
686
  "name": "CONTEXT_BYTES",
650
687
  "nameLocation": "437:13:97",
651
- "scope": 38833,
688
+ "scope": 38887,
652
689
  "stateVariable": false,
653
690
  "storageLocation": "default",
654
691
  "typeDescriptions": {
@@ -656,7 +693,7 @@
656
693
  "typeString": "uint256"
657
694
  },
658
695
  "typeName": {
659
- "id": 38624,
696
+ "id": 38668,
660
697
  "name": "uint256",
661
698
  "nodeType": "ElementaryTypeName",
662
699
  "src": "420:7:97",
@@ -670,14 +707,14 @@
670
707
  "typeIdentifier": "t_rational_52_by_1",
671
708
  "typeString": "int_const 52"
672
709
  },
673
- "id": 38627,
710
+ "id": 38671,
674
711
  "isConstant": false,
675
712
  "isLValue": false,
676
713
  "isPure": true,
677
714
  "lValueRequested": false,
678
715
  "leftExpression": {
679
716
  "hexValue": "3230",
680
- "id": 38625,
717
+ "id": 38669,
681
718
  "isConstant": false,
682
719
  "isLValue": false,
683
720
  "isPure": true,
@@ -695,7 +732,7 @@
695
732
  "operator": "+",
696
733
  "rightExpression": {
697
734
  "hexValue": "3332",
698
- "id": 38626,
735
+ "id": 38670,
699
736
  "isConstant": false,
700
737
  "isLValue": false,
701
738
  "isPure": true,
@@ -718,38 +755,38 @@
718
755
  "visibility": "internal"
719
756
  },
720
757
  {
721
- "id": 38683,
758
+ "id": 38732,
722
759
  "nodeType": "ContractDefinition",
723
- "src": "642:1165:97",
760
+ "src": "937:1838:97",
724
761
  "nodes": [
725
762
  {
726
- "id": 38649,
763
+ "id": 38695,
727
764
  "nodeType": "FunctionDefinition",
728
- "src": "777:379:97",
765
+ "src": "1151:379:97",
729
766
  "nodes": [],
730
767
  "body": {
731
- "id": 38648,
768
+ "id": 38694,
732
769
  "nodeType": "Block",
733
- "src": "836:320:97",
770
+ "src": "1210:320:97",
734
771
  "nodes": [],
735
772
  "statements": [
736
773
  {
737
774
  "AST": {
738
- "nativeSrc": "851:250:97",
775
+ "nativeSrc": "1225:250:97",
739
776
  "nodeType": "YulBlock",
740
- "src": "851:250:97",
777
+ "src": "1225:250:97",
741
778
  "statements": [
742
779
  {
743
- "nativeSrc": "1028:67:97",
780
+ "nativeSrc": "1402:67:97",
744
781
  "nodeType": "YulAssignment",
745
- "src": "1028:67:97",
782
+ "src": "1402:67:97",
746
783
  "value": {
747
784
  "arguments": [
748
785
  {
749
786
  "kind": "number",
750
- "nativeSrc": "1042:2:97",
787
+ "nativeSrc": "1416:2:97",
751
788
  "nodeType": "YulLiteral",
752
- "src": "1042:2:97",
789
+ "src": "1416:2:97",
753
790
  "type": "",
754
791
  "value": "96"
755
792
  },
@@ -761,59 +798,59 @@
761
798
  "arguments": [],
762
799
  "functionName": {
763
800
  "name": "calldatasize",
764
- "nativeSrc": "1063:12:97",
801
+ "nativeSrc": "1437:12:97",
765
802
  "nodeType": "YulIdentifier",
766
- "src": "1063:12:97"
803
+ "src": "1437:12:97"
767
804
  },
768
- "nativeSrc": "1063:14:97",
805
+ "nativeSrc": "1437:14:97",
769
806
  "nodeType": "YulFunctionCall",
770
- "src": "1063:14:97"
807
+ "src": "1437:14:97"
771
808
  },
772
809
  {
773
810
  "name": "CONTEXT_BYTES",
774
- "nativeSrc": "1079:13:97",
811
+ "nativeSrc": "1453:13:97",
775
812
  "nodeType": "YulIdentifier",
776
- "src": "1079:13:97"
813
+ "src": "1453:13:97"
777
814
  }
778
815
  ],
779
816
  "functionName": {
780
817
  "name": "sub",
781
- "nativeSrc": "1059:3:97",
818
+ "nativeSrc": "1433:3:97",
782
819
  "nodeType": "YulIdentifier",
783
- "src": "1059:3:97"
820
+ "src": "1433:3:97"
784
821
  },
785
- "nativeSrc": "1059:34:97",
822
+ "nativeSrc": "1433:34:97",
786
823
  "nodeType": "YulFunctionCall",
787
- "src": "1059:34:97"
824
+ "src": "1433:34:97"
788
825
  }
789
826
  ],
790
827
  "functionName": {
791
828
  "name": "calldataload",
792
- "nativeSrc": "1046:12:97",
829
+ "nativeSrc": "1420:12:97",
793
830
  "nodeType": "YulIdentifier",
794
- "src": "1046:12:97"
831
+ "src": "1420:12:97"
795
832
  },
796
- "nativeSrc": "1046:48:97",
833
+ "nativeSrc": "1420:48:97",
797
834
  "nodeType": "YulFunctionCall",
798
- "src": "1046:48:97"
835
+ "src": "1420:48:97"
799
836
  }
800
837
  ],
801
838
  "functionName": {
802
839
  "name": "shr",
803
- "nativeSrc": "1038:3:97",
840
+ "nativeSrc": "1412:3:97",
804
841
  "nodeType": "YulIdentifier",
805
- "src": "1038:3:97"
842
+ "src": "1412:3:97"
806
843
  },
807
- "nativeSrc": "1038:57:97",
844
+ "nativeSrc": "1412:57:97",
808
845
  "nodeType": "YulFunctionCall",
809
- "src": "1038:57:97"
846
+ "src": "1412:57:97"
810
847
  },
811
848
  "variableNames": [
812
849
  {
813
850
  "name": "sender",
814
- "nativeSrc": "1028:6:97",
851
+ "nativeSrc": "1402:6:97",
815
852
  "nodeType": "YulIdentifier",
816
- "src": "1028:6:97"
853
+ "src": "1402:6:97"
817
854
  }
818
855
  ]
819
856
  }
@@ -822,23 +859,23 @@
822
859
  "evmVersion": "paris",
823
860
  "externalReferences": [
824
861
  {
825
- "declaration": 38628,
862
+ "declaration": 38672,
826
863
  "isOffset": false,
827
864
  "isSlot": false,
828
- "src": "1079:13:97",
865
+ "src": "1453:13:97",
829
866
  "valueSize": 1
830
867
  },
831
868
  {
832
- "declaration": 38633,
869
+ "declaration": 38679,
833
870
  "isOffset": false,
834
871
  "isSlot": false,
835
- "src": "1028:6:97",
872
+ "src": "1402:6:97",
836
873
  "valueSize": 1
837
874
  }
838
875
  ],
839
- "id": 38635,
876
+ "id": 38681,
840
877
  "nodeType": "InlineAssembly",
841
- "src": "842:259:97"
878
+ "src": "1216:259:97"
842
879
  },
843
880
  {
844
881
  "condition": {
@@ -846,18 +883,18 @@
846
883
  "typeIdentifier": "t_address",
847
884
  "typeString": "address"
848
885
  },
849
- "id": 38641,
886
+ "id": 38687,
850
887
  "isConstant": false,
851
888
  "isLValue": false,
852
889
  "isPure": false,
853
890
  "lValueRequested": false,
854
891
  "leftExpression": {
855
- "id": 38636,
892
+ "id": 38682,
856
893
  "name": "sender",
857
894
  "nodeType": "Identifier",
858
895
  "overloadedDeclarations": [],
859
- "referencedDeclaration": 38633,
860
- "src": "1110:6:97",
896
+ "referencedDeclaration": 38679,
897
+ "src": "1484:6:97",
861
898
  "typeDescriptions": {
862
899
  "typeIdentifier": "t_address",
863
900
  "typeString": "address"
@@ -869,14 +906,14 @@
869
906
  "arguments": [
870
907
  {
871
908
  "hexValue": "30",
872
- "id": 38639,
909
+ "id": 38685,
873
910
  "isConstant": false,
874
911
  "isLValue": false,
875
912
  "isPure": true,
876
913
  "kind": "number",
877
914
  "lValueRequested": false,
878
915
  "nodeType": "Literal",
879
- "src": "1128:1:97",
916
+ "src": "1502:1:97",
880
917
  "typeDescriptions": {
881
918
  "typeIdentifier": "t_rational_0_by_1",
882
919
  "typeString": "int_const 0"
@@ -891,26 +928,26 @@
891
928
  "typeString": "int_const 0"
892
929
  }
893
930
  ],
894
- "id": 38638,
931
+ "id": 38684,
895
932
  "isConstant": false,
896
933
  "isLValue": false,
897
934
  "isPure": true,
898
935
  "lValueRequested": false,
899
936
  "nodeType": "ElementaryTypeNameExpression",
900
- "src": "1120:7:97",
937
+ "src": "1494:7:97",
901
938
  "typeDescriptions": {
902
939
  "typeIdentifier": "t_type$_t_address_$",
903
940
  "typeString": "type(address)"
904
941
  },
905
942
  "typeName": {
906
- "id": 38637,
943
+ "id": 38683,
907
944
  "name": "address",
908
945
  "nodeType": "ElementaryTypeName",
909
- "src": "1120:7:97",
946
+ "src": "1494:7:97",
910
947
  "typeDescriptions": {}
911
948
  }
912
949
  },
913
- "id": 38640,
950
+ "id": 38686,
914
951
  "isConstant": false,
915
952
  "isLValue": false,
916
953
  "isPure": true,
@@ -919,36 +956,36 @@
919
956
  "nameLocations": [],
920
957
  "names": [],
921
958
  "nodeType": "FunctionCall",
922
- "src": "1120:10:97",
959
+ "src": "1494:10:97",
923
960
  "tryCall": false,
924
961
  "typeDescriptions": {
925
962
  "typeIdentifier": "t_address",
926
963
  "typeString": "address"
927
964
  }
928
965
  },
929
- "src": "1110:20:97",
966
+ "src": "1484:20:97",
930
967
  "typeDescriptions": {
931
968
  "typeIdentifier": "t_bool",
932
969
  "typeString": "bool"
933
970
  }
934
971
  },
935
- "id": 38647,
972
+ "id": 38693,
936
973
  "nodeType": "IfStatement",
937
- "src": "1106:45:97",
974
+ "src": "1480:45:97",
938
975
  "trueBody": {
939
976
  "expression": {
940
- "id": 38645,
977
+ "id": 38691,
941
978
  "isConstant": false,
942
979
  "isLValue": false,
943
980
  "isPure": false,
944
981
  "lValueRequested": false,
945
982
  "leftHandSide": {
946
- "id": 38642,
983
+ "id": 38688,
947
984
  "name": "sender",
948
985
  "nodeType": "Identifier",
949
986
  "overloadedDeclarations": [],
950
- "referencedDeclaration": 38633,
951
- "src": "1132:6:97",
987
+ "referencedDeclaration": 38679,
988
+ "src": "1506:6:97",
952
989
  "typeDescriptions": {
953
990
  "typeIdentifier": "t_address",
954
991
  "typeString": "address"
@@ -958,72 +995,78 @@
958
995
  "operator": "=",
959
996
  "rightHandSide": {
960
997
  "expression": {
961
- "id": 38643,
998
+ "id": 38689,
962
999
  "name": "msg",
963
1000
  "nodeType": "Identifier",
964
1001
  "overloadedDeclarations": [],
965
1002
  "referencedDeclaration": -15,
966
- "src": "1141:3:97",
1003
+ "src": "1515:3:97",
967
1004
  "typeDescriptions": {
968
1005
  "typeIdentifier": "t_magic_message",
969
1006
  "typeString": "msg"
970
1007
  }
971
1008
  },
972
- "id": 38644,
1009
+ "id": 38690,
973
1010
  "isConstant": false,
974
1011
  "isLValue": false,
975
1012
  "isPure": false,
976
1013
  "lValueRequested": false,
977
- "memberLocation": "1145:6:97",
1014
+ "memberLocation": "1519:6:97",
978
1015
  "memberName": "sender",
979
1016
  "nodeType": "MemberAccess",
980
- "src": "1141:10:97",
1017
+ "src": "1515:10:97",
981
1018
  "typeDescriptions": {
982
1019
  "typeIdentifier": "t_address",
983
1020
  "typeString": "address"
984
1021
  }
985
1022
  },
986
- "src": "1132:19:97",
1023
+ "src": "1506:19:97",
987
1024
  "typeDescriptions": {
988
1025
  "typeIdentifier": "t_address",
989
1026
  "typeString": "address"
990
1027
  }
991
1028
  },
992
- "id": 38646,
1029
+ "id": 38692,
993
1030
  "nodeType": "ExpressionStatement",
994
- "src": "1132:19:97"
1031
+ "src": "1506:19:97"
995
1032
  }
996
1033
  }
997
1034
  ]
998
1035
  },
999
1036
  "baseFunctions": [
1000
- 60772
1037
+ 60832
1001
1038
  ],
1039
+ "documentation": {
1040
+ "id": 38676,
1041
+ "nodeType": "StructuredDocumentation",
1042
+ "src": "1005:143:97",
1043
+ "text": " @notice Extracts the trusted msg.sender value from the appended calldata.\n @return sender The address of the trusted sender."
1044
+ },
1002
1045
  "functionSelector": "119df25f",
1003
1046
  "implemented": true,
1004
1047
  "kind": "function",
1005
1048
  "modifiers": [],
1006
1049
  "name": "_msgSender",
1007
- "nameLocation": "786:10:97",
1050
+ "nameLocation": "1160:10:97",
1008
1051
  "parameters": {
1009
- "id": 38631,
1052
+ "id": 38677,
1010
1053
  "nodeType": "ParameterList",
1011
1054
  "parameters": [],
1012
- "src": "796:2:97"
1055
+ "src": "1170:2:97"
1013
1056
  },
1014
1057
  "returnParameters": {
1015
- "id": 38634,
1058
+ "id": 38680,
1016
1059
  "nodeType": "ParameterList",
1017
1060
  "parameters": [
1018
1061
  {
1019
1062
  "constant": false,
1020
- "id": 38633,
1063
+ "id": 38679,
1021
1064
  "mutability": "mutable",
1022
1065
  "name": "sender",
1023
- "nameLocation": "828:6:97",
1066
+ "nameLocation": "1202:6:97",
1024
1067
  "nodeType": "VariableDeclaration",
1025
- "scope": 38649,
1026
- "src": "820:14:97",
1068
+ "scope": 38695,
1069
+ "src": "1194:14:97",
1027
1070
  "stateVariable": false,
1028
1071
  "storageLocation": "default",
1029
1072
  "typeDescriptions": {
@@ -1031,10 +1074,10 @@
1031
1074
  "typeString": "address"
1032
1075
  },
1033
1076
  "typeName": {
1034
- "id": 38632,
1077
+ "id": 38678,
1035
1078
  "name": "address",
1036
1079
  "nodeType": "ElementaryTypeName",
1037
- "src": "820:7:97",
1080
+ "src": "1194:7:97",
1038
1081
  "stateMutability": "nonpayable",
1039
1082
  "typeDescriptions": {
1040
1083
  "typeIdentifier": "t_address",
@@ -1044,34 +1087,34 @@
1044
1087
  "visibility": "internal"
1045
1088
  }
1046
1089
  ],
1047
- "src": "819:16:97"
1090
+ "src": "1193:16:97"
1048
1091
  },
1049
- "scope": 38683,
1092
+ "scope": 38732,
1050
1093
  "stateMutability": "view",
1051
1094
  "virtual": false,
1052
1095
  "visibility": "public"
1053
1096
  },
1054
1097
  {
1055
- "id": 38656,
1098
+ "id": 38703,
1056
1099
  "nodeType": "FunctionDefinition",
1057
- "src": "1226:212:97",
1100
+ "src": "1771:212:97",
1058
1101
  "nodes": [],
1059
1102
  "body": {
1060
- "id": 38655,
1103
+ "id": 38702,
1061
1104
  "nodeType": "Block",
1062
- "src": "1283:155:97",
1105
+ "src": "1828:155:97",
1063
1106
  "nodes": [],
1064
1107
  "statements": [
1065
1108
  {
1066
1109
  "AST": {
1067
- "nativeSrc": "1298:136:97",
1110
+ "nativeSrc": "1843:136:97",
1068
1111
  "nodeType": "YulBlock",
1069
- "src": "1298:136:97",
1112
+ "src": "1843:136:97",
1070
1113
  "statements": [
1071
1114
  {
1072
- "nativeSrc": "1382:46:97",
1115
+ "nativeSrc": "1927:46:97",
1073
1116
  "nodeType": "YulAssignment",
1074
- "src": "1382:46:97",
1117
+ "src": "1927:46:97",
1075
1118
  "value": {
1076
1119
  "arguments": [
1077
1120
  {
@@ -1080,50 +1123,50 @@
1080
1123
  "arguments": [],
1081
1124
  "functionName": {
1082
1125
  "name": "calldatasize",
1083
- "nativeSrc": "1408:12:97",
1126
+ "nativeSrc": "1953:12:97",
1084
1127
  "nodeType": "YulIdentifier",
1085
- "src": "1408:12:97"
1128
+ "src": "1953:12:97"
1086
1129
  },
1087
- "nativeSrc": "1408:14:97",
1130
+ "nativeSrc": "1953:14:97",
1088
1131
  "nodeType": "YulFunctionCall",
1089
- "src": "1408:14:97"
1132
+ "src": "1953:14:97"
1090
1133
  },
1091
1134
  {
1092
1135
  "kind": "number",
1093
- "nativeSrc": "1424:2:97",
1136
+ "nativeSrc": "1969:2:97",
1094
1137
  "nodeType": "YulLiteral",
1095
- "src": "1424:2:97",
1138
+ "src": "1969:2:97",
1096
1139
  "type": "",
1097
1140
  "value": "32"
1098
1141
  }
1099
1142
  ],
1100
1143
  "functionName": {
1101
1144
  "name": "sub",
1102
- "nativeSrc": "1404:3:97",
1145
+ "nativeSrc": "1949:3:97",
1103
1146
  "nodeType": "YulIdentifier",
1104
- "src": "1404:3:97"
1147
+ "src": "1949:3:97"
1105
1148
  },
1106
- "nativeSrc": "1404:23:97",
1149
+ "nativeSrc": "1949:23:97",
1107
1150
  "nodeType": "YulFunctionCall",
1108
- "src": "1404:23:97"
1151
+ "src": "1949:23:97"
1109
1152
  }
1110
1153
  ],
1111
1154
  "functionName": {
1112
1155
  "name": "calldataload",
1113
- "nativeSrc": "1391:12:97",
1156
+ "nativeSrc": "1936:12:97",
1114
1157
  "nodeType": "YulIdentifier",
1115
- "src": "1391:12:97"
1158
+ "src": "1936:12:97"
1116
1159
  },
1117
- "nativeSrc": "1391:37:97",
1160
+ "nativeSrc": "1936:37:97",
1118
1161
  "nodeType": "YulFunctionCall",
1119
- "src": "1391:37:97"
1162
+ "src": "1936:37:97"
1120
1163
  },
1121
1164
  "variableNames": [
1122
1165
  {
1123
1166
  "name": "value",
1124
- "nativeSrc": "1382:5:97",
1167
+ "nativeSrc": "1927:5:97",
1125
1168
  "nodeType": "YulIdentifier",
1126
- "src": "1382:5:97"
1169
+ "src": "1927:5:97"
1127
1170
  }
1128
1171
  ]
1129
1172
  }
@@ -1132,47 +1175,53 @@
1132
1175
  "evmVersion": "paris",
1133
1176
  "externalReferences": [
1134
1177
  {
1135
- "declaration": 38652,
1178
+ "declaration": 38699,
1136
1179
  "isOffset": false,
1137
1180
  "isSlot": false,
1138
- "src": "1382:5:97",
1181
+ "src": "1927:5:97",
1139
1182
  "valueSize": 1
1140
1183
  }
1141
1184
  ],
1142
- "id": 38654,
1185
+ "id": 38701,
1143
1186
  "nodeType": "InlineAssembly",
1144
- "src": "1289:145:97"
1187
+ "src": "1834:145:97"
1145
1188
  }
1146
1189
  ]
1147
1190
  },
1148
1191
  "baseFunctions": [
1149
- 60777
1192
+ 60838
1150
1193
  ],
1194
+ "documentation": {
1195
+ "id": 38696,
1196
+ "nodeType": "StructuredDocumentation",
1197
+ "src": "1534:234:97",
1198
+ "text": " @notice Extract the `msg.value` from the context appended to the calldata.\n @return value The `msg.value` in the call to the World contract before the World routed the\n call to the WorldContextConsumer contract."
1199
+ },
1151
1200
  "functionSelector": "45ec9354",
1152
1201
  "implemented": true,
1153
1202
  "kind": "function",
1154
1203
  "modifiers": [],
1155
1204
  "name": "_msgValue",
1156
- "nameLocation": "1235:9:97",
1205
+ "nameLocation": "1780:9:97",
1157
1206
  "parameters": {
1158
- "id": 38650,
1207
+ "id": 38697,
1159
1208
  "nodeType": "ParameterList",
1160
1209
  "parameters": [],
1161
- "src": "1244:2:97"
1210
+ "src": "1789:2:97"
1162
1211
  },
1163
1212
  "returnParameters": {
1164
- "id": 38653,
1213
+ "id": 38700,
1165
1214
  "nodeType": "ParameterList",
1166
1215
  "parameters": [
1167
1216
  {
1168
1217
  "constant": false,
1169
- "id": 38652,
1218
+ "id": 38699,
1170
1219
  "mutability": "mutable",
1171
1220
  "name": "value",
1172
- "nameLocation": "1276:5:97",
1221
+ "nameLocation": "1821:5:97",
1173
1222
  "nodeType": "VariableDeclaration",
1174
- "scope": 38656,
1175
- "src": "1268:13:97",
1223
+ "scope": 38703,
1224
+ "src": "1813:13:97",
1176
1225
  "stateVariable": false,
1177
1226
  "storageLocation": "default",
1178
1227
  "typeDescriptions": {
@@ -1180,10 +1229,10 @@
1180
1229
  "typeString": "uint256"
1181
1230
  },
1182
1231
  "typeName": {
1183
- "id": 38651,
1232
+ "id": 38698,
1184
1233
  "name": "uint256",
1185
1234
  "nodeType": "ElementaryTypeName",
1186
- "src": "1268:7:97",
1235
+ "src": "1813:7:97",
1187
1236
  "typeDescriptions": {
1188
1237
  "typeIdentifier": "t_uint256",
1189
1238
  "typeString": "uint256"
@@ -1192,22 +1241,22 @@
1192
1241
  "visibility": "internal"
1193
1242
  }
1194
1243
  ],
1195
- "src": "1267:15:97"
1244
+ "src": "1812:15:97"
1196
1245
  },
1197
- "scope": 38683,
1246
+ "scope": 38732,
1198
1247
  "stateMutability": "pure",
1199
1248
  "virtual": false,
1200
1249
  "visibility": "public"
1201
1250
  },
1202
1251
  {
1203
- "id": 38666,
1252
+ "id": 38714,
1204
1253
  "nodeType": "FunctionDefinition",
1205
- "src": "1442:95:97",
1254
+ "src": "2199:95:97",
1206
1255
  "nodes": [],
1207
1256
  "body": {
1208
- "id": 38665,
1257
+ "id": 38713,
1209
1258
  "nodeType": "Block",
1210
- "src": "1490:47:97",
1259
+ "src": "2247:47:97",
1211
1260
  "nodes": [],
1212
1261
  "statements": [
1213
1262
  {
@@ -1216,33 +1265,33 @@
1216
1265
  "expression": {
1217
1266
  "argumentTypes": [],
1218
1267
  "expression": {
1219
- "id": 38661,
1268
+ "id": 38709,
1220
1269
  "name": "StoreSwitch",
1221
1270
  "nodeType": "Identifier",
1222
1271
  "overloadedDeclarations": [],
1223
- "referencedDeclaration": 30830,
1224
- "src": "1503:11:97",
1272
+ "referencedDeclaration": 30870,
1273
+ "src": "2260:11:97",
1225
1274
  "typeDescriptions": {
1226
- "typeIdentifier": "t_type$_t_contract$_StoreSwitch_$30830_$",
1275
+ "typeIdentifier": "t_type$_t_contract$_StoreSwitch_$30870_$",
1227
1276
  "typeString": "type(library StoreSwitch)"
1228
1277
  }
1229
1278
  },
1230
- "id": 38662,
1279
+ "id": 38710,
1231
1280
  "isConstant": false,
1232
1281
  "isLValue": false,
1233
1282
  "isPure": false,
1234
1283
  "lValueRequested": false,
1235
- "memberLocation": "1515:15:97",
1284
+ "memberLocation": "2272:15:97",
1236
1285
  "memberName": "getStoreAddress",
1237
1286
  "nodeType": "MemberAccess",
1238
- "referencedDeclaration": 29600,
1239
- "src": "1503:27:97",
1287
+ "referencedDeclaration": 29640,
1288
+ "src": "2260:27:97",
1240
1289
  "typeDescriptions": {
1241
1290
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
1242
1291
  "typeString": "function () view returns (address)"
1243
1292
  }
1244
1293
  },
1245
- "id": 38663,
1294
+ "id": 38711,
1246
1295
  "isConstant": false,
1247
1296
  "isLValue": false,
1248
1297
  "isPure": false,
@@ -1251,48 +1300,54 @@
1251
1300
  "nameLocations": [],
1252
1301
  "names": [],
1253
1302
  "nodeType": "FunctionCall",
1254
- "src": "1503:29:97",
1303
+ "src": "2260:29:97",
1255
1304
  "tryCall": false,
1256
1305
  "typeDescriptions": {
1257
1306
  "typeIdentifier": "t_address",
1258
1307
  "typeString": "address"
1259
1308
  }
1260
1309
  },
1261
- "functionReturnParameters": 38660,
1262
- "id": 38664,
1310
+ "functionReturnParameters": 38708,
1311
+ "id": 38712,
1263
1312
  "nodeType": "Return",
1264
- "src": "1496:36:97"
1313
+ "src": "2253:36:97"
1265
1314
  }
1266
1315
  ]
1267
1316
  },
1268
1317
  "baseFunctions": [
1269
- 60782
1318
+ 60844
1270
1319
  ],
1320
+ "documentation": {
1321
+ "id": 38704,
1322
+ "nodeType": "StructuredDocumentation",
1323
+ "src": "1987:209:97",
1324
+ "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."
1325
+ },
1271
1326
  "functionSelector": "e1af802c",
1272
1327
  "implemented": true,
1273
1328
  "kind": "function",
1274
1329
  "modifiers": [],
1275
1330
  "name": "_world",
1276
- "nameLocation": "1451:6:97",
1331
+ "nameLocation": "2208:6:97",
1277
1332
  "parameters": {
1278
- "id": 38657,
1333
+ "id": 38705,
1279
1334
  "nodeType": "ParameterList",
1280
1335
  "parameters": [],
1281
- "src": "1457:2:97"
1336
+ "src": "2214:2:97"
1282
1337
  },
1283
1338
  "returnParameters": {
1284
- "id": 38660,
1339
+ "id": 38708,
1285
1340
  "nodeType": "ParameterList",
1286
1341
  "parameters": [
1287
1342
  {
1288
1343
  "constant": false,
1289
- "id": 38659,
1344
+ "id": 38707,
1290
1345
  "mutability": "mutable",
1291
1346
  "name": "",
1292
1347
  "nameLocation": "-1:-1:-1",
1293
1348
  "nodeType": "VariableDeclaration",
1294
- "scope": 38666,
1295
- "src": "1481:7:97",
1349
+ "scope": 38714,
1350
+ "src": "2238:7:97",
1296
1351
  "stateVariable": false,
1297
1352
  "storageLocation": "default",
1298
1353
  "typeDescriptions": {
@@ -1300,10 +1355,10 @@
1300
1355
  "typeString": "address"
1301
1356
  },
1302
1357
  "typeName": {
1303
- "id": 38658,
1358
+ "id": 38706,
1304
1359
  "name": "address",
1305
1360
  "nodeType": "ElementaryTypeName",
1306
- "src": "1481:7:97",
1361
+ "src": "2238:7:97",
1307
1362
  "stateMutability": "nonpayable",
1308
1363
  "typeDescriptions": {
1309
1364
  "typeIdentifier": "t_address",
@@ -1313,22 +1368,22 @@
1313
1368
  "visibility": "internal"
1314
1369
  }
1315
1370
  ],
1316
- "src": "1480:9:97"
1371
+ "src": "2237:9:97"
1317
1372
  },
1318
- "scope": 38683,
1373
+ "scope": 38732,
1319
1374
  "stateMutability": "view",
1320
1375
  "virtual": false,
1321
1376
  "visibility": "public"
1322
1377
  },
1323
1378
  {
1324
- "id": 38682,
1379
+ "id": 38731,
1325
1380
  "nodeType": "FunctionDefinition",
1326
- "src": "1617:188:97",
1381
+ "src": "2585:188:97",
1327
1382
  "nodes": [],
1328
1383
  "body": {
1329
- "id": 38681,
1384
+ "id": 38730,
1330
1385
  "nodeType": "Block",
1331
- "src": "1699:106:97",
1386
+ "src": "2667:106:97",
1332
1387
  "nodes": [],
1333
1388
  "statements": [
1334
1389
  {
@@ -1337,7 +1392,7 @@
1337
1392
  "typeIdentifier": "t_bool",
1338
1393
  "typeString": "bool"
1339
1394
  },
1340
- "id": 38679,
1395
+ "id": 38728,
1341
1396
  "isConstant": false,
1342
1397
  "isLValue": false,
1343
1398
  "isPure": false,
@@ -1347,18 +1402,18 @@
1347
1402
  "typeIdentifier": "t_bytes4",
1348
1403
  "typeString": "bytes4"
1349
1404
  },
1350
- "id": 38675,
1405
+ "id": 38724,
1351
1406
  "isConstant": false,
1352
1407
  "isLValue": false,
1353
1408
  "isPure": false,
1354
1409
  "lValueRequested": false,
1355
1410
  "leftExpression": {
1356
- "id": 38673,
1411
+ "id": 38722,
1357
1412
  "name": "interfaceId",
1358
1413
  "nodeType": "Identifier",
1359
1414
  "overloadedDeclarations": [],
1360
- "referencedDeclaration": 38668,
1361
- "src": "1712:11:97",
1415
+ "referencedDeclaration": 38717,
1416
+ "src": "2680:11:97",
1362
1417
  "typeDescriptions": {
1363
1418
  "typeIdentifier": "t_bytes4",
1364
1419
  "typeString": "bytes4"
@@ -1367,18 +1422,18 @@
1367
1422
  "nodeType": "BinaryOperation",
1368
1423
  "operator": "==",
1369
1424
  "rightExpression": {
1370
- "id": 38674,
1425
+ "id": 38723,
1371
1426
  "name": "WORLD_CONTEXT_CONSUMER_INTERFACE_ID",
1372
1427
  "nodeType": "Identifier",
1373
1428
  "overloadedDeclarations": [],
1374
- "referencedDeclaration": 60765,
1375
- "src": "1727:35:97",
1429
+ "referencedDeclaration": 60823,
1430
+ "src": "2695:35:97",
1376
1431
  "typeDescriptions": {
1377
1432
  "typeIdentifier": "t_bytes4",
1378
1433
  "typeString": "bytes4"
1379
1434
  }
1380
1435
  },
1381
- "src": "1712:50:97",
1436
+ "src": "2680:50:97",
1382
1437
  "typeDescriptions": {
1383
1438
  "typeIdentifier": "t_bool",
1384
1439
  "typeString": "bool"
@@ -1391,18 +1446,18 @@
1391
1446
  "typeIdentifier": "t_bytes4",
1392
1447
  "typeString": "bytes4"
1393
1448
  },
1394
- "id": 38678,
1449
+ "id": 38727,
1395
1450
  "isConstant": false,
1396
1451
  "isLValue": false,
1397
1452
  "isPure": false,
1398
1453
  "lValueRequested": false,
1399
1454
  "leftExpression": {
1400
- "id": 38676,
1455
+ "id": 38725,
1401
1456
  "name": "interfaceId",
1402
1457
  "nodeType": "Identifier",
1403
1458
  "overloadedDeclarations": [],
1404
- "referencedDeclaration": 38668,
1405
- "src": "1766:11:97",
1459
+ "referencedDeclaration": 38717,
1460
+ "src": "2734:11:97",
1406
1461
  "typeDescriptions": {
1407
1462
  "typeIdentifier": "t_bytes4",
1408
1463
  "typeString": "bytes4"
@@ -1411,58 +1466,64 @@
1411
1466
  "nodeType": "BinaryOperation",
1412
1467
  "operator": "==",
1413
1468
  "rightExpression": {
1414
- "id": 38677,
1469
+ "id": 38726,
1415
1470
  "name": "ERC165_INTERFACE_ID",
1416
1471
  "nodeType": "Identifier",
1417
1472
  "overloadedDeclarations": [],
1418
- "referencedDeclaration": 60735,
1419
- "src": "1781:19:97",
1473
+ "referencedDeclaration": 60792,
1474
+ "src": "2749:19:97",
1420
1475
  "typeDescriptions": {
1421
1476
  "typeIdentifier": "t_bytes4",
1422
1477
  "typeString": "bytes4"
1423
1478
  }
1424
1479
  },
1425
- "src": "1766:34:97",
1480
+ "src": "2734:34:97",
1426
1481
  "typeDescriptions": {
1427
1482
  "typeIdentifier": "t_bool",
1428
1483
  "typeString": "bool"
1429
1484
  }
1430
1485
  },
1431
- "src": "1712:88:97",
1486
+ "src": "2680:88:97",
1432
1487
  "typeDescriptions": {
1433
1488
  "typeIdentifier": "t_bool",
1434
1489
  "typeString": "bool"
1435
1490
  }
1436
1491
  },
1437
- "functionReturnParameters": 38672,
1438
- "id": 38680,
1492
+ "functionReturnParameters": 38721,
1493
+ "id": 38729,
1439
1494
  "nodeType": "Return",
1440
- "src": "1705:95:97"
1495
+ "src": "2673:95:97"
1441
1496
  }
1442
1497
  ]
1443
1498
  },
1444
1499
  "baseFunctions": [
1445
- 60744
1500
+ 60801
1446
1501
  ],
1502
+ "documentation": {
1503
+ "id": 38715,
1504
+ "nodeType": "StructuredDocumentation",
1505
+ "src": "2298:284:97",
1506
+ "text": " @notice Checks if an interface is supported by the contract.\n using ERC-165 supportsInterface (see https://eips.ethereum.org/EIPS/eip-165)\n @param interfaceId The ID of the interface in question.\n @return True if the interface is supported, false otherwise."
1507
+ },
1447
1508
  "functionSelector": "01ffc9a7",
1448
1509
  "implemented": true,
1449
1510
  "kind": "function",
1450
1511
  "modifiers": [],
1451
1512
  "name": "supportsInterface",
1452
- "nameLocation": "1626:17:97",
1513
+ "nameLocation": "2594:17:97",
1453
1514
  "parameters": {
1454
- "id": 38669,
1515
+ "id": 38718,
1455
1516
  "nodeType": "ParameterList",
1456
1517
  "parameters": [
1457
1518
  {
1458
1519
  "constant": false,
1459
- "id": 38668,
1520
+ "id": 38717,
1460
1521
  "mutability": "mutable",
1461
1522
  "name": "interfaceId",
1462
- "nameLocation": "1651:11:97",
1523
+ "nameLocation": "2619:11:97",
1463
1524
  "nodeType": "VariableDeclaration",
1464
- "scope": 38682,
1465
- "src": "1644:18:97",
1525
+ "scope": 38731,
1526
+ "src": "2612:18:97",
1466
1527
  "stateVariable": false,
1467
1528
  "storageLocation": "default",
1468
1529
  "typeDescriptions": {
@@ -1470,10 +1531,10 @@
1470
1531
  "typeString": "bytes4"
1471
1532
  },
1472
1533
  "typeName": {
1473
- "id": 38667,
1534
+ "id": 38716,
1474
1535
  "name": "bytes4",
1475
1536
  "nodeType": "ElementaryTypeName",
1476
- "src": "1644:6:97",
1537
+ "src": "2612:6:97",
1477
1538
  "typeDescriptions": {
1478
1539
  "typeIdentifier": "t_bytes4",
1479
1540
  "typeString": "bytes4"
@@ -1482,21 +1543,21 @@
1482
1543
  "visibility": "internal"
1483
1544
  }
1484
1545
  ],
1485
- "src": "1643:20:97"
1546
+ "src": "2611:20:97"
1486
1547
  },
1487
1548
  "returnParameters": {
1488
- "id": 38672,
1549
+ "id": 38721,
1489
1550
  "nodeType": "ParameterList",
1490
1551
  "parameters": [
1491
1552
  {
1492
1553
  "constant": false,
1493
- "id": 38671,
1554
+ "id": 38720,
1494
1555
  "mutability": "mutable",
1495
1556
  "name": "",
1496
1557
  "nameLocation": "-1:-1:-1",
1497
1558
  "nodeType": "VariableDeclaration",
1498
- "scope": 38682,
1499
- "src": "1693:4:97",
1559
+ "scope": 38731,
1560
+ "src": "2661:4:97",
1500
1561
  "stateVariable": false,
1501
1562
  "storageLocation": "default",
1502
1563
  "typeDescriptions": {
@@ -1504,10 +1565,10 @@
1504
1565
  "typeString": "bool"
1505
1566
  },
1506
1567
  "typeName": {
1507
- "id": 38670,
1568
+ "id": 38719,
1508
1569
  "name": "bool",
1509
1570
  "nodeType": "ElementaryTypeName",
1510
- "src": "1693:4:97",
1571
+ "src": "2661:4:97",
1511
1572
  "typeDescriptions": {
1512
1573
  "typeIdentifier": "t_bool",
1513
1574
  "typeString": "bool"
@@ -1516,9 +1577,9 @@
1516
1577
  "visibility": "internal"
1517
1578
  }
1518
1579
  ],
1519
- "src": "1692:6:97"
1580
+ "src": "2660:6:97"
1520
1581
  },
1521
- "scope": 38683,
1582
+ "scope": 38732,
1522
1583
  "stateMutability": "pure",
1523
1584
  "virtual": true,
1524
1585
  "visibility": "public"
@@ -1528,85 +1589,91 @@
1528
1589
  "baseContracts": [
1529
1590
  {
1530
1591
  "baseName": {
1531
- "id": 38629,
1592
+ "id": 38674,
1532
1593
  "name": "IWorldContextConsumer",
1533
1594
  "nameLocations": [
1534
- "684:21:97"
1595
+ "979:21:97"
1535
1596
  ],
1536
1597
  "nodeType": "IdentifierPath",
1537
- "referencedDeclaration": 60783,
1538
- "src": "684:21:97"
1598
+ "referencedDeclaration": 60845,
1599
+ "src": "979:21:97"
1539
1600
  },
1540
- "id": 38630,
1601
+ "id": 38675,
1541
1602
  "nodeType": "InheritanceSpecifier",
1542
- "src": "684:21:97"
1603
+ "src": "979:21:97"
1543
1604
  }
1544
1605
  ],
1545
1606
  "canonicalName": "WorldContextConsumer",
1546
1607
  "contractDependencies": [],
1547
1608
  "contractKind": "contract",
1609
+ "documentation": {
1610
+ "id": 38673,
1611
+ "nodeType": "StructuredDocumentation",
1612
+ "src": "463:473:97",
1613
+ "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."
1614
+ },
1548
1615
  "fullyImplemented": true,
1549
1616
  "linearizedBaseContracts": [
1550
- 38683,
1551
- 60783,
1552
- 60745
1617
+ 38732,
1618
+ 60845,
1619
+ 60802
1553
1620
  ],
1554
1621
  "name": "WorldContextConsumer",
1555
- "nameLocation": "660:20:97",
1556
- "scope": 38833,
1622
+ "nameLocation": "955:20:97",
1623
+ "scope": 38887,
1557
1624
  "usedErrors": [],
1558
1625
  "usedEvents": []
1559
1626
  },
1560
1627
  {
1561
- "id": 38832,
1628
+ "id": 38886,
1562
1629
  "nodeType": "ContractDefinition",
1563
- "src": "1946:1704:97",
1630
+ "src": "3107:3919:97",
1564
1631
  "nodes": [
1565
1632
  {
1566
- "id": 38703,
1633
+ "id": 38753,
1567
1634
  "nodeType": "FunctionDefinition",
1568
- "src": "1979:201:97",
1635
+ "src": "3453:201:97",
1569
1636
  "nodes": [],
1570
1637
  "body": {
1571
- "id": 38702,
1638
+ "id": 38752,
1572
1639
  "nodeType": "Block",
1573
- "src": "2115:65:97",
1640
+ "src": "3589:65:97",
1574
1641
  "nodes": [],
1575
1642
  "statements": [
1576
1643
  {
1577
1644
  "expression": {
1578
1645
  "arguments": [
1579
1646
  {
1580
- "id": 38697,
1647
+ "id": 38747,
1581
1648
  "name": "callData",
1582
1649
  "nodeType": "Identifier",
1583
1650
  "overloadedDeclarations": [],
1584
- "referencedDeclaration": 38686,
1585
- "src": "2145:8:97",
1651
+ "referencedDeclaration": 38736,
1652
+ "src": "3619:8:97",
1586
1653
  "typeDescriptions": {
1587
1654
  "typeIdentifier": "t_bytes_memory_ptr",
1588
1655
  "typeString": "bytes memory"
1589
1656
  }
1590
1657
  },
1591
1658
  {
1592
- "id": 38698,
1659
+ "id": 38748,
1593
1660
  "name": "msgSender",
1594
1661
  "nodeType": "Identifier",
1595
1662
  "overloadedDeclarations": [],
1596
- "referencedDeclaration": 38688,
1597
- "src": "2155:9:97",
1663
+ "referencedDeclaration": 38738,
1664
+ "src": "3629:9:97",
1598
1665
  "typeDescriptions": {
1599
1666
  "typeIdentifier": "t_address",
1600
1667
  "typeString": "address"
1601
1668
  }
1602
1669
  },
1603
1670
  {
1604
- "id": 38699,
1671
+ "id": 38749,
1605
1672
  "name": "msgValue",
1606
1673
  "nodeType": "Identifier",
1607
1674
  "overloadedDeclarations": [],
1608
- "referencedDeclaration": 38690,
1609
- "src": "2166:8:97",
1675
+ "referencedDeclaration": 38740,
1676
+ "src": "3640:8:97",
1610
1677
  "typeDescriptions": {
1611
1678
  "typeIdentifier": "t_uint256",
1612
1679
  "typeString": "uint256"
@@ -1629,32 +1696,32 @@
1629
1696
  }
1630
1697
  ],
1631
1698
  "expression": {
1632
- "id": 38695,
1699
+ "id": 38745,
1633
1700
  "name": "abi",
1634
1701
  "nodeType": "Identifier",
1635
1702
  "overloadedDeclarations": [],
1636
1703
  "referencedDeclaration": -1,
1637
- "src": "2128:3:97",
1704
+ "src": "3602:3:97",
1638
1705
  "typeDescriptions": {
1639
1706
  "typeIdentifier": "t_magic_abi",
1640
1707
  "typeString": "abi"
1641
1708
  }
1642
1709
  },
1643
- "id": 38696,
1710
+ "id": 38746,
1644
1711
  "isConstant": false,
1645
1712
  "isLValue": false,
1646
1713
  "isPure": true,
1647
1714
  "lValueRequested": false,
1648
- "memberLocation": "2132:12:97",
1715
+ "memberLocation": "3606:12:97",
1649
1716
  "memberName": "encodePacked",
1650
1717
  "nodeType": "MemberAccess",
1651
- "src": "2128:16:97",
1718
+ "src": "3602:16:97",
1652
1719
  "typeDescriptions": {
1653
1720
  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1654
1721
  "typeString": "function () pure returns (bytes memory)"
1655
1722
  }
1656
1723
  },
1657
- "id": 38700,
1724
+ "id": 38750,
1658
1725
  "isConstant": false,
1659
1726
  "isLValue": false,
1660
1727
  "isPure": false,
@@ -1663,38 +1730,44 @@
1663
1730
  "nameLocations": [],
1664
1731
  "names": [],
1665
1732
  "nodeType": "FunctionCall",
1666
- "src": "2128:47:97",
1733
+ "src": "3602:47:97",
1667
1734
  "tryCall": false,
1668
1735
  "typeDescriptions": {
1669
1736
  "typeIdentifier": "t_bytes_memory_ptr",
1670
1737
  "typeString": "bytes memory"
1671
1738
  }
1672
1739
  },
1673
- "functionReturnParameters": 38694,
1674
- "id": 38701,
1740
+ "functionReturnParameters": 38744,
1741
+ "id": 38751,
1675
1742
  "nodeType": "Return",
1676
- "src": "2121:54:97"
1743
+ "src": "3595:54:97"
1677
1744
  }
1678
1745
  ]
1679
1746
  },
1747
+ "documentation": {
1748
+ "id": 38734,
1749
+ "nodeType": "StructuredDocumentation",
1750
+ "src": "3140:310:97",
1751
+ "text": " @notice Appends context values to the given calldata.\n @param callData The original calldata.\n @param msgSender The address of the transaction sender.\n @param msgValue The amount of ether sent with the original transaction.\n @return The new calldata with context values appended."
1752
+ },
1680
1753
  "implemented": true,
1681
1754
  "kind": "function",
1682
1755
  "modifiers": [],
1683
1756
  "name": "appendContext",
1684
- "nameLocation": "1988:13:97",
1757
+ "nameLocation": "3462:13:97",
1685
1758
  "parameters": {
1686
- "id": 38691,
1759
+ "id": 38741,
1687
1760
  "nodeType": "ParameterList",
1688
1761
  "parameters": [
1689
1762
  {
1690
1763
  "constant": false,
1691
- "id": 38686,
1764
+ "id": 38736,
1692
1765
  "mutability": "mutable",
1693
1766
  "name": "callData",
1694
- "nameLocation": "2020:8:97",
1767
+ "nameLocation": "3494:8:97",
1695
1768
  "nodeType": "VariableDeclaration",
1696
- "scope": 38703,
1697
- "src": "2007:21:97",
1769
+ "scope": 38753,
1770
+ "src": "3481:21:97",
1698
1771
  "stateVariable": false,
1699
1772
  "storageLocation": "memory",
1700
1773
  "typeDescriptions": {
@@ -1702,10 +1775,10 @@
1702
1775
  "typeString": "bytes"
1703
1776
  },
1704
1777
  "typeName": {
1705
- "id": 38685,
1778
+ "id": 38735,
1706
1779
  "name": "bytes",
1707
1780
  "nodeType": "ElementaryTypeName",
1708
- "src": "2007:5:97",
1781
+ "src": "3481:5:97",
1709
1782
  "typeDescriptions": {
1710
1783
  "typeIdentifier": "t_bytes_storage_ptr",
1711
1784
  "typeString": "bytes"
@@ -1715,13 +1788,13 @@
1715
1788
  },
1716
1789
  {
1717
1790
  "constant": false,
1718
- "id": 38688,
1791
+ "id": 38738,
1719
1792
  "mutability": "mutable",
1720
1793
  "name": "msgSender",
1721
- "nameLocation": "2042:9:97",
1794
+ "nameLocation": "3516:9:97",
1722
1795
  "nodeType": "VariableDeclaration",
1723
- "scope": 38703,
1724
- "src": "2034:17:97",
1796
+ "scope": 38753,
1797
+ "src": "3508:17:97",
1725
1798
  "stateVariable": false,
1726
1799
  "storageLocation": "default",
1727
1800
  "typeDescriptions": {
@@ -1729,10 +1802,10 @@
1729
1802
  "typeString": "address"
1730
1803
  },
1731
1804
  "typeName": {
1732
- "id": 38687,
1805
+ "id": 38737,
1733
1806
  "name": "address",
1734
1807
  "nodeType": "ElementaryTypeName",
1735
- "src": "2034:7:97",
1808
+ "src": "3508:7:97",
1736
1809
  "stateMutability": "nonpayable",
1737
1810
  "typeDescriptions": {
1738
1811
  "typeIdentifier": "t_address",
@@ -1743,13 +1816,13 @@
1743
1816
  },
1744
1817
  {
1745
1818
  "constant": false,
1746
- "id": 38690,
1819
+ "id": 38740,
1747
1820
  "mutability": "mutable",
1748
1821
  "name": "msgValue",
1749
- "nameLocation": "2065:8:97",
1822
+ "nameLocation": "3539:8:97",
1750
1823
  "nodeType": "VariableDeclaration",
1751
- "scope": 38703,
1752
- "src": "2057:16:97",
1824
+ "scope": 38753,
1825
+ "src": "3531:16:97",
1753
1826
  "stateVariable": false,
1754
1827
  "storageLocation": "default",
1755
1828
  "typeDescriptions": {
@@ -1757,10 +1830,10 @@
1757
1830
  "typeString": "uint256"
1758
1831
  },
1759
1832
  "typeName": {
1760
- "id": 38689,
1833
+ "id": 38739,
1761
1834
  "name": "uint256",
1762
1835
  "nodeType": "ElementaryTypeName",
1763
- "src": "2057:7:97",
1836
+ "src": "3531:7:97",
1764
1837
  "typeDescriptions": {
1765
1838
  "typeIdentifier": "t_uint256",
1766
1839
  "typeString": "uint256"
@@ -1769,21 +1842,21 @@
1769
1842
  "visibility": "internal"
1770
1843
  }
1771
1844
  ],
1772
- "src": "2001:76:97"
1845
+ "src": "3475:76:97"
1773
1846
  },
1774
1847
  "returnParameters": {
1775
- "id": 38694,
1848
+ "id": 38744,
1776
1849
  "nodeType": "ParameterList",
1777
1850
  "parameters": [
1778
1851
  {
1779
1852
  "constant": false,
1780
- "id": 38693,
1853
+ "id": 38743,
1781
1854
  "mutability": "mutable",
1782
1855
  "name": "",
1783
1856
  "nameLocation": "-1:-1:-1",
1784
1857
  "nodeType": "VariableDeclaration",
1785
- "scope": 38703,
1786
- "src": "2101:12:97",
1858
+ "scope": 38753,
1859
+ "src": "3575:12:97",
1787
1860
  "stateVariable": false,
1788
1861
  "storageLocation": "memory",
1789
1862
  "typeDescriptions": {
@@ -1791,10 +1864,10 @@
1791
1864
  "typeString": "bytes"
1792
1865
  },
1793
1866
  "typeName": {
1794
- "id": 38692,
1867
+ "id": 38742,
1795
1868
  "name": "bytes",
1796
1869
  "nodeType": "ElementaryTypeName",
1797
- "src": "2101:5:97",
1870
+ "src": "3575:5:97",
1798
1871
  "typeDescriptions": {
1799
1872
  "typeIdentifier": "t_bytes_storage_ptr",
1800
1873
  "typeString": "bytes"
@@ -1803,27 +1876,27 @@
1803
1876
  "visibility": "internal"
1804
1877
  }
1805
1878
  ],
1806
- "src": "2100:14:97"
1879
+ "src": "3574:14:97"
1807
1880
  },
1808
- "scope": 38832,
1881
+ "scope": 38886,
1809
1882
  "stateMutability": "pure",
1810
1883
  "virtual": false,
1811
1884
  "visibility": "internal"
1812
1885
  },
1813
1886
  {
1814
- "id": 38734,
1887
+ "id": 38785,
1815
1888
  "nodeType": "FunctionDefinition",
1816
- "src": "2184:317:97",
1889
+ "src": "4150:317:97",
1817
1890
  "nodes": [],
1818
1891
  "body": {
1819
- "id": 38733,
1892
+ "id": 38784,
1820
1893
  "nodeType": "Block",
1821
- "src": "2356:145:97",
1894
+ "src": "4322:145:97",
1822
1895
  "nodes": [],
1823
1896
  "statements": [
1824
1897
  {
1825
1898
  "expression": {
1826
- "id": 38731,
1899
+ "id": 38782,
1827
1900
  "isConstant": false,
1828
1901
  "isLValue": false,
1829
1902
  "isPure": false,
@@ -1831,38 +1904,38 @@
1831
1904
  "leftHandSide": {
1832
1905
  "components": [
1833
1906
  {
1834
- "id": 38718,
1907
+ "id": 38769,
1835
1908
  "name": "success",
1836
1909
  "nodeType": "Identifier",
1837
1910
  "overloadedDeclarations": [],
1838
- "referencedDeclaration": 38714,
1839
- "src": "2363:7:97",
1911
+ "referencedDeclaration": 38765,
1912
+ "src": "4329:7:97",
1840
1913
  "typeDescriptions": {
1841
1914
  "typeIdentifier": "t_bool",
1842
1915
  "typeString": "bool"
1843
1916
  }
1844
1917
  },
1845
1918
  {
1846
- "id": 38719,
1919
+ "id": 38770,
1847
1920
  "name": "data",
1848
1921
  "nodeType": "Identifier",
1849
1922
  "overloadedDeclarations": [],
1850
- "referencedDeclaration": 38716,
1851
- "src": "2372:4:97",
1923
+ "referencedDeclaration": 38767,
1924
+ "src": "4338:4:97",
1852
1925
  "typeDescriptions": {
1853
1926
  "typeIdentifier": "t_bytes_memory_ptr",
1854
1927
  "typeString": "bytes memory"
1855
1928
  }
1856
1929
  }
1857
1930
  ],
1858
- "id": 38720,
1931
+ "id": 38771,
1859
1932
  "isConstant": false,
1860
1933
  "isInlineArray": false,
1861
1934
  "isLValue": true,
1862
1935
  "isPure": false,
1863
1936
  "lValueRequested": true,
1864
1937
  "nodeType": "TupleExpression",
1865
- "src": "2362:15:97",
1938
+ "src": "4328:15:97",
1866
1939
  "typeDescriptions": {
1867
1940
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
1868
1941
  "typeString": "tuple(bool,bytes memory)"
@@ -1875,36 +1948,36 @@
1875
1948
  {
1876
1949
  "arguments": [
1877
1950
  {
1878
- "id": 38726,
1951
+ "id": 38777,
1879
1952
  "name": "callData",
1880
1953
  "nodeType": "Identifier",
1881
1954
  "overloadedDeclarations": [],
1882
- "referencedDeclaration": 38711,
1883
- "src": "2437:8:97",
1955
+ "referencedDeclaration": 38762,
1956
+ "src": "4403:8:97",
1884
1957
  "typeDescriptions": {
1885
1958
  "typeIdentifier": "t_bytes_memory_ptr",
1886
1959
  "typeString": "bytes memory"
1887
1960
  }
1888
1961
  },
1889
1962
  {
1890
- "id": 38727,
1963
+ "id": 38778,
1891
1964
  "name": "msgSender",
1892
1965
  "nodeType": "Identifier",
1893
1966
  "overloadedDeclarations": [],
1894
- "referencedDeclaration": 38705,
1895
- "src": "2458:9:97",
1967
+ "referencedDeclaration": 38756,
1968
+ "src": "4424:9:97",
1896
1969
  "typeDescriptions": {
1897
1970
  "typeIdentifier": "t_address",
1898
1971
  "typeString": "address"
1899
1972
  }
1900
1973
  },
1901
1974
  {
1902
- "id": 38728,
1975
+ "id": 38779,
1903
1976
  "name": "msgValue",
1904
1977
  "nodeType": "Identifier",
1905
1978
  "overloadedDeclarations": [],
1906
- "referencedDeclaration": 38707,
1907
- "src": "2479:8:97",
1979
+ "referencedDeclaration": 38758,
1980
+ "src": "4445:8:97",
1908
1981
  "typeDescriptions": {
1909
1982
  "typeIdentifier": "t_uint256",
1910
1983
  "typeString": "uint256"
@@ -1926,27 +1999,27 @@
1926
1999
  "typeString": "uint256"
1927
2000
  }
1928
2001
  ],
1929
- "id": 38725,
2002
+ "id": 38776,
1930
2003
  "name": "appendContext",
1931
2004
  "nodeType": "Identifier",
1932
2005
  "overloadedDeclarations": [],
1933
- "referencedDeclaration": 38703,
1934
- "src": "2411:13:97",
2006
+ "referencedDeclaration": 38753,
2007
+ "src": "4377:13:97",
1935
2008
  "typeDescriptions": {
1936
2009
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
1937
2010
  "typeString": "function (bytes memory,address,uint256) pure returns (bytes memory)"
1938
2011
  }
1939
2012
  },
1940
- "id": 38729,
2013
+ "id": 38780,
1941
2014
  "isConstant": false,
1942
2015
  "isLValue": false,
1943
2016
  "isPure": false,
1944
2017
  "kind": "functionCall",
1945
2018
  "lValueRequested": false,
1946
2019
  "nameLocations": [
1947
- "2427:8:97",
1948
- "2447:9:97",
1949
- "2469:8:97"
2020
+ "4393:8:97",
2021
+ "4413:9:97",
2022
+ "4435:8:97"
1950
2023
  ],
1951
2024
  "names": [
1952
2025
  "callData",
@@ -1954,7 +2027,7 @@
1954
2027
  "msgValue"
1955
2028
  ],
1956
2029
  "nodeType": "FunctionCall",
1957
- "src": "2411:79:97",
2030
+ "src": "4377:79:97",
1958
2031
  "tryCall": false,
1959
2032
  "typeDescriptions": {
1960
2033
  "typeIdentifier": "t_bytes_memory_ptr",
@@ -1977,32 +2050,32 @@
1977
2050
  }
1978
2051
  ],
1979
2052
  "expression": {
1980
- "id": 38721,
2053
+ "id": 38772,
1981
2054
  "name": "target",
1982
2055
  "nodeType": "Identifier",
1983
2056
  "overloadedDeclarations": [],
1984
- "referencedDeclaration": 38709,
1985
- "src": "2380:6:97",
2057
+ "referencedDeclaration": 38760,
2058
+ "src": "4346:6:97",
1986
2059
  "typeDescriptions": {
1987
2060
  "typeIdentifier": "t_address",
1988
2061
  "typeString": "address"
1989
2062
  }
1990
2063
  },
1991
- "id": 38722,
2064
+ "id": 38773,
1992
2065
  "isConstant": false,
1993
2066
  "isLValue": false,
1994
2067
  "isPure": false,
1995
2068
  "lValueRequested": false,
1996
- "memberLocation": "2387:4:97",
2069
+ "memberLocation": "4353:4:97",
1997
2070
  "memberName": "call",
1998
2071
  "nodeType": "MemberAccess",
1999
- "src": "2380:11:97",
2072
+ "src": "4346:11:97",
2000
2073
  "typeDescriptions": {
2001
2074
  "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2002
2075
  "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
2003
2076
  }
2004
2077
  },
2005
- "id": 38724,
2078
+ "id": 38775,
2006
2079
  "isConstant": false,
2007
2080
  "isLValue": false,
2008
2081
  "isPure": false,
@@ -2014,14 +2087,14 @@
2014
2087
  "options": [
2015
2088
  {
2016
2089
  "hexValue": "30",
2017
- "id": 38723,
2090
+ "id": 38774,
2018
2091
  "isConstant": false,
2019
2092
  "isLValue": false,
2020
2093
  "isPure": true,
2021
2094
  "kind": "number",
2022
2095
  "lValueRequested": false,
2023
2096
  "nodeType": "Literal",
2024
- "src": "2400:1:97",
2097
+ "src": "4366:1:97",
2025
2098
  "typeDescriptions": {
2026
2099
  "typeIdentifier": "t_rational_0_by_1",
2027
2100
  "typeString": "int_const 0"
@@ -2029,13 +2102,13 @@
2029
2102
  "value": "0"
2030
2103
  }
2031
2104
  ],
2032
- "src": "2380:23:97",
2105
+ "src": "4346:23:97",
2033
2106
  "typeDescriptions": {
2034
2107
  "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
2035
2108
  "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
2036
2109
  }
2037
2110
  },
2038
- "id": 38730,
2111
+ "id": 38781,
2039
2112
  "isConstant": false,
2040
2113
  "isLValue": false,
2041
2114
  "isPure": false,
@@ -2044,43 +2117,49 @@
2044
2117
  "nameLocations": [],
2045
2118
  "names": [],
2046
2119
  "nodeType": "FunctionCall",
2047
- "src": "2380:116:97",
2120
+ "src": "4346:116:97",
2048
2121
  "tryCall": false,
2049
2122
  "typeDescriptions": {
2050
2123
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2051
2124
  "typeString": "tuple(bool,bytes memory)"
2052
2125
  }
2053
2126
  },
2054
- "src": "2362:134:97",
2127
+ "src": "4328:134:97",
2055
2128
  "typeDescriptions": {
2056
2129
  "typeIdentifier": "t_tuple$__$",
2057
2130
  "typeString": "tuple()"
2058
2131
  }
2059
2132
  },
2060
- "id": 38732,
2133
+ "id": 38783,
2061
2134
  "nodeType": "ExpressionStatement",
2062
- "src": "2362:134:97"
2135
+ "src": "4328:134:97"
2063
2136
  }
2064
2137
  ]
2065
2138
  },
2139
+ "documentation": {
2140
+ "id": 38754,
2141
+ "nodeType": "StructuredDocumentation",
2142
+ "src": "3658:489:97",
2143
+ "text": " @notice Makes a call to the target contract with context values appended to the calldata.\n @param msgSender The address of the transaction sender.\n @param msgValue The amount of ether sent with the original transaction.\n @param target The address of the contract to call.\n @param callData The calldata for the call.\n @return success A boolean indicating whether the call was successful or not.\n @return data The abi encoded return data from the call."
2144
+ },
2066
2145
  "implemented": true,
2067
2146
  "kind": "function",
2068
2147
  "modifiers": [],
2069
2148
  "name": "callWithContext",
2070
- "nameLocation": "2193:15:97",
2149
+ "nameLocation": "4159:15:97",
2071
2150
  "parameters": {
2072
- "id": 38712,
2151
+ "id": 38763,
2073
2152
  "nodeType": "ParameterList",
2074
2153
  "parameters": [
2075
2154
  {
2076
2155
  "constant": false,
2077
- "id": 38705,
2156
+ "id": 38756,
2078
2157
  "mutability": "mutable",
2079
2158
  "name": "msgSender",
2080
- "nameLocation": "2222:9:97",
2159
+ "nameLocation": "4188:9:97",
2081
2160
  "nodeType": "VariableDeclaration",
2082
- "scope": 38734,
2083
- "src": "2214:17:97",
2161
+ "scope": 38785,
2162
+ "src": "4180:17:97",
2084
2163
  "stateVariable": false,
2085
2164
  "storageLocation": "default",
2086
2165
  "typeDescriptions": {
@@ -2088,10 +2167,10 @@
2088
2167
  "typeString": "address"
2089
2168
  },
2090
2169
  "typeName": {
2091
- "id": 38704,
2170
+ "id": 38755,
2092
2171
  "name": "address",
2093
2172
  "nodeType": "ElementaryTypeName",
2094
- "src": "2214:7:97",
2173
+ "src": "4180:7:97",
2095
2174
  "stateMutability": "nonpayable",
2096
2175
  "typeDescriptions": {
2097
2176
  "typeIdentifier": "t_address",
@@ -2102,13 +2181,13 @@
2102
2181
  },
2103
2182
  {
2104
2183
  "constant": false,
2105
- "id": 38707,
2184
+ "id": 38758,
2106
2185
  "mutability": "mutable",
2107
2186
  "name": "msgValue",
2108
- "nameLocation": "2245:8:97",
2187
+ "nameLocation": "4211:8:97",
2109
2188
  "nodeType": "VariableDeclaration",
2110
- "scope": 38734,
2111
- "src": "2237:16:97",
2189
+ "scope": 38785,
2190
+ "src": "4203:16:97",
2112
2191
  "stateVariable": false,
2113
2192
  "storageLocation": "default",
2114
2193
  "typeDescriptions": {
@@ -2116,10 +2195,10 @@
2116
2195
  "typeString": "uint256"
2117
2196
  },
2118
2197
  "typeName": {
2119
- "id": 38706,
2198
+ "id": 38757,
2120
2199
  "name": "uint256",
2121
2200
  "nodeType": "ElementaryTypeName",
2122
- "src": "2237:7:97",
2201
+ "src": "4203:7:97",
2123
2202
  "typeDescriptions": {
2124
2203
  "typeIdentifier": "t_uint256",
2125
2204
  "typeString": "uint256"
@@ -2129,13 +2208,13 @@
2129
2208
  },
2130
2209
  {
2131
2210
  "constant": false,
2132
- "id": 38709,
2211
+ "id": 38760,
2133
2212
  "mutability": "mutable",
2134
2213
  "name": "target",
2135
- "nameLocation": "2267:6:97",
2214
+ "nameLocation": "4233:6:97",
2136
2215
  "nodeType": "VariableDeclaration",
2137
- "scope": 38734,
2138
- "src": "2259:14:97",
2216
+ "scope": 38785,
2217
+ "src": "4225:14:97",
2139
2218
  "stateVariable": false,
2140
2219
  "storageLocation": "default",
2141
2220
  "typeDescriptions": {
@@ -2143,10 +2222,10 @@
2143
2222
  "typeString": "address"
2144
2223
  },
2145
2224
  "typeName": {
2146
- "id": 38708,
2225
+ "id": 38759,
2147
2226
  "name": "address",
2148
2227
  "nodeType": "ElementaryTypeName",
2149
- "src": "2259:7:97",
2228
+ "src": "4225:7:97",
2150
2229
  "stateMutability": "nonpayable",
2151
2230
  "typeDescriptions": {
2152
2231
  "typeIdentifier": "t_address",
@@ -2157,13 +2236,13 @@
2157
2236
  },
2158
2237
  {
2159
2238
  "constant": false,
2160
- "id": 38711,
2239
+ "id": 38762,
2161
2240
  "mutability": "mutable",
2162
2241
  "name": "callData",
2163
- "nameLocation": "2292:8:97",
2242
+ "nameLocation": "4258:8:97",
2164
2243
  "nodeType": "VariableDeclaration",
2165
- "scope": 38734,
2166
- "src": "2279:21:97",
2244
+ "scope": 38785,
2245
+ "src": "4245:21:97",
2167
2246
  "stateVariable": false,
2168
2247
  "storageLocation": "memory",
2169
2248
  "typeDescriptions": {
@@ -2171,10 +2250,10 @@
2171
2250
  "typeString": "bytes"
2172
2251
  },
2173
2252
  "typeName": {
2174
- "id": 38710,
2253
+ "id": 38761,
2175
2254
  "name": "bytes",
2176
2255
  "nodeType": "ElementaryTypeName",
2177
- "src": "2279:5:97",
2256
+ "src": "4245:5:97",
2178
2257
  "typeDescriptions": {
2179
2258
  "typeIdentifier": "t_bytes_storage_ptr",
2180
2259
  "typeString": "bytes"
@@ -2183,21 +2262,21 @@
2183
2262
  "visibility": "internal"
2184
2263
  }
2185
2264
  ],
2186
- "src": "2208:96:97"
2265
+ "src": "4174:96:97"
2187
2266
  },
2188
2267
  "returnParameters": {
2189
- "id": 38717,
2268
+ "id": 38768,
2190
2269
  "nodeType": "ParameterList",
2191
2270
  "parameters": [
2192
2271
  {
2193
2272
  "constant": false,
2194
- "id": 38714,
2273
+ "id": 38765,
2195
2274
  "mutability": "mutable",
2196
2275
  "name": "success",
2197
- "nameLocation": "2328:7:97",
2276
+ "nameLocation": "4294:7:97",
2198
2277
  "nodeType": "VariableDeclaration",
2199
- "scope": 38734,
2200
- "src": "2323:12:97",
2278
+ "scope": 38785,
2279
+ "src": "4289:12:97",
2201
2280
  "stateVariable": false,
2202
2281
  "storageLocation": "default",
2203
2282
  "typeDescriptions": {
@@ -2205,10 +2284,10 @@
2205
2284
  "typeString": "bool"
2206
2285
  },
2207
2286
  "typeName": {
2208
- "id": 38713,
2287
+ "id": 38764,
2209
2288
  "name": "bool",
2210
2289
  "nodeType": "ElementaryTypeName",
2211
- "src": "2323:4:97",
2290
+ "src": "4289:4:97",
2212
2291
  "typeDescriptions": {
2213
2292
  "typeIdentifier": "t_bool",
2214
2293
  "typeString": "bool"
@@ -2218,13 +2297,13 @@
2218
2297
  },
2219
2298
  {
2220
2299
  "constant": false,
2221
- "id": 38716,
2300
+ "id": 38767,
2222
2301
  "mutability": "mutable",
2223
2302
  "name": "data",
2224
- "nameLocation": "2350:4:97",
2303
+ "nameLocation": "4316:4:97",
2225
2304
  "nodeType": "VariableDeclaration",
2226
- "scope": 38734,
2227
- "src": "2337:17:97",
2305
+ "scope": 38785,
2306
+ "src": "4303:17:97",
2228
2307
  "stateVariable": false,
2229
2308
  "storageLocation": "memory",
2230
2309
  "typeDescriptions": {
@@ -2232,10 +2311,10 @@
2232
2311
  "typeString": "bytes"
2233
2312
  },
2234
2313
  "typeName": {
2235
- "id": 38715,
2314
+ "id": 38766,
2236
2315
  "name": "bytes",
2237
2316
  "nodeType": "ElementaryTypeName",
2238
- "src": "2337:5:97",
2317
+ "src": "4303:5:97",
2239
2318
  "typeDescriptions": {
2240
2319
  "typeIdentifier": "t_bytes_storage_ptr",
2241
2320
  "typeString": "bytes"
@@ -2244,27 +2323,27 @@
2244
2323
  "visibility": "internal"
2245
2324
  }
2246
2325
  ],
2247
- "src": "2322:33:97"
2326
+ "src": "4288:33:97"
2248
2327
  },
2249
- "scope": 38832,
2328
+ "scope": 38886,
2250
2329
  "stateMutability": "nonpayable",
2251
2330
  "virtual": false,
2252
2331
  "visibility": "internal"
2253
2332
  },
2254
2333
  {
2255
- "id": 38763,
2334
+ "id": 38815,
2256
2335
  "nodeType": "FunctionDefinition",
2257
- "src": "2505:321:97",
2336
+ "src": "4971:321:97",
2258
2337
  "nodes": [],
2259
2338
  "body": {
2260
- "id": 38762,
2339
+ "id": 38814,
2261
2340
  "nodeType": "Block",
2262
- "src": "2685:141:97",
2341
+ "src": "5151:141:97",
2263
2342
  "nodes": [],
2264
2343
  "statements": [
2265
2344
  {
2266
2345
  "expression": {
2267
- "id": 38760,
2346
+ "id": 38812,
2268
2347
  "isConstant": false,
2269
2348
  "isLValue": false,
2270
2349
  "isPure": false,
@@ -2272,38 +2351,38 @@
2272
2351
  "leftHandSide": {
2273
2352
  "components": [
2274
2353
  {
2275
- "id": 38749,
2354
+ "id": 38801,
2276
2355
  "name": "success",
2277
2356
  "nodeType": "Identifier",
2278
2357
  "overloadedDeclarations": [],
2279
- "referencedDeclaration": 38745,
2280
- "src": "2692:7:97",
2358
+ "referencedDeclaration": 38797,
2359
+ "src": "5158:7:97",
2281
2360
  "typeDescriptions": {
2282
2361
  "typeIdentifier": "t_bool",
2283
2362
  "typeString": "bool"
2284
2363
  }
2285
2364
  },
2286
2365
  {
2287
- "id": 38750,
2366
+ "id": 38802,
2288
2367
  "name": "data",
2289
2368
  "nodeType": "Identifier",
2290
2369
  "overloadedDeclarations": [],
2291
- "referencedDeclaration": 38747,
2292
- "src": "2701:4:97",
2370
+ "referencedDeclaration": 38799,
2371
+ "src": "5167:4:97",
2293
2372
  "typeDescriptions": {
2294
2373
  "typeIdentifier": "t_bytes_memory_ptr",
2295
2374
  "typeString": "bytes memory"
2296
2375
  }
2297
2376
  }
2298
2377
  ],
2299
- "id": 38751,
2378
+ "id": 38803,
2300
2379
  "isConstant": false,
2301
2380
  "isInlineArray": false,
2302
2381
  "isLValue": true,
2303
2382
  "isPure": false,
2304
2383
  "lValueRequested": true,
2305
2384
  "nodeType": "TupleExpression",
2306
- "src": "2691:15:97",
2385
+ "src": "5157:15:97",
2307
2386
  "typeDescriptions": {
2308
2387
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2309
2388
  "typeString": "tuple(bool,bytes memory)"
@@ -2316,36 +2395,36 @@
2316
2395
  {
2317
2396
  "arguments": [
2318
2397
  {
2319
- "id": 38755,
2398
+ "id": 38807,
2320
2399
  "name": "callData",
2321
2400
  "nodeType": "Identifier",
2322
2401
  "overloadedDeclarations": [],
2323
- "referencedDeclaration": 38742,
2324
- "src": "2762:8:97",
2402
+ "referencedDeclaration": 38794,
2403
+ "src": "5228:8:97",
2325
2404
  "typeDescriptions": {
2326
2405
  "typeIdentifier": "t_bytes_memory_ptr",
2327
2406
  "typeString": "bytes memory"
2328
2407
  }
2329
2408
  },
2330
2409
  {
2331
- "id": 38756,
2410
+ "id": 38808,
2332
2411
  "name": "msgSender",
2333
2412
  "nodeType": "Identifier",
2334
2413
  "overloadedDeclarations": [],
2335
- "referencedDeclaration": 38736,
2336
- "src": "2783:9:97",
2414
+ "referencedDeclaration": 38788,
2415
+ "src": "5249:9:97",
2337
2416
  "typeDescriptions": {
2338
2417
  "typeIdentifier": "t_address",
2339
2418
  "typeString": "address"
2340
2419
  }
2341
2420
  },
2342
2421
  {
2343
- "id": 38757,
2422
+ "id": 38809,
2344
2423
  "name": "msgValue",
2345
2424
  "nodeType": "Identifier",
2346
2425
  "overloadedDeclarations": [],
2347
- "referencedDeclaration": 38738,
2348
- "src": "2804:8:97",
2426
+ "referencedDeclaration": 38790,
2427
+ "src": "5270:8:97",
2349
2428
  "typeDescriptions": {
2350
2429
  "typeIdentifier": "t_uint256",
2351
2430
  "typeString": "uint256"
@@ -2367,27 +2446,27 @@
2367
2446
  "typeString": "uint256"
2368
2447
  }
2369
2448
  ],
2370
- "id": 38754,
2449
+ "id": 38806,
2371
2450
  "name": "appendContext",
2372
2451
  "nodeType": "Identifier",
2373
2452
  "overloadedDeclarations": [],
2374
- "referencedDeclaration": 38703,
2375
- "src": "2736:13:97",
2453
+ "referencedDeclaration": 38753,
2454
+ "src": "5202:13:97",
2376
2455
  "typeDescriptions": {
2377
2456
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
2378
2457
  "typeString": "function (bytes memory,address,uint256) pure returns (bytes memory)"
2379
2458
  }
2380
2459
  },
2381
- "id": 38758,
2460
+ "id": 38810,
2382
2461
  "isConstant": false,
2383
2462
  "isLValue": false,
2384
2463
  "isPure": false,
2385
2464
  "kind": "functionCall",
2386
2465
  "lValueRequested": false,
2387
2466
  "nameLocations": [
2388
- "2752:8:97",
2389
- "2772:9:97",
2390
- "2794:8:97"
2467
+ "5218:8:97",
2468
+ "5238:9:97",
2469
+ "5260:8:97"
2391
2470
  ],
2392
2471
  "names": [
2393
2472
  "callData",
@@ -2395,7 +2474,7 @@
2395
2474
  "msgValue"
2396
2475
  ],
2397
2476
  "nodeType": "FunctionCall",
2398
- "src": "2736:79:97",
2477
+ "src": "5202:79:97",
2399
2478
  "tryCall": false,
2400
2479
  "typeDescriptions": {
2401
2480
  "typeIdentifier": "t_bytes_memory_ptr",
@@ -2411,32 +2490,32 @@
2411
2490
  }
2412
2491
  ],
2413
2492
  "expression": {
2414
- "id": 38752,
2493
+ "id": 38804,
2415
2494
  "name": "target",
2416
2495
  "nodeType": "Identifier",
2417
2496
  "overloadedDeclarations": [],
2418
- "referencedDeclaration": 38740,
2419
- "src": "2709:6:97",
2497
+ "referencedDeclaration": 38792,
2498
+ "src": "5175:6:97",
2420
2499
  "typeDescriptions": {
2421
2500
  "typeIdentifier": "t_address",
2422
2501
  "typeString": "address"
2423
2502
  }
2424
2503
  },
2425
- "id": 38753,
2504
+ "id": 38805,
2426
2505
  "isConstant": false,
2427
2506
  "isLValue": false,
2428
2507
  "isPure": false,
2429
2508
  "lValueRequested": false,
2430
- "memberLocation": "2716:12:97",
2509
+ "memberLocation": "5182:12:97",
2431
2510
  "memberName": "delegatecall",
2432
2511
  "nodeType": "MemberAccess",
2433
- "src": "2709:19:97",
2512
+ "src": "5175:19:97",
2434
2513
  "typeDescriptions": {
2435
2514
  "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2436
2515
  "typeString": "function (bytes memory) returns (bool,bytes memory)"
2437
2516
  }
2438
2517
  },
2439
- "id": 38759,
2518
+ "id": 38811,
2440
2519
  "isConstant": false,
2441
2520
  "isLValue": false,
2442
2521
  "isPure": false,
@@ -2445,43 +2524,49 @@
2445
2524
  "nameLocations": [],
2446
2525
  "names": [],
2447
2526
  "nodeType": "FunctionCall",
2448
- "src": "2709:112:97",
2527
+ "src": "5175:112:97",
2449
2528
  "tryCall": false,
2450
2529
  "typeDescriptions": {
2451
2530
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2452
2531
  "typeString": "tuple(bool,bytes memory)"
2453
2532
  }
2454
2533
  },
2455
- "src": "2691:130:97",
2534
+ "src": "5157:130:97",
2456
2535
  "typeDescriptions": {
2457
2536
  "typeIdentifier": "t_tuple$__$",
2458
2537
  "typeString": "tuple()"
2459
2538
  }
2460
2539
  },
2461
- "id": 38761,
2540
+ "id": 38813,
2462
2541
  "nodeType": "ExpressionStatement",
2463
- "src": "2691:130:97"
2542
+ "src": "5157:130:97"
2464
2543
  }
2465
2544
  ]
2466
2545
  },
2546
+ "documentation": {
2547
+ "id": 38786,
2548
+ "nodeType": "StructuredDocumentation",
2549
+ "src": "4471:497:97",
2550
+ "text": " @notice Makes a delegatecall to the target contract with context values appended to the calldata.\n @param msgSender The address of the transaction sender.\n @param msgValue The amount of ether sent with the original transaction.\n @param target The address of the contract to call.\n @param callData The calldata for the call.\n @return success A boolean indicating whether the call was successful or not.\n @return data The abi encoded return data from the call."
2551
+ },
2467
2552
  "implemented": true,
2468
2553
  "kind": "function",
2469
2554
  "modifiers": [],
2470
2555
  "name": "delegatecallWithContext",
2471
- "nameLocation": "2514:23:97",
2556
+ "nameLocation": "4980:23:97",
2472
2557
  "parameters": {
2473
- "id": 38743,
2558
+ "id": 38795,
2474
2559
  "nodeType": "ParameterList",
2475
2560
  "parameters": [
2476
2561
  {
2477
2562
  "constant": false,
2478
- "id": 38736,
2563
+ "id": 38788,
2479
2564
  "mutability": "mutable",
2480
2565
  "name": "msgSender",
2481
- "nameLocation": "2551:9:97",
2566
+ "nameLocation": "5017:9:97",
2482
2567
  "nodeType": "VariableDeclaration",
2483
- "scope": 38763,
2484
- "src": "2543:17:97",
2568
+ "scope": 38815,
2569
+ "src": "5009:17:97",
2485
2570
  "stateVariable": false,
2486
2571
  "storageLocation": "default",
2487
2572
  "typeDescriptions": {
@@ -2489,10 +2574,10 @@
2489
2574
  "typeString": "address"
2490
2575
  },
2491
2576
  "typeName": {
2492
- "id": 38735,
2577
+ "id": 38787,
2493
2578
  "name": "address",
2494
2579
  "nodeType": "ElementaryTypeName",
2495
- "src": "2543:7:97",
2580
+ "src": "5009:7:97",
2496
2581
  "stateMutability": "nonpayable",
2497
2582
  "typeDescriptions": {
2498
2583
  "typeIdentifier": "t_address",
@@ -2503,13 +2588,13 @@
2503
2588
  },
2504
2589
  {
2505
2590
  "constant": false,
2506
- "id": 38738,
2591
+ "id": 38790,
2507
2592
  "mutability": "mutable",
2508
2593
  "name": "msgValue",
2509
- "nameLocation": "2574:8:97",
2594
+ "nameLocation": "5040:8:97",
2510
2595
  "nodeType": "VariableDeclaration",
2511
- "scope": 38763,
2512
- "src": "2566:16:97",
2596
+ "scope": 38815,
2597
+ "src": "5032:16:97",
2513
2598
  "stateVariable": false,
2514
2599
  "storageLocation": "default",
2515
2600
  "typeDescriptions": {
@@ -2517,10 +2602,10 @@
2517
2602
  "typeString": "uint256"
2518
2603
  },
2519
2604
  "typeName": {
2520
- "id": 38737,
2605
+ "id": 38789,
2521
2606
  "name": "uint256",
2522
2607
  "nodeType": "ElementaryTypeName",
2523
- "src": "2566:7:97",
2608
+ "src": "5032:7:97",
2524
2609
  "typeDescriptions": {
2525
2610
  "typeIdentifier": "t_uint256",
2526
2611
  "typeString": "uint256"
@@ -2530,13 +2615,13 @@
2530
2615
  },
2531
2616
  {
2532
2617
  "constant": false,
2533
- "id": 38740,
2618
+ "id": 38792,
2534
2619
  "mutability": "mutable",
2535
2620
  "name": "target",
2536
- "nameLocation": "2596:6:97",
2621
+ "nameLocation": "5062:6:97",
2537
2622
  "nodeType": "VariableDeclaration",
2538
- "scope": 38763,
2539
- "src": "2588:14:97",
2623
+ "scope": 38815,
2624
+ "src": "5054:14:97",
2540
2625
  "stateVariable": false,
2541
2626
  "storageLocation": "default",
2542
2627
  "typeDescriptions": {
@@ -2544,10 +2629,10 @@
2544
2629
  "typeString": "address"
2545
2630
  },
2546
2631
  "typeName": {
2547
- "id": 38739,
2632
+ "id": 38791,
2548
2633
  "name": "address",
2549
2634
  "nodeType": "ElementaryTypeName",
2550
- "src": "2588:7:97",
2635
+ "src": "5054:7:97",
2551
2636
  "stateMutability": "nonpayable",
2552
2637
  "typeDescriptions": {
2553
2638
  "typeIdentifier": "t_address",
@@ -2558,13 +2643,13 @@
2558
2643
  },
2559
2644
  {
2560
2645
  "constant": false,
2561
- "id": 38742,
2646
+ "id": 38794,
2562
2647
  "mutability": "mutable",
2563
2648
  "name": "callData",
2564
- "nameLocation": "2621:8:97",
2649
+ "nameLocation": "5087:8:97",
2565
2650
  "nodeType": "VariableDeclaration",
2566
- "scope": 38763,
2567
- "src": "2608:21:97",
2651
+ "scope": 38815,
2652
+ "src": "5074:21:97",
2568
2653
  "stateVariable": false,
2569
2654
  "storageLocation": "memory",
2570
2655
  "typeDescriptions": {
@@ -2572,10 +2657,10 @@
2572
2657
  "typeString": "bytes"
2573
2658
  },
2574
2659
  "typeName": {
2575
- "id": 38741,
2660
+ "id": 38793,
2576
2661
  "name": "bytes",
2577
2662
  "nodeType": "ElementaryTypeName",
2578
- "src": "2608:5:97",
2663
+ "src": "5074:5:97",
2579
2664
  "typeDescriptions": {
2580
2665
  "typeIdentifier": "t_bytes_storage_ptr",
2581
2666
  "typeString": "bytes"
@@ -2584,21 +2669,21 @@
2584
2669
  "visibility": "internal"
2585
2670
  }
2586
2671
  ],
2587
- "src": "2537:96:97"
2672
+ "src": "5003:96:97"
2588
2673
  },
2589
2674
  "returnParameters": {
2590
- "id": 38748,
2675
+ "id": 38800,
2591
2676
  "nodeType": "ParameterList",
2592
2677
  "parameters": [
2593
2678
  {
2594
2679
  "constant": false,
2595
- "id": 38745,
2680
+ "id": 38797,
2596
2681
  "mutability": "mutable",
2597
2682
  "name": "success",
2598
- "nameLocation": "2657:7:97",
2683
+ "nameLocation": "5123:7:97",
2599
2684
  "nodeType": "VariableDeclaration",
2600
- "scope": 38763,
2601
- "src": "2652:12:97",
2685
+ "scope": 38815,
2686
+ "src": "5118:12:97",
2602
2687
  "stateVariable": false,
2603
2688
  "storageLocation": "default",
2604
2689
  "typeDescriptions": {
@@ -2606,10 +2691,10 @@
2606
2691
  "typeString": "bool"
2607
2692
  },
2608
2693
  "typeName": {
2609
- "id": 38744,
2694
+ "id": 38796,
2610
2695
  "name": "bool",
2611
2696
  "nodeType": "ElementaryTypeName",
2612
- "src": "2652:4:97",
2697
+ "src": "5118:4:97",
2613
2698
  "typeDescriptions": {
2614
2699
  "typeIdentifier": "t_bool",
2615
2700
  "typeString": "bool"
@@ -2619,13 +2704,13 @@
2619
2704
  },
2620
2705
  {
2621
2706
  "constant": false,
2622
- "id": 38747,
2707
+ "id": 38799,
2623
2708
  "mutability": "mutable",
2624
2709
  "name": "data",
2625
- "nameLocation": "2679:4:97",
2710
+ "nameLocation": "5145:4:97",
2626
2711
  "nodeType": "VariableDeclaration",
2627
- "scope": 38763,
2628
- "src": "2666:17:97",
2712
+ "scope": 38815,
2713
+ "src": "5132:17:97",
2629
2714
  "stateVariable": false,
2630
2715
  "storageLocation": "memory",
2631
2716
  "typeDescriptions": {
@@ -2633,10 +2718,10 @@
2633
2718
  "typeString": "bytes"
2634
2719
  },
2635
2720
  "typeName": {
2636
- "id": 38746,
2721
+ "id": 38798,
2637
2722
  "name": "bytes",
2638
2723
  "nodeType": "ElementaryTypeName",
2639
- "src": "2666:5:97",
2724
+ "src": "5132:5:97",
2640
2725
  "typeDescriptions": {
2641
2726
  "typeIdentifier": "t_bytes_storage_ptr",
2642
2727
  "typeString": "bytes"
@@ -2645,39 +2730,39 @@
2645
2730
  "visibility": "internal"
2646
2731
  }
2647
2732
  ],
2648
- "src": "2651:33:97"
2733
+ "src": "5117:33:97"
2649
2734
  },
2650
- "scope": 38832,
2735
+ "scope": 38886,
2651
2736
  "stateMutability": "nonpayable",
2652
2737
  "virtual": false,
2653
2738
  "visibility": "internal"
2654
2739
  },
2655
2740
  {
2656
- "id": 38797,
2741
+ "id": 38850,
2657
2742
  "nodeType": "FunctionDefinition",
2658
- "src": "2830:399:97",
2743
+ "src": "5747:399:97",
2659
2744
  "nodes": [],
2660
2745
  "body": {
2661
- "id": 38796,
2746
+ "id": 38849,
2662
2747
  "nodeType": "Block",
2663
- "src": "2996:233:97",
2748
+ "src": "5913:233:97",
2664
2749
  "nodes": [],
2665
2750
  "statements": [
2666
2751
  {
2667
2752
  "assignments": [
2668
- 38777,
2669
- 38779
2753
+ 38830,
2754
+ 38832
2670
2755
  ],
2671
2756
  "declarations": [
2672
2757
  {
2673
2758
  "constant": false,
2674
- "id": 38777,
2759
+ "id": 38830,
2675
2760
  "mutability": "mutable",
2676
2761
  "name": "success",
2677
- "nameLocation": "3008:7:97",
2762
+ "nameLocation": "5925:7:97",
2678
2763
  "nodeType": "VariableDeclaration",
2679
- "scope": 38796,
2680
- "src": "3003:12:97",
2764
+ "scope": 38849,
2765
+ "src": "5920:12:97",
2681
2766
  "stateVariable": false,
2682
2767
  "storageLocation": "default",
2683
2768
  "typeDescriptions": {
@@ -2685,10 +2770,10 @@
2685
2770
  "typeString": "bool"
2686
2771
  },
2687
2772
  "typeName": {
2688
- "id": 38776,
2773
+ "id": 38829,
2689
2774
  "name": "bool",
2690
2775
  "nodeType": "ElementaryTypeName",
2691
- "src": "3003:4:97",
2776
+ "src": "5920:4:97",
2692
2777
  "typeDescriptions": {
2693
2778
  "typeIdentifier": "t_bool",
2694
2779
  "typeString": "bool"
@@ -2698,13 +2783,13 @@
2698
2783
  },
2699
2784
  {
2700
2785
  "constant": false,
2701
- "id": 38779,
2786
+ "id": 38832,
2702
2787
  "mutability": "mutable",
2703
2788
  "name": "_data",
2704
- "nameLocation": "3030:5:97",
2789
+ "nameLocation": "5947:5:97",
2705
2790
  "nodeType": "VariableDeclaration",
2706
- "scope": 38796,
2707
- "src": "3017:18:97",
2791
+ "scope": 38849,
2792
+ "src": "5934:18:97",
2708
2793
  "stateVariable": false,
2709
2794
  "storageLocation": "memory",
2710
2795
  "typeDescriptions": {
@@ -2712,10 +2797,10 @@
2712
2797
  "typeString": "bytes"
2713
2798
  },
2714
2799
  "typeName": {
2715
- "id": 38778,
2800
+ "id": 38831,
2716
2801
  "name": "bytes",
2717
2802
  "nodeType": "ElementaryTypeName",
2718
- "src": "3017:5:97",
2803
+ "src": "5934:5:97",
2719
2804
  "typeDescriptions": {
2720
2805
  "typeIdentifier": "t_bytes_storage_ptr",
2721
2806
  "typeString": "bytes"
@@ -2724,52 +2809,52 @@
2724
2809
  "visibility": "internal"
2725
2810
  }
2726
2811
  ],
2727
- "id": 38786,
2812
+ "id": 38839,
2728
2813
  "initialValue": {
2729
2814
  "arguments": [
2730
2815
  {
2731
- "id": 38781,
2816
+ "id": 38834,
2732
2817
  "name": "msgSender",
2733
2818
  "nodeType": "Identifier",
2734
2819
  "overloadedDeclarations": [],
2735
- "referencedDeclaration": 38765,
2736
- "src": "3074:9:97",
2820
+ "referencedDeclaration": 38818,
2821
+ "src": "5991:9:97",
2737
2822
  "typeDescriptions": {
2738
2823
  "typeIdentifier": "t_address",
2739
2824
  "typeString": "address"
2740
2825
  }
2741
2826
  },
2742
2827
  {
2743
- "id": 38782,
2828
+ "id": 38835,
2744
2829
  "name": "msgValue",
2745
2830
  "nodeType": "Identifier",
2746
2831
  "overloadedDeclarations": [],
2747
- "referencedDeclaration": 38767,
2748
- "src": "3101:8:97",
2832
+ "referencedDeclaration": 38820,
2833
+ "src": "6018:8:97",
2749
2834
  "typeDescriptions": {
2750
2835
  "typeIdentifier": "t_uint256",
2751
2836
  "typeString": "uint256"
2752
2837
  }
2753
2838
  },
2754
2839
  {
2755
- "id": 38783,
2840
+ "id": 38836,
2756
2841
  "name": "target",
2757
2842
  "nodeType": "Identifier",
2758
2843
  "overloadedDeclarations": [],
2759
- "referencedDeclaration": 38769,
2760
- "src": "3125:6:97",
2844
+ "referencedDeclaration": 38822,
2845
+ "src": "6042:6:97",
2761
2846
  "typeDescriptions": {
2762
2847
  "typeIdentifier": "t_address",
2763
2848
  "typeString": "address"
2764
2849
  }
2765
2850
  },
2766
2851
  {
2767
- "id": 38784,
2852
+ "id": 38837,
2768
2853
  "name": "callData",
2769
2854
  "nodeType": "Identifier",
2770
2855
  "overloadedDeclarations": [],
2771
- "referencedDeclaration": 38771,
2772
- "src": "3149:8:97",
2856
+ "referencedDeclaration": 38824,
2857
+ "src": "6066:8:97",
2773
2858
  "typeDescriptions": {
2774
2859
  "typeIdentifier": "t_bytes_memory_ptr",
2775
2860
  "typeString": "bytes memory"
@@ -2795,28 +2880,28 @@
2795
2880
  "typeString": "bytes memory"
2796
2881
  }
2797
2882
  ],
2798
- "id": 38780,
2883
+ "id": 38833,
2799
2884
  "name": "callWithContext",
2800
2885
  "nodeType": "Identifier",
2801
2886
  "overloadedDeclarations": [],
2802
- "referencedDeclaration": 38734,
2803
- "src": "3039:15:97",
2887
+ "referencedDeclaration": 38785,
2888
+ "src": "5956:15:97",
2804
2889
  "typeDescriptions": {
2805
2890
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2806
2891
  "typeString": "function (address,uint256,address,bytes memory) returns (bool,bytes memory)"
2807
2892
  }
2808
2893
  },
2809
- "id": 38785,
2894
+ "id": 38838,
2810
2895
  "isConstant": false,
2811
2896
  "isLValue": false,
2812
2897
  "isPure": false,
2813
2898
  "kind": "functionCall",
2814
2899
  "lValueRequested": false,
2815
2900
  "nameLocations": [
2816
- "3063:9:97",
2817
- "3091:8:97",
2818
- "3117:6:97",
2819
- "3139:8:97"
2901
+ "5980:9:97",
2902
+ "6008:8:97",
2903
+ "6034:6:97",
2904
+ "6056:8:97"
2820
2905
  ],
2821
2906
  "names": [
2822
2907
  "msgSender",
@@ -2825,7 +2910,7 @@
2825
2910
  "callData"
2826
2911
  ],
2827
2912
  "nodeType": "FunctionCall",
2828
- "src": "3039:125:97",
2913
+ "src": "5956:125:97",
2829
2914
  "tryCall": false,
2830
2915
  "typeDescriptions": {
2831
2916
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
@@ -2833,11 +2918,11 @@
2833
2918
  }
2834
2919
  },
2835
2920
  "nodeType": "VariableDeclarationStatement",
2836
- "src": "3002:162:97"
2921
+ "src": "5919:162:97"
2837
2922
  },
2838
2923
  {
2839
2924
  "condition": {
2840
- "id": 38788,
2925
+ "id": 38841,
2841
2926
  "isConstant": false,
2842
2927
  "isLValue": false,
2843
2928
  "isPure": false,
@@ -2845,14 +2930,14 @@
2845
2930
  "nodeType": "UnaryOperation",
2846
2931
  "operator": "!",
2847
2932
  "prefix": true,
2848
- "src": "3174:8:97",
2933
+ "src": "6091:8:97",
2849
2934
  "subExpression": {
2850
- "id": 38787,
2935
+ "id": 38840,
2851
2936
  "name": "success",
2852
2937
  "nodeType": "Identifier",
2853
2938
  "overloadedDeclarations": [],
2854
- "referencedDeclaration": 38777,
2855
- "src": "3175:7:97",
2939
+ "referencedDeclaration": 38830,
2940
+ "src": "6092:7:97",
2856
2941
  "typeDescriptions": {
2857
2942
  "typeIdentifier": "t_bool",
2858
2943
  "typeString": "bool"
@@ -2863,19 +2948,19 @@
2863
2948
  "typeString": "bool"
2864
2949
  }
2865
2950
  },
2866
- "id": 38793,
2951
+ "id": 38846,
2867
2952
  "nodeType": "IfStatement",
2868
- "src": "3170:36:97",
2953
+ "src": "6087:36:97",
2869
2954
  "trueBody": {
2870
2955
  "expression": {
2871
2956
  "arguments": [
2872
2957
  {
2873
- "id": 38790,
2958
+ "id": 38843,
2874
2959
  "name": "_data",
2875
2960
  "nodeType": "Identifier",
2876
2961
  "overloadedDeclarations": [],
2877
- "referencedDeclaration": 38779,
2878
- "src": "3200:5:97",
2962
+ "referencedDeclaration": 38832,
2963
+ "src": "6117:5:97",
2879
2964
  "typeDescriptions": {
2880
2965
  "typeIdentifier": "t_bytes_memory_ptr",
2881
2966
  "typeString": "bytes memory"
@@ -2889,18 +2974,18 @@
2889
2974
  "typeString": "bytes memory"
2890
2975
  }
2891
2976
  ],
2892
- "id": 38789,
2977
+ "id": 38842,
2893
2978
  "name": "revertWithBytes",
2894
2979
  "nodeType": "Identifier",
2895
2980
  "overloadedDeclarations": [],
2896
- "referencedDeclaration": 39224,
2897
- "src": "3184:15:97",
2981
+ "referencedDeclaration": 39280,
2982
+ "src": "6101:15:97",
2898
2983
  "typeDescriptions": {
2899
2984
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$",
2900
2985
  "typeString": "function (bytes memory) pure"
2901
2986
  }
2902
2987
  },
2903
- "id": 38791,
2988
+ "id": 38844,
2904
2989
  "isConstant": false,
2905
2990
  "isLValue": false,
2906
2991
  "isPure": false,
@@ -2909,56 +2994,62 @@
2909
2994
  "nameLocations": [],
2910
2995
  "names": [],
2911
2996
  "nodeType": "FunctionCall",
2912
- "src": "3184:22:97",
2997
+ "src": "6101:22:97",
2913
2998
  "tryCall": false,
2914
2999
  "typeDescriptions": {
2915
3000
  "typeIdentifier": "t_tuple$__$",
2916
3001
  "typeString": "tuple()"
2917
3002
  }
2918
3003
  },
2919
- "id": 38792,
3004
+ "id": 38845,
2920
3005
  "nodeType": "ExpressionStatement",
2921
- "src": "3184:22:97"
3006
+ "src": "6101:22:97"
2922
3007
  }
2923
3008
  },
2924
3009
  {
2925
3010
  "expression": {
2926
- "id": 38794,
3011
+ "id": 38847,
2927
3012
  "name": "_data",
2928
3013
  "nodeType": "Identifier",
2929
3014
  "overloadedDeclarations": [],
2930
- "referencedDeclaration": 38779,
2931
- "src": "3219:5:97",
3015
+ "referencedDeclaration": 38832,
3016
+ "src": "6136:5:97",
2932
3017
  "typeDescriptions": {
2933
3018
  "typeIdentifier": "t_bytes_memory_ptr",
2934
3019
  "typeString": "bytes memory"
2935
3020
  }
2936
3021
  },
2937
- "functionReturnParameters": 38775,
2938
- "id": 38795,
3022
+ "functionReturnParameters": 38828,
3023
+ "id": 38848,
2939
3024
  "nodeType": "Return",
2940
- "src": "3212:12:97"
3025
+ "src": "6129:12:97"
2941
3026
  }
2942
3027
  ]
2943
3028
  },
3029
+ "documentation": {
3030
+ "id": 38816,
3031
+ "nodeType": "StructuredDocumentation",
3032
+ "src": "5296:448:97",
3033
+ "text": " @notice Makes a call to the target contract with context values appended to the calldata.\n @dev Revert in the case of failure.\n @param msgSender The address of the transaction sender.\n @param msgValue The amount of ether sent with the original transaction.\n @param target The address of the contract to call.\n @param callData The calldata for the call.\n @return data The abi encoded return data from the call."
3034
+ },
2944
3035
  "implemented": true,
2945
3036
  "kind": "function",
2946
3037
  "modifiers": [],
2947
3038
  "name": "callWithContextOrRevert",
2948
- "nameLocation": "2839:23:97",
3039
+ "nameLocation": "5756:23:97",
2949
3040
  "parameters": {
2950
- "id": 38772,
3041
+ "id": 38825,
2951
3042
  "nodeType": "ParameterList",
2952
3043
  "parameters": [
2953
3044
  {
2954
3045
  "constant": false,
2955
- "id": 38765,
3046
+ "id": 38818,
2956
3047
  "mutability": "mutable",
2957
3048
  "name": "msgSender",
2958
- "nameLocation": "2876:9:97",
3049
+ "nameLocation": "5793:9:97",
2959
3050
  "nodeType": "VariableDeclaration",
2960
- "scope": 38797,
2961
- "src": "2868:17:97",
3051
+ "scope": 38850,
3052
+ "src": "5785:17:97",
2962
3053
  "stateVariable": false,
2963
3054
  "storageLocation": "default",
2964
3055
  "typeDescriptions": {
@@ -2966,10 +3057,10 @@
2966
3057
  "typeString": "address"
2967
3058
  },
2968
3059
  "typeName": {
2969
- "id": 38764,
3060
+ "id": 38817,
2970
3061
  "name": "address",
2971
3062
  "nodeType": "ElementaryTypeName",
2972
- "src": "2868:7:97",
3063
+ "src": "5785:7:97",
2973
3064
  "stateMutability": "nonpayable",
2974
3065
  "typeDescriptions": {
2975
3066
  "typeIdentifier": "t_address",
@@ -2980,13 +3071,13 @@
2980
3071
  },
2981
3072
  {
2982
3073
  "constant": false,
2983
- "id": 38767,
3074
+ "id": 38820,
2984
3075
  "mutability": "mutable",
2985
3076
  "name": "msgValue",
2986
- "nameLocation": "2899:8:97",
3077
+ "nameLocation": "5816:8:97",
2987
3078
  "nodeType": "VariableDeclaration",
2988
- "scope": 38797,
2989
- "src": "2891:16:97",
3079
+ "scope": 38850,
3080
+ "src": "5808:16:97",
2990
3081
  "stateVariable": false,
2991
3082
  "storageLocation": "default",
2992
3083
  "typeDescriptions": {
@@ -2994,10 +3085,10 @@
2994
3085
  "typeString": "uint256"
2995
3086
  },
2996
3087
  "typeName": {
2997
- "id": 38766,
3088
+ "id": 38819,
2998
3089
  "name": "uint256",
2999
3090
  "nodeType": "ElementaryTypeName",
3000
- "src": "2891:7:97",
3091
+ "src": "5808:7:97",
3001
3092
  "typeDescriptions": {
3002
3093
  "typeIdentifier": "t_uint256",
3003
3094
  "typeString": "uint256"
@@ -3007,13 +3098,13 @@
3007
3098
  },
3008
3099
  {
3009
3100
  "constant": false,
3010
- "id": 38769,
3101
+ "id": 38822,
3011
3102
  "mutability": "mutable",
3012
3103
  "name": "target",
3013
- "nameLocation": "2921:6:97",
3104
+ "nameLocation": "5838:6:97",
3014
3105
  "nodeType": "VariableDeclaration",
3015
- "scope": 38797,
3016
- "src": "2913:14:97",
3106
+ "scope": 38850,
3107
+ "src": "5830:14:97",
3017
3108
  "stateVariable": false,
3018
3109
  "storageLocation": "default",
3019
3110
  "typeDescriptions": {
@@ -3021,10 +3112,10 @@
3021
3112
  "typeString": "address"
3022
3113
  },
3023
3114
  "typeName": {
3024
- "id": 38768,
3115
+ "id": 38821,
3025
3116
  "name": "address",
3026
3117
  "nodeType": "ElementaryTypeName",
3027
- "src": "2913:7:97",
3118
+ "src": "5830:7:97",
3028
3119
  "stateMutability": "nonpayable",
3029
3120
  "typeDescriptions": {
3030
3121
  "typeIdentifier": "t_address",
@@ -3035,13 +3126,13 @@
3035
3126
  },
3036
3127
  {
3037
3128
  "constant": false,
3038
- "id": 38771,
3129
+ "id": 38824,
3039
3130
  "mutability": "mutable",
3040
3131
  "name": "callData",
3041
- "nameLocation": "2946:8:97",
3132
+ "nameLocation": "5863:8:97",
3042
3133
  "nodeType": "VariableDeclaration",
3043
- "scope": 38797,
3044
- "src": "2933:21:97",
3134
+ "scope": 38850,
3135
+ "src": "5850:21:97",
3045
3136
  "stateVariable": false,
3046
3137
  "storageLocation": "memory",
3047
3138
  "typeDescriptions": {
@@ -3049,10 +3140,10 @@
3049
3140
  "typeString": "bytes"
3050
3141
  },
3051
3142
  "typeName": {
3052
- "id": 38770,
3143
+ "id": 38823,
3053
3144
  "name": "bytes",
3054
3145
  "nodeType": "ElementaryTypeName",
3055
- "src": "2933:5:97",
3146
+ "src": "5850:5:97",
3056
3147
  "typeDescriptions": {
3057
3148
  "typeIdentifier": "t_bytes_storage_ptr",
3058
3149
  "typeString": "bytes"
@@ -3061,21 +3152,21 @@
3061
3152
  "visibility": "internal"
3062
3153
  }
3063
3154
  ],
3064
- "src": "2862:96:97"
3155
+ "src": "5779:96:97"
3065
3156
  },
3066
3157
  "returnParameters": {
3067
- "id": 38775,
3158
+ "id": 38828,
3068
3159
  "nodeType": "ParameterList",
3069
3160
  "parameters": [
3070
3161
  {
3071
3162
  "constant": false,
3072
- "id": 38774,
3163
+ "id": 38827,
3073
3164
  "mutability": "mutable",
3074
3165
  "name": "data",
3075
- "nameLocation": "2990:4:97",
3166
+ "nameLocation": "5907:4:97",
3076
3167
  "nodeType": "VariableDeclaration",
3077
- "scope": 38797,
3078
- "src": "2977:17:97",
3168
+ "scope": 38850,
3169
+ "src": "5894:17:97",
3079
3170
  "stateVariable": false,
3080
3171
  "storageLocation": "memory",
3081
3172
  "typeDescriptions": {
@@ -3083,10 +3174,10 @@
3083
3174
  "typeString": "bytes"
3084
3175
  },
3085
3176
  "typeName": {
3086
- "id": 38773,
3177
+ "id": 38826,
3087
3178
  "name": "bytes",
3088
3179
  "nodeType": "ElementaryTypeName",
3089
- "src": "2977:5:97",
3180
+ "src": "5894:5:97",
3090
3181
  "typeDescriptions": {
3091
3182
  "typeIdentifier": "t_bytes_storage_ptr",
3092
3183
  "typeString": "bytes"
@@ -3095,39 +3186,39 @@
3095
3186
  "visibility": "internal"
3096
3187
  }
3097
3188
  ],
3098
- "src": "2976:19:97"
3189
+ "src": "5893:19:97"
3099
3190
  },
3100
- "scope": 38832,
3191
+ "scope": 38886,
3101
3192
  "stateMutability": "nonpayable",
3102
3193
  "virtual": false,
3103
3194
  "visibility": "internal"
3104
3195
  },
3105
3196
  {
3106
- "id": 38831,
3197
+ "id": 38885,
3107
3198
  "nodeType": "FunctionDefinition",
3108
- "src": "3233:415:97",
3199
+ "src": "6609:415:97",
3109
3200
  "nodes": [],
3110
3201
  "body": {
3111
- "id": 38830,
3202
+ "id": 38884,
3112
3203
  "nodeType": "Block",
3113
- "src": "3407:241:97",
3204
+ "src": "6783:241:97",
3114
3205
  "nodes": [],
3115
3206
  "statements": [
3116
3207
  {
3117
3208
  "assignments": [
3118
- 38811,
3119
- 38813
3209
+ 38865,
3210
+ 38867
3120
3211
  ],
3121
3212
  "declarations": [
3122
3213
  {
3123
3214
  "constant": false,
3124
- "id": 38811,
3215
+ "id": 38865,
3125
3216
  "mutability": "mutable",
3126
3217
  "name": "success",
3127
- "nameLocation": "3419:7:97",
3218
+ "nameLocation": "6795:7:97",
3128
3219
  "nodeType": "VariableDeclaration",
3129
- "scope": 38830,
3130
- "src": "3414:12:97",
3220
+ "scope": 38884,
3221
+ "src": "6790:12:97",
3131
3222
  "stateVariable": false,
3132
3223
  "storageLocation": "default",
3133
3224
  "typeDescriptions": {
@@ -3135,10 +3226,10 @@
3135
3226
  "typeString": "bool"
3136
3227
  },
3137
3228
  "typeName": {
3138
- "id": 38810,
3229
+ "id": 38864,
3139
3230
  "name": "bool",
3140
3231
  "nodeType": "ElementaryTypeName",
3141
- "src": "3414:4:97",
3232
+ "src": "6790:4:97",
3142
3233
  "typeDescriptions": {
3143
3234
  "typeIdentifier": "t_bool",
3144
3235
  "typeString": "bool"
@@ -3148,13 +3239,13 @@
3148
3239
  },
3149
3240
  {
3150
3241
  "constant": false,
3151
- "id": 38813,
3242
+ "id": 38867,
3152
3243
  "mutability": "mutable",
3153
3244
  "name": "_data",
3154
- "nameLocation": "3441:5:97",
3245
+ "nameLocation": "6817:5:97",
3155
3246
  "nodeType": "VariableDeclaration",
3156
- "scope": 38830,
3157
- "src": "3428:18:97",
3247
+ "scope": 38884,
3248
+ "src": "6804:18:97",
3158
3249
  "stateVariable": false,
3159
3250
  "storageLocation": "memory",
3160
3251
  "typeDescriptions": {
@@ -3162,10 +3253,10 @@
3162
3253
  "typeString": "bytes"
3163
3254
  },
3164
3255
  "typeName": {
3165
- "id": 38812,
3256
+ "id": 38866,
3166
3257
  "name": "bytes",
3167
3258
  "nodeType": "ElementaryTypeName",
3168
- "src": "3428:5:97",
3259
+ "src": "6804:5:97",
3169
3260
  "typeDescriptions": {
3170
3261
  "typeIdentifier": "t_bytes_storage_ptr",
3171
3262
  "typeString": "bytes"
@@ -3174,52 +3265,52 @@
3174
3265
  "visibility": "internal"
3175
3266
  }
3176
3267
  ],
3177
- "id": 38820,
3268
+ "id": 38874,
3178
3269
  "initialValue": {
3179
3270
  "arguments": [
3180
3271
  {
3181
- "id": 38815,
3272
+ "id": 38869,
3182
3273
  "name": "msgSender",
3183
3274
  "nodeType": "Identifier",
3184
3275
  "overloadedDeclarations": [],
3185
- "referencedDeclaration": 38799,
3186
- "src": "3493:9:97",
3276
+ "referencedDeclaration": 38853,
3277
+ "src": "6869:9:97",
3187
3278
  "typeDescriptions": {
3188
3279
  "typeIdentifier": "t_address",
3189
3280
  "typeString": "address"
3190
3281
  }
3191
3282
  },
3192
3283
  {
3193
- "id": 38816,
3284
+ "id": 38870,
3194
3285
  "name": "msgValue",
3195
3286
  "nodeType": "Identifier",
3196
3287
  "overloadedDeclarations": [],
3197
- "referencedDeclaration": 38801,
3198
- "src": "3520:8:97",
3288
+ "referencedDeclaration": 38855,
3289
+ "src": "6896:8:97",
3199
3290
  "typeDescriptions": {
3200
3291
  "typeIdentifier": "t_uint256",
3201
3292
  "typeString": "uint256"
3202
3293
  }
3203
3294
  },
3204
3295
  {
3205
- "id": 38817,
3296
+ "id": 38871,
3206
3297
  "name": "target",
3207
3298
  "nodeType": "Identifier",
3208
3299
  "overloadedDeclarations": [],
3209
- "referencedDeclaration": 38803,
3210
- "src": "3544:6:97",
3300
+ "referencedDeclaration": 38857,
3301
+ "src": "6920:6:97",
3211
3302
  "typeDescriptions": {
3212
3303
  "typeIdentifier": "t_address",
3213
3304
  "typeString": "address"
3214
3305
  }
3215
3306
  },
3216
3307
  {
3217
- "id": 38818,
3308
+ "id": 38872,
3218
3309
  "name": "callData",
3219
3310
  "nodeType": "Identifier",
3220
3311
  "overloadedDeclarations": [],
3221
- "referencedDeclaration": 38805,
3222
- "src": "3568:8:97",
3312
+ "referencedDeclaration": 38859,
3313
+ "src": "6944:8:97",
3223
3314
  "typeDescriptions": {
3224
3315
  "typeIdentifier": "t_bytes_memory_ptr",
3225
3316
  "typeString": "bytes memory"
@@ -3245,28 +3336,28 @@
3245
3336
  "typeString": "bytes memory"
3246
3337
  }
3247
3338
  ],
3248
- "id": 38814,
3339
+ "id": 38868,
3249
3340
  "name": "delegatecallWithContext",
3250
3341
  "nodeType": "Identifier",
3251
3342
  "overloadedDeclarations": [],
3252
- "referencedDeclaration": 38763,
3253
- "src": "3450:23:97",
3343
+ "referencedDeclaration": 38815,
3344
+ "src": "6826:23:97",
3254
3345
  "typeDescriptions": {
3255
3346
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
3256
3347
  "typeString": "function (address,uint256,address,bytes memory) returns (bool,bytes memory)"
3257
3348
  }
3258
3349
  },
3259
- "id": 38819,
3350
+ "id": 38873,
3260
3351
  "isConstant": false,
3261
3352
  "isLValue": false,
3262
3353
  "isPure": false,
3263
3354
  "kind": "functionCall",
3264
3355
  "lValueRequested": false,
3265
3356
  "nameLocations": [
3266
- "3482:9:97",
3267
- "3510:8:97",
3268
- "3536:6:97",
3269
- "3558:8:97"
3357
+ "6858:9:97",
3358
+ "6886:8:97",
3359
+ "6912:6:97",
3360
+ "6934:8:97"
3270
3361
  ],
3271
3362
  "names": [
3272
3363
  "msgSender",
@@ -3275,7 +3366,7 @@
3275
3366
  "callData"
3276
3367
  ],
3277
3368
  "nodeType": "FunctionCall",
3278
- "src": "3450:133:97",
3369
+ "src": "6826:133:97",
3279
3370
  "tryCall": false,
3280
3371
  "typeDescriptions": {
3281
3372
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
@@ -3283,11 +3374,11 @@
3283
3374
  }
3284
3375
  },
3285
3376
  "nodeType": "VariableDeclarationStatement",
3286
- "src": "3413:170:97"
3377
+ "src": "6789:170:97"
3287
3378
  },
3288
3379
  {
3289
3380
  "condition": {
3290
- "id": 38822,
3381
+ "id": 38876,
3291
3382
  "isConstant": false,
3292
3383
  "isLValue": false,
3293
3384
  "isPure": false,
@@ -3295,14 +3386,14 @@
3295
3386
  "nodeType": "UnaryOperation",
3296
3387
  "operator": "!",
3297
3388
  "prefix": true,
3298
- "src": "3593:8:97",
3389
+ "src": "6969:8:97",
3299
3390
  "subExpression": {
3300
- "id": 38821,
3391
+ "id": 38875,
3301
3392
  "name": "success",
3302
3393
  "nodeType": "Identifier",
3303
3394
  "overloadedDeclarations": [],
3304
- "referencedDeclaration": 38811,
3305
- "src": "3594:7:97",
3395
+ "referencedDeclaration": 38865,
3396
+ "src": "6970:7:97",
3306
3397
  "typeDescriptions": {
3307
3398
  "typeIdentifier": "t_bool",
3308
3399
  "typeString": "bool"
@@ -3313,19 +3404,19 @@
3313
3404
  "typeString": "bool"
3314
3405
  }
3315
3406
  },
3316
- "id": 38827,
3407
+ "id": 38881,
3317
3408
  "nodeType": "IfStatement",
3318
- "src": "3589:36:97",
3409
+ "src": "6965:36:97",
3319
3410
  "trueBody": {
3320
3411
  "expression": {
3321
3412
  "arguments": [
3322
3413
  {
3323
- "id": 38824,
3414
+ "id": 38878,
3324
3415
  "name": "_data",
3325
3416
  "nodeType": "Identifier",
3326
3417
  "overloadedDeclarations": [],
3327
- "referencedDeclaration": 38813,
3328
- "src": "3619:5:97",
3418
+ "referencedDeclaration": 38867,
3419
+ "src": "6995:5:97",
3329
3420
  "typeDescriptions": {
3330
3421
  "typeIdentifier": "t_bytes_memory_ptr",
3331
3422
  "typeString": "bytes memory"
@@ -3339,18 +3430,18 @@
3339
3430
  "typeString": "bytes memory"
3340
3431
  }
3341
3432
  ],
3342
- "id": 38823,
3433
+ "id": 38877,
3343
3434
  "name": "revertWithBytes",
3344
3435
  "nodeType": "Identifier",
3345
3436
  "overloadedDeclarations": [],
3346
- "referencedDeclaration": 39224,
3347
- "src": "3603:15:97",
3437
+ "referencedDeclaration": 39280,
3438
+ "src": "6979:15:97",
3348
3439
  "typeDescriptions": {
3349
3440
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$",
3350
3441
  "typeString": "function (bytes memory) pure"
3351
3442
  }
3352
3443
  },
3353
- "id": 38825,
3444
+ "id": 38879,
3354
3445
  "isConstant": false,
3355
3446
  "isLValue": false,
3356
3447
  "isPure": false,
@@ -3359,56 +3450,62 @@
3359
3450
  "nameLocations": [],
3360
3451
  "names": [],
3361
3452
  "nodeType": "FunctionCall",
3362
- "src": "3603:22:97",
3453
+ "src": "6979:22:97",
3363
3454
  "tryCall": false,
3364
3455
  "typeDescriptions": {
3365
3456
  "typeIdentifier": "t_tuple$__$",
3366
3457
  "typeString": "tuple()"
3367
3458
  }
3368
3459
  },
3369
- "id": 38826,
3460
+ "id": 38880,
3370
3461
  "nodeType": "ExpressionStatement",
3371
- "src": "3603:22:97"
3462
+ "src": "6979:22:97"
3372
3463
  }
3373
3464
  },
3374
3465
  {
3375
3466
  "expression": {
3376
- "id": 38828,
3467
+ "id": 38882,
3377
3468
  "name": "_data",
3378
3469
  "nodeType": "Identifier",
3379
3470
  "overloadedDeclarations": [],
3380
- "referencedDeclaration": 38813,
3381
- "src": "3638:5:97",
3471
+ "referencedDeclaration": 38867,
3472
+ "src": "7014:5:97",
3382
3473
  "typeDescriptions": {
3383
3474
  "typeIdentifier": "t_bytes_memory_ptr",
3384
3475
  "typeString": "bytes memory"
3385
3476
  }
3386
3477
  },
3387
- "functionReturnParameters": 38809,
3388
- "id": 38829,
3478
+ "functionReturnParameters": 38863,
3479
+ "id": 38883,
3389
3480
  "nodeType": "Return",
3390
- "src": "3631:12:97"
3481
+ "src": "7007:12:97"
3391
3482
  }
3392
3483
  ]
3393
3484
  },
3485
+ "documentation": {
3486
+ "id": 38851,
3487
+ "nodeType": "StructuredDocumentation",
3488
+ "src": "6150:456:97",
3489
+ "text": " @notice Makes a delegatecall to the target contract with context values appended to the calldata.\n @dev Revert in the case of failure.\n @param msgSender The address of the transaction sender.\n @param msgValue The amount of ether sent with the original transaction.\n @param target The address of the contract to call.\n @param callData The calldata for the call.\n @return data The abi encoded return data from the call."
3490
+ },
3394
3491
  "implemented": true,
3395
3492
  "kind": "function",
3396
3493
  "modifiers": [],
3397
3494
  "name": "delegatecallWithContextOrRevert",
3398
- "nameLocation": "3242:31:97",
3495
+ "nameLocation": "6618:31:97",
3399
3496
  "parameters": {
3400
- "id": 38806,
3497
+ "id": 38860,
3401
3498
  "nodeType": "ParameterList",
3402
3499
  "parameters": [
3403
3500
  {
3404
3501
  "constant": false,
3405
- "id": 38799,
3502
+ "id": 38853,
3406
3503
  "mutability": "mutable",
3407
3504
  "name": "msgSender",
3408
- "nameLocation": "3287:9:97",
3505
+ "nameLocation": "6663:9:97",
3409
3506
  "nodeType": "VariableDeclaration",
3410
- "scope": 38831,
3411
- "src": "3279:17:97",
3507
+ "scope": 38885,
3508
+ "src": "6655:17:97",
3412
3509
  "stateVariable": false,
3413
3510
  "storageLocation": "default",
3414
3511
  "typeDescriptions": {
@@ -3416,10 +3513,10 @@
3416
3513
  "typeString": "address"
3417
3514
  },
3418
3515
  "typeName": {
3419
- "id": 38798,
3516
+ "id": 38852,
3420
3517
  "name": "address",
3421
3518
  "nodeType": "ElementaryTypeName",
3422
- "src": "3279:7:97",
3519
+ "src": "6655:7:97",
3423
3520
  "stateMutability": "nonpayable",
3424
3521
  "typeDescriptions": {
3425
3522
  "typeIdentifier": "t_address",
@@ -3430,13 +3527,13 @@
3430
3527
  },
3431
3528
  {
3432
3529
  "constant": false,
3433
- "id": 38801,
3530
+ "id": 38855,
3434
3531
  "mutability": "mutable",
3435
3532
  "name": "msgValue",
3436
- "nameLocation": "3310:8:97",
3533
+ "nameLocation": "6686:8:97",
3437
3534
  "nodeType": "VariableDeclaration",
3438
- "scope": 38831,
3439
- "src": "3302:16:97",
3535
+ "scope": 38885,
3536
+ "src": "6678:16:97",
3440
3537
  "stateVariable": false,
3441
3538
  "storageLocation": "default",
3442
3539
  "typeDescriptions": {
@@ -3444,10 +3541,10 @@
3444
3541
  "typeString": "uint256"
3445
3542
  },
3446
3543
  "typeName": {
3447
- "id": 38800,
3544
+ "id": 38854,
3448
3545
  "name": "uint256",
3449
3546
  "nodeType": "ElementaryTypeName",
3450
- "src": "3302:7:97",
3547
+ "src": "6678:7:97",
3451
3548
  "typeDescriptions": {
3452
3549
  "typeIdentifier": "t_uint256",
3453
3550
  "typeString": "uint256"
@@ -3457,13 +3554,13 @@
3457
3554
  },
3458
3555
  {
3459
3556
  "constant": false,
3460
- "id": 38803,
3557
+ "id": 38857,
3461
3558
  "mutability": "mutable",
3462
3559
  "name": "target",
3463
- "nameLocation": "3332:6:97",
3560
+ "nameLocation": "6708:6:97",
3464
3561
  "nodeType": "VariableDeclaration",
3465
- "scope": 38831,
3466
- "src": "3324:14:97",
3562
+ "scope": 38885,
3563
+ "src": "6700:14:97",
3467
3564
  "stateVariable": false,
3468
3565
  "storageLocation": "default",
3469
3566
  "typeDescriptions": {
@@ -3471,10 +3568,10 @@
3471
3568
  "typeString": "address"
3472
3569
  },
3473
3570
  "typeName": {
3474
- "id": 38802,
3571
+ "id": 38856,
3475
3572
  "name": "address",
3476
3573
  "nodeType": "ElementaryTypeName",
3477
- "src": "3324:7:97",
3574
+ "src": "6700:7:97",
3478
3575
  "stateMutability": "nonpayable",
3479
3576
  "typeDescriptions": {
3480
3577
  "typeIdentifier": "t_address",
@@ -3485,13 +3582,13 @@
3485
3582
  },
3486
3583
  {
3487
3584
  "constant": false,
3488
- "id": 38805,
3585
+ "id": 38859,
3489
3586
  "mutability": "mutable",
3490
3587
  "name": "callData",
3491
- "nameLocation": "3357:8:97",
3588
+ "nameLocation": "6733:8:97",
3492
3589
  "nodeType": "VariableDeclaration",
3493
- "scope": 38831,
3494
- "src": "3344:21:97",
3590
+ "scope": 38885,
3591
+ "src": "6720:21:97",
3495
3592
  "stateVariable": false,
3496
3593
  "storageLocation": "memory",
3497
3594
  "typeDescriptions": {
@@ -3499,10 +3596,10 @@
3499
3596
  "typeString": "bytes"
3500
3597
  },
3501
3598
  "typeName": {
3502
- "id": 38804,
3599
+ "id": 38858,
3503
3600
  "name": "bytes",
3504
3601
  "nodeType": "ElementaryTypeName",
3505
- "src": "3344:5:97",
3602
+ "src": "6720:5:97",
3506
3603
  "typeDescriptions": {
3507
3604
  "typeIdentifier": "t_bytes_storage_ptr",
3508
3605
  "typeString": "bytes"
@@ -3511,21 +3608,21 @@
3511
3608
  "visibility": "internal"
3512
3609
  }
3513
3610
  ],
3514
- "src": "3273:96:97"
3611
+ "src": "6649:96:97"
3515
3612
  },
3516
3613
  "returnParameters": {
3517
- "id": 38809,
3614
+ "id": 38863,
3518
3615
  "nodeType": "ParameterList",
3519
3616
  "parameters": [
3520
3617
  {
3521
3618
  "constant": false,
3522
- "id": 38808,
3619
+ "id": 38862,
3523
3620
  "mutability": "mutable",
3524
3621
  "name": "data",
3525
- "nameLocation": "3401:4:97",
3622
+ "nameLocation": "6777:4:97",
3526
3623
  "nodeType": "VariableDeclaration",
3527
- "scope": 38831,
3528
- "src": "3388:17:97",
3624
+ "scope": 38885,
3625
+ "src": "6764:17:97",
3529
3626
  "stateVariable": false,
3530
3627
  "storageLocation": "memory",
3531
3628
  "typeDescriptions": {
@@ -3533,10 +3630,10 @@
3533
3630
  "typeString": "bytes"
3534
3631
  },
3535
3632
  "typeName": {
3536
- "id": 38807,
3633
+ "id": 38861,
3537
3634
  "name": "bytes",
3538
3635
  "nodeType": "ElementaryTypeName",
3539
- "src": "3388:5:97",
3636
+ "src": "6764:5:97",
3540
3637
  "typeDescriptions": {
3541
3638
  "typeIdentifier": "t_bytes_storage_ptr",
3542
3639
  "typeString": "bytes"
@@ -3545,9 +3642,9 @@
3545
3642
  "visibility": "internal"
3546
3643
  }
3547
3644
  ],
3548
- "src": "3387:19:97"
3645
+ "src": "6763:19:97"
3549
3646
  },
3550
- "scope": 38832,
3647
+ "scope": 38886,
3551
3648
  "stateMutability": "nonpayable",
3552
3649
  "virtual": false,
3553
3650
  "visibility": "internal"
@@ -3559,18 +3656,18 @@
3559
3656
  "contractDependencies": [],
3560
3657
  "contractKind": "library",
3561
3658
  "documentation": {
3562
- "id": 38684,
3659
+ "id": 38733,
3563
3660
  "nodeType": "StructuredDocumentation",
3564
- "src": "1809:136:97",
3565
- "text": " Simple utility function to call a contract and append the msg.sender to the calldata (to be consumed by WorldContextConsumer)"
3661
+ "src": "2777:329:97",
3662
+ "text": " @title WorldContextProvider - Utility functions to call contracts with context values appended to calldata.\n @notice This library provides functions to make calls or delegatecalls to other contracts,\n appending the context values (like msg.sender and msg.value) to the calldata for WorldContextConsumer to consume."
3566
3663
  },
3567
3664
  "fullyImplemented": true,
3568
3665
  "linearizedBaseContracts": [
3569
- 38832
3666
+ 38886
3570
3667
  ],
3571
3668
  "name": "WorldContextProvider",
3572
- "nameLocation": "1954:20:97",
3573
- "scope": 38833,
3669
+ "nameLocation": "3115:20:97",
3670
+ "scope": 38887,
3574
3671
  "usedErrors": [],
3575
3672
  "usedEvents": []
3576
3673
  }