@latticexyz/world-modules 2.0.0-main-071aadb9 → 2.0.0-main-7987c94d

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 (112) hide show
  1. package/out/ArrayLib.sol/ArrayLib.json +255 -255
  2. package/out/CallboundDelegationControl.sol/CallboundDelegationControl.json +215 -215
  3. package/out/CallboundDelegations.sol/CallboundDelegations.json +2599 -2599
  4. package/out/DecodeSlice.sol/DecodeSlice.json +3250 -3250
  5. package/out/DelegationControl.sol/DelegationControl.json +94 -94
  6. package/out/EncodeArray.sol/EncodeArray.json +3345 -3345
  7. package/out/FieldLayout.sol/FieldLayoutInstance.json +47 -47
  8. package/out/FieldLayout.sol/FieldLayoutLib.json +47 -47
  9. package/out/Hook.sol/HookInstance.json +13 -13
  10. package/out/Hook.sol/HookLib.json +13 -13
  11. package/out/Hooks.sol/Hooks.json +3393 -3393
  12. package/out/IAccessManagementSystem.sol/IAccessManagementSystem.json +58 -58
  13. package/out/IBalanceTransferSystem.sol/IBalanceTransferSystem.json +54 -54
  14. package/out/IBaseWorld.sol/IBaseWorld.json +64 -64
  15. package/out/IBatchCallSystem.sol/IBatchCallSystem.json +52 -52
  16. package/out/ICoreSystem.sol/ICoreSystem.json +7 -7
  17. package/out/IDelegationControl.sol/IDelegationControl.json +62 -62
  18. package/out/IModule.sol/IModule.json +78 -78
  19. package/out/IModuleInstallationSystem.sol/IModuleInstallationSystem.json +28 -28
  20. package/out/ISystemHook.sol/ISystemHook.json +86 -86
  21. package/out/IUniqueEntitySystem.sol/IUniqueEntitySystem.json +13 -13
  22. package/out/IWorldContextConsumer.sol/IWorldContextConsumer.json +71 -71
  23. package/out/IWorldErrors.sol/IWorldErrors.json +152 -152
  24. package/out/IWorldKernel.sol/IWorldCall.json +154 -154
  25. package/out/IWorldKernel.sol/IWorldKernel.json +154 -154
  26. package/out/IWorldKernel.sol/IWorldModuleInstallation.json +154 -154
  27. package/out/IWorldRegistrationSystem.sol/IWorldRegistrationSystem.json +190 -190
  28. package/out/KeysInTable.sol/KeysInTable.json +10672 -10672
  29. package/out/KeysInTableHook.sol/KeysInTableHook.json +867 -867
  30. package/out/KeysInTableModule.sol/KeysInTableModule.json +538 -538
  31. package/out/KeysWithValue.sol/KeysWithValue.json +3832 -3832
  32. package/out/KeysWithValueHook.sol/KeysWithValueHook.json +993 -993
  33. package/out/KeysWithValueModule.sol/KeysWithValueModule.json +426 -426
  34. package/out/Memory.sol/Memory.json +4 -4
  35. package/out/Module.sol/Module.json +84 -84
  36. package/out/ResourceIds.sol/ResourceIds.json +1363 -1363
  37. package/out/Schema.sol/SchemaInstance.json +72 -72
  38. package/out/Schema.sol/SchemaLib.json +72 -72
  39. package/out/SchemaType.sol/SchemaType.json +276 -276
  40. package/out/Slice.sol/SliceInstance.json +4 -4
  41. package/out/Slice.sol/SliceLib.json +4 -4
  42. package/out/StandardDelegationsModule.sol/StandardDelegationsModule.json +303 -303
  43. package/out/Storage.sol/Storage.json +7 -7
  44. package/out/StoreCore.sol/StoreCore.json +708 -737
  45. package/out/StoreCore.sol/StoreCoreInternal.json +710 -739
  46. package/out/StoreHook.sol/StoreHook.json +368 -368
  47. package/out/StoreHooks.sol/StoreHooks.json +3232 -3232
  48. package/out/StoreSwitch.sol/StoreSwitch.json +1885 -1885
  49. package/out/System.sol/System.json +31 -31
  50. package/out/Tables.sol/Tables.json +5585 -5585
  51. package/out/TightCoder.sol/TightCoder.json +124 -124
  52. package/out/TimeboundDelegationControl.sol/TimeboundDelegationControl.json +119 -119
  53. package/out/TimeboundDelegations.sol/TimeboundDelegations.json +1990 -1990
  54. package/out/UniqueEntity.sol/UniqueEntity.json +1406 -1406
  55. package/out/UniqueEntityModule.sol/UniqueEntityModule.json +327 -327
  56. package/out/UniqueEntitySystem.sol/UniqueEntitySystem.json +93 -93
  57. package/out/UsedKeysIndex.sol/UsedKeysIndex.json +2727 -2727
  58. package/out/WorldContext.sol/WorldContextConsumer.json +1380 -988
  59. package/out/WorldContext.sol/{WorldContextProvider.json → WorldContextConsumerLib.json} +1381 -989
  60. package/out/WorldContext.sol/WorldContextProviderLib.json +3910 -0
  61. package/out/WorldResourceId.sol/WorldResourceIdInstance.json +476 -476
  62. package/out/WorldResourceId.sol/WorldResourceIdLib.json +476 -476
  63. package/out/constants.sol/LayoutOffsets.json +79 -79
  64. package/out/constants.sol/constants.json +115 -115
  65. package/out/getKeysInTable.sol/getKeysInTable.json +564 -564
  66. package/out/getKeysWithValue.sol/getKeysWithValue.json +264 -264
  67. package/out/getTargetTableId.sol/getTargetTableId.json +163 -163
  68. package/out/getUniqueEntity.sol/getUniqueEntity.json +88 -88
  69. package/out/hasKey.sol/hasKey.json +130 -130
  70. package/out/index.sol/index.json +53 -53
  71. package/out/interfaces/IBaseWorld.sol/IBaseWorld.json +131 -131
  72. package/out/leftMask.sol/leftMask.json +31 -31
  73. package/out/query.sol/query.json +1154 -1154
  74. package/out/revertWithBytes.sol/revertWithBytes.json +15 -15
  75. package/out/src/Bytes.sol/Bytes.json +1338 -1338
  76. package/out/src/FieldLayout.sol/FieldLayoutInstance.json +698 -698
  77. package/out/src/FieldLayout.sol/FieldLayoutLib.json +698 -698
  78. package/out/src/IStore.sol/IStore.json +53 -53
  79. package/out/src/IWorldKernel.sol/IWorldCall.json +153 -153
  80. package/out/src/IWorldKernel.sol/IWorldKernel.json +153 -153
  81. package/out/src/IWorldKernel.sol/IWorldModuleInstallation.json +153 -153
  82. package/out/src/Memory.sol/Memory.json +91 -91
  83. package/out/src/PackedCounter.sol/PackedCounterInstance.json +929 -929
  84. package/out/src/PackedCounter.sol/PackedCounterLib.json +929 -929
  85. package/out/src/ResourceId.sol/ResourceIdInstance.json +116 -116
  86. package/out/src/ResourceId.sol/ResourceIdLib.json +116 -116
  87. package/out/src/Schema.sol/SchemaInstance.json +790 -790
  88. package/out/src/Schema.sol/SchemaLib.json +790 -790
  89. package/out/src/Slice.sol/SliceInstance.json +430 -430
  90. package/out/src/Slice.sol/SliceLib.json +430 -430
  91. package/out/src/StoreCore.sol/StoreCore.json +4695 -4724
  92. package/out/src/StoreCore.sol/StoreCoreInternal.json +4697 -4726
  93. package/out/src/StoreSwitch.sol/StoreSwitch.json +2487 -2487
  94. package/out/src/WorldContext.sol/WorldContextConsumer.json +1291 -899
  95. package/out/src/WorldContext.sol/WorldContextConsumerLib.abi.json +1 -0
  96. package/out/src/WorldContext.sol/{WorldContextProvider.json → WorldContextConsumerLib.json} +1292 -900
  97. package/out/src/WorldContext.sol/WorldContextProviderLib.abi.json +1 -0
  98. package/out/src/WorldContext.sol/WorldContextProviderLib.json +3910 -0
  99. package/out/src/WorldResourceId.sol/WorldResourceIdInstance.json +476 -476
  100. package/out/src/WorldResourceId.sol/WorldResourceIdLib.json +476 -476
  101. package/out/storeHookTypes.sol/storeHookTypes.json +115 -115
  102. package/out/storeResourceTypes.sol/storeResourceTypes.json +12 -12
  103. package/out/tables/ResourceIds.sol/ResourceIds.json +1751 -1751
  104. package/out/tables/Tables.sol/Tables.json +7292 -7292
  105. package/out/tightcoder/EncodeArray.sol/EncodeArray.json +3345 -3345
  106. package/out/types.sol/types.json +41 -41
  107. package/out/version.sol/version.json +7 -7
  108. package/out/world/src/IERC165.sol/IERC165.json +28 -28
  109. package/out/worldResourceTypes.sol/worldResourceTypes.json +53 -53
  110. package/package.json +8 -8
  111. /package/out/WorldContext.sol/{WorldContextProvider.abi.json → WorldContextConsumerLib.abi.json} +0 -0
  112. /package/out/{src/WorldContext.sol/WorldContextProvider.abi.json → WorldContext.sol/WorldContextProviderLib.abi.json} +0 -0
@@ -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\":{\"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\":{\"/home/runner/work/mud/mud/packages/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\":{\"/home/runner/work/mud/mud/packages/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"/home/runner/work/mud/mud/packages/world/src/WorldContext.sol\":{\"keccak256\":\"0x45792667fe063195103e9fd74e3e9e0b0b4aea4fc4a0a8a3e69538c14751217b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cba8976da1e2f7e336045e8d65eba89d18ae49e4688de61ff61a95fb817fe9fc\",\"dweb:/ipfs/QmWoByJM6DmheS2jisxSvAzrqC6XWrgaKxoNNUr44aXJtE\"]},\"/home/runner/work/mud/mud/packages/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"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\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"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\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"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\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"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\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x1dd80c8f47d425b611aa382a226a47919831976e0da7145a227c1bf629eec24d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac31d8551e5ef995d45e8eef1067e9793a2228cc3a539e16121d27083b203715\",\"dweb:/ipfs/QmWntan3y5oFxNnuvit8A4Xiuk2bMWasWTA7cqkh7Tk427\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"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\":\"0xacf4aee01f167b98b2869bdf4407682fd9f18b85507048bc274bcb98d094948c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86b114326973cef4f59c17e947945d09b90a0c48ede1da80f4f8aed0b6de179c\",\"dweb:/ipfs/QmZ6K6gZnV2ZdgbT8yG7Jz4HgoPymgdX3jTy6oUnG9xdgD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xc2dc1bd6335fb0cc27cb7a80298d954d9ce0a0e9864d1dd8531aadb66c0ce21d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7e34a386bd44933010c4f5a4dbfe8b0b8e5e9e39eaead46a2ebef0018db9b72\",\"dweb:/ipfs/QmQPyAdLUmE2Y6Ai7t2n56USg25PGHYxxXWRi1zEkdyT6a\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xfecdfde3b41c04dcf43e9c19f84f6a7f77df0fd844928692742b47662a0b814c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://968e83ac99e8d1799730aa6f1f23962c3fe3566cd7ec8bcf97d297823c364764\",\"dweb:/ipfs/QmVnhbeg89ajfLP1U1HDLiWi8T7HuFtsXUydjKXyyPa7MP\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x42b9fd484a055e8e312a2396059fb76a962608fa3a875ea3da6e5aab79084d04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866fd30788245eb54ac09d70768c0b34846d361b4219781c814fb06e38fb546c\",\"dweb:/ipfs/QmRbLCYjZ9qefcC8q7gnsAUsqCTEjdRtRnXdSNB1x7saPz\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]}},\"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 `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract.\"}},\"_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\":\"Extract the `msg.sender` from the context appended to the calldata.\"},\"_msgValue()\":{\"notice\":\"Extract the `msg.value` from the context appended to the calldata.\"},\"_world()\":{\"notice\":\"Get the address of the World contract that routed the call to this WorldContextConsumer.\"},\"supportsInterface(bytes4)\":{\"notice\":\"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\":{\"/home/runner/work/mud/mud/packages/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\":{\"/home/runner/work/mud/mud/packages/world/src/IERC165.sol\":{\"keccak256\":\"0x7997ebbdee6a2493f28e7032c7a8b906ade40f807d95734e2653c8f1b023ff47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c8ca41bb2619bf27e5bf886d1322f0e2dffd096c49f7ae6e716541dd1e1ddce5\",\"dweb:/ipfs/Qmb8zATUWWTtiWaSLjbAe6PGnJPes9ANvEyk7pYoWR3P3Y\"]},\"/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0x22b8cb3ffcc21cb1657d57fc8ac929d2d6fdd199328e6f43ad2cb54f53dcd500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47c001f6b7c6d6e453c340618d23b1532078abb7d0fd7283405071e4e8ff8d2d\",\"dweb:/ipfs/QmRW3femBhqQCPwDEj4Jop2Dnd3EU21ufg7GDVwN4joCQu\"]},\"/home/runner/work/mud/mud/packages/world/src/WorldContext.sol\":{\"keccak256\":\"0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518\",\"dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN\"]},\"/home/runner/work/mud/mud/packages/world/src/revertWithBytes.sol\":{\"keccak256\":\"0x16795bdbfd7956d733df9ada1030ee7a1a714e3b9da5899149a7b07568c4af55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a71128b4989e78215d5fc57dae8c2f84c6b5e503c159178c0df6f642b8228df\",\"dweb:/ipfs/QmNYTfBe62SdGESZ32fxME72CbAxEqk4j79jBT7655C4u7\"]},\"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\":\"0xab31edce915377852bb5f29f7f2ccfc50cac087d64d2a8aae669715ad862d558\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3187e86e43be1fbdd59df45c695294f1114aa1ac48e6445c0cb26089434be5c4\",\"dweb:/ipfs/Qmck7shMVrcKMVkgN2pC1byPY7hb3V9fTxnUcGgxAUeXYk\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x2a0536cd6cecc479d0b81d5aad6380231f4d6873beadc54814d801c2036b02c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e07c041e19146a9ec258cc700a450b4d49440202895eb12f3bb17508427c23ba\",\"dweb:/ipfs/QmXoqrCGDSkuFgNSMURRFdjokjREL78nLDzNaUi6rjefy9\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0x045024523eb55d08ad8d13eca6185bff2988865f4aa12e3f9372029c2ecb8ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6621c53b49f8fe0557d1a1db47bfe1561801c09256948dd0652fb41541891a18\",\"dweb:/ipfs/QmZgFVCUH1pKcc9MeFyzMe1VW87SLz6c9szGwrDRUp6BZe\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x2bbc3c43400c15a91a5cb35430a91309cb64a4d13a0a170eacec71dcf334feaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f44dfc9605067de539de07a76a34bf469faa9e6dad8c192abafc2e05860c7dd2\",\"dweb:/ipfs/QmX8xgG6XWokM7YFwFZvmMhuh1uhkSjxCMD2oTHjUVdapb\"]},\"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\":\"0xa8eade05c551aeef35c84727d7a44af239516deb2d8a0cfb7ebeb5d88c6995e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5335910bd8a204abb5f4396fb911a5ee5c221bd7fa63b1cc8ae5e737c6458c6a\",\"dweb:/ipfs/QmckkCAfrNcWo3yDxoD1jCe1k4iDA2GzVDpFjJZs7W79vx\"]},\"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\":\"0xdd3104680808f975462a85cbd4fa87783ba5395797419caeeca37e8f8627a16f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://943864b7eb16ad2047ade5a8598e85c8a4b46d1aed6aef02bfb7cee8de732b4d\",\"dweb:/ipfs/QmTEij4caToSNk15PFpubXYDy9QhwmPyP9tMXjUse2cTdv\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0xa6777c7868333996ad9c61a94457dcac702d8d7445a104dfdc86543d25e7470e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6268a16449d7529a94746d0103670dd0e38faf5117bf914fb01da9947ab44c2e\",\"dweb:/ipfs/QmaSfbx1QRA3jw2K8bGkQTw4CTGPUzNqnCJW7LwaFUJCXy\"]},\"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\":\"0x69295976e61a1a108d1b4d6eb497b238730309f3047c4320d48e01a0ce8d4ec7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://559c451b21fb9dd4fec27b41bef42f4362f1e7ebb7992106d548b9d4f733b3e5\",\"dweb:/ipfs/QmeSE7YTW5zUrfZYFVb2pFnDe3XxiT8XNecfwC3wfpxCRv\"]},\"node_modules/@latticexyz/store/src/PackedCounter.sol\":{\"keccak256\":\"0x44ddfa9eb8a861462c550f0a9d66c40c68acdb347a61fa765949608407a2c7fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47ee957f4b19cab9e20bf5fc569c015eca13852fb3351f2a105a8be9c48204c0\",\"dweb:/ipfs/QmNkyzDobVQLoq9BtQ8HtgsPLiqnmi97EZx1wsu6wp8nKH\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x40983c580b8958e55db4520095934a535e98544ffe8228327e598973eb6647ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://839d658fa2bb2b1f09a08149d2bf0c26a26c301ad2dda8154fc99458085a695d\",\"dweb:/ipfs/Qmd5jHHYrgqraPqF8bjzT4xyjsoPk8K7pkxXLLfz6MRT6d\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x58aef318ba03f8ff8866ef70f8a30f549b150657ea699734aefe16c298956401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7dc104690a7e2bcf5ce1afadcd58f8ef4d639b4b92b9ad9293656235d54395f3\",\"dweb:/ipfs/QmYJJvEv5KBJ3kzf9AkgRn7Uu5dp4exGTRddf4cae1btgE\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xfaf54b1f5acccd4c6ce3f8377050ee84efbb423cb604b4651e8b9ea3b467bf32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://acf2ce7ffec21f28ad1dc6da06c342f1212a03a3d16a0be7ee85715a5940718c\",\"dweb:/ipfs/QmTCN3NSdFg87hi7KS2Xtq7PsmRUMG64SxC8PtP3p2GzuT\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x0893905ebe431a414226b479a84a54804091001a406222c748adbd4b651853a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcfcd3848127884041f0bcd727a0e7acbddec283aa6c16ba47abc6a3be720648\",\"dweb:/ipfs/QmY5fBd53e4Ro6vzTZYsteSibSTXVA3GHTeCAiUZTa5DPZ\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534\",\"dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0xf132af10f960a498f49c0534027056e715f4bdcb8fbdb53ac6879c92309ab416\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e85a09aeb7543bcd9d74b7ad319ae61e1f7f15a6a0ad9e79aff750fbd18111c7\",\"dweb:/ipfs/QmY6xgqeeaR1FsCPLmFbVgjm1D2UyrXNABKXWLfFaSmBhR\"]},\"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\":\"0xacf4aee01f167b98b2869bdf4407682fd9f18b85507048bc274bcb98d094948c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86b114326973cef4f59c17e947945d09b90a0c48ede1da80f4f8aed0b6de179c\",\"dweb:/ipfs/QmZ6K6gZnV2ZdgbT8yG7Jz4HgoPymgdX3jTy6oUnG9xdgD\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xc2dc1bd6335fb0cc27cb7a80298d954d9ce0a0e9864d1dd8531aadb66c0ce21d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7e34a386bd44933010c4f5a4dbfe8b0b8e5e9e39eaead46a2ebef0018db9b72\",\"dweb:/ipfs/QmQPyAdLUmE2Y6Ai7t2n56USg25PGHYxxXWRi1zEkdyT6a\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xfecdfde3b41c04dcf43e9c19f84f6a7f77df0fd844928692742b47662a0b814c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://968e83ac99e8d1799730aa6f1f23962c3fe3566cd7ec8bcf97d297823c364764\",\"dweb:/ipfs/QmVnhbeg89ajfLP1U1HDLiWi8T7HuFtsXUydjKXyyPa7MP\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x42b9fd484a055e8e312a2396059fb76a962608fa3a875ea3da6e5aab79084d04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://866fd30788245eb54ac09d70768c0b34846d361b4219781c814fb06e38fb546c\",\"dweb:/ipfs/QmRbLCYjZ9qefcC8q7gnsAUsqCTEjdRtRnXdSNB1x7saPz\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x9e37c64c119ef07ad914bc589ee3f6d67946ab95877978c1ee3e2c1ffae07076\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fad47e542025382aa28e8171253e34f93b2f149434b67a26989542d70218793\",\"dweb:/ipfs/QmW6JsKNwPc6oAMrgcikgR2EPwMUtQANiuZSQSGCd29HHC\"]},\"node_modules/@latticexyz/store/src/leftMask.sol\":{\"keccak256\":\"0xd0360567e4d77c6a8e3d8a5f4bf3653ccde4d268674c50988d55695dc6193f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53e6bcb53fcb08ee9426225fdab7c41df91e12cb4f80d92895a6117338627401\",\"dweb:/ipfs/QmeLcaPGeMBpNSTSsPYK3PHpzKuGMjuitCweAWcoXK2mXr\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x60880298016fa117ed9a43ddfd020f11d98a2d345bdcb08e5884e40df98eddd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3619dfda1fd514c0fc5fb34c14d5b5aa41dd6ba6045d37d5f4c8199f3a826f81\",\"dweb:/ipfs/QmbzRBYfVa423gNzCitpGN3i2N9oeGYfinVE1jgtqxnNZX\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0xada1867ba72930fc5cf5562dd4e36de849dbac9c833b7969cb1b046a808fabf2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e4b5fdcaa54f567a3f8561c2c3fbc0d68c8dad892a4a8e5418bbce8efc53d84\",\"dweb:/ipfs/QmTWbYJX1yrCqrEwUKB9rGpHdRvLNU8GCkBbxnLjGD4d2t\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x1af0fd984640123391ec2df855d00298504b7ce186a56c2caca769cfd9e08e04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7305a62318890d2cc6420ba7dec13d9f2c1cb67ac689015fc83b9cbccd0696f1\",\"dweb:/ipfs/QmR8jGNLbt64Tv1YZKRVBCVsd71oeUQFzGHHtpsrs4PuRq\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x1c280d24360282e196d9c4833c58c2437108cea2af0ac7596f95be81389e306d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b4556b6eeae9328fbd9adcce346547e823c397503276a4d63effb67e00b5b49\",\"dweb:/ipfs/QmUsynVsMYzjh8oJR8YB7SRrwFMdXcsQsHBrXxLEEFxsiB\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x5cacd4cb371e0a79bc8d64f62349d568fd8b08093c11ae0c3db4f16480d8808b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12b64ddf2b5c19cf68ba93a8153ed79cbafe7a91e015d4b2f25eb1d42ab06256\",\"dweb:/ipfs/QmQz5WwztcuTbSGFv2pkhU3w5scUj1gmavoyUpduxk2v3A\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x01029999a48b7c1d85de84cae465dd24ec126c95b8a865cd20c7ed5dfcc0f02c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9750164ce996badb0fd7df2f526780b9cb9558912405fe46f31064bd7c522491\",\"dweb:/ipfs/QmYf8m2ZXFANRc9ysHgNkNtSF327ccxKYjCUJ49UXBKADk\"]}},\"version\":1}",
79
79
  "metadata": {
80
80
  "compiler": {
81
81
  "version": "0.8.21+commit.d9974bed"
@@ -147,7 +147,7 @@
147
147
  "methods": {
148
148
  "_msgSender()": {
149
149
  "returns": {
150
- "sender": "The address of the trusted sender."
150
+ "sender": "The `msg.sender` in the call to the World contract before the World routed the call to the WorldContextConsumer contract."
151
151
  }
152
152
  },
153
153
  "_msgValue()": {
@@ -175,7 +175,7 @@
175
175
  "kind": "user",
176
176
  "methods": {
177
177
  "_msgSender()": {
178
- "notice": "Extracts the trusted msg.sender value from the appended calldata."
178
+ "notice": "Extract the `msg.sender` from the context appended to the calldata."
179
179
  },
180
180
  "_msgValue()": {
181
181
  "notice": "Extract the `msg.value` from the context appended to the calldata."
@@ -226,10 +226,10 @@
226
226
  "license": "MIT"
227
227
  },
228
228
  "/home/runner/work/mud/mud/packages/world/src/WorldContext.sol": {
229
- "keccak256": "0x45792667fe063195103e9fd74e3e9e0b0b4aea4fc4a0a8a3e69538c14751217b",
229
+ "keccak256": "0xa11d93077d94f18683f1098b69c4713a48001ae15054476135ec9569041abb9a",
230
230
  "urls": [
231
- "bzz-raw://cba8976da1e2f7e336045e8d65eba89d18ae49e4688de61ff61a95fb817fe9fc",
232
- "dweb:/ipfs/QmWoByJM6DmheS2jisxSvAzrqC6XWrgaKxoNNUr44aXJtE"
231
+ "bzz-raw://9b1d3384def68b4061c445b55602dd9cbcd4e8c58c13db5e945f284a05c1b518",
232
+ "dweb:/ipfs/Qma5DUZrSKZUxrxiGCpyRPWMJNdHU2wu6qDEsFWEJSnLfN"
233
233
  ],
234
234
  "license": "MIT"
235
235
  },
@@ -394,10 +394,10 @@
394
394
  "license": "MIT"
395
395
  },
396
396
  "node_modules/@latticexyz/store/src/StoreCore.sol": {
397
- "keccak256": "0x1dd80c8f47d425b611aa382a226a47919831976e0da7145a227c1bf629eec24d",
397
+ "keccak256": "0x95b7d62d84b43777c54dd1c7d941dbb5ba0afc02c444c30cfdb1de671bbbf180",
398
398
  "urls": [
399
- "bzz-raw://ac31d8551e5ef995d45e8eef1067e9793a2228cc3a539e16121d27083b203715",
400
- "dweb:/ipfs/QmWntan3y5oFxNnuvit8A4Xiuk2bMWasWTA7cqkh7Tk427"
399
+ "bzz-raw://fe62a2fdb2a73610c3072f31b7f88ed3f9d03c1009fe0f0ef37a7eb814b23534",
400
+ "dweb:/ipfs/QmV85zaV5HAD6eGc5N4RmdtmpR6EwkswVLQTaR2aJqsXrj"
401
401
  ],
402
402
  "license": "MIT"
403
403
  },
@@ -518,38 +518,41 @@
518
518
  },
519
519
  "ast": {
520
520
  "absolutePath": "/home/runner/work/mud/mud/packages/world/src/WorldContext.sol",
521
- "id": 23782,
521
+ "id": 23814,
522
522
  "exportedSymbols": {
523
523
  "CONTEXT_BYTES": [
524
- 23567
524
+ 23565
525
525
  ],
526
526
  "ERC165_INTERFACE_ID": [
527
- 23234
527
+ 23232
528
528
  ],
529
529
  "IWorldContextConsumer": [
530
- 23380
530
+ 23378
531
531
  ],
532
532
  "StoreSwitch": [
533
- 31262
533
+ 31292
534
534
  ],
535
535
  "WORLD_CONTEXT_CONSUMER_INTERFACE_ID": [
536
- 23358
536
+ 23356
537
537
  ],
538
538
  "WorldContextConsumer": [
539
- 23627
539
+ 23619
540
540
  ],
541
- "WorldContextProvider": [
542
- 23781
541
+ "WorldContextConsumerLib": [
542
+ 23659
543
+ ],
544
+ "WorldContextProviderLib": [
545
+ 23813
543
546
  ],
544
547
  "revertWithBytes": [
545
- 24356
548
+ 24388
546
549
  ]
547
550
  },
548
551
  "nodeType": "SourceUnit",
549
- "src": "32:6995:40",
552
+ "src": "32:8156:40",
550
553
  "nodes": [
551
554
  {
552
- "id": 23553,
555
+ "id": 23551,
553
556
  "nodeType": "PragmaDirective",
554
557
  "src": "32:25:40",
555
558
  "nodes": [],
@@ -561,23 +564,23 @@
561
564
  ]
562
565
  },
563
566
  {
564
- "id": 23555,
567
+ "id": 23553,
565
568
  "nodeType": "ImportDirective",
566
569
  "src": "59:68:40",
567
570
  "nodes": [],
568
571
  "absolutePath": "node_modules/@latticexyz/store/src/StoreSwitch.sol",
569
572
  "file": "@latticexyz/store/src/StoreSwitch.sol",
570
573
  "nameLocation": "-1:-1:-1",
571
- "scope": 23782,
572
- "sourceUnit": 31263,
574
+ "scope": 23814,
575
+ "sourceUnit": 31293,
573
576
  "symbolAliases": [
574
577
  {
575
578
  "foreign": {
576
- "id": 23554,
579
+ "id": 23552,
577
580
  "name": "StoreSwitch",
578
581
  "nodeType": "Identifier",
579
582
  "overloadedDeclarations": [],
580
- "referencedDeclaration": 31262,
583
+ "referencedDeclaration": 31292,
581
584
  "src": "68:11:40",
582
585
  "typeDescriptions": {}
583
586
  },
@@ -587,23 +590,23 @@
587
590
  "unitAlias": ""
588
591
  },
589
592
  {
590
- "id": 23557,
593
+ "id": 23555,
591
594
  "nodeType": "ImportDirective",
592
595
  "src": "128:56:40",
593
596
  "nodes": [],
594
597
  "absolutePath": "/home/runner/work/mud/mud/packages/world/src/revertWithBytes.sol",
595
598
  "file": "./revertWithBytes.sol",
596
599
  "nameLocation": "-1:-1:-1",
597
- "scope": 23782,
598
- "sourceUnit": 24357,
600
+ "scope": 23814,
601
+ "sourceUnit": 24389,
599
602
  "symbolAliases": [
600
603
  {
601
604
  "foreign": {
602
- "id": 23556,
605
+ "id": 23554,
603
606
  "name": "revertWithBytes",
604
607
  "nodeType": "Identifier",
605
608
  "overloadedDeclarations": [],
606
- "referencedDeclaration": 24356,
609
+ "referencedDeclaration": 24388,
607
610
  "src": "137:15:40",
608
611
  "typeDescriptions": {}
609
612
  },
@@ -613,23 +616,23 @@
613
616
  "unitAlias": ""
614
617
  },
615
618
  {
616
- "id": 23559,
619
+ "id": 23557,
617
620
  "nodeType": "ImportDirective",
618
621
  "src": "185:52:40",
619
622
  "nodes": [],
620
623
  "absolutePath": "/home/runner/work/mud/mud/packages/world/src/IERC165.sol",
621
624
  "file": "./IERC165.sol",
622
625
  "nameLocation": "-1:-1:-1",
623
- "scope": 23782,
624
- "sourceUnit": 23245,
626
+ "scope": 23814,
627
+ "sourceUnit": 23243,
625
628
  "symbolAliases": [
626
629
  {
627
630
  "foreign": {
628
- "id": 23558,
631
+ "id": 23556,
629
632
  "name": "ERC165_INTERFACE_ID",
630
633
  "nodeType": "Identifier",
631
634
  "overloadedDeclarations": [],
632
- "referencedDeclaration": 23234,
635
+ "referencedDeclaration": 23232,
633
636
  "src": "194:19:40",
634
637
  "typeDescriptions": {}
635
638
  },
@@ -639,23 +642,23 @@
639
642
  "unitAlias": ""
640
643
  },
641
644
  {
642
- "id": 23562,
645
+ "id": 23560,
643
646
  "nodeType": "ImportDirective",
644
647
  "src": "238:105:40",
645
648
  "nodes": [],
646
649
  "absolutePath": "/home/runner/work/mud/mud/packages/world/src/IWorldContextConsumer.sol",
647
650
  "file": "./IWorldContextConsumer.sol",
648
651
  "nameLocation": "-1:-1:-1",
649
- "scope": 23782,
650
- "sourceUnit": 23381,
652
+ "scope": 23814,
653
+ "sourceUnit": 23379,
651
654
  "symbolAliases": [
652
655
  {
653
656
  "foreign": {
654
- "id": 23560,
657
+ "id": 23558,
655
658
  "name": "IWorldContextConsumer",
656
659
  "nodeType": "Identifier",
657
660
  "overloadedDeclarations": [],
658
- "referencedDeclaration": 23380,
661
+ "referencedDeclaration": 23378,
659
662
  "src": "247:21:40",
660
663
  "typeDescriptions": {}
661
664
  },
@@ -663,11 +666,11 @@
663
666
  },
664
667
  {
665
668
  "foreign": {
666
- "id": 23561,
669
+ "id": 23559,
667
670
  "name": "WORLD_CONTEXT_CONSUMER_INTERFACE_ID",
668
671
  "nodeType": "Identifier",
669
672
  "overloadedDeclarations": [],
670
- "referencedDeclaration": 23358,
673
+ "referencedDeclaration": 23356,
671
674
  "src": "270:35:40",
672
675
  "typeDescriptions": {}
673
676
  },
@@ -677,7 +680,7 @@
677
680
  "unitAlias": ""
678
681
  },
679
682
  {
680
- "id": 23567,
683
+ "id": 23565,
681
684
  "nodeType": "VariableDeclaration",
682
685
  "src": "420:40:40",
683
686
  "nodes": [],
@@ -685,7 +688,7 @@
685
688
  "mutability": "constant",
686
689
  "name": "CONTEXT_BYTES",
687
690
  "nameLocation": "437:13:40",
688
- "scope": 23782,
691
+ "scope": 23814,
689
692
  "stateVariable": false,
690
693
  "storageLocation": "default",
691
694
  "typeDescriptions": {
@@ -693,7 +696,7 @@
693
696
  "typeString": "uint256"
694
697
  },
695
698
  "typeName": {
696
- "id": 23563,
699
+ "id": 23561,
697
700
  "name": "uint256",
698
701
  "nodeType": "ElementaryTypeName",
699
702
  "src": "420:7:40",
@@ -707,14 +710,14 @@
707
710
  "typeIdentifier": "t_rational_52_by_1",
708
711
  "typeString": "int_const 52"
709
712
  },
710
- "id": 23566,
713
+ "id": 23564,
711
714
  "isConstant": false,
712
715
  "isLValue": false,
713
716
  "isPure": true,
714
717
  "lValueRequested": false,
715
718
  "leftExpression": {
716
719
  "hexValue": "3230",
717
- "id": 23564,
720
+ "id": 23562,
718
721
  "isConstant": false,
719
722
  "isLValue": false,
720
723
  "isPure": true,
@@ -732,7 +735,7 @@
732
735
  "operator": "+",
733
736
  "rightExpression": {
734
737
  "hexValue": "3332",
735
- "id": 23565,
738
+ "id": 23563,
736
739
  "isConstant": false,
737
740
  "isLValue": false,
738
741
  "isPure": true,
@@ -755,318 +758,110 @@
755
758
  "visibility": "internal"
756
759
  },
757
760
  {
758
- "id": 23627,
761
+ "id": 23619,
759
762
  "nodeType": "ContractDefinition",
760
- "src": "937:1838:40",
763
+ "src": "937:1564:40",
761
764
  "nodes": [
762
765
  {
763
- "id": 23590,
766
+ "id": 23579,
764
767
  "nodeType": "FunctionDefinition",
765
- "src": "1151:379:40",
768
+ "src": "1245:113:40",
766
769
  "nodes": [],
767
770
  "body": {
768
- "id": 23589,
771
+ "id": 23578,
769
772
  "nodeType": "Block",
770
- "src": "1210:320:40",
773
+ "src": "1304:54:40",
771
774
  "nodes": [],
772
775
  "statements": [
773
776
  {
774
- "AST": {
775
- "nativeSrc": "1225:250:40",
776
- "nodeType": "YulBlock",
777
- "src": "1225:250:40",
778
- "statements": [
779
- {
780
- "nativeSrc": "1402:67:40",
781
- "nodeType": "YulAssignment",
782
- "src": "1402:67:40",
783
- "value": {
784
- "arguments": [
785
- {
786
- "kind": "number",
787
- "nativeSrc": "1416:2:40",
788
- "nodeType": "YulLiteral",
789
- "src": "1416:2:40",
790
- "type": "",
791
- "value": "96"
792
- },
793
- {
794
- "arguments": [
795
- {
796
- "arguments": [
797
- {
798
- "arguments": [],
799
- "functionName": {
800
- "name": "calldatasize",
801
- "nativeSrc": "1437:12:40",
802
- "nodeType": "YulIdentifier",
803
- "src": "1437:12:40"
804
- },
805
- "nativeSrc": "1437:14:40",
806
- "nodeType": "YulFunctionCall",
807
- "src": "1437:14:40"
808
- },
809
- {
810
- "name": "CONTEXT_BYTES",
811
- "nativeSrc": "1453:13:40",
812
- "nodeType": "YulIdentifier",
813
- "src": "1453:13:40"
814
- }
815
- ],
816
- "functionName": {
817
- "name": "sub",
818
- "nativeSrc": "1433:3:40",
819
- "nodeType": "YulIdentifier",
820
- "src": "1433:3:40"
821
- },
822
- "nativeSrc": "1433:34:40",
823
- "nodeType": "YulFunctionCall",
824
- "src": "1433:34:40"
825
- }
826
- ],
827
- "functionName": {
828
- "name": "calldataload",
829
- "nativeSrc": "1420:12:40",
830
- "nodeType": "YulIdentifier",
831
- "src": "1420:12:40"
832
- },
833
- "nativeSrc": "1420:48:40",
834
- "nodeType": "YulFunctionCall",
835
- "src": "1420:48:40"
836
- }
837
- ],
838
- "functionName": {
839
- "name": "shr",
840
- "nativeSrc": "1412:3:40",
841
- "nodeType": "YulIdentifier",
842
- "src": "1412:3:40"
843
- },
844
- "nativeSrc": "1412:57:40",
845
- "nodeType": "YulFunctionCall",
846
- "src": "1412:57:40"
847
- },
848
- "variableNames": [
849
- {
850
- "name": "sender",
851
- "nativeSrc": "1402:6:40",
852
- "nodeType": "YulIdentifier",
853
- "src": "1402:6:40"
854
- }
855
- ]
856
- }
857
- ]
858
- },
859
- "evmVersion": "paris",
860
- "externalReferences": [
861
- {
862
- "declaration": 23567,
863
- "isOffset": false,
864
- "isSlot": false,
865
- "src": "1453:13:40",
866
- "valueSize": 1
867
- },
868
- {
869
- "declaration": 23574,
870
- "isOffset": false,
871
- "isSlot": false,
872
- "src": "1402:6:40",
873
- "valueSize": 1
874
- }
875
- ],
876
- "id": 23576,
877
- "nodeType": "InlineAssembly",
878
- "src": "1216:259:40"
879
- },
880
- {
881
- "condition": {
882
- "commonType": {
883
- "typeIdentifier": "t_address",
884
- "typeString": "address"
885
- },
886
- "id": 23582,
887
- "isConstant": false,
888
- "isLValue": false,
889
- "isPure": false,
890
- "lValueRequested": false,
891
- "leftExpression": {
892
- "id": 23577,
893
- "name": "sender",
894
- "nodeType": "Identifier",
895
- "overloadedDeclarations": [],
896
- "referencedDeclaration": 23574,
897
- "src": "1484:6:40",
898
- "typeDescriptions": {
899
- "typeIdentifier": "t_address",
900
- "typeString": "address"
901
- }
902
- },
903
- "nodeType": "BinaryOperation",
904
- "operator": "==",
905
- "rightExpression": {
906
- "arguments": [
907
- {
908
- "hexValue": "30",
909
- "id": 23580,
910
- "isConstant": false,
911
- "isLValue": false,
912
- "isPure": true,
913
- "kind": "number",
914
- "lValueRequested": false,
915
- "nodeType": "Literal",
916
- "src": "1502:1:40",
917
- "typeDescriptions": {
918
- "typeIdentifier": "t_rational_0_by_1",
919
- "typeString": "int_const 0"
920
- },
921
- "value": "0"
922
- }
923
- ],
777
+ "expression": {
778
+ "arguments": [],
779
+ "expression": {
780
+ "argumentTypes": [],
924
781
  "expression": {
925
- "argumentTypes": [
926
- {
927
- "typeIdentifier": "t_rational_0_by_1",
928
- "typeString": "int_const 0"
929
- }
930
- ],
931
- "id": 23579,
932
- "isConstant": false,
933
- "isLValue": false,
934
- "isPure": true,
935
- "lValueRequested": false,
936
- "nodeType": "ElementaryTypeNameExpression",
937
- "src": "1494:7:40",
782
+ "id": 23574,
783
+ "name": "WorldContextConsumerLib",
784
+ "nodeType": "Identifier",
785
+ "overloadedDeclarations": [],
786
+ "referencedDeclaration": 23659,
787
+ "src": "1317:23:40",
938
788
  "typeDescriptions": {
939
- "typeIdentifier": "t_type$_t_address_$",
940
- "typeString": "type(address)"
941
- },
942
- "typeName": {
943
- "id": 23578,
944
- "name": "address",
945
- "nodeType": "ElementaryTypeName",
946
- "src": "1494:7:40",
947
- "typeDescriptions": {}
789
+ "typeIdentifier": "t_type$_t_contract$_WorldContextConsumerLib_$23659_$",
790
+ "typeString": "type(library WorldContextConsumerLib)"
948
791
  }
949
792
  },
950
- "id": 23581,
793
+ "id": 23575,
951
794
  "isConstant": false,
952
795
  "isLValue": false,
953
- "isPure": true,
954
- "kind": "typeConversion",
796
+ "isPure": false,
955
797
  "lValueRequested": false,
956
- "nameLocations": [],
957
- "names": [],
958
- "nodeType": "FunctionCall",
959
- "src": "1494:10:40",
960
- "tryCall": false,
798
+ "memberLocation": "1341:10:40",
799
+ "memberName": "_msgSender",
800
+ "nodeType": "MemberAccess",
801
+ "referencedDeclaration": 23639,
802
+ "src": "1317:34:40",
961
803
  "typeDescriptions": {
962
- "typeIdentifier": "t_address",
963
- "typeString": "address"
804
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
805
+ "typeString": "function () view returns (address)"
964
806
  }
965
807
  },
966
- "src": "1484:20:40",
808
+ "id": 23576,
809
+ "isConstant": false,
810
+ "isLValue": false,
811
+ "isPure": false,
812
+ "kind": "functionCall",
813
+ "lValueRequested": false,
814
+ "nameLocations": [],
815
+ "names": [],
816
+ "nodeType": "FunctionCall",
817
+ "src": "1317:36:40",
818
+ "tryCall": false,
967
819
  "typeDescriptions": {
968
- "typeIdentifier": "t_bool",
969
- "typeString": "bool"
820
+ "typeIdentifier": "t_address",
821
+ "typeString": "address"
970
822
  }
971
823
  },
972
- "id": 23588,
973
- "nodeType": "IfStatement",
974
- "src": "1480:45:40",
975
- "trueBody": {
976
- "expression": {
977
- "id": 23586,
978
- "isConstant": false,
979
- "isLValue": false,
980
- "isPure": false,
981
- "lValueRequested": false,
982
- "leftHandSide": {
983
- "id": 23583,
984
- "name": "sender",
985
- "nodeType": "Identifier",
986
- "overloadedDeclarations": [],
987
- "referencedDeclaration": 23574,
988
- "src": "1506:6:40",
989
- "typeDescriptions": {
990
- "typeIdentifier": "t_address",
991
- "typeString": "address"
992
- }
993
- },
994
- "nodeType": "Assignment",
995
- "operator": "=",
996
- "rightHandSide": {
997
- "expression": {
998
- "id": 23584,
999
- "name": "msg",
1000
- "nodeType": "Identifier",
1001
- "overloadedDeclarations": [],
1002
- "referencedDeclaration": -15,
1003
- "src": "1515:3:40",
1004
- "typeDescriptions": {
1005
- "typeIdentifier": "t_magic_message",
1006
- "typeString": "msg"
1007
- }
1008
- },
1009
- "id": 23585,
1010
- "isConstant": false,
1011
- "isLValue": false,
1012
- "isPure": false,
1013
- "lValueRequested": false,
1014
- "memberLocation": "1519:6:40",
1015
- "memberName": "sender",
1016
- "nodeType": "MemberAccess",
1017
- "src": "1515:10:40",
1018
- "typeDescriptions": {
1019
- "typeIdentifier": "t_address",
1020
- "typeString": "address"
1021
- }
1022
- },
1023
- "src": "1506:19:40",
1024
- "typeDescriptions": {
1025
- "typeIdentifier": "t_address",
1026
- "typeString": "address"
1027
- }
1028
- },
1029
- "id": 23587,
1030
- "nodeType": "ExpressionStatement",
1031
- "src": "1506:19:40"
1032
- }
824
+ "functionReturnParameters": 23573,
825
+ "id": 23577,
826
+ "nodeType": "Return",
827
+ "src": "1310:43:40"
1033
828
  }
1034
829
  ]
1035
830
  },
1036
831
  "baseFunctions": [
1037
- 23367
832
+ 23365
1038
833
  ],
1039
834
  "documentation": {
1040
- "id": 23571,
835
+ "id": 23569,
1041
836
  "nodeType": "StructuredDocumentation",
1042
- "src": "1005:143:40",
1043
- "text": " @notice Extracts the trusted msg.sender value from the appended calldata.\n @return sender The address of the trusted sender."
837
+ "src": "1005:237:40",
838
+ "text": " @notice Extract the `msg.sender` from the context appended to the calldata.\n @return sender The `msg.sender` in the call to the World contract before the World routed the\n call to the WorldContextConsumer contract."
1044
839
  },
1045
840
  "functionSelector": "119df25f",
1046
841
  "implemented": true,
1047
842
  "kind": "function",
1048
843
  "modifiers": [],
1049
844
  "name": "_msgSender",
1050
- "nameLocation": "1160:10:40",
845
+ "nameLocation": "1254:10:40",
1051
846
  "parameters": {
1052
- "id": 23572,
847
+ "id": 23570,
1053
848
  "nodeType": "ParameterList",
1054
849
  "parameters": [],
1055
- "src": "1170:2:40"
850
+ "src": "1264:2:40"
1056
851
  },
1057
852
  "returnParameters": {
1058
- "id": 23575,
853
+ "id": 23573,
1059
854
  "nodeType": "ParameterList",
1060
855
  "parameters": [
1061
856
  {
1062
857
  "constant": false,
1063
- "id": 23574,
858
+ "id": 23572,
1064
859
  "mutability": "mutable",
1065
860
  "name": "sender",
1066
- "nameLocation": "1202:6:40",
861
+ "nameLocation": "1296:6:40",
1067
862
  "nodeType": "VariableDeclaration",
1068
- "scope": 23590,
1069
- "src": "1194:14:40",
863
+ "scope": 23579,
864
+ "src": "1288:14:40",
1070
865
  "stateVariable": false,
1071
866
  "storageLocation": "default",
1072
867
  "typeDescriptions": {
@@ -1074,10 +869,10 @@
1074
869
  "typeString": "address"
1075
870
  },
1076
871
  "typeName": {
1077
- "id": 23573,
872
+ "id": 23571,
1078
873
  "name": "address",
1079
874
  "nodeType": "ElementaryTypeName",
1080
- "src": "1194:7:40",
875
+ "src": "1288:7:40",
1081
876
  "stateMutability": "nonpayable",
1082
877
  "typeDescriptions": {
1083
878
  "typeIdentifier": "t_address",
@@ -1087,114 +882,86 @@
1087
882
  "visibility": "internal"
1088
883
  }
1089
884
  ],
1090
- "src": "1193:16:40"
885
+ "src": "1287:16:40"
1091
886
  },
1092
- "scope": 23627,
887
+ "scope": 23619,
1093
888
  "stateMutability": "view",
1094
889
  "virtual": false,
1095
890
  "visibility": "public"
1096
891
  },
1097
892
  {
1098
- "id": 23598,
893
+ "id": 23590,
1099
894
  "nodeType": "FunctionDefinition",
1100
- "src": "1771:212:40",
895
+ "src": "1599:110:40",
1101
896
  "nodes": [],
1102
897
  "body": {
1103
- "id": 23597,
898
+ "id": 23589,
1104
899
  "nodeType": "Block",
1105
- "src": "1828:155:40",
900
+ "src": "1656:53:40",
1106
901
  "nodes": [],
1107
902
  "statements": [
1108
903
  {
1109
- "AST": {
1110
- "nativeSrc": "1843:136:40",
1111
- "nodeType": "YulBlock",
1112
- "src": "1843:136:40",
1113
- "statements": [
1114
- {
1115
- "nativeSrc": "1927:46:40",
1116
- "nodeType": "YulAssignment",
1117
- "src": "1927:46:40",
1118
- "value": {
1119
- "arguments": [
1120
- {
1121
- "arguments": [
1122
- {
1123
- "arguments": [],
1124
- "functionName": {
1125
- "name": "calldatasize",
1126
- "nativeSrc": "1953:12:40",
1127
- "nodeType": "YulIdentifier",
1128
- "src": "1953:12:40"
1129
- },
1130
- "nativeSrc": "1953:14:40",
1131
- "nodeType": "YulFunctionCall",
1132
- "src": "1953:14:40"
1133
- },
1134
- {
1135
- "kind": "number",
1136
- "nativeSrc": "1969:2:40",
1137
- "nodeType": "YulLiteral",
1138
- "src": "1969:2:40",
1139
- "type": "",
1140
- "value": "32"
1141
- }
1142
- ],
1143
- "functionName": {
1144
- "name": "sub",
1145
- "nativeSrc": "1949:3:40",
1146
- "nodeType": "YulIdentifier",
1147
- "src": "1949:3:40"
1148
- },
1149
- "nativeSrc": "1949:23:40",
1150
- "nodeType": "YulFunctionCall",
1151
- "src": "1949:23:40"
1152
- }
1153
- ],
1154
- "functionName": {
1155
- "name": "calldataload",
1156
- "nativeSrc": "1936:12:40",
1157
- "nodeType": "YulIdentifier",
1158
- "src": "1936:12:40"
1159
- },
1160
- "nativeSrc": "1936:37:40",
1161
- "nodeType": "YulFunctionCall",
1162
- "src": "1936:37:40"
1163
- },
1164
- "variableNames": [
1165
- {
1166
- "name": "value",
1167
- "nativeSrc": "1927:5:40",
1168
- "nodeType": "YulIdentifier",
1169
- "src": "1927:5:40"
1170
- }
1171
- ]
904
+ "expression": {
905
+ "arguments": [],
906
+ "expression": {
907
+ "argumentTypes": [],
908
+ "expression": {
909
+ "id": 23585,
910
+ "name": "WorldContextConsumerLib",
911
+ "nodeType": "Identifier",
912
+ "overloadedDeclarations": [],
913
+ "referencedDeclaration": 23659,
914
+ "src": "1669:23:40",
915
+ "typeDescriptions": {
916
+ "typeIdentifier": "t_type$_t_contract$_WorldContextConsumerLib_$23659_$",
917
+ "typeString": "type(library WorldContextConsumerLib)"
918
+ }
919
+ },
920
+ "id": 23586,
921
+ "isConstant": false,
922
+ "isLValue": false,
923
+ "isPure": false,
924
+ "lValueRequested": false,
925
+ "memberLocation": "1693:9:40",
926
+ "memberName": "_msgValue",
927
+ "nodeType": "MemberAccess",
928
+ "referencedDeclaration": 23647,
929
+ "src": "1669:33:40",
930
+ "typeDescriptions": {
931
+ "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
932
+ "typeString": "function () pure returns (uint256)"
1172
933
  }
1173
- ]
1174
- },
1175
- "evmVersion": "paris",
1176
- "externalReferences": [
1177
- {
1178
- "declaration": 23594,
1179
- "isOffset": false,
1180
- "isSlot": false,
1181
- "src": "1927:5:40",
1182
- "valueSize": 1
934
+ },
935
+ "id": 23587,
936
+ "isConstant": false,
937
+ "isLValue": false,
938
+ "isPure": false,
939
+ "kind": "functionCall",
940
+ "lValueRequested": false,
941
+ "nameLocations": [],
942
+ "names": [],
943
+ "nodeType": "FunctionCall",
944
+ "src": "1669:35:40",
945
+ "tryCall": false,
946
+ "typeDescriptions": {
947
+ "typeIdentifier": "t_uint256",
948
+ "typeString": "uint256"
1183
949
  }
1184
- ],
1185
- "id": 23596,
1186
- "nodeType": "InlineAssembly",
1187
- "src": "1834:145:40"
950
+ },
951
+ "functionReturnParameters": 23584,
952
+ "id": 23588,
953
+ "nodeType": "Return",
954
+ "src": "1662:42:40"
1188
955
  }
1189
956
  ]
1190
957
  },
1191
958
  "baseFunctions": [
1192
- 23373
959
+ 23371
1193
960
  ],
1194
961
  "documentation": {
1195
- "id": 23591,
962
+ "id": 23580,
1196
963
  "nodeType": "StructuredDocumentation",
1197
- "src": "1534:234:40",
964
+ "src": "1362:234:40",
1198
965
  "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
966
  },
1200
967
  "functionSelector": "45ec9354",
@@ -1202,26 +969,26 @@
1202
969
  "kind": "function",
1203
970
  "modifiers": [],
1204
971
  "name": "_msgValue",
1205
- "nameLocation": "1780:9:40",
972
+ "nameLocation": "1608:9:40",
1206
973
  "parameters": {
1207
- "id": 23592,
974
+ "id": 23581,
1208
975
  "nodeType": "ParameterList",
1209
976
  "parameters": [],
1210
- "src": "1789:2:40"
977
+ "src": "1617:2:40"
1211
978
  },
1212
979
  "returnParameters": {
1213
- "id": 23595,
980
+ "id": 23584,
1214
981
  "nodeType": "ParameterList",
1215
982
  "parameters": [
1216
983
  {
1217
984
  "constant": false,
1218
- "id": 23594,
985
+ "id": 23583,
1219
986
  "mutability": "mutable",
1220
987
  "name": "value",
1221
- "nameLocation": "1821:5:40",
988
+ "nameLocation": "1649:5:40",
1222
989
  "nodeType": "VariableDeclaration",
1223
- "scope": 23598,
1224
- "src": "1813:13:40",
990
+ "scope": 23590,
991
+ "src": "1641:13:40",
1225
992
  "stateVariable": false,
1226
993
  "storageLocation": "default",
1227
994
  "typeDescriptions": {
@@ -1229,10 +996,10 @@
1229
996
  "typeString": "uint256"
1230
997
  },
1231
998
  "typeName": {
1232
- "id": 23593,
999
+ "id": 23582,
1233
1000
  "name": "uint256",
1234
1001
  "nodeType": "ElementaryTypeName",
1235
- "src": "1813:7:40",
1002
+ "src": "1641:7:40",
1236
1003
  "typeDescriptions": {
1237
1004
  "typeIdentifier": "t_uint256",
1238
1005
  "typeString": "uint256"
@@ -1241,22 +1008,22 @@
1241
1008
  "visibility": "internal"
1242
1009
  }
1243
1010
  ],
1244
- "src": "1812:15:40"
1011
+ "src": "1640:15:40"
1245
1012
  },
1246
- "scope": 23627,
1013
+ "scope": 23619,
1247
1014
  "stateMutability": "pure",
1248
1015
  "virtual": false,
1249
1016
  "visibility": "public"
1250
1017
  },
1251
1018
  {
1252
- "id": 23609,
1019
+ "id": 23601,
1253
1020
  "nodeType": "FunctionDefinition",
1254
- "src": "2199:95:40",
1021
+ "src": "1925:95:40",
1255
1022
  "nodes": [],
1256
1023
  "body": {
1257
- "id": 23608,
1024
+ "id": 23600,
1258
1025
  "nodeType": "Block",
1259
- "src": "2247:47:40",
1026
+ "src": "1973:47:40",
1260
1027
  "nodes": [],
1261
1028
  "statements": [
1262
1029
  {
@@ -1265,33 +1032,33 @@
1265
1032
  "expression": {
1266
1033
  "argumentTypes": [],
1267
1034
  "expression": {
1268
- "id": 23604,
1035
+ "id": 23596,
1269
1036
  "name": "StoreSwitch",
1270
1037
  "nodeType": "Identifier",
1271
1038
  "overloadedDeclarations": [],
1272
- "referencedDeclaration": 31262,
1273
- "src": "2260:11:40",
1039
+ "referencedDeclaration": 31292,
1040
+ "src": "1986:11:40",
1274
1041
  "typeDescriptions": {
1275
- "typeIdentifier": "t_type$_t_contract$_StoreSwitch_$31262_$",
1042
+ "typeIdentifier": "t_type$_t_contract$_StoreSwitch_$31292_$",
1276
1043
  "typeString": "type(library StoreSwitch)"
1277
1044
  }
1278
1045
  },
1279
- "id": 23605,
1046
+ "id": 23597,
1280
1047
  "isConstant": false,
1281
1048
  "isLValue": false,
1282
1049
  "isPure": false,
1283
1050
  "lValueRequested": false,
1284
- "memberLocation": "2272:15:40",
1051
+ "memberLocation": "1998:15:40",
1285
1052
  "memberName": "getStoreAddress",
1286
1053
  "nodeType": "MemberAccess",
1287
- "referencedDeclaration": 30006,
1288
- "src": "2260:27:40",
1054
+ "referencedDeclaration": 30036,
1055
+ "src": "1986:27:40",
1289
1056
  "typeDescriptions": {
1290
1057
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
1291
1058
  "typeString": "function () view returns (address)"
1292
1059
  }
1293
1060
  },
1294
- "id": 23606,
1061
+ "id": 23598,
1295
1062
  "isConstant": false,
1296
1063
  "isLValue": false,
1297
1064
  "isPure": false,
@@ -1300,27 +1067,27 @@
1300
1067
  "nameLocations": [],
1301
1068
  "names": [],
1302
1069
  "nodeType": "FunctionCall",
1303
- "src": "2260:29:40",
1070
+ "src": "1986:29:40",
1304
1071
  "tryCall": false,
1305
1072
  "typeDescriptions": {
1306
1073
  "typeIdentifier": "t_address",
1307
1074
  "typeString": "address"
1308
1075
  }
1309
1076
  },
1310
- "functionReturnParameters": 23603,
1311
- "id": 23607,
1077
+ "functionReturnParameters": 23595,
1078
+ "id": 23599,
1312
1079
  "nodeType": "Return",
1313
- "src": "2253:36:40"
1080
+ "src": "1979:36:40"
1314
1081
  }
1315
1082
  ]
1316
1083
  },
1317
1084
  "baseFunctions": [
1318
- 23379
1085
+ 23377
1319
1086
  ],
1320
1087
  "documentation": {
1321
- "id": 23599,
1088
+ "id": 23591,
1322
1089
  "nodeType": "StructuredDocumentation",
1323
- "src": "1987:209:40",
1090
+ "src": "1713:209:40",
1324
1091
  "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
1092
  },
1326
1093
  "functionSelector": "e1af802c",
@@ -1328,26 +1095,26 @@
1328
1095
  "kind": "function",
1329
1096
  "modifiers": [],
1330
1097
  "name": "_world",
1331
- "nameLocation": "2208:6:40",
1098
+ "nameLocation": "1934:6:40",
1332
1099
  "parameters": {
1333
- "id": 23600,
1100
+ "id": 23592,
1334
1101
  "nodeType": "ParameterList",
1335
1102
  "parameters": [],
1336
- "src": "2214:2:40"
1103
+ "src": "1940:2:40"
1337
1104
  },
1338
1105
  "returnParameters": {
1339
- "id": 23603,
1106
+ "id": 23595,
1340
1107
  "nodeType": "ParameterList",
1341
1108
  "parameters": [
1342
1109
  {
1343
1110
  "constant": false,
1344
- "id": 23602,
1111
+ "id": 23594,
1345
1112
  "mutability": "mutable",
1346
1113
  "name": "",
1347
1114
  "nameLocation": "-1:-1:-1",
1348
1115
  "nodeType": "VariableDeclaration",
1349
- "scope": 23609,
1350
- "src": "2238:7:40",
1116
+ "scope": 23601,
1117
+ "src": "1964:7:40",
1351
1118
  "stateVariable": false,
1352
1119
  "storageLocation": "default",
1353
1120
  "typeDescriptions": {
@@ -1355,10 +1122,10 @@
1355
1122
  "typeString": "address"
1356
1123
  },
1357
1124
  "typeName": {
1358
- "id": 23601,
1125
+ "id": 23593,
1359
1126
  "name": "address",
1360
1127
  "nodeType": "ElementaryTypeName",
1361
- "src": "2238:7:40",
1128
+ "src": "1964:7:40",
1362
1129
  "stateMutability": "nonpayable",
1363
1130
  "typeDescriptions": {
1364
1131
  "typeIdentifier": "t_address",
@@ -1368,22 +1135,22 @@
1368
1135
  "visibility": "internal"
1369
1136
  }
1370
1137
  ],
1371
- "src": "2237:9:40"
1138
+ "src": "1963:9:40"
1372
1139
  },
1373
- "scope": 23627,
1140
+ "scope": 23619,
1374
1141
  "stateMutability": "view",
1375
1142
  "virtual": false,
1376
1143
  "visibility": "public"
1377
1144
  },
1378
1145
  {
1379
- "id": 23626,
1146
+ "id": 23618,
1380
1147
  "nodeType": "FunctionDefinition",
1381
- "src": "2585:188:40",
1148
+ "src": "2311:188:40",
1382
1149
  "nodes": [],
1383
1150
  "body": {
1384
- "id": 23625,
1151
+ "id": 23617,
1385
1152
  "nodeType": "Block",
1386
- "src": "2667:106:40",
1153
+ "src": "2393:106:40",
1387
1154
  "nodes": [],
1388
1155
  "statements": [
1389
1156
  {
@@ -1392,7 +1159,7 @@
1392
1159
  "typeIdentifier": "t_bool",
1393
1160
  "typeString": "bool"
1394
1161
  },
1395
- "id": 23623,
1162
+ "id": 23615,
1396
1163
  "isConstant": false,
1397
1164
  "isLValue": false,
1398
1165
  "isPure": false,
@@ -1402,18 +1169,18 @@
1402
1169
  "typeIdentifier": "t_bytes4",
1403
1170
  "typeString": "bytes4"
1404
1171
  },
1405
- "id": 23619,
1172
+ "id": 23611,
1406
1173
  "isConstant": false,
1407
1174
  "isLValue": false,
1408
1175
  "isPure": false,
1409
1176
  "lValueRequested": false,
1410
1177
  "leftExpression": {
1411
- "id": 23617,
1178
+ "id": 23609,
1412
1179
  "name": "interfaceId",
1413
1180
  "nodeType": "Identifier",
1414
1181
  "overloadedDeclarations": [],
1415
- "referencedDeclaration": 23612,
1416
- "src": "2680:11:40",
1182
+ "referencedDeclaration": 23604,
1183
+ "src": "2406:11:40",
1417
1184
  "typeDescriptions": {
1418
1185
  "typeIdentifier": "t_bytes4",
1419
1186
  "typeString": "bytes4"
@@ -1422,18 +1189,18 @@
1422
1189
  "nodeType": "BinaryOperation",
1423
1190
  "operator": "==",
1424
1191
  "rightExpression": {
1425
- "id": 23618,
1192
+ "id": 23610,
1426
1193
  "name": "WORLD_CONTEXT_CONSUMER_INTERFACE_ID",
1427
1194
  "nodeType": "Identifier",
1428
1195
  "overloadedDeclarations": [],
1429
- "referencedDeclaration": 23358,
1430
- "src": "2695:35:40",
1196
+ "referencedDeclaration": 23356,
1197
+ "src": "2421:35:40",
1431
1198
  "typeDescriptions": {
1432
1199
  "typeIdentifier": "t_bytes4",
1433
1200
  "typeString": "bytes4"
1434
1201
  }
1435
1202
  },
1436
- "src": "2680:50:40",
1203
+ "src": "2406:50:40",
1437
1204
  "typeDescriptions": {
1438
1205
  "typeIdentifier": "t_bool",
1439
1206
  "typeString": "bool"
@@ -1446,18 +1213,18 @@
1446
1213
  "typeIdentifier": "t_bytes4",
1447
1214
  "typeString": "bytes4"
1448
1215
  },
1449
- "id": 23622,
1216
+ "id": 23614,
1450
1217
  "isConstant": false,
1451
1218
  "isLValue": false,
1452
1219
  "isPure": false,
1453
1220
  "lValueRequested": false,
1454
1221
  "leftExpression": {
1455
- "id": 23620,
1222
+ "id": 23612,
1456
1223
  "name": "interfaceId",
1457
1224
  "nodeType": "Identifier",
1458
1225
  "overloadedDeclarations": [],
1459
- "referencedDeclaration": 23612,
1460
- "src": "2734:11:40",
1226
+ "referencedDeclaration": 23604,
1227
+ "src": "2460:11:40",
1461
1228
  "typeDescriptions": {
1462
1229
  "typeIdentifier": "t_bytes4",
1463
1230
  "typeString": "bytes4"
@@ -1466,214 +1233,839 @@
1466
1233
  "nodeType": "BinaryOperation",
1467
1234
  "operator": "==",
1468
1235
  "rightExpression": {
1469
- "id": 23621,
1236
+ "id": 23613,
1470
1237
  "name": "ERC165_INTERFACE_ID",
1471
1238
  "nodeType": "Identifier",
1472
1239
  "overloadedDeclarations": [],
1473
- "referencedDeclaration": 23234,
1474
- "src": "2749:19:40",
1240
+ "referencedDeclaration": 23232,
1241
+ "src": "2475:19:40",
1475
1242
  "typeDescriptions": {
1476
1243
  "typeIdentifier": "t_bytes4",
1477
1244
  "typeString": "bytes4"
1478
1245
  }
1479
1246
  },
1480
- "src": "2734:34:40",
1247
+ "src": "2460:34:40",
1481
1248
  "typeDescriptions": {
1482
1249
  "typeIdentifier": "t_bool",
1483
1250
  "typeString": "bool"
1484
1251
  }
1485
- },
1486
- "src": "2680:88:40",
1487
- "typeDescriptions": {
1488
- "typeIdentifier": "t_bool",
1489
- "typeString": "bool"
1490
- }
1252
+ },
1253
+ "src": "2406:88:40",
1254
+ "typeDescriptions": {
1255
+ "typeIdentifier": "t_bool",
1256
+ "typeString": "bool"
1257
+ }
1258
+ },
1259
+ "functionReturnParameters": 23608,
1260
+ "id": 23616,
1261
+ "nodeType": "Return",
1262
+ "src": "2399:95:40"
1263
+ }
1264
+ ]
1265
+ },
1266
+ "baseFunctions": [
1267
+ 23241
1268
+ ],
1269
+ "documentation": {
1270
+ "id": 23602,
1271
+ "nodeType": "StructuredDocumentation",
1272
+ "src": "2024:284:40",
1273
+ "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."
1274
+ },
1275
+ "functionSelector": "01ffc9a7",
1276
+ "implemented": true,
1277
+ "kind": "function",
1278
+ "modifiers": [],
1279
+ "name": "supportsInterface",
1280
+ "nameLocation": "2320:17:40",
1281
+ "parameters": {
1282
+ "id": 23605,
1283
+ "nodeType": "ParameterList",
1284
+ "parameters": [
1285
+ {
1286
+ "constant": false,
1287
+ "id": 23604,
1288
+ "mutability": "mutable",
1289
+ "name": "interfaceId",
1290
+ "nameLocation": "2345:11:40",
1291
+ "nodeType": "VariableDeclaration",
1292
+ "scope": 23618,
1293
+ "src": "2338:18:40",
1294
+ "stateVariable": false,
1295
+ "storageLocation": "default",
1296
+ "typeDescriptions": {
1297
+ "typeIdentifier": "t_bytes4",
1298
+ "typeString": "bytes4"
1299
+ },
1300
+ "typeName": {
1301
+ "id": 23603,
1302
+ "name": "bytes4",
1303
+ "nodeType": "ElementaryTypeName",
1304
+ "src": "2338:6:40",
1305
+ "typeDescriptions": {
1306
+ "typeIdentifier": "t_bytes4",
1307
+ "typeString": "bytes4"
1308
+ }
1309
+ },
1310
+ "visibility": "internal"
1311
+ }
1312
+ ],
1313
+ "src": "2337:20:40"
1314
+ },
1315
+ "returnParameters": {
1316
+ "id": 23608,
1317
+ "nodeType": "ParameterList",
1318
+ "parameters": [
1319
+ {
1320
+ "constant": false,
1321
+ "id": 23607,
1322
+ "mutability": "mutable",
1323
+ "name": "",
1324
+ "nameLocation": "-1:-1:-1",
1325
+ "nodeType": "VariableDeclaration",
1326
+ "scope": 23618,
1327
+ "src": "2387:4:40",
1328
+ "stateVariable": false,
1329
+ "storageLocation": "default",
1330
+ "typeDescriptions": {
1331
+ "typeIdentifier": "t_bool",
1332
+ "typeString": "bool"
1333
+ },
1334
+ "typeName": {
1335
+ "id": 23606,
1336
+ "name": "bool",
1337
+ "nodeType": "ElementaryTypeName",
1338
+ "src": "2387:4:40",
1339
+ "typeDescriptions": {
1340
+ "typeIdentifier": "t_bool",
1341
+ "typeString": "bool"
1342
+ }
1343
+ },
1344
+ "visibility": "internal"
1345
+ }
1346
+ ],
1347
+ "src": "2386:6:40"
1348
+ },
1349
+ "scope": 23619,
1350
+ "stateMutability": "pure",
1351
+ "virtual": true,
1352
+ "visibility": "public"
1353
+ }
1354
+ ],
1355
+ "abstract": true,
1356
+ "baseContracts": [
1357
+ {
1358
+ "baseName": {
1359
+ "id": 23567,
1360
+ "name": "IWorldContextConsumer",
1361
+ "nameLocations": [
1362
+ "979:21:40"
1363
+ ],
1364
+ "nodeType": "IdentifierPath",
1365
+ "referencedDeclaration": 23378,
1366
+ "src": "979:21:40"
1367
+ },
1368
+ "id": 23568,
1369
+ "nodeType": "InheritanceSpecifier",
1370
+ "src": "979:21:40"
1371
+ }
1372
+ ],
1373
+ "canonicalName": "WorldContextConsumer",
1374
+ "contractDependencies": [],
1375
+ "contractKind": "contract",
1376
+ "documentation": {
1377
+ "id": 23566,
1378
+ "nodeType": "StructuredDocumentation",
1379
+ "src": "463:473:40",
1380
+ "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."
1381
+ },
1382
+ "fullyImplemented": true,
1383
+ "linearizedBaseContracts": [
1384
+ 23619,
1385
+ 23378,
1386
+ 23242
1387
+ ],
1388
+ "name": "WorldContextConsumer",
1389
+ "nameLocation": "955:20:40",
1390
+ "scope": 23814,
1391
+ "usedErrors": [],
1392
+ "usedEvents": []
1393
+ },
1394
+ {
1395
+ "id": 23659,
1396
+ "nodeType": "ContractDefinition",
1397
+ "src": "2503:1427:40",
1398
+ "nodes": [
1399
+ {
1400
+ "id": 23639,
1401
+ "nodeType": "FunctionDefinition",
1402
+ "src": "2779:381:40",
1403
+ "nodes": [],
1404
+ "body": {
1405
+ "id": 23638,
1406
+ "nodeType": "Block",
1407
+ "src": "2840:320:40",
1408
+ "nodes": [],
1409
+ "statements": [
1410
+ {
1411
+ "AST": {
1412
+ "nativeSrc": "2855:250:40",
1413
+ "nodeType": "YulBlock",
1414
+ "src": "2855:250:40",
1415
+ "statements": [
1416
+ {
1417
+ "nativeSrc": "3032:67:40",
1418
+ "nodeType": "YulAssignment",
1419
+ "src": "3032:67:40",
1420
+ "value": {
1421
+ "arguments": [
1422
+ {
1423
+ "kind": "number",
1424
+ "nativeSrc": "3046:2:40",
1425
+ "nodeType": "YulLiteral",
1426
+ "src": "3046:2:40",
1427
+ "type": "",
1428
+ "value": "96"
1429
+ },
1430
+ {
1431
+ "arguments": [
1432
+ {
1433
+ "arguments": [
1434
+ {
1435
+ "arguments": [],
1436
+ "functionName": {
1437
+ "name": "calldatasize",
1438
+ "nativeSrc": "3067:12:40",
1439
+ "nodeType": "YulIdentifier",
1440
+ "src": "3067:12:40"
1441
+ },
1442
+ "nativeSrc": "3067:14:40",
1443
+ "nodeType": "YulFunctionCall",
1444
+ "src": "3067:14:40"
1445
+ },
1446
+ {
1447
+ "name": "CONTEXT_BYTES",
1448
+ "nativeSrc": "3083:13:40",
1449
+ "nodeType": "YulIdentifier",
1450
+ "src": "3083:13:40"
1451
+ }
1452
+ ],
1453
+ "functionName": {
1454
+ "name": "sub",
1455
+ "nativeSrc": "3063:3:40",
1456
+ "nodeType": "YulIdentifier",
1457
+ "src": "3063:3:40"
1458
+ },
1459
+ "nativeSrc": "3063:34:40",
1460
+ "nodeType": "YulFunctionCall",
1461
+ "src": "3063:34:40"
1462
+ }
1463
+ ],
1464
+ "functionName": {
1465
+ "name": "calldataload",
1466
+ "nativeSrc": "3050:12:40",
1467
+ "nodeType": "YulIdentifier",
1468
+ "src": "3050:12:40"
1469
+ },
1470
+ "nativeSrc": "3050:48:40",
1471
+ "nodeType": "YulFunctionCall",
1472
+ "src": "3050:48:40"
1473
+ }
1474
+ ],
1475
+ "functionName": {
1476
+ "name": "shr",
1477
+ "nativeSrc": "3042:3:40",
1478
+ "nodeType": "YulIdentifier",
1479
+ "src": "3042:3:40"
1480
+ },
1481
+ "nativeSrc": "3042:57:40",
1482
+ "nodeType": "YulFunctionCall",
1483
+ "src": "3042:57:40"
1484
+ },
1485
+ "variableNames": [
1486
+ {
1487
+ "name": "sender",
1488
+ "nativeSrc": "3032:6:40",
1489
+ "nodeType": "YulIdentifier",
1490
+ "src": "3032:6:40"
1491
+ }
1492
+ ]
1493
+ }
1494
+ ]
1495
+ },
1496
+ "evmVersion": "paris",
1497
+ "externalReferences": [
1498
+ {
1499
+ "declaration": 23565,
1500
+ "isOffset": false,
1501
+ "isSlot": false,
1502
+ "src": "3083:13:40",
1503
+ "valueSize": 1
1504
+ },
1505
+ {
1506
+ "declaration": 23623,
1507
+ "isOffset": false,
1508
+ "isSlot": false,
1509
+ "src": "3032:6:40",
1510
+ "valueSize": 1
1511
+ }
1512
+ ],
1513
+ "id": 23625,
1514
+ "nodeType": "InlineAssembly",
1515
+ "src": "2846:259:40"
1516
+ },
1517
+ {
1518
+ "condition": {
1519
+ "commonType": {
1520
+ "typeIdentifier": "t_address",
1521
+ "typeString": "address"
1522
+ },
1523
+ "id": 23631,
1524
+ "isConstant": false,
1525
+ "isLValue": false,
1526
+ "isPure": false,
1527
+ "lValueRequested": false,
1528
+ "leftExpression": {
1529
+ "id": 23626,
1530
+ "name": "sender",
1531
+ "nodeType": "Identifier",
1532
+ "overloadedDeclarations": [],
1533
+ "referencedDeclaration": 23623,
1534
+ "src": "3114:6:40",
1535
+ "typeDescriptions": {
1536
+ "typeIdentifier": "t_address",
1537
+ "typeString": "address"
1538
+ }
1539
+ },
1540
+ "nodeType": "BinaryOperation",
1541
+ "operator": "==",
1542
+ "rightExpression": {
1543
+ "arguments": [
1544
+ {
1545
+ "hexValue": "30",
1546
+ "id": 23629,
1547
+ "isConstant": false,
1548
+ "isLValue": false,
1549
+ "isPure": true,
1550
+ "kind": "number",
1551
+ "lValueRequested": false,
1552
+ "nodeType": "Literal",
1553
+ "src": "3132:1:40",
1554
+ "typeDescriptions": {
1555
+ "typeIdentifier": "t_rational_0_by_1",
1556
+ "typeString": "int_const 0"
1557
+ },
1558
+ "value": "0"
1559
+ }
1560
+ ],
1561
+ "expression": {
1562
+ "argumentTypes": [
1563
+ {
1564
+ "typeIdentifier": "t_rational_0_by_1",
1565
+ "typeString": "int_const 0"
1566
+ }
1567
+ ],
1568
+ "id": 23628,
1569
+ "isConstant": false,
1570
+ "isLValue": false,
1571
+ "isPure": true,
1572
+ "lValueRequested": false,
1573
+ "nodeType": "ElementaryTypeNameExpression",
1574
+ "src": "3124:7:40",
1575
+ "typeDescriptions": {
1576
+ "typeIdentifier": "t_type$_t_address_$",
1577
+ "typeString": "type(address)"
1578
+ },
1579
+ "typeName": {
1580
+ "id": 23627,
1581
+ "name": "address",
1582
+ "nodeType": "ElementaryTypeName",
1583
+ "src": "3124:7:40",
1584
+ "typeDescriptions": {}
1585
+ }
1586
+ },
1587
+ "id": 23630,
1588
+ "isConstant": false,
1589
+ "isLValue": false,
1590
+ "isPure": true,
1591
+ "kind": "typeConversion",
1592
+ "lValueRequested": false,
1593
+ "nameLocations": [],
1594
+ "names": [],
1595
+ "nodeType": "FunctionCall",
1596
+ "src": "3124:10:40",
1597
+ "tryCall": false,
1598
+ "typeDescriptions": {
1599
+ "typeIdentifier": "t_address",
1600
+ "typeString": "address"
1601
+ }
1602
+ },
1603
+ "src": "3114:20:40",
1604
+ "typeDescriptions": {
1605
+ "typeIdentifier": "t_bool",
1606
+ "typeString": "bool"
1607
+ }
1608
+ },
1609
+ "id": 23637,
1610
+ "nodeType": "IfStatement",
1611
+ "src": "3110:45:40",
1612
+ "trueBody": {
1613
+ "expression": {
1614
+ "id": 23635,
1615
+ "isConstant": false,
1616
+ "isLValue": false,
1617
+ "isPure": false,
1618
+ "lValueRequested": false,
1619
+ "leftHandSide": {
1620
+ "id": 23632,
1621
+ "name": "sender",
1622
+ "nodeType": "Identifier",
1623
+ "overloadedDeclarations": [],
1624
+ "referencedDeclaration": 23623,
1625
+ "src": "3136:6:40",
1626
+ "typeDescriptions": {
1627
+ "typeIdentifier": "t_address",
1628
+ "typeString": "address"
1629
+ }
1630
+ },
1631
+ "nodeType": "Assignment",
1632
+ "operator": "=",
1633
+ "rightHandSide": {
1634
+ "expression": {
1635
+ "id": 23633,
1636
+ "name": "msg",
1637
+ "nodeType": "Identifier",
1638
+ "overloadedDeclarations": [],
1639
+ "referencedDeclaration": -15,
1640
+ "src": "3145:3:40",
1641
+ "typeDescriptions": {
1642
+ "typeIdentifier": "t_magic_message",
1643
+ "typeString": "msg"
1644
+ }
1645
+ },
1646
+ "id": 23634,
1647
+ "isConstant": false,
1648
+ "isLValue": false,
1649
+ "isPure": false,
1650
+ "lValueRequested": false,
1651
+ "memberLocation": "3149:6:40",
1652
+ "memberName": "sender",
1653
+ "nodeType": "MemberAccess",
1654
+ "src": "3145:10:40",
1655
+ "typeDescriptions": {
1656
+ "typeIdentifier": "t_address",
1657
+ "typeString": "address"
1658
+ }
1659
+ },
1660
+ "src": "3136:19:40",
1661
+ "typeDescriptions": {
1662
+ "typeIdentifier": "t_address",
1663
+ "typeString": "address"
1664
+ }
1665
+ },
1666
+ "id": 23636,
1667
+ "nodeType": "ExpressionStatement",
1668
+ "src": "3136:19:40"
1669
+ }
1670
+ }
1671
+ ]
1672
+ },
1673
+ "documentation": {
1674
+ "id": 23620,
1675
+ "nodeType": "StructuredDocumentation",
1676
+ "src": "2539:237:40",
1677
+ "text": " @notice Extract the `msg.sender` from the context appended to the calldata.\n @return sender The `msg.sender` in the call to the World contract before the World routed the\n call to the WorldContextConsumer contract."
1678
+ },
1679
+ "implemented": true,
1680
+ "kind": "function",
1681
+ "modifiers": [],
1682
+ "name": "_msgSender",
1683
+ "nameLocation": "2788:10:40",
1684
+ "parameters": {
1685
+ "id": 23621,
1686
+ "nodeType": "ParameterList",
1687
+ "parameters": [],
1688
+ "src": "2798:2:40"
1689
+ },
1690
+ "returnParameters": {
1691
+ "id": 23624,
1692
+ "nodeType": "ParameterList",
1693
+ "parameters": [
1694
+ {
1695
+ "constant": false,
1696
+ "id": 23623,
1697
+ "mutability": "mutable",
1698
+ "name": "sender",
1699
+ "nameLocation": "2832:6:40",
1700
+ "nodeType": "VariableDeclaration",
1701
+ "scope": 23639,
1702
+ "src": "2824:14:40",
1703
+ "stateVariable": false,
1704
+ "storageLocation": "default",
1705
+ "typeDescriptions": {
1706
+ "typeIdentifier": "t_address",
1707
+ "typeString": "address"
1708
+ },
1709
+ "typeName": {
1710
+ "id": 23622,
1711
+ "name": "address",
1712
+ "nodeType": "ElementaryTypeName",
1713
+ "src": "2824:7:40",
1714
+ "stateMutability": "nonpayable",
1715
+ "typeDescriptions": {
1716
+ "typeIdentifier": "t_address",
1717
+ "typeString": "address"
1718
+ }
1719
+ },
1720
+ "visibility": "internal"
1721
+ }
1722
+ ],
1723
+ "src": "2823:16:40"
1724
+ },
1725
+ "scope": 23659,
1726
+ "stateMutability": "view",
1727
+ "virtual": false,
1728
+ "visibility": "internal"
1729
+ },
1730
+ {
1731
+ "id": 23647,
1732
+ "nodeType": "FunctionDefinition",
1733
+ "src": "3401:214:40",
1734
+ "nodes": [],
1735
+ "body": {
1736
+ "id": 23646,
1737
+ "nodeType": "Block",
1738
+ "src": "3460:155:40",
1739
+ "nodes": [],
1740
+ "statements": [
1741
+ {
1742
+ "AST": {
1743
+ "nativeSrc": "3475:136:40",
1744
+ "nodeType": "YulBlock",
1745
+ "src": "3475:136:40",
1746
+ "statements": [
1747
+ {
1748
+ "nativeSrc": "3559:46:40",
1749
+ "nodeType": "YulAssignment",
1750
+ "src": "3559:46:40",
1751
+ "value": {
1752
+ "arguments": [
1753
+ {
1754
+ "arguments": [
1755
+ {
1756
+ "arguments": [],
1757
+ "functionName": {
1758
+ "name": "calldatasize",
1759
+ "nativeSrc": "3585:12:40",
1760
+ "nodeType": "YulIdentifier",
1761
+ "src": "3585:12:40"
1762
+ },
1763
+ "nativeSrc": "3585:14:40",
1764
+ "nodeType": "YulFunctionCall",
1765
+ "src": "3585:14:40"
1766
+ },
1767
+ {
1768
+ "kind": "number",
1769
+ "nativeSrc": "3601:2:40",
1770
+ "nodeType": "YulLiteral",
1771
+ "src": "3601:2:40",
1772
+ "type": "",
1773
+ "value": "32"
1774
+ }
1775
+ ],
1776
+ "functionName": {
1777
+ "name": "sub",
1778
+ "nativeSrc": "3581:3:40",
1779
+ "nodeType": "YulIdentifier",
1780
+ "src": "3581:3:40"
1781
+ },
1782
+ "nativeSrc": "3581:23:40",
1783
+ "nodeType": "YulFunctionCall",
1784
+ "src": "3581:23:40"
1785
+ }
1786
+ ],
1787
+ "functionName": {
1788
+ "name": "calldataload",
1789
+ "nativeSrc": "3568:12:40",
1790
+ "nodeType": "YulIdentifier",
1791
+ "src": "3568:12:40"
1792
+ },
1793
+ "nativeSrc": "3568:37:40",
1794
+ "nodeType": "YulFunctionCall",
1795
+ "src": "3568:37:40"
1796
+ },
1797
+ "variableNames": [
1798
+ {
1799
+ "name": "value",
1800
+ "nativeSrc": "3559:5:40",
1801
+ "nodeType": "YulIdentifier",
1802
+ "src": "3559:5:40"
1803
+ }
1804
+ ]
1805
+ }
1806
+ ]
1491
1807
  },
1492
- "functionReturnParameters": 23616,
1493
- "id": 23624,
1494
- "nodeType": "Return",
1495
- "src": "2673:95:40"
1808
+ "evmVersion": "paris",
1809
+ "externalReferences": [
1810
+ {
1811
+ "declaration": 23643,
1812
+ "isOffset": false,
1813
+ "isSlot": false,
1814
+ "src": "3559:5:40",
1815
+ "valueSize": 1
1816
+ }
1817
+ ],
1818
+ "id": 23645,
1819
+ "nodeType": "InlineAssembly",
1820
+ "src": "3466:145:40"
1496
1821
  }
1497
1822
  ]
1498
1823
  },
1499
- "baseFunctions": [
1500
- 23243
1501
- ],
1502
1824
  "documentation": {
1503
- "id": 23610,
1825
+ "id": 23640,
1504
1826
  "nodeType": "StructuredDocumentation",
1505
- "src": "2298:284:40",
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."
1827
+ "src": "3164:234:40",
1828
+ "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."
1507
1829
  },
1508
- "functionSelector": "01ffc9a7",
1509
1830
  "implemented": true,
1510
1831
  "kind": "function",
1511
1832
  "modifiers": [],
1512
- "name": "supportsInterface",
1513
- "nameLocation": "2594:17:40",
1833
+ "name": "_msgValue",
1834
+ "nameLocation": "3410:9:40",
1514
1835
  "parameters": {
1515
- "id": 23613,
1836
+ "id": 23641,
1837
+ "nodeType": "ParameterList",
1838
+ "parameters": [],
1839
+ "src": "3419:2:40"
1840
+ },
1841
+ "returnParameters": {
1842
+ "id": 23644,
1516
1843
  "nodeType": "ParameterList",
1517
1844
  "parameters": [
1518
1845
  {
1519
1846
  "constant": false,
1520
- "id": 23612,
1847
+ "id": 23643,
1521
1848
  "mutability": "mutable",
1522
- "name": "interfaceId",
1523
- "nameLocation": "2619:11:40",
1849
+ "name": "value",
1850
+ "nameLocation": "3453:5:40",
1524
1851
  "nodeType": "VariableDeclaration",
1525
- "scope": 23626,
1526
- "src": "2612:18:40",
1852
+ "scope": 23647,
1853
+ "src": "3445:13:40",
1527
1854
  "stateVariable": false,
1528
1855
  "storageLocation": "default",
1529
1856
  "typeDescriptions": {
1530
- "typeIdentifier": "t_bytes4",
1531
- "typeString": "bytes4"
1857
+ "typeIdentifier": "t_uint256",
1858
+ "typeString": "uint256"
1532
1859
  },
1533
1860
  "typeName": {
1534
- "id": 23611,
1535
- "name": "bytes4",
1861
+ "id": 23642,
1862
+ "name": "uint256",
1536
1863
  "nodeType": "ElementaryTypeName",
1537
- "src": "2612:6:40",
1864
+ "src": "3445:7:40",
1538
1865
  "typeDescriptions": {
1539
- "typeIdentifier": "t_bytes4",
1540
- "typeString": "bytes4"
1866
+ "typeIdentifier": "t_uint256",
1867
+ "typeString": "uint256"
1541
1868
  }
1542
1869
  },
1543
1870
  "visibility": "internal"
1544
1871
  }
1545
1872
  ],
1546
- "src": "2611:20:40"
1873
+ "src": "3444:15:40"
1874
+ },
1875
+ "scope": 23659,
1876
+ "stateMutability": "pure",
1877
+ "virtual": false,
1878
+ "visibility": "internal"
1879
+ },
1880
+ {
1881
+ "id": 23658,
1882
+ "nodeType": "FunctionDefinition",
1883
+ "src": "3831:97:40",
1884
+ "nodes": [],
1885
+ "body": {
1886
+ "id": 23657,
1887
+ "nodeType": "Block",
1888
+ "src": "3881:47:40",
1889
+ "nodes": [],
1890
+ "statements": [
1891
+ {
1892
+ "expression": {
1893
+ "arguments": [],
1894
+ "expression": {
1895
+ "argumentTypes": [],
1896
+ "expression": {
1897
+ "id": 23653,
1898
+ "name": "StoreSwitch",
1899
+ "nodeType": "Identifier",
1900
+ "overloadedDeclarations": [],
1901
+ "referencedDeclaration": 31292,
1902
+ "src": "3894:11:40",
1903
+ "typeDescriptions": {
1904
+ "typeIdentifier": "t_type$_t_contract$_StoreSwitch_$31292_$",
1905
+ "typeString": "type(library StoreSwitch)"
1906
+ }
1907
+ },
1908
+ "id": 23654,
1909
+ "isConstant": false,
1910
+ "isLValue": false,
1911
+ "isPure": false,
1912
+ "lValueRequested": false,
1913
+ "memberLocation": "3906:15:40",
1914
+ "memberName": "getStoreAddress",
1915
+ "nodeType": "MemberAccess",
1916
+ "referencedDeclaration": 30036,
1917
+ "src": "3894:27:40",
1918
+ "typeDescriptions": {
1919
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
1920
+ "typeString": "function () view returns (address)"
1921
+ }
1922
+ },
1923
+ "id": 23655,
1924
+ "isConstant": false,
1925
+ "isLValue": false,
1926
+ "isPure": false,
1927
+ "kind": "functionCall",
1928
+ "lValueRequested": false,
1929
+ "nameLocations": [],
1930
+ "names": [],
1931
+ "nodeType": "FunctionCall",
1932
+ "src": "3894:29:40",
1933
+ "tryCall": false,
1934
+ "typeDescriptions": {
1935
+ "typeIdentifier": "t_address",
1936
+ "typeString": "address"
1937
+ }
1938
+ },
1939
+ "functionReturnParameters": 23652,
1940
+ "id": 23656,
1941
+ "nodeType": "Return",
1942
+ "src": "3887:36:40"
1943
+ }
1944
+ ]
1945
+ },
1946
+ "documentation": {
1947
+ "id": 23648,
1948
+ "nodeType": "StructuredDocumentation",
1949
+ "src": "3619:209:40",
1950
+ "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."
1951
+ },
1952
+ "implemented": true,
1953
+ "kind": "function",
1954
+ "modifiers": [],
1955
+ "name": "_world",
1956
+ "nameLocation": "3840:6:40",
1957
+ "parameters": {
1958
+ "id": 23649,
1959
+ "nodeType": "ParameterList",
1960
+ "parameters": [],
1961
+ "src": "3846:2:40"
1547
1962
  },
1548
1963
  "returnParameters": {
1549
- "id": 23616,
1964
+ "id": 23652,
1550
1965
  "nodeType": "ParameterList",
1551
1966
  "parameters": [
1552
1967
  {
1553
1968
  "constant": false,
1554
- "id": 23615,
1969
+ "id": 23651,
1555
1970
  "mutability": "mutable",
1556
1971
  "name": "",
1557
1972
  "nameLocation": "-1:-1:-1",
1558
1973
  "nodeType": "VariableDeclaration",
1559
- "scope": 23626,
1560
- "src": "2661:4:40",
1974
+ "scope": 23658,
1975
+ "src": "3872:7:40",
1561
1976
  "stateVariable": false,
1562
1977
  "storageLocation": "default",
1563
1978
  "typeDescriptions": {
1564
- "typeIdentifier": "t_bool",
1565
- "typeString": "bool"
1979
+ "typeIdentifier": "t_address",
1980
+ "typeString": "address"
1566
1981
  },
1567
1982
  "typeName": {
1568
- "id": 23614,
1569
- "name": "bool",
1983
+ "id": 23650,
1984
+ "name": "address",
1570
1985
  "nodeType": "ElementaryTypeName",
1571
- "src": "2661:4:40",
1986
+ "src": "3872:7:40",
1987
+ "stateMutability": "nonpayable",
1572
1988
  "typeDescriptions": {
1573
- "typeIdentifier": "t_bool",
1574
- "typeString": "bool"
1989
+ "typeIdentifier": "t_address",
1990
+ "typeString": "address"
1575
1991
  }
1576
1992
  },
1577
1993
  "visibility": "internal"
1578
1994
  }
1579
1995
  ],
1580
- "src": "2660:6:40"
1581
- },
1582
- "scope": 23627,
1583
- "stateMutability": "pure",
1584
- "virtual": true,
1585
- "visibility": "public"
1586
- }
1587
- ],
1588
- "abstract": true,
1589
- "baseContracts": [
1590
- {
1591
- "baseName": {
1592
- "id": 23569,
1593
- "name": "IWorldContextConsumer",
1594
- "nameLocations": [
1595
- "979:21:40"
1596
- ],
1597
- "nodeType": "IdentifierPath",
1598
- "referencedDeclaration": 23380,
1599
- "src": "979:21:40"
1996
+ "src": "3871:9:40"
1600
1997
  },
1601
- "id": 23570,
1602
- "nodeType": "InheritanceSpecifier",
1603
- "src": "979:21:40"
1998
+ "scope": 23659,
1999
+ "stateMutability": "view",
2000
+ "virtual": false,
2001
+ "visibility": "internal"
1604
2002
  }
1605
2003
  ],
1606
- "canonicalName": "WorldContextConsumer",
2004
+ "abstract": false,
2005
+ "baseContracts": [],
2006
+ "canonicalName": "WorldContextConsumerLib",
1607
2007
  "contractDependencies": [],
1608
- "contractKind": "contract",
1609
- "documentation": {
1610
- "id": 23568,
1611
- "nodeType": "StructuredDocumentation",
1612
- "src": "463:473:40",
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
- },
2008
+ "contractKind": "library",
1615
2009
  "fullyImplemented": true,
1616
2010
  "linearizedBaseContracts": [
1617
- 23627,
1618
- 23380,
1619
- 23244
2011
+ 23659
1620
2012
  ],
1621
- "name": "WorldContextConsumer",
1622
- "nameLocation": "955:20:40",
1623
- "scope": 23782,
2013
+ "name": "WorldContextConsumerLib",
2014
+ "nameLocation": "2511:23:40",
2015
+ "scope": 23814,
1624
2016
  "usedErrors": [],
1625
2017
  "usedEvents": []
1626
2018
  },
1627
2019
  {
1628
- "id": 23781,
2020
+ "id": 23813,
1629
2021
  "nodeType": "ContractDefinition",
1630
- "src": "3107:3919:40",
2022
+ "src": "4265:3922:40",
1631
2023
  "nodes": [
1632
2024
  {
1633
- "id": 23648,
2025
+ "id": 23680,
1634
2026
  "nodeType": "FunctionDefinition",
1635
- "src": "3453:201:40",
2027
+ "src": "4614:201:40",
1636
2028
  "nodes": [],
1637
2029
  "body": {
1638
- "id": 23647,
2030
+ "id": 23679,
1639
2031
  "nodeType": "Block",
1640
- "src": "3589:65:40",
2032
+ "src": "4750:65:40",
1641
2033
  "nodes": [],
1642
2034
  "statements": [
1643
2035
  {
1644
2036
  "expression": {
1645
2037
  "arguments": [
1646
2038
  {
1647
- "id": 23642,
2039
+ "id": 23674,
1648
2040
  "name": "callData",
1649
2041
  "nodeType": "Identifier",
1650
2042
  "overloadedDeclarations": [],
1651
- "referencedDeclaration": 23631,
1652
- "src": "3619:8:40",
2043
+ "referencedDeclaration": 23663,
2044
+ "src": "4780:8:40",
1653
2045
  "typeDescriptions": {
1654
2046
  "typeIdentifier": "t_bytes_memory_ptr",
1655
2047
  "typeString": "bytes memory"
1656
2048
  }
1657
2049
  },
1658
2050
  {
1659
- "id": 23643,
2051
+ "id": 23675,
1660
2052
  "name": "msgSender",
1661
2053
  "nodeType": "Identifier",
1662
2054
  "overloadedDeclarations": [],
1663
- "referencedDeclaration": 23633,
1664
- "src": "3629:9:40",
2055
+ "referencedDeclaration": 23665,
2056
+ "src": "4790:9:40",
1665
2057
  "typeDescriptions": {
1666
2058
  "typeIdentifier": "t_address",
1667
2059
  "typeString": "address"
1668
2060
  }
1669
2061
  },
1670
2062
  {
1671
- "id": 23644,
2063
+ "id": 23676,
1672
2064
  "name": "msgValue",
1673
2065
  "nodeType": "Identifier",
1674
2066
  "overloadedDeclarations": [],
1675
- "referencedDeclaration": 23635,
1676
- "src": "3640:8:40",
2067
+ "referencedDeclaration": 23667,
2068
+ "src": "4801:8:40",
1677
2069
  "typeDescriptions": {
1678
2070
  "typeIdentifier": "t_uint256",
1679
2071
  "typeString": "uint256"
@@ -1696,32 +2088,32 @@
1696
2088
  }
1697
2089
  ],
1698
2090
  "expression": {
1699
- "id": 23640,
2091
+ "id": 23672,
1700
2092
  "name": "abi",
1701
2093
  "nodeType": "Identifier",
1702
2094
  "overloadedDeclarations": [],
1703
2095
  "referencedDeclaration": -1,
1704
- "src": "3602:3:40",
2096
+ "src": "4763:3:40",
1705
2097
  "typeDescriptions": {
1706
2098
  "typeIdentifier": "t_magic_abi",
1707
2099
  "typeString": "abi"
1708
2100
  }
1709
2101
  },
1710
- "id": 23641,
2102
+ "id": 23673,
1711
2103
  "isConstant": false,
1712
2104
  "isLValue": false,
1713
2105
  "isPure": true,
1714
2106
  "lValueRequested": false,
1715
- "memberLocation": "3606:12:40",
2107
+ "memberLocation": "4767:12:40",
1716
2108
  "memberName": "encodePacked",
1717
2109
  "nodeType": "MemberAccess",
1718
- "src": "3602:16:40",
2110
+ "src": "4763:16:40",
1719
2111
  "typeDescriptions": {
1720
2112
  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
1721
2113
  "typeString": "function () pure returns (bytes memory)"
1722
2114
  }
1723
2115
  },
1724
- "id": 23645,
2116
+ "id": 23677,
1725
2117
  "isConstant": false,
1726
2118
  "isLValue": false,
1727
2119
  "isPure": false,
@@ -1730,44 +2122,44 @@
1730
2122
  "nameLocations": [],
1731
2123
  "names": [],
1732
2124
  "nodeType": "FunctionCall",
1733
- "src": "3602:47:40",
2125
+ "src": "4763:47:40",
1734
2126
  "tryCall": false,
1735
2127
  "typeDescriptions": {
1736
2128
  "typeIdentifier": "t_bytes_memory_ptr",
1737
2129
  "typeString": "bytes memory"
1738
2130
  }
1739
2131
  },
1740
- "functionReturnParameters": 23639,
1741
- "id": 23646,
2132
+ "functionReturnParameters": 23671,
2133
+ "id": 23678,
1742
2134
  "nodeType": "Return",
1743
- "src": "3595:54:40"
2135
+ "src": "4756:54:40"
1744
2136
  }
1745
2137
  ]
1746
2138
  },
1747
2139
  "documentation": {
1748
- "id": 23629,
2140
+ "id": 23661,
1749
2141
  "nodeType": "StructuredDocumentation",
1750
- "src": "3140:310:40",
2142
+ "src": "4301:310:40",
1751
2143
  "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
2144
  },
1753
2145
  "implemented": true,
1754
2146
  "kind": "function",
1755
2147
  "modifiers": [],
1756
2148
  "name": "appendContext",
1757
- "nameLocation": "3462:13:40",
2149
+ "nameLocation": "4623:13:40",
1758
2150
  "parameters": {
1759
- "id": 23636,
2151
+ "id": 23668,
1760
2152
  "nodeType": "ParameterList",
1761
2153
  "parameters": [
1762
2154
  {
1763
2155
  "constant": false,
1764
- "id": 23631,
2156
+ "id": 23663,
1765
2157
  "mutability": "mutable",
1766
2158
  "name": "callData",
1767
- "nameLocation": "3494:8:40",
2159
+ "nameLocation": "4655:8:40",
1768
2160
  "nodeType": "VariableDeclaration",
1769
- "scope": 23648,
1770
- "src": "3481:21:40",
2161
+ "scope": 23680,
2162
+ "src": "4642:21:40",
1771
2163
  "stateVariable": false,
1772
2164
  "storageLocation": "memory",
1773
2165
  "typeDescriptions": {
@@ -1775,10 +2167,10 @@
1775
2167
  "typeString": "bytes"
1776
2168
  },
1777
2169
  "typeName": {
1778
- "id": 23630,
2170
+ "id": 23662,
1779
2171
  "name": "bytes",
1780
2172
  "nodeType": "ElementaryTypeName",
1781
- "src": "3481:5:40",
2173
+ "src": "4642:5:40",
1782
2174
  "typeDescriptions": {
1783
2175
  "typeIdentifier": "t_bytes_storage_ptr",
1784
2176
  "typeString": "bytes"
@@ -1788,13 +2180,13 @@
1788
2180
  },
1789
2181
  {
1790
2182
  "constant": false,
1791
- "id": 23633,
2183
+ "id": 23665,
1792
2184
  "mutability": "mutable",
1793
2185
  "name": "msgSender",
1794
- "nameLocation": "3516:9:40",
2186
+ "nameLocation": "4677:9:40",
1795
2187
  "nodeType": "VariableDeclaration",
1796
- "scope": 23648,
1797
- "src": "3508:17:40",
2188
+ "scope": 23680,
2189
+ "src": "4669:17:40",
1798
2190
  "stateVariable": false,
1799
2191
  "storageLocation": "default",
1800
2192
  "typeDescriptions": {
@@ -1802,10 +2194,10 @@
1802
2194
  "typeString": "address"
1803
2195
  },
1804
2196
  "typeName": {
1805
- "id": 23632,
2197
+ "id": 23664,
1806
2198
  "name": "address",
1807
2199
  "nodeType": "ElementaryTypeName",
1808
- "src": "3508:7:40",
2200
+ "src": "4669:7:40",
1809
2201
  "stateMutability": "nonpayable",
1810
2202
  "typeDescriptions": {
1811
2203
  "typeIdentifier": "t_address",
@@ -1816,13 +2208,13 @@
1816
2208
  },
1817
2209
  {
1818
2210
  "constant": false,
1819
- "id": 23635,
2211
+ "id": 23667,
1820
2212
  "mutability": "mutable",
1821
2213
  "name": "msgValue",
1822
- "nameLocation": "3539:8:40",
2214
+ "nameLocation": "4700:8:40",
1823
2215
  "nodeType": "VariableDeclaration",
1824
- "scope": 23648,
1825
- "src": "3531:16:40",
2216
+ "scope": 23680,
2217
+ "src": "4692:16:40",
1826
2218
  "stateVariable": false,
1827
2219
  "storageLocation": "default",
1828
2220
  "typeDescriptions": {
@@ -1830,10 +2222,10 @@
1830
2222
  "typeString": "uint256"
1831
2223
  },
1832
2224
  "typeName": {
1833
- "id": 23634,
2225
+ "id": 23666,
1834
2226
  "name": "uint256",
1835
2227
  "nodeType": "ElementaryTypeName",
1836
- "src": "3531:7:40",
2228
+ "src": "4692:7:40",
1837
2229
  "typeDescriptions": {
1838
2230
  "typeIdentifier": "t_uint256",
1839
2231
  "typeString": "uint256"
@@ -1842,21 +2234,21 @@
1842
2234
  "visibility": "internal"
1843
2235
  }
1844
2236
  ],
1845
- "src": "3475:76:40"
2237
+ "src": "4636:76:40"
1846
2238
  },
1847
2239
  "returnParameters": {
1848
- "id": 23639,
2240
+ "id": 23671,
1849
2241
  "nodeType": "ParameterList",
1850
2242
  "parameters": [
1851
2243
  {
1852
2244
  "constant": false,
1853
- "id": 23638,
2245
+ "id": 23670,
1854
2246
  "mutability": "mutable",
1855
2247
  "name": "",
1856
2248
  "nameLocation": "-1:-1:-1",
1857
2249
  "nodeType": "VariableDeclaration",
1858
- "scope": 23648,
1859
- "src": "3575:12:40",
2250
+ "scope": 23680,
2251
+ "src": "4736:12:40",
1860
2252
  "stateVariable": false,
1861
2253
  "storageLocation": "memory",
1862
2254
  "typeDescriptions": {
@@ -1864,10 +2256,10 @@
1864
2256
  "typeString": "bytes"
1865
2257
  },
1866
2258
  "typeName": {
1867
- "id": 23637,
2259
+ "id": 23669,
1868
2260
  "name": "bytes",
1869
2261
  "nodeType": "ElementaryTypeName",
1870
- "src": "3575:5:40",
2262
+ "src": "4736:5:40",
1871
2263
  "typeDescriptions": {
1872
2264
  "typeIdentifier": "t_bytes_storage_ptr",
1873
2265
  "typeString": "bytes"
@@ -1876,27 +2268,27 @@
1876
2268
  "visibility": "internal"
1877
2269
  }
1878
2270
  ],
1879
- "src": "3574:14:40"
2271
+ "src": "4735:14:40"
1880
2272
  },
1881
- "scope": 23781,
2273
+ "scope": 23813,
1882
2274
  "stateMutability": "pure",
1883
2275
  "virtual": false,
1884
2276
  "visibility": "internal"
1885
2277
  },
1886
2278
  {
1887
- "id": 23680,
2279
+ "id": 23712,
1888
2280
  "nodeType": "FunctionDefinition",
1889
- "src": "4150:317:40",
2281
+ "src": "5311:317:40",
1890
2282
  "nodes": [],
1891
2283
  "body": {
1892
- "id": 23679,
2284
+ "id": 23711,
1893
2285
  "nodeType": "Block",
1894
- "src": "4322:145:40",
2286
+ "src": "5483:145:40",
1895
2287
  "nodes": [],
1896
2288
  "statements": [
1897
2289
  {
1898
2290
  "expression": {
1899
- "id": 23677,
2291
+ "id": 23709,
1900
2292
  "isConstant": false,
1901
2293
  "isLValue": false,
1902
2294
  "isPure": false,
@@ -1904,38 +2296,38 @@
1904
2296
  "leftHandSide": {
1905
2297
  "components": [
1906
2298
  {
1907
- "id": 23664,
2299
+ "id": 23696,
1908
2300
  "name": "success",
1909
2301
  "nodeType": "Identifier",
1910
2302
  "overloadedDeclarations": [],
1911
- "referencedDeclaration": 23660,
1912
- "src": "4329:7:40",
2303
+ "referencedDeclaration": 23692,
2304
+ "src": "5490:7:40",
1913
2305
  "typeDescriptions": {
1914
2306
  "typeIdentifier": "t_bool",
1915
2307
  "typeString": "bool"
1916
2308
  }
1917
2309
  },
1918
2310
  {
1919
- "id": 23665,
2311
+ "id": 23697,
1920
2312
  "name": "data",
1921
2313
  "nodeType": "Identifier",
1922
2314
  "overloadedDeclarations": [],
1923
- "referencedDeclaration": 23662,
1924
- "src": "4338:4:40",
2315
+ "referencedDeclaration": 23694,
2316
+ "src": "5499:4:40",
1925
2317
  "typeDescriptions": {
1926
2318
  "typeIdentifier": "t_bytes_memory_ptr",
1927
2319
  "typeString": "bytes memory"
1928
2320
  }
1929
2321
  }
1930
2322
  ],
1931
- "id": 23666,
2323
+ "id": 23698,
1932
2324
  "isConstant": false,
1933
2325
  "isInlineArray": false,
1934
2326
  "isLValue": true,
1935
2327
  "isPure": false,
1936
2328
  "lValueRequested": true,
1937
2329
  "nodeType": "TupleExpression",
1938
- "src": "4328:15:40",
2330
+ "src": "5489:15:40",
1939
2331
  "typeDescriptions": {
1940
2332
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
1941
2333
  "typeString": "tuple(bool,bytes memory)"
@@ -1948,36 +2340,36 @@
1948
2340
  {
1949
2341
  "arguments": [
1950
2342
  {
1951
- "id": 23672,
2343
+ "id": 23704,
1952
2344
  "name": "callData",
1953
2345
  "nodeType": "Identifier",
1954
2346
  "overloadedDeclarations": [],
1955
- "referencedDeclaration": 23657,
1956
- "src": "4403:8:40",
2347
+ "referencedDeclaration": 23689,
2348
+ "src": "5564:8:40",
1957
2349
  "typeDescriptions": {
1958
2350
  "typeIdentifier": "t_bytes_memory_ptr",
1959
2351
  "typeString": "bytes memory"
1960
2352
  }
1961
2353
  },
1962
2354
  {
1963
- "id": 23673,
2355
+ "id": 23705,
1964
2356
  "name": "msgSender",
1965
2357
  "nodeType": "Identifier",
1966
2358
  "overloadedDeclarations": [],
1967
- "referencedDeclaration": 23651,
1968
- "src": "4424:9:40",
2359
+ "referencedDeclaration": 23683,
2360
+ "src": "5585:9:40",
1969
2361
  "typeDescriptions": {
1970
2362
  "typeIdentifier": "t_address",
1971
2363
  "typeString": "address"
1972
2364
  }
1973
2365
  },
1974
2366
  {
1975
- "id": 23674,
2367
+ "id": 23706,
1976
2368
  "name": "msgValue",
1977
2369
  "nodeType": "Identifier",
1978
2370
  "overloadedDeclarations": [],
1979
- "referencedDeclaration": 23653,
1980
- "src": "4445:8:40",
2371
+ "referencedDeclaration": 23685,
2372
+ "src": "5606:8:40",
1981
2373
  "typeDescriptions": {
1982
2374
  "typeIdentifier": "t_uint256",
1983
2375
  "typeString": "uint256"
@@ -1999,27 +2391,27 @@
1999
2391
  "typeString": "uint256"
2000
2392
  }
2001
2393
  ],
2002
- "id": 23671,
2394
+ "id": 23703,
2003
2395
  "name": "appendContext",
2004
2396
  "nodeType": "Identifier",
2005
2397
  "overloadedDeclarations": [],
2006
- "referencedDeclaration": 23648,
2007
- "src": "4377:13:40",
2398
+ "referencedDeclaration": 23680,
2399
+ "src": "5538:13:40",
2008
2400
  "typeDescriptions": {
2009
2401
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
2010
2402
  "typeString": "function (bytes memory,address,uint256) pure returns (bytes memory)"
2011
2403
  }
2012
2404
  },
2013
- "id": 23675,
2405
+ "id": 23707,
2014
2406
  "isConstant": false,
2015
2407
  "isLValue": false,
2016
2408
  "isPure": false,
2017
2409
  "kind": "functionCall",
2018
2410
  "lValueRequested": false,
2019
2411
  "nameLocations": [
2020
- "4393:8:40",
2021
- "4413:9:40",
2022
- "4435:8:40"
2412
+ "5554:8:40",
2413
+ "5574:9:40",
2414
+ "5596:8:40"
2023
2415
  ],
2024
2416
  "names": [
2025
2417
  "callData",
@@ -2027,7 +2419,7 @@
2027
2419
  "msgValue"
2028
2420
  ],
2029
2421
  "nodeType": "FunctionCall",
2030
- "src": "4377:79:40",
2422
+ "src": "5538:79:40",
2031
2423
  "tryCall": false,
2032
2424
  "typeDescriptions": {
2033
2425
  "typeIdentifier": "t_bytes_memory_ptr",
@@ -2050,32 +2442,32 @@
2050
2442
  }
2051
2443
  ],
2052
2444
  "expression": {
2053
- "id": 23667,
2445
+ "id": 23699,
2054
2446
  "name": "target",
2055
2447
  "nodeType": "Identifier",
2056
2448
  "overloadedDeclarations": [],
2057
- "referencedDeclaration": 23655,
2058
- "src": "4346:6:40",
2449
+ "referencedDeclaration": 23687,
2450
+ "src": "5507:6:40",
2059
2451
  "typeDescriptions": {
2060
2452
  "typeIdentifier": "t_address",
2061
2453
  "typeString": "address"
2062
2454
  }
2063
2455
  },
2064
- "id": 23668,
2456
+ "id": 23700,
2065
2457
  "isConstant": false,
2066
2458
  "isLValue": false,
2067
2459
  "isPure": false,
2068
2460
  "lValueRequested": false,
2069
- "memberLocation": "4353:4:40",
2461
+ "memberLocation": "5514:4:40",
2070
2462
  "memberName": "call",
2071
2463
  "nodeType": "MemberAccess",
2072
- "src": "4346:11:40",
2464
+ "src": "5507:11:40",
2073
2465
  "typeDescriptions": {
2074
2466
  "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2075
2467
  "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
2076
2468
  }
2077
2469
  },
2078
- "id": 23670,
2470
+ "id": 23702,
2079
2471
  "isConstant": false,
2080
2472
  "isLValue": false,
2081
2473
  "isPure": false,
@@ -2087,14 +2479,14 @@
2087
2479
  "options": [
2088
2480
  {
2089
2481
  "hexValue": "30",
2090
- "id": 23669,
2482
+ "id": 23701,
2091
2483
  "isConstant": false,
2092
2484
  "isLValue": false,
2093
2485
  "isPure": true,
2094
2486
  "kind": "number",
2095
2487
  "lValueRequested": false,
2096
2488
  "nodeType": "Literal",
2097
- "src": "4366:1:40",
2489
+ "src": "5527:1:40",
2098
2490
  "typeDescriptions": {
2099
2491
  "typeIdentifier": "t_rational_0_by_1",
2100
2492
  "typeString": "int_const 0"
@@ -2102,13 +2494,13 @@
2102
2494
  "value": "0"
2103
2495
  }
2104
2496
  ],
2105
- "src": "4346:23:40",
2497
+ "src": "5507:23:40",
2106
2498
  "typeDescriptions": {
2107
2499
  "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value",
2108
2500
  "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
2109
2501
  }
2110
2502
  },
2111
- "id": 23676,
2503
+ "id": 23708,
2112
2504
  "isConstant": false,
2113
2505
  "isLValue": false,
2114
2506
  "isPure": false,
@@ -2117,49 +2509,49 @@
2117
2509
  "nameLocations": [],
2118
2510
  "names": [],
2119
2511
  "nodeType": "FunctionCall",
2120
- "src": "4346:116:40",
2512
+ "src": "5507:116:40",
2121
2513
  "tryCall": false,
2122
2514
  "typeDescriptions": {
2123
2515
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2124
2516
  "typeString": "tuple(bool,bytes memory)"
2125
2517
  }
2126
2518
  },
2127
- "src": "4328:134:40",
2519
+ "src": "5489:134:40",
2128
2520
  "typeDescriptions": {
2129
2521
  "typeIdentifier": "t_tuple$__$",
2130
2522
  "typeString": "tuple()"
2131
2523
  }
2132
2524
  },
2133
- "id": 23678,
2525
+ "id": 23710,
2134
2526
  "nodeType": "ExpressionStatement",
2135
- "src": "4328:134:40"
2527
+ "src": "5489:134:40"
2136
2528
  }
2137
2529
  ]
2138
2530
  },
2139
2531
  "documentation": {
2140
- "id": 23649,
2532
+ "id": 23681,
2141
2533
  "nodeType": "StructuredDocumentation",
2142
- "src": "3658:489:40",
2534
+ "src": "4819:489:40",
2143
2535
  "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
2536
  },
2145
2537
  "implemented": true,
2146
2538
  "kind": "function",
2147
2539
  "modifiers": [],
2148
2540
  "name": "callWithContext",
2149
- "nameLocation": "4159:15:40",
2541
+ "nameLocation": "5320:15:40",
2150
2542
  "parameters": {
2151
- "id": 23658,
2543
+ "id": 23690,
2152
2544
  "nodeType": "ParameterList",
2153
2545
  "parameters": [
2154
2546
  {
2155
2547
  "constant": false,
2156
- "id": 23651,
2548
+ "id": 23683,
2157
2549
  "mutability": "mutable",
2158
2550
  "name": "msgSender",
2159
- "nameLocation": "4188:9:40",
2551
+ "nameLocation": "5349:9:40",
2160
2552
  "nodeType": "VariableDeclaration",
2161
- "scope": 23680,
2162
- "src": "4180:17:40",
2553
+ "scope": 23712,
2554
+ "src": "5341:17:40",
2163
2555
  "stateVariable": false,
2164
2556
  "storageLocation": "default",
2165
2557
  "typeDescriptions": {
@@ -2167,10 +2559,10 @@
2167
2559
  "typeString": "address"
2168
2560
  },
2169
2561
  "typeName": {
2170
- "id": 23650,
2562
+ "id": 23682,
2171
2563
  "name": "address",
2172
2564
  "nodeType": "ElementaryTypeName",
2173
- "src": "4180:7:40",
2565
+ "src": "5341:7:40",
2174
2566
  "stateMutability": "nonpayable",
2175
2567
  "typeDescriptions": {
2176
2568
  "typeIdentifier": "t_address",
@@ -2181,13 +2573,13 @@
2181
2573
  },
2182
2574
  {
2183
2575
  "constant": false,
2184
- "id": 23653,
2576
+ "id": 23685,
2185
2577
  "mutability": "mutable",
2186
2578
  "name": "msgValue",
2187
- "nameLocation": "4211:8:40",
2579
+ "nameLocation": "5372:8:40",
2188
2580
  "nodeType": "VariableDeclaration",
2189
- "scope": 23680,
2190
- "src": "4203:16:40",
2581
+ "scope": 23712,
2582
+ "src": "5364:16:40",
2191
2583
  "stateVariable": false,
2192
2584
  "storageLocation": "default",
2193
2585
  "typeDescriptions": {
@@ -2195,10 +2587,10 @@
2195
2587
  "typeString": "uint256"
2196
2588
  },
2197
2589
  "typeName": {
2198
- "id": 23652,
2590
+ "id": 23684,
2199
2591
  "name": "uint256",
2200
2592
  "nodeType": "ElementaryTypeName",
2201
- "src": "4203:7:40",
2593
+ "src": "5364:7:40",
2202
2594
  "typeDescriptions": {
2203
2595
  "typeIdentifier": "t_uint256",
2204
2596
  "typeString": "uint256"
@@ -2208,13 +2600,13 @@
2208
2600
  },
2209
2601
  {
2210
2602
  "constant": false,
2211
- "id": 23655,
2603
+ "id": 23687,
2212
2604
  "mutability": "mutable",
2213
2605
  "name": "target",
2214
- "nameLocation": "4233:6:40",
2606
+ "nameLocation": "5394:6:40",
2215
2607
  "nodeType": "VariableDeclaration",
2216
- "scope": 23680,
2217
- "src": "4225:14:40",
2608
+ "scope": 23712,
2609
+ "src": "5386:14:40",
2218
2610
  "stateVariable": false,
2219
2611
  "storageLocation": "default",
2220
2612
  "typeDescriptions": {
@@ -2222,10 +2614,10 @@
2222
2614
  "typeString": "address"
2223
2615
  },
2224
2616
  "typeName": {
2225
- "id": 23654,
2617
+ "id": 23686,
2226
2618
  "name": "address",
2227
2619
  "nodeType": "ElementaryTypeName",
2228
- "src": "4225:7:40",
2620
+ "src": "5386:7:40",
2229
2621
  "stateMutability": "nonpayable",
2230
2622
  "typeDescriptions": {
2231
2623
  "typeIdentifier": "t_address",
@@ -2236,13 +2628,13 @@
2236
2628
  },
2237
2629
  {
2238
2630
  "constant": false,
2239
- "id": 23657,
2631
+ "id": 23689,
2240
2632
  "mutability": "mutable",
2241
2633
  "name": "callData",
2242
- "nameLocation": "4258:8:40",
2634
+ "nameLocation": "5419:8:40",
2243
2635
  "nodeType": "VariableDeclaration",
2244
- "scope": 23680,
2245
- "src": "4245:21:40",
2636
+ "scope": 23712,
2637
+ "src": "5406:21:40",
2246
2638
  "stateVariable": false,
2247
2639
  "storageLocation": "memory",
2248
2640
  "typeDescriptions": {
@@ -2250,10 +2642,10 @@
2250
2642
  "typeString": "bytes"
2251
2643
  },
2252
2644
  "typeName": {
2253
- "id": 23656,
2645
+ "id": 23688,
2254
2646
  "name": "bytes",
2255
2647
  "nodeType": "ElementaryTypeName",
2256
- "src": "4245:5:40",
2648
+ "src": "5406:5:40",
2257
2649
  "typeDescriptions": {
2258
2650
  "typeIdentifier": "t_bytes_storage_ptr",
2259
2651
  "typeString": "bytes"
@@ -2262,21 +2654,21 @@
2262
2654
  "visibility": "internal"
2263
2655
  }
2264
2656
  ],
2265
- "src": "4174:96:40"
2657
+ "src": "5335:96:40"
2266
2658
  },
2267
2659
  "returnParameters": {
2268
- "id": 23663,
2660
+ "id": 23695,
2269
2661
  "nodeType": "ParameterList",
2270
2662
  "parameters": [
2271
2663
  {
2272
2664
  "constant": false,
2273
- "id": 23660,
2665
+ "id": 23692,
2274
2666
  "mutability": "mutable",
2275
2667
  "name": "success",
2276
- "nameLocation": "4294:7:40",
2668
+ "nameLocation": "5455:7:40",
2277
2669
  "nodeType": "VariableDeclaration",
2278
- "scope": 23680,
2279
- "src": "4289:12:40",
2670
+ "scope": 23712,
2671
+ "src": "5450:12:40",
2280
2672
  "stateVariable": false,
2281
2673
  "storageLocation": "default",
2282
2674
  "typeDescriptions": {
@@ -2284,10 +2676,10 @@
2284
2676
  "typeString": "bool"
2285
2677
  },
2286
2678
  "typeName": {
2287
- "id": 23659,
2679
+ "id": 23691,
2288
2680
  "name": "bool",
2289
2681
  "nodeType": "ElementaryTypeName",
2290
- "src": "4289:4:40",
2682
+ "src": "5450:4:40",
2291
2683
  "typeDescriptions": {
2292
2684
  "typeIdentifier": "t_bool",
2293
2685
  "typeString": "bool"
@@ -2297,13 +2689,13 @@
2297
2689
  },
2298
2690
  {
2299
2691
  "constant": false,
2300
- "id": 23662,
2692
+ "id": 23694,
2301
2693
  "mutability": "mutable",
2302
2694
  "name": "data",
2303
- "nameLocation": "4316:4:40",
2695
+ "nameLocation": "5477:4:40",
2304
2696
  "nodeType": "VariableDeclaration",
2305
- "scope": 23680,
2306
- "src": "4303:17:40",
2697
+ "scope": 23712,
2698
+ "src": "5464:17:40",
2307
2699
  "stateVariable": false,
2308
2700
  "storageLocation": "memory",
2309
2701
  "typeDescriptions": {
@@ -2311,10 +2703,10 @@
2311
2703
  "typeString": "bytes"
2312
2704
  },
2313
2705
  "typeName": {
2314
- "id": 23661,
2706
+ "id": 23693,
2315
2707
  "name": "bytes",
2316
2708
  "nodeType": "ElementaryTypeName",
2317
- "src": "4303:5:40",
2709
+ "src": "5464:5:40",
2318
2710
  "typeDescriptions": {
2319
2711
  "typeIdentifier": "t_bytes_storage_ptr",
2320
2712
  "typeString": "bytes"
@@ -2323,27 +2715,27 @@
2323
2715
  "visibility": "internal"
2324
2716
  }
2325
2717
  ],
2326
- "src": "4288:33:40"
2718
+ "src": "5449:33:40"
2327
2719
  },
2328
- "scope": 23781,
2720
+ "scope": 23813,
2329
2721
  "stateMutability": "nonpayable",
2330
2722
  "virtual": false,
2331
2723
  "visibility": "internal"
2332
2724
  },
2333
2725
  {
2334
- "id": 23710,
2726
+ "id": 23742,
2335
2727
  "nodeType": "FunctionDefinition",
2336
- "src": "4971:321:40",
2728
+ "src": "6132:321:40",
2337
2729
  "nodes": [],
2338
2730
  "body": {
2339
- "id": 23709,
2731
+ "id": 23741,
2340
2732
  "nodeType": "Block",
2341
- "src": "5151:141:40",
2733
+ "src": "6312:141:40",
2342
2734
  "nodes": [],
2343
2735
  "statements": [
2344
2736
  {
2345
2737
  "expression": {
2346
- "id": 23707,
2738
+ "id": 23739,
2347
2739
  "isConstant": false,
2348
2740
  "isLValue": false,
2349
2741
  "isPure": false,
@@ -2351,38 +2743,38 @@
2351
2743
  "leftHandSide": {
2352
2744
  "components": [
2353
2745
  {
2354
- "id": 23696,
2746
+ "id": 23728,
2355
2747
  "name": "success",
2356
2748
  "nodeType": "Identifier",
2357
2749
  "overloadedDeclarations": [],
2358
- "referencedDeclaration": 23692,
2359
- "src": "5158:7:40",
2750
+ "referencedDeclaration": 23724,
2751
+ "src": "6319:7:40",
2360
2752
  "typeDescriptions": {
2361
2753
  "typeIdentifier": "t_bool",
2362
2754
  "typeString": "bool"
2363
2755
  }
2364
2756
  },
2365
2757
  {
2366
- "id": 23697,
2758
+ "id": 23729,
2367
2759
  "name": "data",
2368
2760
  "nodeType": "Identifier",
2369
2761
  "overloadedDeclarations": [],
2370
- "referencedDeclaration": 23694,
2371
- "src": "5167:4:40",
2762
+ "referencedDeclaration": 23726,
2763
+ "src": "6328:4:40",
2372
2764
  "typeDescriptions": {
2373
2765
  "typeIdentifier": "t_bytes_memory_ptr",
2374
2766
  "typeString": "bytes memory"
2375
2767
  }
2376
2768
  }
2377
2769
  ],
2378
- "id": 23698,
2770
+ "id": 23730,
2379
2771
  "isConstant": false,
2380
2772
  "isInlineArray": false,
2381
2773
  "isLValue": true,
2382
2774
  "isPure": false,
2383
2775
  "lValueRequested": true,
2384
2776
  "nodeType": "TupleExpression",
2385
- "src": "5157:15:40",
2777
+ "src": "6318:15:40",
2386
2778
  "typeDescriptions": {
2387
2779
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2388
2780
  "typeString": "tuple(bool,bytes memory)"
@@ -2395,36 +2787,36 @@
2395
2787
  {
2396
2788
  "arguments": [
2397
2789
  {
2398
- "id": 23702,
2790
+ "id": 23734,
2399
2791
  "name": "callData",
2400
2792
  "nodeType": "Identifier",
2401
2793
  "overloadedDeclarations": [],
2402
- "referencedDeclaration": 23689,
2403
- "src": "5228:8:40",
2794
+ "referencedDeclaration": 23721,
2795
+ "src": "6389:8:40",
2404
2796
  "typeDescriptions": {
2405
2797
  "typeIdentifier": "t_bytes_memory_ptr",
2406
2798
  "typeString": "bytes memory"
2407
2799
  }
2408
2800
  },
2409
2801
  {
2410
- "id": 23703,
2802
+ "id": 23735,
2411
2803
  "name": "msgSender",
2412
2804
  "nodeType": "Identifier",
2413
2805
  "overloadedDeclarations": [],
2414
- "referencedDeclaration": 23683,
2415
- "src": "5249:9:40",
2806
+ "referencedDeclaration": 23715,
2807
+ "src": "6410:9:40",
2416
2808
  "typeDescriptions": {
2417
2809
  "typeIdentifier": "t_address",
2418
2810
  "typeString": "address"
2419
2811
  }
2420
2812
  },
2421
2813
  {
2422
- "id": 23704,
2814
+ "id": 23736,
2423
2815
  "name": "msgValue",
2424
2816
  "nodeType": "Identifier",
2425
2817
  "overloadedDeclarations": [],
2426
- "referencedDeclaration": 23685,
2427
- "src": "5270:8:40",
2818
+ "referencedDeclaration": 23717,
2819
+ "src": "6431:8:40",
2428
2820
  "typeDescriptions": {
2429
2821
  "typeIdentifier": "t_uint256",
2430
2822
  "typeString": "uint256"
@@ -2446,27 +2838,27 @@
2446
2838
  "typeString": "uint256"
2447
2839
  }
2448
2840
  ],
2449
- "id": 23701,
2841
+ "id": 23733,
2450
2842
  "name": "appendContext",
2451
2843
  "nodeType": "Identifier",
2452
2844
  "overloadedDeclarations": [],
2453
- "referencedDeclaration": 23648,
2454
- "src": "5202:13:40",
2845
+ "referencedDeclaration": 23680,
2846
+ "src": "6363:13:40",
2455
2847
  "typeDescriptions": {
2456
2848
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
2457
2849
  "typeString": "function (bytes memory,address,uint256) pure returns (bytes memory)"
2458
2850
  }
2459
2851
  },
2460
- "id": 23705,
2852
+ "id": 23737,
2461
2853
  "isConstant": false,
2462
2854
  "isLValue": false,
2463
2855
  "isPure": false,
2464
2856
  "kind": "functionCall",
2465
2857
  "lValueRequested": false,
2466
2858
  "nameLocations": [
2467
- "5218:8:40",
2468
- "5238:9:40",
2469
- "5260:8:40"
2859
+ "6379:8:40",
2860
+ "6399:9:40",
2861
+ "6421:8:40"
2470
2862
  ],
2471
2863
  "names": [
2472
2864
  "callData",
@@ -2474,7 +2866,7 @@
2474
2866
  "msgValue"
2475
2867
  ],
2476
2868
  "nodeType": "FunctionCall",
2477
- "src": "5202:79:40",
2869
+ "src": "6363:79:40",
2478
2870
  "tryCall": false,
2479
2871
  "typeDescriptions": {
2480
2872
  "typeIdentifier": "t_bytes_memory_ptr",
@@ -2490,32 +2882,32 @@
2490
2882
  }
2491
2883
  ],
2492
2884
  "expression": {
2493
- "id": 23699,
2885
+ "id": 23731,
2494
2886
  "name": "target",
2495
2887
  "nodeType": "Identifier",
2496
2888
  "overloadedDeclarations": [],
2497
- "referencedDeclaration": 23687,
2498
- "src": "5175:6:40",
2889
+ "referencedDeclaration": 23719,
2890
+ "src": "6336:6:40",
2499
2891
  "typeDescriptions": {
2500
2892
  "typeIdentifier": "t_address",
2501
2893
  "typeString": "address"
2502
2894
  }
2503
2895
  },
2504
- "id": 23700,
2896
+ "id": 23732,
2505
2897
  "isConstant": false,
2506
2898
  "isLValue": false,
2507
2899
  "isPure": false,
2508
2900
  "lValueRequested": false,
2509
- "memberLocation": "5182:12:40",
2901
+ "memberLocation": "6343:12:40",
2510
2902
  "memberName": "delegatecall",
2511
2903
  "nodeType": "MemberAccess",
2512
- "src": "5175:19:40",
2904
+ "src": "6336:19:40",
2513
2905
  "typeDescriptions": {
2514
2906
  "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2515
2907
  "typeString": "function (bytes memory) returns (bool,bytes memory)"
2516
2908
  }
2517
2909
  },
2518
- "id": 23706,
2910
+ "id": 23738,
2519
2911
  "isConstant": false,
2520
2912
  "isLValue": false,
2521
2913
  "isPure": false,
@@ -2524,49 +2916,49 @@
2524
2916
  "nameLocations": [],
2525
2917
  "names": [],
2526
2918
  "nodeType": "FunctionCall",
2527
- "src": "5175:112:40",
2919
+ "src": "6336:112:40",
2528
2920
  "tryCall": false,
2529
2921
  "typeDescriptions": {
2530
2922
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
2531
2923
  "typeString": "tuple(bool,bytes memory)"
2532
2924
  }
2533
2925
  },
2534
- "src": "5157:130:40",
2926
+ "src": "6318:130:40",
2535
2927
  "typeDescriptions": {
2536
2928
  "typeIdentifier": "t_tuple$__$",
2537
2929
  "typeString": "tuple()"
2538
2930
  }
2539
2931
  },
2540
- "id": 23708,
2932
+ "id": 23740,
2541
2933
  "nodeType": "ExpressionStatement",
2542
- "src": "5157:130:40"
2934
+ "src": "6318:130:40"
2543
2935
  }
2544
2936
  ]
2545
2937
  },
2546
2938
  "documentation": {
2547
- "id": 23681,
2939
+ "id": 23713,
2548
2940
  "nodeType": "StructuredDocumentation",
2549
- "src": "4471:497:40",
2941
+ "src": "5632:497:40",
2550
2942
  "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
2943
  },
2552
2944
  "implemented": true,
2553
2945
  "kind": "function",
2554
2946
  "modifiers": [],
2555
2947
  "name": "delegatecallWithContext",
2556
- "nameLocation": "4980:23:40",
2948
+ "nameLocation": "6141:23:40",
2557
2949
  "parameters": {
2558
- "id": 23690,
2950
+ "id": 23722,
2559
2951
  "nodeType": "ParameterList",
2560
2952
  "parameters": [
2561
2953
  {
2562
2954
  "constant": false,
2563
- "id": 23683,
2955
+ "id": 23715,
2564
2956
  "mutability": "mutable",
2565
2957
  "name": "msgSender",
2566
- "nameLocation": "5017:9:40",
2958
+ "nameLocation": "6178:9:40",
2567
2959
  "nodeType": "VariableDeclaration",
2568
- "scope": 23710,
2569
- "src": "5009:17:40",
2960
+ "scope": 23742,
2961
+ "src": "6170:17:40",
2570
2962
  "stateVariable": false,
2571
2963
  "storageLocation": "default",
2572
2964
  "typeDescriptions": {
@@ -2574,10 +2966,10 @@
2574
2966
  "typeString": "address"
2575
2967
  },
2576
2968
  "typeName": {
2577
- "id": 23682,
2969
+ "id": 23714,
2578
2970
  "name": "address",
2579
2971
  "nodeType": "ElementaryTypeName",
2580
- "src": "5009:7:40",
2972
+ "src": "6170:7:40",
2581
2973
  "stateMutability": "nonpayable",
2582
2974
  "typeDescriptions": {
2583
2975
  "typeIdentifier": "t_address",
@@ -2588,13 +2980,13 @@
2588
2980
  },
2589
2981
  {
2590
2982
  "constant": false,
2591
- "id": 23685,
2983
+ "id": 23717,
2592
2984
  "mutability": "mutable",
2593
2985
  "name": "msgValue",
2594
- "nameLocation": "5040:8:40",
2986
+ "nameLocation": "6201:8:40",
2595
2987
  "nodeType": "VariableDeclaration",
2596
- "scope": 23710,
2597
- "src": "5032:16:40",
2988
+ "scope": 23742,
2989
+ "src": "6193:16:40",
2598
2990
  "stateVariable": false,
2599
2991
  "storageLocation": "default",
2600
2992
  "typeDescriptions": {
@@ -2602,10 +2994,10 @@
2602
2994
  "typeString": "uint256"
2603
2995
  },
2604
2996
  "typeName": {
2605
- "id": 23684,
2997
+ "id": 23716,
2606
2998
  "name": "uint256",
2607
2999
  "nodeType": "ElementaryTypeName",
2608
- "src": "5032:7:40",
3000
+ "src": "6193:7:40",
2609
3001
  "typeDescriptions": {
2610
3002
  "typeIdentifier": "t_uint256",
2611
3003
  "typeString": "uint256"
@@ -2615,13 +3007,13 @@
2615
3007
  },
2616
3008
  {
2617
3009
  "constant": false,
2618
- "id": 23687,
3010
+ "id": 23719,
2619
3011
  "mutability": "mutable",
2620
3012
  "name": "target",
2621
- "nameLocation": "5062:6:40",
3013
+ "nameLocation": "6223:6:40",
2622
3014
  "nodeType": "VariableDeclaration",
2623
- "scope": 23710,
2624
- "src": "5054:14:40",
3015
+ "scope": 23742,
3016
+ "src": "6215:14:40",
2625
3017
  "stateVariable": false,
2626
3018
  "storageLocation": "default",
2627
3019
  "typeDescriptions": {
@@ -2629,10 +3021,10 @@
2629
3021
  "typeString": "address"
2630
3022
  },
2631
3023
  "typeName": {
2632
- "id": 23686,
3024
+ "id": 23718,
2633
3025
  "name": "address",
2634
3026
  "nodeType": "ElementaryTypeName",
2635
- "src": "5054:7:40",
3027
+ "src": "6215:7:40",
2636
3028
  "stateMutability": "nonpayable",
2637
3029
  "typeDescriptions": {
2638
3030
  "typeIdentifier": "t_address",
@@ -2643,13 +3035,13 @@
2643
3035
  },
2644
3036
  {
2645
3037
  "constant": false,
2646
- "id": 23689,
3038
+ "id": 23721,
2647
3039
  "mutability": "mutable",
2648
3040
  "name": "callData",
2649
- "nameLocation": "5087:8:40",
3041
+ "nameLocation": "6248:8:40",
2650
3042
  "nodeType": "VariableDeclaration",
2651
- "scope": 23710,
2652
- "src": "5074:21:40",
3043
+ "scope": 23742,
3044
+ "src": "6235:21:40",
2653
3045
  "stateVariable": false,
2654
3046
  "storageLocation": "memory",
2655
3047
  "typeDescriptions": {
@@ -2657,10 +3049,10 @@
2657
3049
  "typeString": "bytes"
2658
3050
  },
2659
3051
  "typeName": {
2660
- "id": 23688,
3052
+ "id": 23720,
2661
3053
  "name": "bytes",
2662
3054
  "nodeType": "ElementaryTypeName",
2663
- "src": "5074:5:40",
3055
+ "src": "6235:5:40",
2664
3056
  "typeDescriptions": {
2665
3057
  "typeIdentifier": "t_bytes_storage_ptr",
2666
3058
  "typeString": "bytes"
@@ -2669,21 +3061,21 @@
2669
3061
  "visibility": "internal"
2670
3062
  }
2671
3063
  ],
2672
- "src": "5003:96:40"
3064
+ "src": "6164:96:40"
2673
3065
  },
2674
3066
  "returnParameters": {
2675
- "id": 23695,
3067
+ "id": 23727,
2676
3068
  "nodeType": "ParameterList",
2677
3069
  "parameters": [
2678
3070
  {
2679
3071
  "constant": false,
2680
- "id": 23692,
3072
+ "id": 23724,
2681
3073
  "mutability": "mutable",
2682
3074
  "name": "success",
2683
- "nameLocation": "5123:7:40",
3075
+ "nameLocation": "6284:7:40",
2684
3076
  "nodeType": "VariableDeclaration",
2685
- "scope": 23710,
2686
- "src": "5118:12:40",
3077
+ "scope": 23742,
3078
+ "src": "6279:12:40",
2687
3079
  "stateVariable": false,
2688
3080
  "storageLocation": "default",
2689
3081
  "typeDescriptions": {
@@ -2691,10 +3083,10 @@
2691
3083
  "typeString": "bool"
2692
3084
  },
2693
3085
  "typeName": {
2694
- "id": 23691,
3086
+ "id": 23723,
2695
3087
  "name": "bool",
2696
3088
  "nodeType": "ElementaryTypeName",
2697
- "src": "5118:4:40",
3089
+ "src": "6279:4:40",
2698
3090
  "typeDescriptions": {
2699
3091
  "typeIdentifier": "t_bool",
2700
3092
  "typeString": "bool"
@@ -2704,13 +3096,13 @@
2704
3096
  },
2705
3097
  {
2706
3098
  "constant": false,
2707
- "id": 23694,
3099
+ "id": 23726,
2708
3100
  "mutability": "mutable",
2709
3101
  "name": "data",
2710
- "nameLocation": "5145:4:40",
3102
+ "nameLocation": "6306:4:40",
2711
3103
  "nodeType": "VariableDeclaration",
2712
- "scope": 23710,
2713
- "src": "5132:17:40",
3104
+ "scope": 23742,
3105
+ "src": "6293:17:40",
2714
3106
  "stateVariable": false,
2715
3107
  "storageLocation": "memory",
2716
3108
  "typeDescriptions": {
@@ -2718,10 +3110,10 @@
2718
3110
  "typeString": "bytes"
2719
3111
  },
2720
3112
  "typeName": {
2721
- "id": 23693,
3113
+ "id": 23725,
2722
3114
  "name": "bytes",
2723
3115
  "nodeType": "ElementaryTypeName",
2724
- "src": "5132:5:40",
3116
+ "src": "6293:5:40",
2725
3117
  "typeDescriptions": {
2726
3118
  "typeIdentifier": "t_bytes_storage_ptr",
2727
3119
  "typeString": "bytes"
@@ -2730,39 +3122,39 @@
2730
3122
  "visibility": "internal"
2731
3123
  }
2732
3124
  ],
2733
- "src": "5117:33:40"
3125
+ "src": "6278:33:40"
2734
3126
  },
2735
- "scope": 23781,
3127
+ "scope": 23813,
2736
3128
  "stateMutability": "nonpayable",
2737
3129
  "virtual": false,
2738
3130
  "visibility": "internal"
2739
3131
  },
2740
3132
  {
2741
- "id": 23745,
3133
+ "id": 23777,
2742
3134
  "nodeType": "FunctionDefinition",
2743
- "src": "5747:399:40",
3135
+ "src": "6908:399:40",
2744
3136
  "nodes": [],
2745
3137
  "body": {
2746
- "id": 23744,
3138
+ "id": 23776,
2747
3139
  "nodeType": "Block",
2748
- "src": "5913:233:40",
3140
+ "src": "7074:233:40",
2749
3141
  "nodes": [],
2750
3142
  "statements": [
2751
3143
  {
2752
3144
  "assignments": [
2753
- 23725,
2754
- 23727
3145
+ 23757,
3146
+ 23759
2755
3147
  ],
2756
3148
  "declarations": [
2757
3149
  {
2758
3150
  "constant": false,
2759
- "id": 23725,
3151
+ "id": 23757,
2760
3152
  "mutability": "mutable",
2761
3153
  "name": "success",
2762
- "nameLocation": "5925:7:40",
3154
+ "nameLocation": "7086:7:40",
2763
3155
  "nodeType": "VariableDeclaration",
2764
- "scope": 23744,
2765
- "src": "5920:12:40",
3156
+ "scope": 23776,
3157
+ "src": "7081:12:40",
2766
3158
  "stateVariable": false,
2767
3159
  "storageLocation": "default",
2768
3160
  "typeDescriptions": {
@@ -2770,10 +3162,10 @@
2770
3162
  "typeString": "bool"
2771
3163
  },
2772
3164
  "typeName": {
2773
- "id": 23724,
3165
+ "id": 23756,
2774
3166
  "name": "bool",
2775
3167
  "nodeType": "ElementaryTypeName",
2776
- "src": "5920:4:40",
3168
+ "src": "7081:4:40",
2777
3169
  "typeDescriptions": {
2778
3170
  "typeIdentifier": "t_bool",
2779
3171
  "typeString": "bool"
@@ -2783,13 +3175,13 @@
2783
3175
  },
2784
3176
  {
2785
3177
  "constant": false,
2786
- "id": 23727,
3178
+ "id": 23759,
2787
3179
  "mutability": "mutable",
2788
3180
  "name": "_data",
2789
- "nameLocation": "5947:5:40",
3181
+ "nameLocation": "7108:5:40",
2790
3182
  "nodeType": "VariableDeclaration",
2791
- "scope": 23744,
2792
- "src": "5934:18:40",
3183
+ "scope": 23776,
3184
+ "src": "7095:18:40",
2793
3185
  "stateVariable": false,
2794
3186
  "storageLocation": "memory",
2795
3187
  "typeDescriptions": {
@@ -2797,10 +3189,10 @@
2797
3189
  "typeString": "bytes"
2798
3190
  },
2799
3191
  "typeName": {
2800
- "id": 23726,
3192
+ "id": 23758,
2801
3193
  "name": "bytes",
2802
3194
  "nodeType": "ElementaryTypeName",
2803
- "src": "5934:5:40",
3195
+ "src": "7095:5:40",
2804
3196
  "typeDescriptions": {
2805
3197
  "typeIdentifier": "t_bytes_storage_ptr",
2806
3198
  "typeString": "bytes"
@@ -2809,52 +3201,52 @@
2809
3201
  "visibility": "internal"
2810
3202
  }
2811
3203
  ],
2812
- "id": 23734,
3204
+ "id": 23766,
2813
3205
  "initialValue": {
2814
3206
  "arguments": [
2815
3207
  {
2816
- "id": 23729,
3208
+ "id": 23761,
2817
3209
  "name": "msgSender",
2818
3210
  "nodeType": "Identifier",
2819
3211
  "overloadedDeclarations": [],
2820
- "referencedDeclaration": 23713,
2821
- "src": "5991:9:40",
3212
+ "referencedDeclaration": 23745,
3213
+ "src": "7152:9:40",
2822
3214
  "typeDescriptions": {
2823
3215
  "typeIdentifier": "t_address",
2824
3216
  "typeString": "address"
2825
3217
  }
2826
3218
  },
2827
3219
  {
2828
- "id": 23730,
3220
+ "id": 23762,
2829
3221
  "name": "msgValue",
2830
3222
  "nodeType": "Identifier",
2831
3223
  "overloadedDeclarations": [],
2832
- "referencedDeclaration": 23715,
2833
- "src": "6018:8:40",
3224
+ "referencedDeclaration": 23747,
3225
+ "src": "7179:8:40",
2834
3226
  "typeDescriptions": {
2835
3227
  "typeIdentifier": "t_uint256",
2836
3228
  "typeString": "uint256"
2837
3229
  }
2838
3230
  },
2839
3231
  {
2840
- "id": 23731,
3232
+ "id": 23763,
2841
3233
  "name": "target",
2842
3234
  "nodeType": "Identifier",
2843
3235
  "overloadedDeclarations": [],
2844
- "referencedDeclaration": 23717,
2845
- "src": "6042:6:40",
3236
+ "referencedDeclaration": 23749,
3237
+ "src": "7203:6:40",
2846
3238
  "typeDescriptions": {
2847
3239
  "typeIdentifier": "t_address",
2848
3240
  "typeString": "address"
2849
3241
  }
2850
3242
  },
2851
3243
  {
2852
- "id": 23732,
3244
+ "id": 23764,
2853
3245
  "name": "callData",
2854
3246
  "nodeType": "Identifier",
2855
3247
  "overloadedDeclarations": [],
2856
- "referencedDeclaration": 23719,
2857
- "src": "6066:8:40",
3248
+ "referencedDeclaration": 23751,
3249
+ "src": "7227:8:40",
2858
3250
  "typeDescriptions": {
2859
3251
  "typeIdentifier": "t_bytes_memory_ptr",
2860
3252
  "typeString": "bytes memory"
@@ -2880,28 +3272,28 @@
2880
3272
  "typeString": "bytes memory"
2881
3273
  }
2882
3274
  ],
2883
- "id": 23728,
3275
+ "id": 23760,
2884
3276
  "name": "callWithContext",
2885
3277
  "nodeType": "Identifier",
2886
3278
  "overloadedDeclarations": [],
2887
- "referencedDeclaration": 23680,
2888
- "src": "5956:15:40",
3279
+ "referencedDeclaration": 23712,
3280
+ "src": "7117:15:40",
2889
3281
  "typeDescriptions": {
2890
3282
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
2891
3283
  "typeString": "function (address,uint256,address,bytes memory) returns (bool,bytes memory)"
2892
3284
  }
2893
3285
  },
2894
- "id": 23733,
3286
+ "id": 23765,
2895
3287
  "isConstant": false,
2896
3288
  "isLValue": false,
2897
3289
  "isPure": false,
2898
3290
  "kind": "functionCall",
2899
3291
  "lValueRequested": false,
2900
3292
  "nameLocations": [
2901
- "5980:9:40",
2902
- "6008:8:40",
2903
- "6034:6:40",
2904
- "6056:8:40"
3293
+ "7141:9:40",
3294
+ "7169:8:40",
3295
+ "7195:6:40",
3296
+ "7217:8:40"
2905
3297
  ],
2906
3298
  "names": [
2907
3299
  "msgSender",
@@ -2910,7 +3302,7 @@
2910
3302
  "callData"
2911
3303
  ],
2912
3304
  "nodeType": "FunctionCall",
2913
- "src": "5956:125:40",
3305
+ "src": "7117:125:40",
2914
3306
  "tryCall": false,
2915
3307
  "typeDescriptions": {
2916
3308
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
@@ -2918,11 +3310,11 @@
2918
3310
  }
2919
3311
  },
2920
3312
  "nodeType": "VariableDeclarationStatement",
2921
- "src": "5919:162:40"
3313
+ "src": "7080:162:40"
2922
3314
  },
2923
3315
  {
2924
3316
  "condition": {
2925
- "id": 23736,
3317
+ "id": 23768,
2926
3318
  "isConstant": false,
2927
3319
  "isLValue": false,
2928
3320
  "isPure": false,
@@ -2930,14 +3322,14 @@
2930
3322
  "nodeType": "UnaryOperation",
2931
3323
  "operator": "!",
2932
3324
  "prefix": true,
2933
- "src": "6091:8:40",
3325
+ "src": "7252:8:40",
2934
3326
  "subExpression": {
2935
- "id": 23735,
3327
+ "id": 23767,
2936
3328
  "name": "success",
2937
3329
  "nodeType": "Identifier",
2938
3330
  "overloadedDeclarations": [],
2939
- "referencedDeclaration": 23725,
2940
- "src": "6092:7:40",
3331
+ "referencedDeclaration": 23757,
3332
+ "src": "7253:7:40",
2941
3333
  "typeDescriptions": {
2942
3334
  "typeIdentifier": "t_bool",
2943
3335
  "typeString": "bool"
@@ -2948,19 +3340,19 @@
2948
3340
  "typeString": "bool"
2949
3341
  }
2950
3342
  },
2951
- "id": 23741,
3343
+ "id": 23773,
2952
3344
  "nodeType": "IfStatement",
2953
- "src": "6087:36:40",
3345
+ "src": "7248:36:40",
2954
3346
  "trueBody": {
2955
3347
  "expression": {
2956
3348
  "arguments": [
2957
3349
  {
2958
- "id": 23738,
3350
+ "id": 23770,
2959
3351
  "name": "_data",
2960
3352
  "nodeType": "Identifier",
2961
3353
  "overloadedDeclarations": [],
2962
- "referencedDeclaration": 23727,
2963
- "src": "6117:5:40",
3354
+ "referencedDeclaration": 23759,
3355
+ "src": "7278:5:40",
2964
3356
  "typeDescriptions": {
2965
3357
  "typeIdentifier": "t_bytes_memory_ptr",
2966
3358
  "typeString": "bytes memory"
@@ -2974,18 +3366,18 @@
2974
3366
  "typeString": "bytes memory"
2975
3367
  }
2976
3368
  ],
2977
- "id": 23737,
3369
+ "id": 23769,
2978
3370
  "name": "revertWithBytes",
2979
3371
  "nodeType": "Identifier",
2980
3372
  "overloadedDeclarations": [],
2981
- "referencedDeclaration": 24356,
2982
- "src": "6101:15:40",
3373
+ "referencedDeclaration": 24388,
3374
+ "src": "7262:15:40",
2983
3375
  "typeDescriptions": {
2984
3376
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$",
2985
3377
  "typeString": "function (bytes memory) pure"
2986
3378
  }
2987
3379
  },
2988
- "id": 23739,
3380
+ "id": 23771,
2989
3381
  "isConstant": false,
2990
3382
  "isLValue": false,
2991
3383
  "isPure": false,
@@ -2994,62 +3386,62 @@
2994
3386
  "nameLocations": [],
2995
3387
  "names": [],
2996
3388
  "nodeType": "FunctionCall",
2997
- "src": "6101:22:40",
3389
+ "src": "7262:22:40",
2998
3390
  "tryCall": false,
2999
3391
  "typeDescriptions": {
3000
3392
  "typeIdentifier": "t_tuple$__$",
3001
3393
  "typeString": "tuple()"
3002
3394
  }
3003
3395
  },
3004
- "id": 23740,
3396
+ "id": 23772,
3005
3397
  "nodeType": "ExpressionStatement",
3006
- "src": "6101:22:40"
3398
+ "src": "7262:22:40"
3007
3399
  }
3008
3400
  },
3009
3401
  {
3010
3402
  "expression": {
3011
- "id": 23742,
3403
+ "id": 23774,
3012
3404
  "name": "_data",
3013
3405
  "nodeType": "Identifier",
3014
3406
  "overloadedDeclarations": [],
3015
- "referencedDeclaration": 23727,
3016
- "src": "6136:5:40",
3407
+ "referencedDeclaration": 23759,
3408
+ "src": "7297:5:40",
3017
3409
  "typeDescriptions": {
3018
3410
  "typeIdentifier": "t_bytes_memory_ptr",
3019
3411
  "typeString": "bytes memory"
3020
3412
  }
3021
3413
  },
3022
- "functionReturnParameters": 23723,
3023
- "id": 23743,
3414
+ "functionReturnParameters": 23755,
3415
+ "id": 23775,
3024
3416
  "nodeType": "Return",
3025
- "src": "6129:12:40"
3417
+ "src": "7290:12:40"
3026
3418
  }
3027
3419
  ]
3028
3420
  },
3029
3421
  "documentation": {
3030
- "id": 23711,
3422
+ "id": 23743,
3031
3423
  "nodeType": "StructuredDocumentation",
3032
- "src": "5296:448:40",
3424
+ "src": "6457:448:40",
3033
3425
  "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
3426
  },
3035
3427
  "implemented": true,
3036
3428
  "kind": "function",
3037
3429
  "modifiers": [],
3038
3430
  "name": "callWithContextOrRevert",
3039
- "nameLocation": "5756:23:40",
3431
+ "nameLocation": "6917:23:40",
3040
3432
  "parameters": {
3041
- "id": 23720,
3433
+ "id": 23752,
3042
3434
  "nodeType": "ParameterList",
3043
3435
  "parameters": [
3044
3436
  {
3045
3437
  "constant": false,
3046
- "id": 23713,
3438
+ "id": 23745,
3047
3439
  "mutability": "mutable",
3048
3440
  "name": "msgSender",
3049
- "nameLocation": "5793:9:40",
3441
+ "nameLocation": "6954:9:40",
3050
3442
  "nodeType": "VariableDeclaration",
3051
- "scope": 23745,
3052
- "src": "5785:17:40",
3443
+ "scope": 23777,
3444
+ "src": "6946:17:40",
3053
3445
  "stateVariable": false,
3054
3446
  "storageLocation": "default",
3055
3447
  "typeDescriptions": {
@@ -3057,10 +3449,10 @@
3057
3449
  "typeString": "address"
3058
3450
  },
3059
3451
  "typeName": {
3060
- "id": 23712,
3452
+ "id": 23744,
3061
3453
  "name": "address",
3062
3454
  "nodeType": "ElementaryTypeName",
3063
- "src": "5785:7:40",
3455
+ "src": "6946:7:40",
3064
3456
  "stateMutability": "nonpayable",
3065
3457
  "typeDescriptions": {
3066
3458
  "typeIdentifier": "t_address",
@@ -3071,13 +3463,13 @@
3071
3463
  },
3072
3464
  {
3073
3465
  "constant": false,
3074
- "id": 23715,
3466
+ "id": 23747,
3075
3467
  "mutability": "mutable",
3076
3468
  "name": "msgValue",
3077
- "nameLocation": "5816:8:40",
3469
+ "nameLocation": "6977:8:40",
3078
3470
  "nodeType": "VariableDeclaration",
3079
- "scope": 23745,
3080
- "src": "5808:16:40",
3471
+ "scope": 23777,
3472
+ "src": "6969:16:40",
3081
3473
  "stateVariable": false,
3082
3474
  "storageLocation": "default",
3083
3475
  "typeDescriptions": {
@@ -3085,10 +3477,10 @@
3085
3477
  "typeString": "uint256"
3086
3478
  },
3087
3479
  "typeName": {
3088
- "id": 23714,
3480
+ "id": 23746,
3089
3481
  "name": "uint256",
3090
3482
  "nodeType": "ElementaryTypeName",
3091
- "src": "5808:7:40",
3483
+ "src": "6969:7:40",
3092
3484
  "typeDescriptions": {
3093
3485
  "typeIdentifier": "t_uint256",
3094
3486
  "typeString": "uint256"
@@ -3098,13 +3490,13 @@
3098
3490
  },
3099
3491
  {
3100
3492
  "constant": false,
3101
- "id": 23717,
3493
+ "id": 23749,
3102
3494
  "mutability": "mutable",
3103
3495
  "name": "target",
3104
- "nameLocation": "5838:6:40",
3496
+ "nameLocation": "6999:6:40",
3105
3497
  "nodeType": "VariableDeclaration",
3106
- "scope": 23745,
3107
- "src": "5830:14:40",
3498
+ "scope": 23777,
3499
+ "src": "6991:14:40",
3108
3500
  "stateVariable": false,
3109
3501
  "storageLocation": "default",
3110
3502
  "typeDescriptions": {
@@ -3112,10 +3504,10 @@
3112
3504
  "typeString": "address"
3113
3505
  },
3114
3506
  "typeName": {
3115
- "id": 23716,
3507
+ "id": 23748,
3116
3508
  "name": "address",
3117
3509
  "nodeType": "ElementaryTypeName",
3118
- "src": "5830:7:40",
3510
+ "src": "6991:7:40",
3119
3511
  "stateMutability": "nonpayable",
3120
3512
  "typeDescriptions": {
3121
3513
  "typeIdentifier": "t_address",
@@ -3126,13 +3518,13 @@
3126
3518
  },
3127
3519
  {
3128
3520
  "constant": false,
3129
- "id": 23719,
3521
+ "id": 23751,
3130
3522
  "mutability": "mutable",
3131
3523
  "name": "callData",
3132
- "nameLocation": "5863:8:40",
3524
+ "nameLocation": "7024:8:40",
3133
3525
  "nodeType": "VariableDeclaration",
3134
- "scope": 23745,
3135
- "src": "5850:21:40",
3526
+ "scope": 23777,
3527
+ "src": "7011:21:40",
3136
3528
  "stateVariable": false,
3137
3529
  "storageLocation": "memory",
3138
3530
  "typeDescriptions": {
@@ -3140,10 +3532,10 @@
3140
3532
  "typeString": "bytes"
3141
3533
  },
3142
3534
  "typeName": {
3143
- "id": 23718,
3535
+ "id": 23750,
3144
3536
  "name": "bytes",
3145
3537
  "nodeType": "ElementaryTypeName",
3146
- "src": "5850:5:40",
3538
+ "src": "7011:5:40",
3147
3539
  "typeDescriptions": {
3148
3540
  "typeIdentifier": "t_bytes_storage_ptr",
3149
3541
  "typeString": "bytes"
@@ -3152,21 +3544,21 @@
3152
3544
  "visibility": "internal"
3153
3545
  }
3154
3546
  ],
3155
- "src": "5779:96:40"
3547
+ "src": "6940:96:40"
3156
3548
  },
3157
3549
  "returnParameters": {
3158
- "id": 23723,
3550
+ "id": 23755,
3159
3551
  "nodeType": "ParameterList",
3160
3552
  "parameters": [
3161
3553
  {
3162
3554
  "constant": false,
3163
- "id": 23722,
3555
+ "id": 23754,
3164
3556
  "mutability": "mutable",
3165
3557
  "name": "data",
3166
- "nameLocation": "5907:4:40",
3558
+ "nameLocation": "7068:4:40",
3167
3559
  "nodeType": "VariableDeclaration",
3168
- "scope": 23745,
3169
- "src": "5894:17:40",
3560
+ "scope": 23777,
3561
+ "src": "7055:17:40",
3170
3562
  "stateVariable": false,
3171
3563
  "storageLocation": "memory",
3172
3564
  "typeDescriptions": {
@@ -3174,10 +3566,10 @@
3174
3566
  "typeString": "bytes"
3175
3567
  },
3176
3568
  "typeName": {
3177
- "id": 23721,
3569
+ "id": 23753,
3178
3570
  "name": "bytes",
3179
3571
  "nodeType": "ElementaryTypeName",
3180
- "src": "5894:5:40",
3572
+ "src": "7055:5:40",
3181
3573
  "typeDescriptions": {
3182
3574
  "typeIdentifier": "t_bytes_storage_ptr",
3183
3575
  "typeString": "bytes"
@@ -3186,39 +3578,39 @@
3186
3578
  "visibility": "internal"
3187
3579
  }
3188
3580
  ],
3189
- "src": "5893:19:40"
3581
+ "src": "7054:19:40"
3190
3582
  },
3191
- "scope": 23781,
3583
+ "scope": 23813,
3192
3584
  "stateMutability": "nonpayable",
3193
3585
  "virtual": false,
3194
3586
  "visibility": "internal"
3195
3587
  },
3196
3588
  {
3197
- "id": 23780,
3589
+ "id": 23812,
3198
3590
  "nodeType": "FunctionDefinition",
3199
- "src": "6609:415:40",
3591
+ "src": "7770:415:40",
3200
3592
  "nodes": [],
3201
3593
  "body": {
3202
- "id": 23779,
3594
+ "id": 23811,
3203
3595
  "nodeType": "Block",
3204
- "src": "6783:241:40",
3596
+ "src": "7944:241:40",
3205
3597
  "nodes": [],
3206
3598
  "statements": [
3207
3599
  {
3208
3600
  "assignments": [
3209
- 23760,
3210
- 23762
3601
+ 23792,
3602
+ 23794
3211
3603
  ],
3212
3604
  "declarations": [
3213
3605
  {
3214
3606
  "constant": false,
3215
- "id": 23760,
3607
+ "id": 23792,
3216
3608
  "mutability": "mutable",
3217
3609
  "name": "success",
3218
- "nameLocation": "6795:7:40",
3610
+ "nameLocation": "7956:7:40",
3219
3611
  "nodeType": "VariableDeclaration",
3220
- "scope": 23779,
3221
- "src": "6790:12:40",
3612
+ "scope": 23811,
3613
+ "src": "7951:12:40",
3222
3614
  "stateVariable": false,
3223
3615
  "storageLocation": "default",
3224
3616
  "typeDescriptions": {
@@ -3226,10 +3618,10 @@
3226
3618
  "typeString": "bool"
3227
3619
  },
3228
3620
  "typeName": {
3229
- "id": 23759,
3621
+ "id": 23791,
3230
3622
  "name": "bool",
3231
3623
  "nodeType": "ElementaryTypeName",
3232
- "src": "6790:4:40",
3624
+ "src": "7951:4:40",
3233
3625
  "typeDescriptions": {
3234
3626
  "typeIdentifier": "t_bool",
3235
3627
  "typeString": "bool"
@@ -3239,13 +3631,13 @@
3239
3631
  },
3240
3632
  {
3241
3633
  "constant": false,
3242
- "id": 23762,
3634
+ "id": 23794,
3243
3635
  "mutability": "mutable",
3244
3636
  "name": "_data",
3245
- "nameLocation": "6817:5:40",
3637
+ "nameLocation": "7978:5:40",
3246
3638
  "nodeType": "VariableDeclaration",
3247
- "scope": 23779,
3248
- "src": "6804:18:40",
3639
+ "scope": 23811,
3640
+ "src": "7965:18:40",
3249
3641
  "stateVariable": false,
3250
3642
  "storageLocation": "memory",
3251
3643
  "typeDescriptions": {
@@ -3253,10 +3645,10 @@
3253
3645
  "typeString": "bytes"
3254
3646
  },
3255
3647
  "typeName": {
3256
- "id": 23761,
3648
+ "id": 23793,
3257
3649
  "name": "bytes",
3258
3650
  "nodeType": "ElementaryTypeName",
3259
- "src": "6804:5:40",
3651
+ "src": "7965:5:40",
3260
3652
  "typeDescriptions": {
3261
3653
  "typeIdentifier": "t_bytes_storage_ptr",
3262
3654
  "typeString": "bytes"
@@ -3265,52 +3657,52 @@
3265
3657
  "visibility": "internal"
3266
3658
  }
3267
3659
  ],
3268
- "id": 23769,
3660
+ "id": 23801,
3269
3661
  "initialValue": {
3270
3662
  "arguments": [
3271
3663
  {
3272
- "id": 23764,
3664
+ "id": 23796,
3273
3665
  "name": "msgSender",
3274
3666
  "nodeType": "Identifier",
3275
3667
  "overloadedDeclarations": [],
3276
- "referencedDeclaration": 23748,
3277
- "src": "6869:9:40",
3668
+ "referencedDeclaration": 23780,
3669
+ "src": "8030:9:40",
3278
3670
  "typeDescriptions": {
3279
3671
  "typeIdentifier": "t_address",
3280
3672
  "typeString": "address"
3281
3673
  }
3282
3674
  },
3283
3675
  {
3284
- "id": 23765,
3676
+ "id": 23797,
3285
3677
  "name": "msgValue",
3286
3678
  "nodeType": "Identifier",
3287
3679
  "overloadedDeclarations": [],
3288
- "referencedDeclaration": 23750,
3289
- "src": "6896:8:40",
3680
+ "referencedDeclaration": 23782,
3681
+ "src": "8057:8:40",
3290
3682
  "typeDescriptions": {
3291
3683
  "typeIdentifier": "t_uint256",
3292
3684
  "typeString": "uint256"
3293
3685
  }
3294
3686
  },
3295
3687
  {
3296
- "id": 23766,
3688
+ "id": 23798,
3297
3689
  "name": "target",
3298
3690
  "nodeType": "Identifier",
3299
3691
  "overloadedDeclarations": [],
3300
- "referencedDeclaration": 23752,
3301
- "src": "6920:6:40",
3692
+ "referencedDeclaration": 23784,
3693
+ "src": "8081:6:40",
3302
3694
  "typeDescriptions": {
3303
3695
  "typeIdentifier": "t_address",
3304
3696
  "typeString": "address"
3305
3697
  }
3306
3698
  },
3307
3699
  {
3308
- "id": 23767,
3700
+ "id": 23799,
3309
3701
  "name": "callData",
3310
3702
  "nodeType": "Identifier",
3311
3703
  "overloadedDeclarations": [],
3312
- "referencedDeclaration": 23754,
3313
- "src": "6944:8:40",
3704
+ "referencedDeclaration": 23786,
3705
+ "src": "8105:8:40",
3314
3706
  "typeDescriptions": {
3315
3707
  "typeIdentifier": "t_bytes_memory_ptr",
3316
3708
  "typeString": "bytes memory"
@@ -3336,28 +3728,28 @@
3336
3728
  "typeString": "bytes memory"
3337
3729
  }
3338
3730
  ],
3339
- "id": 23763,
3731
+ "id": 23795,
3340
3732
  "name": "delegatecallWithContext",
3341
3733
  "nodeType": "Identifier",
3342
3734
  "overloadedDeclarations": [],
3343
- "referencedDeclaration": 23710,
3344
- "src": "6826:23:40",
3735
+ "referencedDeclaration": 23742,
3736
+ "src": "7987:23:40",
3345
3737
  "typeDescriptions": {
3346
3738
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
3347
3739
  "typeString": "function (address,uint256,address,bytes memory) returns (bool,bytes memory)"
3348
3740
  }
3349
3741
  },
3350
- "id": 23768,
3742
+ "id": 23800,
3351
3743
  "isConstant": false,
3352
3744
  "isLValue": false,
3353
3745
  "isPure": false,
3354
3746
  "kind": "functionCall",
3355
3747
  "lValueRequested": false,
3356
3748
  "nameLocations": [
3357
- "6858:9:40",
3358
- "6886:8:40",
3359
- "6912:6:40",
3360
- "6934:8:40"
3749
+ "8019:9:40",
3750
+ "8047:8:40",
3751
+ "8073:6:40",
3752
+ "8095:8:40"
3361
3753
  ],
3362
3754
  "names": [
3363
3755
  "msgSender",
@@ -3366,7 +3758,7 @@
3366
3758
  "callData"
3367
3759
  ],
3368
3760
  "nodeType": "FunctionCall",
3369
- "src": "6826:133:40",
3761
+ "src": "7987:133:40",
3370
3762
  "tryCall": false,
3371
3763
  "typeDescriptions": {
3372
3764
  "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
@@ -3374,11 +3766,11 @@
3374
3766
  }
3375
3767
  },
3376
3768
  "nodeType": "VariableDeclarationStatement",
3377
- "src": "6789:170:40"
3769
+ "src": "7950:170:40"
3378
3770
  },
3379
3771
  {
3380
3772
  "condition": {
3381
- "id": 23771,
3773
+ "id": 23803,
3382
3774
  "isConstant": false,
3383
3775
  "isLValue": false,
3384
3776
  "isPure": false,
@@ -3386,14 +3778,14 @@
3386
3778
  "nodeType": "UnaryOperation",
3387
3779
  "operator": "!",
3388
3780
  "prefix": true,
3389
- "src": "6969:8:40",
3781
+ "src": "8130:8:40",
3390
3782
  "subExpression": {
3391
- "id": 23770,
3783
+ "id": 23802,
3392
3784
  "name": "success",
3393
3785
  "nodeType": "Identifier",
3394
3786
  "overloadedDeclarations": [],
3395
- "referencedDeclaration": 23760,
3396
- "src": "6970:7:40",
3787
+ "referencedDeclaration": 23792,
3788
+ "src": "8131:7:40",
3397
3789
  "typeDescriptions": {
3398
3790
  "typeIdentifier": "t_bool",
3399
3791
  "typeString": "bool"
@@ -3404,19 +3796,19 @@
3404
3796
  "typeString": "bool"
3405
3797
  }
3406
3798
  },
3407
- "id": 23776,
3799
+ "id": 23808,
3408
3800
  "nodeType": "IfStatement",
3409
- "src": "6965:36:40",
3801
+ "src": "8126:36:40",
3410
3802
  "trueBody": {
3411
3803
  "expression": {
3412
3804
  "arguments": [
3413
3805
  {
3414
- "id": 23773,
3806
+ "id": 23805,
3415
3807
  "name": "_data",
3416
3808
  "nodeType": "Identifier",
3417
3809
  "overloadedDeclarations": [],
3418
- "referencedDeclaration": 23762,
3419
- "src": "6995:5:40",
3810
+ "referencedDeclaration": 23794,
3811
+ "src": "8156:5:40",
3420
3812
  "typeDescriptions": {
3421
3813
  "typeIdentifier": "t_bytes_memory_ptr",
3422
3814
  "typeString": "bytes memory"
@@ -3430,18 +3822,18 @@
3430
3822
  "typeString": "bytes memory"
3431
3823
  }
3432
3824
  ],
3433
- "id": 23772,
3825
+ "id": 23804,
3434
3826
  "name": "revertWithBytes",
3435
3827
  "nodeType": "Identifier",
3436
3828
  "overloadedDeclarations": [],
3437
- "referencedDeclaration": 24356,
3438
- "src": "6979:15:40",
3829
+ "referencedDeclaration": 24388,
3830
+ "src": "8140:15:40",
3439
3831
  "typeDescriptions": {
3440
3832
  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$",
3441
3833
  "typeString": "function (bytes memory) pure"
3442
3834
  }
3443
3835
  },
3444
- "id": 23774,
3836
+ "id": 23806,
3445
3837
  "isConstant": false,
3446
3838
  "isLValue": false,
3447
3839
  "isPure": false,
@@ -3450,62 +3842,62 @@
3450
3842
  "nameLocations": [],
3451
3843
  "names": [],
3452
3844
  "nodeType": "FunctionCall",
3453
- "src": "6979:22:40",
3845
+ "src": "8140:22:40",
3454
3846
  "tryCall": false,
3455
3847
  "typeDescriptions": {
3456
3848
  "typeIdentifier": "t_tuple$__$",
3457
3849
  "typeString": "tuple()"
3458
3850
  }
3459
3851
  },
3460
- "id": 23775,
3852
+ "id": 23807,
3461
3853
  "nodeType": "ExpressionStatement",
3462
- "src": "6979:22:40"
3854
+ "src": "8140:22:40"
3463
3855
  }
3464
3856
  },
3465
3857
  {
3466
3858
  "expression": {
3467
- "id": 23777,
3859
+ "id": 23809,
3468
3860
  "name": "_data",
3469
3861
  "nodeType": "Identifier",
3470
3862
  "overloadedDeclarations": [],
3471
- "referencedDeclaration": 23762,
3472
- "src": "7014:5:40",
3863
+ "referencedDeclaration": 23794,
3864
+ "src": "8175:5:40",
3473
3865
  "typeDescriptions": {
3474
3866
  "typeIdentifier": "t_bytes_memory_ptr",
3475
3867
  "typeString": "bytes memory"
3476
3868
  }
3477
3869
  },
3478
- "functionReturnParameters": 23758,
3479
- "id": 23778,
3870
+ "functionReturnParameters": 23790,
3871
+ "id": 23810,
3480
3872
  "nodeType": "Return",
3481
- "src": "7007:12:40"
3873
+ "src": "8168:12:40"
3482
3874
  }
3483
3875
  ]
3484
3876
  },
3485
3877
  "documentation": {
3486
- "id": 23746,
3878
+ "id": 23778,
3487
3879
  "nodeType": "StructuredDocumentation",
3488
- "src": "6150:456:40",
3880
+ "src": "7311:456:40",
3489
3881
  "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
3882
  },
3491
3883
  "implemented": true,
3492
3884
  "kind": "function",
3493
3885
  "modifiers": [],
3494
3886
  "name": "delegatecallWithContextOrRevert",
3495
- "nameLocation": "6618:31:40",
3887
+ "nameLocation": "7779:31:40",
3496
3888
  "parameters": {
3497
- "id": 23755,
3889
+ "id": 23787,
3498
3890
  "nodeType": "ParameterList",
3499
3891
  "parameters": [
3500
3892
  {
3501
3893
  "constant": false,
3502
- "id": 23748,
3894
+ "id": 23780,
3503
3895
  "mutability": "mutable",
3504
3896
  "name": "msgSender",
3505
- "nameLocation": "6663:9:40",
3897
+ "nameLocation": "7824:9:40",
3506
3898
  "nodeType": "VariableDeclaration",
3507
- "scope": 23780,
3508
- "src": "6655:17:40",
3899
+ "scope": 23812,
3900
+ "src": "7816:17:40",
3509
3901
  "stateVariable": false,
3510
3902
  "storageLocation": "default",
3511
3903
  "typeDescriptions": {
@@ -3513,10 +3905,10 @@
3513
3905
  "typeString": "address"
3514
3906
  },
3515
3907
  "typeName": {
3516
- "id": 23747,
3908
+ "id": 23779,
3517
3909
  "name": "address",
3518
3910
  "nodeType": "ElementaryTypeName",
3519
- "src": "6655:7:40",
3911
+ "src": "7816:7:40",
3520
3912
  "stateMutability": "nonpayable",
3521
3913
  "typeDescriptions": {
3522
3914
  "typeIdentifier": "t_address",
@@ -3527,13 +3919,13 @@
3527
3919
  },
3528
3920
  {
3529
3921
  "constant": false,
3530
- "id": 23750,
3922
+ "id": 23782,
3531
3923
  "mutability": "mutable",
3532
3924
  "name": "msgValue",
3533
- "nameLocation": "6686:8:40",
3925
+ "nameLocation": "7847:8:40",
3534
3926
  "nodeType": "VariableDeclaration",
3535
- "scope": 23780,
3536
- "src": "6678:16:40",
3927
+ "scope": 23812,
3928
+ "src": "7839:16:40",
3537
3929
  "stateVariable": false,
3538
3930
  "storageLocation": "default",
3539
3931
  "typeDescriptions": {
@@ -3541,10 +3933,10 @@
3541
3933
  "typeString": "uint256"
3542
3934
  },
3543
3935
  "typeName": {
3544
- "id": 23749,
3936
+ "id": 23781,
3545
3937
  "name": "uint256",
3546
3938
  "nodeType": "ElementaryTypeName",
3547
- "src": "6678:7:40",
3939
+ "src": "7839:7:40",
3548
3940
  "typeDescriptions": {
3549
3941
  "typeIdentifier": "t_uint256",
3550
3942
  "typeString": "uint256"
@@ -3554,13 +3946,13 @@
3554
3946
  },
3555
3947
  {
3556
3948
  "constant": false,
3557
- "id": 23752,
3949
+ "id": 23784,
3558
3950
  "mutability": "mutable",
3559
3951
  "name": "target",
3560
- "nameLocation": "6708:6:40",
3952
+ "nameLocation": "7869:6:40",
3561
3953
  "nodeType": "VariableDeclaration",
3562
- "scope": 23780,
3563
- "src": "6700:14:40",
3954
+ "scope": 23812,
3955
+ "src": "7861:14:40",
3564
3956
  "stateVariable": false,
3565
3957
  "storageLocation": "default",
3566
3958
  "typeDescriptions": {
@@ -3568,10 +3960,10 @@
3568
3960
  "typeString": "address"
3569
3961
  },
3570
3962
  "typeName": {
3571
- "id": 23751,
3963
+ "id": 23783,
3572
3964
  "name": "address",
3573
3965
  "nodeType": "ElementaryTypeName",
3574
- "src": "6700:7:40",
3966
+ "src": "7861:7:40",
3575
3967
  "stateMutability": "nonpayable",
3576
3968
  "typeDescriptions": {
3577
3969
  "typeIdentifier": "t_address",
@@ -3582,13 +3974,13 @@
3582
3974
  },
3583
3975
  {
3584
3976
  "constant": false,
3585
- "id": 23754,
3977
+ "id": 23786,
3586
3978
  "mutability": "mutable",
3587
3979
  "name": "callData",
3588
- "nameLocation": "6733:8:40",
3980
+ "nameLocation": "7894:8:40",
3589
3981
  "nodeType": "VariableDeclaration",
3590
- "scope": 23780,
3591
- "src": "6720:21:40",
3982
+ "scope": 23812,
3983
+ "src": "7881:21:40",
3592
3984
  "stateVariable": false,
3593
3985
  "storageLocation": "memory",
3594
3986
  "typeDescriptions": {
@@ -3596,10 +3988,10 @@
3596
3988
  "typeString": "bytes"
3597
3989
  },
3598
3990
  "typeName": {
3599
- "id": 23753,
3991
+ "id": 23785,
3600
3992
  "name": "bytes",
3601
3993
  "nodeType": "ElementaryTypeName",
3602
- "src": "6720:5:40",
3994
+ "src": "7881:5:40",
3603
3995
  "typeDescriptions": {
3604
3996
  "typeIdentifier": "t_bytes_storage_ptr",
3605
3997
  "typeString": "bytes"
@@ -3608,21 +4000,21 @@
3608
4000
  "visibility": "internal"
3609
4001
  }
3610
4002
  ],
3611
- "src": "6649:96:40"
4003
+ "src": "7810:96:40"
3612
4004
  },
3613
4005
  "returnParameters": {
3614
- "id": 23758,
4006
+ "id": 23790,
3615
4007
  "nodeType": "ParameterList",
3616
4008
  "parameters": [
3617
4009
  {
3618
4010
  "constant": false,
3619
- "id": 23757,
4011
+ "id": 23789,
3620
4012
  "mutability": "mutable",
3621
4013
  "name": "data",
3622
- "nameLocation": "6777:4:40",
4014
+ "nameLocation": "7938:4:40",
3623
4015
  "nodeType": "VariableDeclaration",
3624
- "scope": 23780,
3625
- "src": "6764:17:40",
4016
+ "scope": 23812,
4017
+ "src": "7925:17:40",
3626
4018
  "stateVariable": false,
3627
4019
  "storageLocation": "memory",
3628
4020
  "typeDescriptions": {
@@ -3630,10 +4022,10 @@
3630
4022
  "typeString": "bytes"
3631
4023
  },
3632
4024
  "typeName": {
3633
- "id": 23756,
4025
+ "id": 23788,
3634
4026
  "name": "bytes",
3635
4027
  "nodeType": "ElementaryTypeName",
3636
- "src": "6764:5:40",
4028
+ "src": "7925:5:40",
3637
4029
  "typeDescriptions": {
3638
4030
  "typeIdentifier": "t_bytes_storage_ptr",
3639
4031
  "typeString": "bytes"
@@ -3642,9 +4034,9 @@
3642
4034
  "visibility": "internal"
3643
4035
  }
3644
4036
  ],
3645
- "src": "6763:19:40"
4037
+ "src": "7924:19:40"
3646
4038
  },
3647
- "scope": 23781,
4039
+ "scope": 23813,
3648
4040
  "stateMutability": "nonpayable",
3649
4041
  "virtual": false,
3650
4042
  "visibility": "internal"
@@ -3652,22 +4044,22 @@
3652
4044
  ],
3653
4045
  "abstract": false,
3654
4046
  "baseContracts": [],
3655
- "canonicalName": "WorldContextProvider",
4047
+ "canonicalName": "WorldContextProviderLib",
3656
4048
  "contractDependencies": [],
3657
4049
  "contractKind": "library",
3658
4050
  "documentation": {
3659
- "id": 23628,
4051
+ "id": 23660,
3660
4052
  "nodeType": "StructuredDocumentation",
3661
- "src": "2777:329:40",
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."
4053
+ "src": "3932:332:40",
4054
+ "text": " @title WorldContextProviderLib - 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."
3663
4055
  },
3664
4056
  "fullyImplemented": true,
3665
4057
  "linearizedBaseContracts": [
3666
- 23781
4058
+ 23813
3667
4059
  ],
3668
- "name": "WorldContextProvider",
3669
- "nameLocation": "3115:20:40",
3670
- "scope": 23782,
4060
+ "name": "WorldContextProviderLib",
4061
+ "nameLocation": "4273:23:40",
4062
+ "scope": 23814,
3671
4063
  "usedErrors": [],
3672
4064
  "usedEvents": []
3673
4065
  }