{"abi":[{"type":"function","name":"_msgSender","inputs":[],"outputs":[{"name":"sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_msgValue","inputs":[],"outputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"_world","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"_msgSender()":"119df25f","_msgValue()":"45ec9354","_world()":"e1af802c","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":{\"author\":\"MUD (https://mud.dev) by Lattice (https://lattice.xyz)\",\"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\":{\"node_modules/@latticexyz/world/src/WorldContext.sol\":\"WorldContextConsumer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol\":{\"keccak256\":\"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44\",\"dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL\"]},\"node_modules/@latticexyz/store/src/Bytes.sol\":{\"keccak256\":\"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35\",\"dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6\"]},\"node_modules/@latticexyz/store/src/EncodedLengths.sol\":{\"keccak256\":\"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09\",\"dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK\"]},\"node_modules/@latticexyz/store/src/FieldLayout.sol\":{\"keccak256\":\"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7\",\"dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT\"]},\"node_modules/@latticexyz/store/src/Hook.sol\":{\"keccak256\":\"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3\",\"dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky\"]},\"node_modules/@latticexyz/store/src/IERC165.sol\":{\"keccak256\":\"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2\",\"dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg\"]},\"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol\":{\"keccak256\":\"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba\",\"dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1\"]},\"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol\":{\"keccak256\":\"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817\",\"dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8\"]},\"node_modules/@latticexyz/store/src/ISchemaErrors.sol\":{\"keccak256\":\"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d\",\"dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY\"]},\"node_modules/@latticexyz/store/src/ISliceErrors.sol\":{\"keccak256\":\"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883\",\"dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37\"]},\"node_modules/@latticexyz/store/src/IStore.sol\":{\"keccak256\":\"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc\",\"dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL\"]},\"node_modules/@latticexyz/store/src/IStoreErrors.sol\":{\"keccak256\":\"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6\",\"dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4\"]},\"node_modules/@latticexyz/store/src/IStoreEvents.sol\":{\"keccak256\":\"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08\",\"dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY\"]},\"node_modules/@latticexyz/store/src/IStoreHook.sol\":{\"keccak256\":\"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562\",\"dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p\"]},\"node_modules/@latticexyz/store/src/IStoreKernel.sol\":{\"keccak256\":\"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0\",\"dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75\"]},\"node_modules/@latticexyz/store/src/IStoreRead.sol\":{\"keccak256\":\"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db\",\"dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p\"]},\"node_modules/@latticexyz/store/src/IStoreRegistration.sol\":{\"keccak256\":\"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a\",\"dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS\"]},\"node_modules/@latticexyz/store/src/IStoreWrite.sol\":{\"keccak256\":\"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890\",\"dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ\"]},\"node_modules/@latticexyz/store/src/Memory.sol\":{\"keccak256\":\"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392\",\"dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A\"]},\"node_modules/@latticexyz/store/src/ResourceId.sol\":{\"keccak256\":\"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0\",\"dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ\"]},\"node_modules/@latticexyz/store/src/Schema.sol\":{\"keccak256\":\"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3\",\"dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7\"]},\"node_modules/@latticexyz/store/src/Slice.sol\":{\"keccak256\":\"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4\",\"dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7\"]},\"node_modules/@latticexyz/store/src/Storage.sol\":{\"keccak256\":\"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee\",\"dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi\"]},\"node_modules/@latticexyz/store/src/StoreCore.sol\":{\"keccak256\":\"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2\",\"dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc\"]},\"node_modules/@latticexyz/store/src/StoreSwitch.sol\":{\"keccak256\":\"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91\",\"dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP\"]},\"node_modules/@latticexyz/store/src/codegen/index.sol\":{\"keccak256\":\"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4\",\"dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol\":{\"keccak256\":\"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53\",\"dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG\"]},\"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol\":{\"keccak256\":\"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905\",\"dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5\"]},\"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol\":{\"keccak256\":\"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6\",\"dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra\"]},\"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol\":{\"keccak256\":\"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc\",\"dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2\"]},\"node_modules/@latticexyz/store/src/constants.sol\":{\"keccak256\":\"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168\",\"dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu\"]},\"node_modules/@latticexyz/store/src/rightMask.sol\":{\"keccak256\":\"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754\",\"dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa\"]},\"node_modules/@latticexyz/store/src/storeHookTypes.sol\":{\"keccak256\":\"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3\",\"dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2\"]},\"node_modules/@latticexyz/store/src/storeResourceTypes.sol\":{\"keccak256\":\"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586\",\"dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2\"]},\"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol\":{\"keccak256\":\"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e\",\"dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui\"]},\"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol\":{\"keccak256\":\"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea\",\"dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo\"]},\"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol\":{\"keccak256\":\"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3\",\"dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz\"]},\"node_modules/@latticexyz/store/src/version.sol\":{\"keccak256\":\"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a\",\"dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ\"]},\"node_modules/@latticexyz/world/src/IERC165.sol\":{\"keccak256\":\"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7\",\"dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr\"]},\"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol\":{\"keccak256\":\"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255\",\"dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x\"]},\"node_modules/@latticexyz/world/src/WorldContext.sol\":{\"keccak256\":\"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e\",\"dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT\"]},\"node_modules/@latticexyz/world/src/revertWithBytes.sol\":{\"keccak256\":\"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359\",\"dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"_msgSender","outputs":[{"internalType":"address","name":"sender","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"_msgValue","outputs":[{"internalType":"uint256","name":"value","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_world","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"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."}}},"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)"}},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/@latticexyz/world/src/WorldContext.sol":"WorldContextConsumer"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/@latticexyz/schema-type/src/solidity/SchemaType.sol":{"keccak256":"0x650927696f7518fa216f2d6001835e9fdb419518034c781e86d2a2d33f4ecd2a","urls":["bzz-raw://72e91ac32ed00d36bd22fefeaf4ce1e9420143ddab7080eeb720c668a117bf44","dweb:/ipfs/QmdVqn18WZvx5p84MDJPsB5tfVoXDR86wzm4sLx6WrGYYL"],"license":"MIT"},"node_modules/@latticexyz/store/src/Bytes.sol":{"keccak256":"0x7dec900f9c9e7dff59430fa6f520e76c56338c3e829201aea140d49342e4fef8","urls":["bzz-raw://e55c1dfcda94dcc64b8577949b2e92a9d3fc44f5fba1ae77ceacccfdc8e22e35","dweb:/ipfs/QmS7uRJbEQYkPuZ5Dz5aSNjaaxj9PA8RtxUeUGN2W3jZx6"],"license":"MIT"},"node_modules/@latticexyz/store/src/EncodedLengths.sol":{"keccak256":"0xebc0a6efd611e02b15c05a382382b597fe059eba7f2a9e90da81eeb2f7666774","urls":["bzz-raw://00b2cac12599935e25ea0697e99fc9e6d5af6c1c982761996c16707d9cd6ca09","dweb:/ipfs/QmXccFminkrFtDpNfx6X1pHvW7Tn1nA5XcGu9T17pJyZyK"],"license":"MIT"},"node_modules/@latticexyz/store/src/FieldLayout.sol":{"keccak256":"0x15f698b7eabc062a00ff7a2e02db0ace2dd51f8bd2bc51a45dc0afa88f2ee658","urls":["bzz-raw://f774202c98ad394b3b62be93292512c633dec63bc931c190ed984656c2d54ec7","dweb:/ipfs/Qmd2D9mvP8S88ad2Q8WU54saNVr3Pwc5stPqEKHwcpo8AT"],"license":"MIT"},"node_modules/@latticexyz/store/src/Hook.sol":{"keccak256":"0xd016a2e1260f5a81ff9a8dfac58d7947e114414df8cce7302a2629908ea5f18e","urls":["bzz-raw://0c558a6f3a5f540c0190fa6d642a094a185c5db1acfc2437c7dbde0340f00ac3","dweb:/ipfs/QmViAHvR7U7HNfBiBZEMFiy1TTSHDFNiDzBfQSeLBShCky"],"license":"MIT"},"node_modules/@latticexyz/store/src/IERC165.sol":{"keccak256":"0x0efbf9afc716c585621482221f75e5bd60bcf0e813c9f7800d7c0309dcc3c927","urls":["bzz-raw://31b6aeb5446a0a0d5bd71be15a68c5bde94b08c961369203b83c8abe36f401d2","dweb:/ipfs/QmXhComne4es9ZMKaGNqHCdJZrFoFssxMYgLaqvCXPL1Mg"],"license":"MIT"},"node_modules/@latticexyz/store/src/IEncodedLengthsErrors.sol":{"keccak256":"0x06bb49164f44acc8d51df7b75ecf2f7aeb9281f7a3b357cae7d8d58bd1700dfa","urls":["bzz-raw://719027f4cc60fea30ce01cd4f672462f41fac750ae802e91a1a6d37c929e11ba","dweb:/ipfs/QmWi5DM2jT5V5SGP1afRmFyRgFvuZiGDX2PWHwP19HssF1"],"license":"MIT"},"node_modules/@latticexyz/store/src/IFieldLayoutErrors.sol":{"keccak256":"0xaef70c46e412bded1024ac82c957cea81c1d1ab11878a95635531e2ac9673a53","urls":["bzz-raw://cda2c7dc02ee8f0163b1c8d0f3e1e05d48b2a009e5c7365d2418f17bc3455817","dweb:/ipfs/QmXHDZuCPTxjHaeiEaJhA81koX2NJ3Gj1zt5WVWaz77FL8"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISchemaErrors.sol":{"keccak256":"0x0ac3de36c9d0058a17fcd7f1a905132215fd16ea3ed3b5109de1de04ddd7c441","urls":["bzz-raw://f83fa2546009cfd16b3b3969dcec1d67c9d818d910177b885ba263b6a948c65d","dweb:/ipfs/QmehywHdvFYBL9BTtoPsVVwJXsEA4Xjk8aPWoHw1R45KeY"],"license":"MIT"},"node_modules/@latticexyz/store/src/ISliceErrors.sol":{"keccak256":"0x72684b7dfc1b44537401ccf10d6120186d02323266fcc762bc81859985eded4c","urls":["bzz-raw://e8d037b6937969ae54018ddf647eeaf5eb69a2b0bf9edf9456d3d270316b2883","dweb:/ipfs/QmfYJeyAmzRqpn68FteiM97p5t17iBw62FCET4bK5g4w37"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStore.sol":{"keccak256":"0x42515d1410333a3573f78a460576271ef62c16edad5cf771ef6287b83ca1c706","urls":["bzz-raw://6a58d03c4cf420df57d2b2e2e7932daad877e46e89561b46e1fa9f593a701bdc","dweb:/ipfs/QmeFmKS7J1WqqBAgXkyxxx2fGA8JzuGszUmVsV2T6DYtsL"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreErrors.sol":{"keccak256":"0x37e4d2f015dd4005ff9b3f711257c891027804bc268db1791984af4989951912","urls":["bzz-raw://a4a566ea96b69211f503707f69a9f9012d5873a3fd57b3f221549f46a7518df6","dweb:/ipfs/QmVgcE3JufJr3iyeV6xqkvS4YtDcy6Eqyram2yzWUhwoB4"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreEvents.sol":{"keccak256":"0x8606e9de37943c74beabb9ac9acd2132f951bed1ef79f2f4f3de83ed1f271f6a","urls":["bzz-raw://d13adeee7ae9e687bf1cd12a8c36223179685fc828a7c468ee9311c879401b08","dweb:/ipfs/QmQeb2ArSoQpE6ujBbDj9LY3xqpVCPiz3bh9SLT6siE8RY"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreHook.sol":{"keccak256":"0x6574a30a2bbd8a0de21b2504c55effb8802fdeff62296af82a9380bd753adcc4","urls":["bzz-raw://85a859c533f51b584a9a2e8a64d61b6cf6f69bfcff1b926ad787518b1cae9562","dweb:/ipfs/QmVyjmyJ69ZeqaXHg91JtGLVahRfZ7KtWaessLWZ6rYk9p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreKernel.sol":{"keccak256":"0x37a23dcbabc5937a717f2fda636b6a97963ed4b5a96870a62dfb199a8b692f89","urls":["bzz-raw://ac9741ea6daf21f39699be11afd919ae3ec07df24d948aaaa6549456fefd7fc0","dweb:/ipfs/QmeiPQkZitM4Pc3i6L87thU71Fs1JVWAgMqXnSK8VrCq75"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRead.sol":{"keccak256":"0xdcf28b3293d4d6c1fe2808a8918c1b2122e4e0e49f2793c79ebd2b9ae210ff7b","urls":["bzz-raw://bb3d9cc80f549ed0c5b768aea69fb1b3c364bd4f85d193a3040c411b594d94db","dweb:/ipfs/QmYYdY5CjPHiW5ucXihTva1eHsCPNqBsvL6zYYafH3ap4p"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreRegistration.sol":{"keccak256":"0x9e91a73f93cc9ebc00c265c83177f6a3f8a156749a9261202e2845e12aeaa96b","urls":["bzz-raw://a39280d87d22dd0a959d8f55925cb092dba1fee2f11d3dd8e3ffabed45a9ab6a","dweb:/ipfs/QmRMBFLJtT2KN43Xz9P3vUNWxXrP8rLTNBFw2P6Z7EGeaS"],"license":"MIT"},"node_modules/@latticexyz/store/src/IStoreWrite.sol":{"keccak256":"0x120fd448da5806e09ecb5327ad4dba64df01d2ee7232de0979133627e87e24ba","urls":["bzz-raw://7a3cb151b2ddee217f330d61813b2dcd997de94940c903719f6d066a21467890","dweb:/ipfs/Qmbes1RRY6KdtsMohp8834xXyipeQK9GJ41NfgXK1d1QAZ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Memory.sol":{"keccak256":"0xef6e7000b181c2991aeacbf99a9d886f8c4df88878b857713f851185b63a7811","urls":["bzz-raw://b079b4773d140ab2c01bdb04facfa56a78f753aea7122fa445b2bfa133411392","dweb:/ipfs/QmWYWKFpwtsPeGdCSxcANgxXUbwAuMMgR7iMVPDSCZxz2A"],"license":"MIT"},"node_modules/@latticexyz/store/src/ResourceId.sol":{"keccak256":"0x889423054511cf8a83f5dfd65a0f984dc514aba798ef3db139b59d395b2327e2","urls":["bzz-raw://40b9495d455c87db8b063e291ca3973dc3ba1163f09c5d7446241a9e1cb69ed0","dweb:/ipfs/Qmek1JKVjPUpoXnKwu66HfPS9rHstKtWTuBmG8YFxbPEWQ"],"license":"MIT"},"node_modules/@latticexyz/store/src/Schema.sol":{"keccak256":"0x0d2a08030d21292ecbcc850d9111f3817d03f17cd5e02186894848a9152d79d7","urls":["bzz-raw://3f30024c1613fb587aaba4c1dcb8e4e46ed765a2cebd5b63fbebd327d1bf13d3","dweb:/ipfs/QmZzqSnPMYKDYwbFNvUFrvuazMUyQHzQ59w3A9x6juHAm7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Slice.sol":{"keccak256":"0xae6c03881fdfa56cba1879d9c9c6b52c2829e6a278a200176678d8da05a89345","urls":["bzz-raw://3cad7dc4944c0518de2e7f99697485d365ae37aa6cad6967996377c2dd951fe4","dweb:/ipfs/QmW3grFwr8BcgJmLfjLbj3FthnD7NRUBFMFiahbXztHPr7"],"license":"MIT"},"node_modules/@latticexyz/store/src/Storage.sol":{"keccak256":"0x7e735a4c7fa8b8a5fe2371d90801e3287ddb78efed69b31e1a76f0b7b153c4c3","urls":["bzz-raw://9e6db36bd52144b6feeecd91a58fc311127a3892fc96c4171db5b570fe9876ee","dweb:/ipfs/QmS6LqnTZvpMc4eiz5JowBoNnh3RYemG6JHjqtYucT1rQi"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreCore.sol":{"keccak256":"0x9513dc38e5baadde0ba9b08320a324043b0e88a10702be5c3507da8c3d45e861","urls":["bzz-raw://99c80c65a394763668e4aed69220fec6bb3ed847fb277ddd1ff1d4bfdf452da2","dweb:/ipfs/QmRT2BATKtrYmixWMuWo9Cz8g8oscfLNSmvjxTyiTNA1pc"],"license":"MIT"},"node_modules/@latticexyz/store/src/StoreSwitch.sol":{"keccak256":"0x7edf7c1641408f3a580eb28bda58054583cb846f875608612671c6d40712ba40","urls":["bzz-raw://4146adef610d1daab085a81aa9f2d4fd8c4e5f459b9ef184f3ef23465573cf91","dweb:/ipfs/QmQqZMsbkzSNG6VfYzQLdRCBCsNohBSVQmWoTP6QvKmKUP"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/index.sol":{"keccak256":"0x094a6f1e2910b345b6b254e0fc2c8882b3190c673f7ee19742e857057a4d3f85","urls":["bzz-raw://18908e2e7e878635abea72ef99851fddd204371e6b641f010e831ebfa0b1bfd4","dweb:/ipfs/QmSNAxXqxTrzPkZ4rSAQgBnuer1yLPq74hoqnzrZV3WGsb"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Hooks.sol":{"keccak256":"0xfdea5b4cf666720c1c0d81a8acdede68e6220aee45d8a9f3c9834b4edc5da394","urls":["bzz-raw://b3a394dfe123cfb7200f65d379fb0cb3d2c84475b382faf6ee11bf9c45a63b53","dweb:/ipfs/QmRMPHFBbCKtqKBVV9gvd2jhnfsyUKmCBEQkgviMoxi1UG"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/ResourceIds.sol":{"keccak256":"0xf192bceab34508cee21dd7c33e4d776f79c4a7ca55ee8905c6c694850ebfdf64","urls":["bzz-raw://c95113f76f6de671cb44710754e0942934182b544660a4330fc90a505e198905","dweb:/ipfs/QmXma5ZxfK8Y9TbvB7QM9hdhfc1ixiMcLpo9BQxnVthHB5"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/StoreHooks.sol":{"keccak256":"0xa825218614acc19a4100357dd7ee410b67b994fe7aaa68650d5d0d4202d4ca8c","urls":["bzz-raw://09b0cbb598fe2b75bbcd269b47d686a66fcc89c0c40d9a09807eba7688b81fc6","dweb:/ipfs/QmYk6XQwSLhRumujTCsqxdvugKuP8oLjjB926pMHR445ra"],"license":"MIT"},"node_modules/@latticexyz/store/src/codegen/tables/Tables.sol":{"keccak256":"0x918b977e7f7f3e947d6d5aa189c54c9c7e7c106d0a0d53734ee959ad454abe09","urls":["bzz-raw://3a3de63c04c838bf80c1903cf7464d201d0ece0f86a7aaca35462b730e9338fc","dweb:/ipfs/QmSUkLZ88J7tSwdmR3viBJHU8QVgN2Gji6W8wYLJEDNkc2"],"license":"MIT"},"node_modules/@latticexyz/store/src/constants.sol":{"keccak256":"0x67e0d59237bd37424827ecde1ecdbe71f65376af517b0623cd8f8d5451bca7a6","urls":["bzz-raw://09c5ec7fe73e06140957d44a3d9938587711c783ccbf08ff017638c9279a3168","dweb:/ipfs/QmfS9ZRqHXmBJ1h5B4x4gbU6d18DtMgKZSkxhQgNVRxueu"],"license":"MIT"},"node_modules/@latticexyz/store/src/rightMask.sol":{"keccak256":"0x28887aab8ad5ca598927e59d702999ca6e3b3128f1cddd2b995a381c8d04b275","urls":["bzz-raw://7710847f4689b7f5b81436c7d52ae4395f244a2eebf8d398b2edd43accb06754","dweb:/ipfs/QmTD2wYqryXTynHAn5Vf9wtjUUSGeCJWENZTnWtBAK38pa"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeHookTypes.sol":{"keccak256":"0x4f29001e53690ce74fe405a6d0376a564c9c743d1631d36fab04331865e4d572","urls":["bzz-raw://138c80abd63225a3eeb01ebfa1f9288e188a7ee5b2266b275fb4ed31b5aa30e3","dweb:/ipfs/QmdEx9uHgCCbTcetGwFH5a66Ft7ajmrMDXvP1fW7WjnnE2"],"license":"MIT"},"node_modules/@latticexyz/store/src/storeResourceTypes.sol":{"keccak256":"0x1c4cb6b3ecf76f614479ab304d7de3ade0e99c7ccfd07717b57c92f699a27261","urls":["bzz-raw://2c9b0e0c9b3b5610d6fd65a8ffd7c54df390a34ccc70d58f4a055c49ad1ea586","dweb:/ipfs/QmP6ffpnR7aRyvq9AiUkVNH6LbGfFP3NDq7E2n2PVcHhp2"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/DecodeSlice.sol":{"keccak256":"0x310523f7f3acca841e62fe50be8d8b042cad5b3c239cb1105d6623cf83e63152","urls":["bzz-raw://1cc40ca233acf6502bc65677b381c05331dd7323953e54b5df969051e47f851e","dweb:/ipfs/QmTxy9mhodT8drezB5K1kPR78AMaARomoJqDyaWpLuCKui"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/EncodeArray.sol":{"keccak256":"0x259ee545fd9dfd4767f0b7fef31f52fd3c54c4a1c6657d6fbda4927800c937b3","urls":["bzz-raw://0a4e31efa9f476cd267af7c3e11fe0151252206a1f6407a80a4092444c2de8ea","dweb:/ipfs/QmRF4gWYw33mFTMh7nX8DJ1qzx3Ko6yMsnxubzYTRppdyo"],"license":"MIT"},"node_modules/@latticexyz/store/src/tightcoder/TightCoder.sol":{"keccak256":"0x0e74ff88ec94cb33f79d8afc1497c4fdccf02db40ab47f3701c7d02fc305d4d8","urls":["bzz-raw://36b7cd0c2a3f2dcdc83ab7ac5a93f123746ce29c0f1000f2b275ad2c647ff0f3","dweb:/ipfs/QmYdipHYUhHhS78wLdtmKZUK14FEwpto5mFy3rNeZssMLz"],"license":"MIT"},"node_modules/@latticexyz/store/src/version.sol":{"keccak256":"0x78c571906ee999ee7e56d4f7702b8a93c3a9e55e6b552aca115b5f6ac7f1c80a","urls":["bzz-raw://a9f141b2d556b2a2545e7db5606e8a038679a995a22aeaf1702cb3a60320b60a","dweb:/ipfs/QmY7x258Fhj3TT3RT4sNyyfiRphVYdZXhtAnSYpasJ4xVQ"],"license":"MIT"},"node_modules/@latticexyz/world/src/IERC165.sol":{"keccak256":"0xe3d9074a1be3247be67ff4dd2c9e41481650ddaa799285a249736bb85673e33d","urls":["bzz-raw://0b6743ee1e6d0c74927bf17fc1da0cad7575aa7634871b94190ffbdb4c28c2a7","dweb:/ipfs/Qma5bNsPJSBTesWxg3eAAMUBTDE7UjqWaHF7eMiGwP87jr"],"license":"MIT"},"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol":{"keccak256":"0xb39e9d8cff4162e255f6c460ef9f9f0ad5b804627f745d967b2f10d0dd509299","urls":["bzz-raw://18d957cd87febccc00d82b9454047f0f5236250c9245befc0f57978671675255","dweb:/ipfs/QmdZ1eXBd15vLpLVqTNJDAAaTzzucpRLD8GPJahLKT4J7x"],"license":"MIT"},"node_modules/@latticexyz/world/src/WorldContext.sol":{"keccak256":"0x50ca52bdd89a9f27d6b03ad00ef45c8c5a6884ea9d75e18f8fa53524ac2feed9","urls":["bzz-raw://55febdece37b291527094fb654919d4c8fe0b231792996a14c5e5cc76512b19e","dweb:/ipfs/QmZHFbDDNmdFHWc1uTSvDgMUUgb8NgBPb1cDUJYajswbHT"],"license":"MIT"},"node_modules/@latticexyz/world/src/revertWithBytes.sol":{"keccak256":"0xa1147f218a0152b153d4e8bada0f606bfed40ac1f184fd16a941c2d0033c53f5","urls":["bzz-raw://3f5e0f6d1b51a3a04d4bd84537b2ced373b32824898cf6fbfd13ae1cbdf06359","dweb:/ipfs/QmayYRmBZRUV9m4UnFxuC62VvHriXhkYXeH3HibZ3Gmxxf"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/@latticexyz/world/src/WorldContext.sol","id":48578,"exportedSymbols":{"CONTEXT_BYTES":[48322],"IERC165":[47584],"IWorldContextConsumer":[47684],"StoreSwitch":[14558],"WorldContextConsumer":[48382],"WorldContextConsumerLib":[48423],"WorldContextProviderLib":[48577],"revertWithBytes":[59137]},"nodeType":"SourceUnit","src":"32:8439:117","nodes":[{"id":48309,"nodeType":"PragmaDirective","src":"32:25:117","nodes":[],"literals":["solidity",">=","0.8",".24"]},{"id":48311,"nodeType":"ImportDirective","src":"59:68:117","nodes":[],"absolutePath":"node_modules/@latticexyz/store/src/StoreSwitch.sol","file":"@latticexyz/store/src/StoreSwitch.sol","nameLocation":"-1:-1:-1","scope":48578,"sourceUnit":14559,"symbolAliases":[{"foreign":{"id":48310,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"68:11:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48313,"nodeType":"ImportDirective","src":"128:56:117","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/revertWithBytes.sol","file":"./revertWithBytes.sol","nameLocation":"-1:-1:-1","scope":48578,"sourceUnit":59138,"symbolAliases":[{"foreign":{"id":48312,"name":"revertWithBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59137,"src":"137:15:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48315,"nodeType":"ImportDirective","src":"185:40:117","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":48578,"sourceUnit":47585,"symbolAliases":[{"foreign":{"id":48314,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47584,"src":"194:7:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48317,"nodeType":"ImportDirective","src":"226:68:117","nodes":[],"absolutePath":"node_modules/@latticexyz/world/src/IWorldContextConsumer.sol","file":"./IWorldContextConsumer.sol","nameLocation":"-1:-1:-1","scope":48578,"sourceUnit":47685,"symbolAliases":[{"foreign":{"id":48316,"name":"IWorldContextConsumer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47684,"src":"235:21:117","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48322,"nodeType":"VariableDeclaration","src":"371:40:117","nodes":[],"constant":true,"mutability":"constant","name":"CONTEXT_BYTES","nameLocation":"388:13:117","scope":48578,"stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48318,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"},"id":48321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3230","id":48319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"404:2:117","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":48320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"409:2:117","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"404:7:117","typeDescriptions":{"typeIdentifier":"t_rational_52_by_1","typeString":"int_const 52"}},"visibility":"internal"},{"id":48382,"nodeType":"ContractDefinition","src":"954:1577:117","nodes":[{"id":48336,"nodeType":"FunctionDefinition","src":"1262:113:117","nodes":[],"body":{"id":48335,"nodeType":"Block","src":"1321:54:117","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48331,"name":"WorldContextConsumerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"1334:23:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldContextConsumerLib_$48423_$","typeString":"type(library WorldContextConsumerLib)"}},"id":48332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1358:10:117","memberName":"_msgSender","nodeType":"MemberAccess","referencedDeclaration":48403,"src":"1334:34:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:36:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48330,"id":48334,"nodeType":"Return","src":"1327:43:117"}]},"baseFunctions":[47671],"documentation":{"id":48326,"nodeType":"StructuredDocumentation","src":"1022:237:117","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."},"functionSelector":"119df25f","implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"1271:10:117","parameters":{"id":48327,"nodeType":"ParameterList","parameters":[],"src":"1281:2:117"},"returnParameters":{"id":48330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48329,"mutability":"mutable","name":"sender","nameLocation":"1313:6:117","nodeType":"VariableDeclaration","scope":48336,"src":"1305:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48328,"name":"address","nodeType":"ElementaryTypeName","src":"1305:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1304:16:117"},"scope":48382,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":48347,"nodeType":"FunctionDefinition","src":"1616:110:117","nodes":[],"body":{"id":48346,"nodeType":"Block","src":"1673:53:117","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48342,"name":"WorldContextConsumerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"1686:23:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldContextConsumerLib_$48423_$","typeString":"type(library WorldContextConsumerLib)"}},"id":48343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1710:9:117","memberName":"_msgValue","nodeType":"MemberAccess","referencedDeclaration":48411,"src":"1686:33:117","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":48344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:35:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":48341,"id":48345,"nodeType":"Return","src":"1679:42:117"}]},"baseFunctions":[47677],"documentation":{"id":48337,"nodeType":"StructuredDocumentation","src":"1379:234:117","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."},"functionSelector":"45ec9354","implemented":true,"kind":"function","modifiers":[],"name":"_msgValue","nameLocation":"1625:9:117","parameters":{"id":48338,"nodeType":"ParameterList","parameters":[],"src":"1634:2:117"},"returnParameters":{"id":48341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48340,"mutability":"mutable","name":"value","nameLocation":"1666:5:117","nodeType":"VariableDeclaration","scope":48347,"src":"1658:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1658:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1657:15:117"},"scope":48382,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":48358,"nodeType":"FunctionDefinition","src":"1942:98:117","nodes":[],"body":{"id":48357,"nodeType":"Block","src":"1990:50:117","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48353,"name":"WorldContextConsumerLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48423,"src":"2003:23:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_WorldContextConsumerLib_$48423_$","typeString":"type(library WorldContextConsumerLib)"}},"id":48354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2027:6:117","memberName":"_world","nodeType":"MemberAccess","referencedDeclaration":48422,"src":"2003:30:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2003:32:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48352,"id":48356,"nodeType":"Return","src":"1996:39:117"}]},"baseFunctions":[47683],"documentation":{"id":48348,"nodeType":"StructuredDocumentation","src":"1730:209:117","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."},"functionSelector":"e1af802c","implemented":true,"kind":"function","modifiers":[],"name":"_world","nameLocation":"1951:6:117","parameters":{"id":48349,"nodeType":"ParameterList","parameters":[],"src":"1957:2:117"},"returnParameters":{"id":48352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48358,"src":"1981:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48350,"name":"address","nodeType":"ElementaryTypeName","src":"1981:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1980:9:117"},"scope":48382,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":48381,"nodeType":"FunctionDefinition","src":"2331:198:117","nodes":[],"body":{"id":48380,"nodeType":"Block","src":"2413:116:117","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":48371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48366,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48361,"src":"2426:11:117","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":48368,"name":"IWorldContextConsumer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47684,"src":"2446:21:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWorldContextConsumer_$47684_$","typeString":"type(contract IWorldContextConsumer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IWorldContextConsumer_$47684_$","typeString":"type(contract IWorldContextConsumer)"}],"id":48367,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2441:4:117","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2441:27:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IWorldContextConsumer_$47684","typeString":"type(contract IWorldContextConsumer)"}},"id":48370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2469:11:117","memberName":"interfaceId","nodeType":"MemberAccess","src":"2441:39:117","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2426:54:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":48377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48372,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48361,"src":"2484:11:117","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":48374,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47584,"src":"2504:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$47584_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$47584_$","typeString":"type(contract IERC165)"}],"id":48373,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2499:4:117","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:13:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$47584","typeString":"type(contract IERC165)"}},"id":48376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2513:11:117","memberName":"interfaceId","nodeType":"MemberAccess","src":"2499:25:117","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2484:40:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2426:98:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48365,"id":48379,"nodeType":"Return","src":"2419:105:117"}]},"baseFunctions":[47583],"documentation":{"id":48359,"nodeType":"StructuredDocumentation","src":"2044:284:117","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."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2340:17:117","parameters":{"id":48362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48361,"mutability":"mutable","name":"interfaceId","nameLocation":"2365:11:117","nodeType":"VariableDeclaration","scope":48381,"src":"2358:18:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":48360,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2358:6:117","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2357:20:117"},"returnParameters":{"id":48365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48381,"src":"2407:4:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48363,"name":"bool","nodeType":"ElementaryTypeName","src":"2407:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2406:6:117"},"scope":48382,"stateMutability":"pure","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":48324,"name":"IWorldContextConsumer","nameLocations":["996:21:117"],"nodeType":"IdentifierPath","referencedDeclaration":47684,"src":"996:21:117"},"id":48325,"nodeType":"InheritanceSpecifier","src":"996:21:117"}],"canonicalName":"WorldContextConsumer","contractDependencies":[],"contractKind":"contract","documentation":{"id":48323,"nodeType":"StructuredDocumentation","src":"414:539:117","text":" @title WorldContextConsumer - Extracting trusted context values from appended calldata.\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\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."},"fullyImplemented":true,"linearizedBaseContracts":[48382,47684,47584],"name":"WorldContextConsumer","nameLocation":"972:20:117","scope":48578,"usedErrors":[],"usedEvents":[]},{"id":48423,"nodeType":"ContractDefinition","src":"2716:1431:117","nodes":[{"id":48403,"nodeType":"FunctionDefinition","src":"2992:383:117","nodes":[],"body":{"id":48402,"nodeType":"Block","src":"3053:322:117","nodes":[],"statements":[{"AST":{"nativeSrc":"3068:252:117","nodeType":"YulBlock","src":"3068:252:117","statements":[{"nativeSrc":"3245:69:117","nodeType":"YulAssignment","src":"3245:69:117","value":{"arguments":[{"kind":"number","nativeSrc":"3259:4:117","nodeType":"YulLiteral","src":"3259:4:117","type":"","value":"0x60"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3282:12:117","nodeType":"YulIdentifier","src":"3282:12:117"},"nativeSrc":"3282:14:117","nodeType":"YulFunctionCall","src":"3282:14:117"},{"name":"CONTEXT_BYTES","nativeSrc":"3298:13:117","nodeType":"YulIdentifier","src":"3298:13:117"}],"functionName":{"name":"sub","nativeSrc":"3278:3:117","nodeType":"YulIdentifier","src":"3278:3:117"},"nativeSrc":"3278:34:117","nodeType":"YulFunctionCall","src":"3278:34:117"}],"functionName":{"name":"calldataload","nativeSrc":"3265:12:117","nodeType":"YulIdentifier","src":"3265:12:117"},"nativeSrc":"3265:48:117","nodeType":"YulFunctionCall","src":"3265:48:117"}],"functionName":{"name":"shr","nativeSrc":"3255:3:117","nodeType":"YulIdentifier","src":"3255:3:117"},"nativeSrc":"3255:59:117","nodeType":"YulFunctionCall","src":"3255:59:117"},"variableNames":[{"name":"sender","nativeSrc":"3245:6:117","nodeType":"YulIdentifier","src":"3245:6:117"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":48322,"isOffset":false,"isSlot":false,"src":"3298:13:117","valueSize":1},{"declaration":48387,"isOffset":false,"isSlot":false,"src":"3245:6:117","valueSize":1}],"id":48389,"nodeType":"InlineAssembly","src":"3059:261:117"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":48395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48390,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"3329:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":48393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3347:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":48392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3339:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48391,"name":"address","nodeType":"ElementaryTypeName","src":"3339:7:117","typeDescriptions":{}}},"id":48394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3339:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3329:20:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48401,"nodeType":"IfStatement","src":"3325:45:117","trueBody":{"expression":{"id":48399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48396,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48387,"src":"3351:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":48397,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3360:3:117","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3364:6:117","memberName":"sender","nodeType":"MemberAccess","src":"3360:10:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3351:19:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48400,"nodeType":"ExpressionStatement","src":"3351:19:117"}}]},"documentation":{"id":48384,"nodeType":"StructuredDocumentation","src":"2752:237:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"3001:10:117","parameters":{"id":48385,"nodeType":"ParameterList","parameters":[],"src":"3011:2:117"},"returnParameters":{"id":48388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48387,"mutability":"mutable","name":"sender","nameLocation":"3045:6:117","nodeType":"VariableDeclaration","scope":48403,"src":"3037:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48386,"name":"address","nodeType":"ElementaryTypeName","src":"3037:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3036:16:117"},"scope":48423,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48411,"nodeType":"FunctionDefinition","src":"3616:216:117","nodes":[],"body":{"id":48410,"nodeType":"Block","src":"3675:157:117","nodes":[],"statements":[{"AST":{"nativeSrc":"3690:138:117","nodeType":"YulBlock","src":"3690:138:117","statements":[{"nativeSrc":"3774:48:117","nodeType":"YulAssignment","src":"3774:48:117","value":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"3800:12:117","nodeType":"YulIdentifier","src":"3800:12:117"},"nativeSrc":"3800:14:117","nodeType":"YulFunctionCall","src":"3800:14:117"},{"kind":"number","nativeSrc":"3816:4:117","nodeType":"YulLiteral","src":"3816:4:117","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"3796:3:117","nodeType":"YulIdentifier","src":"3796:3:117"},"nativeSrc":"3796:25:117","nodeType":"YulFunctionCall","src":"3796:25:117"}],"functionName":{"name":"calldataload","nativeSrc":"3783:12:117","nodeType":"YulIdentifier","src":"3783:12:117"},"nativeSrc":"3783:39:117","nodeType":"YulFunctionCall","src":"3783:39:117"},"variableNames":[{"name":"value","nativeSrc":"3774:5:117","nodeType":"YulIdentifier","src":"3774:5:117"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":48407,"isOffset":false,"isSlot":false,"src":"3774:5:117","valueSize":1}],"id":48409,"nodeType":"InlineAssembly","src":"3681:147:117"}]},"documentation":{"id":48404,"nodeType":"StructuredDocumentation","src":"3379:234:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"_msgValue","nameLocation":"3625:9:117","parameters":{"id":48405,"nodeType":"ParameterList","parameters":[],"src":"3634:2:117"},"returnParameters":{"id":48408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48407,"mutability":"mutable","name":"value","nameLocation":"3668:5:117","nodeType":"VariableDeclaration","scope":48411,"src":"3660:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48406,"name":"uint256","nodeType":"ElementaryTypeName","src":"3660:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3659:15:117"},"scope":48423,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48422,"nodeType":"FunctionDefinition","src":"4048:97:117","nodes":[],"body":{"id":48421,"nodeType":"Block","src":"4098:47:117","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":48417,"name":"StoreSwitch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14558,"src":"4111:11:117","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StoreSwitch_$14558_$","typeString":"type(library StoreSwitch)"}},"id":48418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4123:15:117","memberName":"getStoreAddress","nodeType":"MemberAccess","referencedDeclaration":13302,"src":"4111:27:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":48419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4111:29:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48416,"id":48420,"nodeType":"Return","src":"4104:36:117"}]},"documentation":{"id":48412,"nodeType":"StructuredDocumentation","src":"3836:209:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"_world","nameLocation":"4057:6:117","parameters":{"id":48413,"nodeType":"ParameterList","parameters":[],"src":"4063:2:117"},"returnParameters":{"id":48416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48422,"src":"4089:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48414,"name":"address","nodeType":"ElementaryTypeName","src":"4089:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4088:9:117"},"scope":48423,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"WorldContextConsumerLib","contractDependencies":[],"contractKind":"library","documentation":{"id":48383,"nodeType":"StructuredDocumentation","src":"2533:182:117","text":" @title WorldContextConsumerLib\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\n @notice Helpers for working with data in the context of calling a World"},"fullyImplemented":true,"linearizedBaseContracts":[48423],"name":"WorldContextConsumerLib","nameLocation":"2724:23:117","scope":48578,"usedErrors":[],"usedEvents":[]},{"id":48577,"nodeType":"ContractDefinition","src":"4548:3922:117","nodes":[{"id":48444,"nodeType":"FunctionDefinition","src":"4897:201:117","nodes":[],"body":{"id":48443,"nodeType":"Block","src":"5033:65:117","nodes":[],"statements":[{"expression":{"arguments":[{"id":48438,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48427,"src":"5063:8:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48439,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48429,"src":"5073:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48440,"name":"msgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48431,"src":"5084:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":48436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5046:3:117","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":48437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5050:12:117","memberName":"encodePacked","nodeType":"MemberAccess","src":"5046:16:117","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":48441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5046:47:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48435,"id":48442,"nodeType":"Return","src":"5039:54:117"}]},"documentation":{"id":48425,"nodeType":"StructuredDocumentation","src":"4584:310:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"appendContext","nameLocation":"4906:13:117","parameters":{"id":48432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48427,"mutability":"mutable","name":"callData","nameLocation":"4938:8:117","nodeType":"VariableDeclaration","scope":48444,"src":"4925:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48426,"name":"bytes","nodeType":"ElementaryTypeName","src":"4925:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48429,"mutability":"mutable","name":"msgSender","nameLocation":"4960:9:117","nodeType":"VariableDeclaration","scope":48444,"src":"4952:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48428,"name":"address","nodeType":"ElementaryTypeName","src":"4952:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48431,"mutability":"mutable","name":"msgValue","nameLocation":"4983:8:117","nodeType":"VariableDeclaration","scope":48444,"src":"4975:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48430,"name":"uint256","nodeType":"ElementaryTypeName","src":"4975:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4919:76:117"},"returnParameters":{"id":48435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48444,"src":"5019:12:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48433,"name":"bytes","nodeType":"ElementaryTypeName","src":"5019:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5018:14:117"},"scope":48577,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48476,"nodeType":"FunctionDefinition","src":"5594:317:117","nodes":[],"body":{"id":48475,"nodeType":"Block","src":"5766:145:117","nodes":[],"statements":[{"expression":{"id":48473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48460,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48456,"src":"5773:7:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48461,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48458,"src":"5782:4:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":48462,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5772:15:117","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48468,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48453,"src":"5847:8:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48469,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48447,"src":"5868:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48470,"name":"msgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48449,"src":"5889:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48467,"name":"appendContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48444,"src":"5821:13:117","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,address,uint256) pure returns (bytes memory)"}},"id":48471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["5837:8:117","5857:9:117","5879:8:117"],"names":["callData","msgSender","msgValue"],"nodeType":"FunctionCall","src":"5821:79:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48463,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48451,"src":"5790:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5797:4:117","memberName":"call","nodeType":"MemberAccess","src":"5790:11:117","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"30","id":48465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5810:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"src":"5790:23:117","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5790:116:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"5772:134:117","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48474,"nodeType":"ExpressionStatement","src":"5772:134:117"}]},"documentation":{"id":48445,"nodeType":"StructuredDocumentation","src":"5102:489:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"callWithContext","nameLocation":"5603:15:117","parameters":{"id":48454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48447,"mutability":"mutable","name":"msgSender","nameLocation":"5632:9:117","nodeType":"VariableDeclaration","scope":48476,"src":"5624:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48446,"name":"address","nodeType":"ElementaryTypeName","src":"5624:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48449,"mutability":"mutable","name":"msgValue","nameLocation":"5655:8:117","nodeType":"VariableDeclaration","scope":48476,"src":"5647:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48448,"name":"uint256","nodeType":"ElementaryTypeName","src":"5647:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48451,"mutability":"mutable","name":"target","nameLocation":"5677:6:117","nodeType":"VariableDeclaration","scope":48476,"src":"5669:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48450,"name":"address","nodeType":"ElementaryTypeName","src":"5669:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48453,"mutability":"mutable","name":"callData","nameLocation":"5702:8:117","nodeType":"VariableDeclaration","scope":48476,"src":"5689:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48452,"name":"bytes","nodeType":"ElementaryTypeName","src":"5689:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5618:96:117"},"returnParameters":{"id":48459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48456,"mutability":"mutable","name":"success","nameLocation":"5738:7:117","nodeType":"VariableDeclaration","scope":48476,"src":"5733:12:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48455,"name":"bool","nodeType":"ElementaryTypeName","src":"5733:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48458,"mutability":"mutable","name":"data","nameLocation":"5760:4:117","nodeType":"VariableDeclaration","scope":48476,"src":"5747:17:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48457,"name":"bytes","nodeType":"ElementaryTypeName","src":"5747:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5732:33:117"},"scope":48577,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48506,"nodeType":"FunctionDefinition","src":"6415:321:117","nodes":[],"body":{"id":48505,"nodeType":"Block","src":"6595:141:117","nodes":[],"statements":[{"expression":{"id":48503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":48492,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48488,"src":"6602:7:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48493,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48490,"src":"6611:4:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":48494,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6601:15:117","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":48498,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48485,"src":"6672:8:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48499,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48479,"src":"6693:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48500,"name":"msgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48481,"src":"6714:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":48497,"name":"appendContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48444,"src":"6646:13:117","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes memory,address,uint256) pure returns (bytes memory)"}},"id":48501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["6662:8:117","6682:9:117","6704:8:117"],"names":["callData","msgSender","msgValue"],"nodeType":"FunctionCall","src":"6646:79:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48495,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48483,"src":"6619:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6626:12:117","memberName":"delegatecall","nodeType":"MemberAccess","src":"6619:19:117","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":48502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6619:112:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"6601:130:117","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48504,"nodeType":"ExpressionStatement","src":"6601:130:117"}]},"documentation":{"id":48477,"nodeType":"StructuredDocumentation","src":"5915:497:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"delegatecallWithContext","nameLocation":"6424:23:117","parameters":{"id":48486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48479,"mutability":"mutable","name":"msgSender","nameLocation":"6461:9:117","nodeType":"VariableDeclaration","scope":48506,"src":"6453:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48478,"name":"address","nodeType":"ElementaryTypeName","src":"6453:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48481,"mutability":"mutable","name":"msgValue","nameLocation":"6484:8:117","nodeType":"VariableDeclaration","scope":48506,"src":"6476:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48480,"name":"uint256","nodeType":"ElementaryTypeName","src":"6476:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48483,"mutability":"mutable","name":"target","nameLocation":"6506:6:117","nodeType":"VariableDeclaration","scope":48506,"src":"6498:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48482,"name":"address","nodeType":"ElementaryTypeName","src":"6498:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48485,"mutability":"mutable","name":"callData","nameLocation":"6531:8:117","nodeType":"VariableDeclaration","scope":48506,"src":"6518:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48484,"name":"bytes","nodeType":"ElementaryTypeName","src":"6518:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6447:96:117"},"returnParameters":{"id":48491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48488,"mutability":"mutable","name":"success","nameLocation":"6567:7:117","nodeType":"VariableDeclaration","scope":48506,"src":"6562:12:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48487,"name":"bool","nodeType":"ElementaryTypeName","src":"6562:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48490,"mutability":"mutable","name":"data","nameLocation":"6589:4:117","nodeType":"VariableDeclaration","scope":48506,"src":"6576:17:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48489,"name":"bytes","nodeType":"ElementaryTypeName","src":"6576:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6561:33:117"},"scope":48577,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48541,"nodeType":"FunctionDefinition","src":"7191:399:117","nodes":[],"body":{"id":48540,"nodeType":"Block","src":"7357:233:117","nodes":[],"statements":[{"assignments":[48521,48523],"declarations":[{"constant":false,"id":48521,"mutability":"mutable","name":"success","nameLocation":"7369:7:117","nodeType":"VariableDeclaration","scope":48540,"src":"7364:12:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48520,"name":"bool","nodeType":"ElementaryTypeName","src":"7364:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48523,"mutability":"mutable","name":"_data","nameLocation":"7391:5:117","nodeType":"VariableDeclaration","scope":48540,"src":"7378:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48522,"name":"bytes","nodeType":"ElementaryTypeName","src":"7378:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48530,"initialValue":{"arguments":[{"id":48525,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48509,"src":"7435:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48526,"name":"msgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48511,"src":"7462:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48527,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48513,"src":"7486:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48528,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48515,"src":"7510:8:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48524,"name":"callWithContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48476,"src":"7400:15:117","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,address,bytes memory) returns (bool,bytes memory)"}},"id":48529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["7424:9:117","7452:8:117","7478:6:117","7500:8:117"],"names":["msgSender","msgValue","target","callData"],"nodeType":"FunctionCall","src":"7400:125:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7363:162:117"},{"condition":{"id":48532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7535:8:117","subExpression":{"id":48531,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48521,"src":"7536:7:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48537,"nodeType":"IfStatement","src":"7531:36:117","trueBody":{"expression":{"arguments":[{"id":48534,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48523,"src":"7561:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48533,"name":"revertWithBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59137,"src":"7545:15:117","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":48535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7545:22:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48536,"nodeType":"ExpressionStatement","src":"7545:22:117"}},{"expression":{"id":48538,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48523,"src":"7580:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48519,"id":48539,"nodeType":"Return","src":"7573:12:117"}]},"documentation":{"id":48507,"nodeType":"StructuredDocumentation","src":"6740:448:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"callWithContextOrRevert","nameLocation":"7200:23:117","parameters":{"id":48516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48509,"mutability":"mutable","name":"msgSender","nameLocation":"7237:9:117","nodeType":"VariableDeclaration","scope":48541,"src":"7229:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48508,"name":"address","nodeType":"ElementaryTypeName","src":"7229:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48511,"mutability":"mutable","name":"msgValue","nameLocation":"7260:8:117","nodeType":"VariableDeclaration","scope":48541,"src":"7252:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48510,"name":"uint256","nodeType":"ElementaryTypeName","src":"7252:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48513,"mutability":"mutable","name":"target","nameLocation":"7282:6:117","nodeType":"VariableDeclaration","scope":48541,"src":"7274:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48512,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48515,"mutability":"mutable","name":"callData","nameLocation":"7307:8:117","nodeType":"VariableDeclaration","scope":48541,"src":"7294:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48514,"name":"bytes","nodeType":"ElementaryTypeName","src":"7294:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7223:96:117"},"returnParameters":{"id":48519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48518,"mutability":"mutable","name":"data","nameLocation":"7351:4:117","nodeType":"VariableDeclaration","scope":48541,"src":"7338:17:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48517,"name":"bytes","nodeType":"ElementaryTypeName","src":"7338:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7337:19:117"},"scope":48577,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48576,"nodeType":"FunctionDefinition","src":"8053:415:117","nodes":[],"body":{"id":48575,"nodeType":"Block","src":"8227:241:117","nodes":[],"statements":[{"assignments":[48556,48558],"declarations":[{"constant":false,"id":48556,"mutability":"mutable","name":"success","nameLocation":"8239:7:117","nodeType":"VariableDeclaration","scope":48575,"src":"8234:12:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48555,"name":"bool","nodeType":"ElementaryTypeName","src":"8234:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48558,"mutability":"mutable","name":"_data","nameLocation":"8261:5:117","nodeType":"VariableDeclaration","scope":48575,"src":"8248:18:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48557,"name":"bytes","nodeType":"ElementaryTypeName","src":"8248:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48565,"initialValue":{"arguments":[{"id":48560,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48544,"src":"8313:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48561,"name":"msgValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48546,"src":"8340:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":48562,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"8364:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48563,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48550,"src":"8388:8:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48559,"name":"delegatecallWithContext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48506,"src":"8270:23:117","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,uint256,address,bytes memory) returns (bool,bytes memory)"}},"id":48564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":["8302:9:117","8330:8:117","8356:6:117","8378:8:117"],"names":["msgSender","msgValue","target","callData"],"nodeType":"FunctionCall","src":"8270:133:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"8233:170:117"},{"condition":{"id":48567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8413:8:117","subExpression":{"id":48566,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48556,"src":"8414:7:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48572,"nodeType":"IfStatement","src":"8409:36:117","trueBody":{"expression":{"arguments":[{"id":48569,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48558,"src":"8439:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":48568,"name":"revertWithBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59137,"src":"8423:15:117","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":48570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8423:22:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48571,"nodeType":"ExpressionStatement","src":"8423:22:117"}},{"expression":{"id":48573,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48558,"src":"8458:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48554,"id":48574,"nodeType":"Return","src":"8451:12:117"}]},"documentation":{"id":48542,"nodeType":"StructuredDocumentation","src":"7594:456:117","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."},"implemented":true,"kind":"function","modifiers":[],"name":"delegatecallWithContextOrRevert","nameLocation":"8062:31:117","parameters":{"id":48551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48544,"mutability":"mutable","name":"msgSender","nameLocation":"8107:9:117","nodeType":"VariableDeclaration","scope":48576,"src":"8099:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48543,"name":"address","nodeType":"ElementaryTypeName","src":"8099:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48546,"mutability":"mutable","name":"msgValue","nameLocation":"8130:8:117","nodeType":"VariableDeclaration","scope":48576,"src":"8122:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48545,"name":"uint256","nodeType":"ElementaryTypeName","src":"8122:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48548,"mutability":"mutable","name":"target","nameLocation":"8152:6:117","nodeType":"VariableDeclaration","scope":48576,"src":"8144:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48547,"name":"address","nodeType":"ElementaryTypeName","src":"8144:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48550,"mutability":"mutable","name":"callData","nameLocation":"8177:8:117","nodeType":"VariableDeclaration","scope":48576,"src":"8164:21:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48549,"name":"bytes","nodeType":"ElementaryTypeName","src":"8164:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8093:96:117"},"returnParameters":{"id":48554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48553,"mutability":"mutable","name":"data","nameLocation":"8221:4:117","nodeType":"VariableDeclaration","scope":48576,"src":"8208:17:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48552,"name":"bytes","nodeType":"ElementaryTypeName","src":"8208:5:117","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8207:19:117"},"scope":48577,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"WorldContextProviderLib","contractDependencies":[],"contractKind":"library","documentation":{"id":48424,"nodeType":"StructuredDocumentation","src":"4149:398:117","text":" @title WorldContextProviderLib - Utility functions to call contracts with context values appended to calldata.\n @author MUD (https://mud.dev) by Lattice (https://lattice.xyz)\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."},"fullyImplemented":true,"linearizedBaseContracts":[48577],"name":"WorldContextProviderLib","nameLocation":"4556:23:117","scope":48578,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":117}