{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"1195:1867:267:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"1195:1867:267:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"custom:legacy\":\"@title CrossDomainMessengerLegacySpacer1\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"spacer_101_0_1\":{\"custom:legacy\":\"@custom:spacer PausableUpgradable's _paused\"},\"spacer_102_0_1568\":{\"custom:legacy\":\"@custom:spacer PausableUpgradable's __gap\"},\"spacer_151_0_32\":{\"custom:legacy\":\"@custom:spacer ReentrancyGuardUpgradeable's `_status` field.\"},\"spacer_152_0_1568\":{\"custom:legacy\":\"@custom:spacer ReentrancyGuardUpgradeable's __gap\"},\"spacer_1_0_1600\":{\"custom:legacy\":\"@custom:spacer ContextUpgradable's __gap\"},\"spacer_201_0_32\":{\"custom:legacy\":\"@custom:spacer blockedMessages\"},\"spacer_202_0_32\":{\"custom:legacy\":\"@custom:spacer relayedMessages\"},\"spacer_51_0_20\":{\"custom:legacy\":\"@custom:spacer OwnableUpgradeable's _owner\"},\"spacer_52_0_1568\":{\"custom:legacy\":\"@custom:spacer OwnableUpgradeable's __gap\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Contract only exists to add a spacer to the CrossDomainMessenger where the         PausableUpgradable and OwnableUpgradeable variables used to exist. Must be         the third contract in the inheritance tree of the CrossDomainMessenger.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/CrossDomainMessenger.sol\":\"CrossDomainMessengerLegacySpacer1\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f\",\"dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929\",\"dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689\",\"dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy\"]},\"lib/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/L1/ResourceMetering.sol\":{\"keccak256\":\"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805\",\"dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er\"]},\"src/libraries/Arithmetic.sol\":{\"keccak256\":\"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72\",\"dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq\"]},\"src/libraries/Burn.sol\":{\"keccak256\":\"0x8676782233b8ee5735e9f09225a40acb8d9bdcb6b223ef356fda91058c24ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53956d4ade06cd8c76b81c71a35a5d3f139c4f992753deac68edb3232bfe5265\",\"dweb:/ipfs/QmX9H6eVXpUNDEXcGDYgTAksR2quinGXDds275svLRt2fd\"]},\"src/libraries/Constants.sol\":{\"keccak256\":\"0x0a52edff4eb90806c5fd570e9c4be2e04327facb9af24e8d15c6cdea9f7a6395\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b009c00e43bfc2794ee8954a57e37084eb6fdc05c215aab19f8d697d1a86ca5\",\"dweb:/ipfs/QmQNzUfs95W6dLVPrHj8ik51uhiD5acihYcxZBDhpTCw4f\"]},\"src/libraries/Encoding.sol\":{\"keccak256\":\"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11\",\"dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE\"]},\"src/libraries/Hashing.sol\":{\"keccak256\":\"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12\",\"dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF\"]},\"src/libraries/SafeCall.sol\":{\"keccak256\":\"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a\",\"dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq\"]},\"src/libraries/Types.sol\":{\"keccak256\":\"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e\",\"dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc\"]},\"src/libraries/rlp/RLPWriter.sol\":{\"keccak256\":\"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b\",\"dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV\"]},\"src/universal/CrossDomainMessenger.sol\":{\"keccak256\":\"0xc6a6b5488294c0e36fd830f412cb0b3f40039a70a9b194a3795b4a29683419f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e92cd0f6faa2f2654a80dd86d7cbbdb1d9be424f1977e83c301dd65705c32163\",\"dweb:/ipfs/QmVv3EhKikz2vmK4NWi6xEBVusaAs4nWM3owoRV7wgba8V\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/CrossDomainMessenger.sol":"CrossDomainMessengerLegacySpacer1"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x2a21b14ff90012878752f230d3ffd5c3405e5938d06c97a7d89c0a64561d0d66","urls":["bzz-raw://3313a8f9bb1f9476857c9050067b31982bf2140b83d84f3bc0cec1f62bbe947f","dweb:/ipfs/Qma17Pk8NRe7aB4UD3jjVxk7nSFaov3eQyv86hcyqkwJRV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xd15c3e400531f00203839159b2b8e7209c5158b35618f570c695b7e47f12e9f0","urls":["bzz-raw://b600b852e0597aa69989cc263111f02097e2827edc1bdc70306303e3af5e9929","dweb:/ipfs/QmU4WfM28A1nDqghuuGeFmN3CnVrk6opWtiF65K4vhFPeC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb3ebde1c8d27576db912d87c3560dab14adfb9cd001be95890ec4ba035e652e7","urls":["bzz-raw://a709421c4f5d4677db8216055d2d4dac96a613efdb08178a9f7041f0c5cef689","dweb:/ipfs/QmYs2rStvVLDnSJs8HgaMD1ABwoKKWdiVbQyNfLfFWTjTy"],"license":"MIT"},"lib/solmate/src/utils/FixedPointMathLib.sol":{"keccak256":"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d","urls":["bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c","dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"],"license":"MIT"},"src/L1/ResourceMetering.sol":{"keccak256":"0x069f3449a0408d7a9d05f3a5e01cce5e9c746591d8f3c87b43fcf9723bf7301d","urls":["bzz-raw://124fff8e3b3c5992f04f1c92ceac09b003b880ec43031ef4ce816b2750184805","dweb:/ipfs/QmfRxhi3hRdAhFkMLjX6RgHeFnWtkTJveQe8DVJcvRv3Er"],"license":"MIT"},"src/libraries/Arithmetic.sol":{"keccak256":"0x91345e053584f82ad04d682ba821cf3ede808304f5b2a88116a894cf692c21db","urls":["bzz-raw://005e3c42d2edfca0a506cbda94d3b0104eddf20c00bd1bd25272f53f2ef74c72","dweb:/ipfs/QmdaW6Nge6NKoGvFqRpQjBpM2fXpc5y8WpZyBnDnKicdJq"],"license":"MIT"},"src/libraries/Burn.sol":{"keccak256":"0x8676782233b8ee5735e9f09225a40acb8d9bdcb6b223ef356fda91058c24ed14","urls":["bzz-raw://53956d4ade06cd8c76b81c71a35a5d3f139c4f992753deac68edb3232bfe5265","dweb:/ipfs/QmX9H6eVXpUNDEXcGDYgTAksR2quinGXDds275svLRt2fd"],"license":"MIT"},"src/libraries/Constants.sol":{"keccak256":"0x0a52edff4eb90806c5fd570e9c4be2e04327facb9af24e8d15c6cdea9f7a6395","urls":["bzz-raw://9b009c00e43bfc2794ee8954a57e37084eb6fdc05c215aab19f8d697d1a86ca5","dweb:/ipfs/QmQNzUfs95W6dLVPrHj8ik51uhiD5acihYcxZBDhpTCw4f"],"license":"MIT"},"src/libraries/Encoding.sol":{"keccak256":"0x5586d9715d8fbdd48245220f13a96573555fd847a333869e862ae186802e0311","urls":["bzz-raw://3f34dbd5a0a8918120e226f549a8337bd6fc7176653159a85929ce6fe3d66e11","dweb:/ipfs/QmQKnhRPMnhKBRLmV2C1BqAsPpQg8xVFXi7ZLuHU9XQ1BE"],"license":"MIT"},"src/libraries/Hashing.sol":{"keccak256":"0x89c07a0ca102cbe57b4e082543f2dd6dae0e1fd4a87908a334bd076fc914e7b8","urls":["bzz-raw://69c83489c9544ab442dc244c2feb2c6811b726a5eb5a509b97fc5ccb90b98c12","dweb:/ipfs/QmPGGJeLasc1HWHzd6odvWcNvFPQrbYtDubZcv8yp1HLtF"],"license":"MIT"},"src/libraries/SafeCall.sol":{"keccak256":"0x0636a7abb242bb5d6f5606967c8929e6aa7e63468c1e2ce40ad4780d4c4bf94f","urls":["bzz-raw://a4daec2ac8f9907bbf84ef0a1c48f03bae8657619bc6f42b3a672f25c516f17a","dweb:/ipfs/Qmf8gfRxBv8gEmCkP8YMPb2GGfj9QUnoNUyKE7UR2SWGnq"],"license":"MIT"},"src/libraries/Types.sol":{"keccak256":"0x75900d651301940d24c00d14f0b3b6cbd6dcf379173ceaa31d9bf5be934a9aa4","urls":["bzz-raw://99c2632c5bf4fa3982391c32110eec9fa07917b483b2442cbaf18bdde5bdb24e","dweb:/ipfs/QmSUs6Amkeootf5gKGbKi4mJpvhN2U8i1ED6ef2dskV5xc"],"license":"MIT"},"src/libraries/rlp/RLPWriter.sol":{"keccak256":"0x60ac401490f321c9c55e996a2c65151cd5e60de5f8f297e7c94d541c29820bb6","urls":["bzz-raw://070f5814db07e4a89173d44a36d90e4261ce530f7336034c01635347f2c2d88b","dweb:/ipfs/QmXqr9yW5Kc8MYgr5wSehU5AiqS9pZ4FKxv7vwiwpZCcyV"],"license":"MIT"},"src/universal/CrossDomainMessenger.sol":{"keccak256":"0xc6a6b5488294c0e36fd830f412cb0b3f40039a70a9b194a3795b4a29683419f2","urls":["bzz-raw://e92cd0f6faa2f2654a80dd86d7cbbdb1d9be424f1977e83c301dd65705c32163","dweb:/ipfs/QmVv3EhKikz2vmK4NWi6xEBVusaAs4nWM3owoRV7wgba8V"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":121219,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_1_0_1600","offset":0,"slot":"0","type":"t_array(t_uint256)50_storage"},{"astId":121222,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_51_0_20","offset":0,"slot":"50","type":"t_address"},{"astId":121227,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_52_0_1568","offset":0,"slot":"51","type":"t_array(t_uint256)49_storage"},{"astId":121230,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_101_0_1","offset":0,"slot":"100","type":"t_bool"},{"astId":121235,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_102_0_1568","offset":0,"slot":"101","type":"t_array(t_uint256)49_storage"},{"astId":121238,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_151_0_32","offset":0,"slot":"150","type":"t_uint256"},{"astId":121243,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_152_0_1568","offset":0,"slot":"151","type":"t_array(t_uint256)49_storage"},{"astId":121248,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_201_0_32","offset":0,"slot":"200","type":"t_mapping(t_bytes32,t_bool)"},{"astId":121253,"contract":"src/universal/CrossDomainMessenger.sol:CrossDomainMessengerLegacySpacer1","label":"spacer_202_0_32","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_bytes32,t_bool)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => bool)","numberOfBytes":"32","value":"t_bool"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","notice":"Contract only exists to add a spacer to the CrossDomainMessenger where the         PausableUpgradable and OwnableUpgradeable variables used to exist. Must be         the third contract in the inheritance tree of the CrossDomainMessenger."},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/universal/CrossDomainMessenger.sol","id":121790,"exportedSymbols":{"Constants":[112830],"CrossDomainMessenger":[121789],"CrossDomainMessengerLegacySpacer0":[121213],"CrossDomainMessengerLegacySpacer1":[121254],"Encoding":[113256],"Hashing":[113767],"Initializable":[47725],"SafeCall":[114740]},"nodeType":"SourceUnit","src":"32:21620:267","nodes":[{"id":121198,"nodeType":"PragmaDirective","src":"32:23:267","nodes":[],"literals":["solidity","0.8",".15"]},{"id":121200,"nodeType":"ImportDirective","src":"57:98:267","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":121790,"sourceUnit":47726,"symbolAliases":[{"foreign":{"id":121199,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47725,"src":"66:13:267","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121202,"nodeType":"ImportDirective","src":"156:54:267","nodes":[],"absolutePath":"src/libraries/SafeCall.sol","file":"src/libraries/SafeCall.sol","nameLocation":"-1:-1:-1","scope":121790,"sourceUnit":114741,"symbolAliases":[{"foreign":{"id":121201,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114740,"src":"165:8:267","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121204,"nodeType":"ImportDirective","src":"211:52:267","nodes":[],"absolutePath":"src/libraries/Hashing.sol","file":"src/libraries/Hashing.sol","nameLocation":"-1:-1:-1","scope":121790,"sourceUnit":113768,"symbolAliases":[{"foreign":{"id":121203,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113767,"src":"220:7:267","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121206,"nodeType":"ImportDirective","src":"264:54:267","nodes":[],"absolutePath":"src/libraries/Encoding.sol","file":"src/libraries/Encoding.sol","nameLocation":"-1:-1:-1","scope":121790,"sourceUnit":113257,"symbolAliases":[{"foreign":{"id":121205,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113256,"src":"273:8:267","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121208,"nodeType":"ImportDirective","src":"319:56:267","nodes":[],"absolutePath":"src/libraries/Constants.sol","file":"src/libraries/Constants.sol","nameLocation":"-1:-1:-1","scope":121790,"sourceUnit":112831,"symbolAliases":[{"foreign":{"id":121207,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"328:9:267","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121213,"nodeType":"ContractDefinition","src":"674:197:267","nodes":[{"id":121212,"nodeType":"VariableDeclaration","src":"839:29:267","nodes":[],"constant":false,"documentation":{"id":121210,"nodeType":"StructuredDocumentation","src":"723:111:267","text":"@custom:legacy\n @custom:spacer libAddressManager\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_0_0_20","nameLocation":"855:13:267","scope":121213,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121211,"name":"address","nodeType":"ElementaryTypeName","src":"839:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossDomainMessengerLegacySpacer0","contractDependencies":[],"contractKind":"contract","documentation":{"id":121209,"nodeType":"StructuredDocumentation","src":"377:297:267","text":"@custom:legacy\n @title CrossDomainMessengerLegacySpacer0\n @notice Contract only exists to add a spacer to the CrossDomainMessenger where the\n         libAddressManager variable used to exist. Must be the first contract in the inheritance\n         tree of the CrossDomainMessenger."},"fullyImplemented":true,"linearizedBaseContracts":[121213],"name":"CrossDomainMessengerLegacySpacer0","nameLocation":"683:33:267","scope":121790,"usedErrors":[]},{"id":121254,"nodeType":"ContractDefinition","src":"1195:1867:267","nodes":[{"id":121219,"nodeType":"VariableDeclaration","src":"1427:35:267","nodes":[],"constant":false,"documentation":{"id":121215,"nodeType":"StructuredDocumentation","src":"1244:178:267","text":"@custom:legacy\n @custom:spacer ContextUpgradable's __gap\n @notice Spacer for backwards compatibility. Comes from OpenZeppelin\n         ContextUpgradable."},"mutability":"mutable","name":"spacer_1_0_1600","nameLocation":"1447:15:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":121216,"name":"uint256","nodeType":"ElementaryTypeName","src":"1427:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":121218,"length":{"hexValue":"3530","id":121217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1435:2:267","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1427:11:267","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"},{"id":121222,"nodeType":"VariableDeclaration","src":"1654:30:267","nodes":[],"constant":false,"documentation":{"id":121220,"nodeType":"StructuredDocumentation","src":"1469:180:267","text":"@custom:legacy\n @custom:spacer OwnableUpgradeable's _owner\n @notice Spacer for backwards compatibility.\n         Come from OpenZeppelin OwnableUpgradeable."},"mutability":"mutable","name":"spacer_51_0_20","nameLocation":"1670:14:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121221,"name":"address","nodeType":"ElementaryTypeName","src":"1654:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":121227,"nodeType":"VariableDeclaration","src":"1876:36:267","nodes":[],"constant":false,"documentation":{"id":121223,"nodeType":"StructuredDocumentation","src":"1691:180:267","text":"@custom:legacy\n @custom:spacer OwnableUpgradeable's __gap\n @notice Spacer for backwards compatibility. Comes from OpenZeppelin\n         OwnableUpgradeable."},"mutability":"mutable","name":"spacer_52_0_1568","nameLocation":"1896:16:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":121224,"name":"uint256","nodeType":"ElementaryTypeName","src":"1876:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":121226,"length":{"hexValue":"3439","id":121225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1884:2:267","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"1876:11:267","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":121230,"nodeType":"VariableDeclaration","src":"2106:27:267","nodes":[],"constant":false,"documentation":{"id":121228,"nodeType":"StructuredDocumentation","src":"1919:182:267","text":"@custom:legacy\n @custom:spacer PausableUpgradable's _paused\n @notice Spacer for backwards compatibility. Comes from OpenZeppelin\n         PausableUpgradable."},"mutability":"mutable","name":"spacer_101_0_1","nameLocation":"2119:14:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":121229,"name":"bool","nodeType":"ElementaryTypeName","src":"2106:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":121235,"nodeType":"VariableDeclaration","src":"2325:37:267","nodes":[],"constant":false,"documentation":{"id":121231,"nodeType":"StructuredDocumentation","src":"2140:180:267","text":"@custom:legacy\n @custom:spacer PausableUpgradable's __gap\n @notice Spacer for backwards compatibility. Comes from OpenZeppelin\n         PausableUpgradable."},"mutability":"mutable","name":"spacer_102_0_1568","nameLocation":"2345:17:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":121232,"name":"uint256","nodeType":"ElementaryTypeName","src":"2325:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":121234,"length":{"hexValue":"3439","id":121233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2333:2:267","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2325:11:267","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":121238,"nodeType":"VariableDeclaration","src":"2513:31:267","nodes":[],"constant":false,"documentation":{"id":121236,"nodeType":"StructuredDocumentation","src":"2369:139:267","text":"@custom:legacy\n @custom:spacer ReentrancyGuardUpgradeable's `_status` field.\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_151_0_32","nameLocation":"2529:15:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121237,"name":"uint256","nodeType":"ElementaryTypeName","src":"2513:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":121243,"nodeType":"VariableDeclaration","src":"2684:37:267","nodes":[],"constant":false,"documentation":{"id":121239,"nodeType":"StructuredDocumentation","src":"2551:128:267","text":"@custom:legacy\n @custom:spacer ReentrancyGuardUpgradeable's __gap\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_152_0_1568","nameLocation":"2704:17:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage","typeString":"uint256[49]"},"typeName":{"baseType":{"id":121240,"name":"uint256","nodeType":"ElementaryTypeName","src":"2684:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":121242,"length":{"hexValue":"3439","id":121241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2692:2:267","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"49"},"nodeType":"ArrayTypeName","src":"2684:11:267","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$49_storage_ptr","typeString":"uint256[49]"}},"visibility":"private"},{"id":121248,"nodeType":"VariableDeclaration","src":"2842:48:267","nodes":[],"constant":false,"documentation":{"id":121244,"nodeType":"StructuredDocumentation","src":"2728:109:267","text":"@custom:legacy\n @custom:spacer blockedMessages\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_201_0_32","nameLocation":"2875:15:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":121247,"keyType":{"id":121245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2850:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2842:24:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":121246,"name":"bool","nodeType":"ElementaryTypeName","src":"2861:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":121253,"nodeType":"VariableDeclaration","src":"3011:48:267","nodes":[],"constant":false,"documentation":{"id":121249,"nodeType":"StructuredDocumentation","src":"2897:109:267","text":"@custom:legacy\n @custom:spacer relayedMessages\n @notice Spacer for backwards compatibility."},"mutability":"mutable","name":"spacer_202_0_32","nameLocation":"3044:15:267","scope":121254,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":121252,"keyType":{"id":121250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3019:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"3011:24:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":121251,"name":"bool","nodeType":"ElementaryTypeName","src":"3030:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"CrossDomainMessengerLegacySpacer1","contractDependencies":[],"contractKind":"contract","documentation":{"id":121214,"nodeType":"StructuredDocumentation","src":"873:322:267","text":"@custom:legacy\n @title CrossDomainMessengerLegacySpacer1\n @notice Contract only exists to add a spacer to the CrossDomainMessenger where the\n         PausableUpgradable and OwnableUpgradeable variables used to exist. Must be\n         the third contract in the inheritance tree of the CrossDomainMessenger."},"fullyImplemented":true,"linearizedBaseContracts":[121254],"name":"CrossDomainMessengerLegacySpacer1","nameLocation":"1204:33:267","scope":121790,"usedErrors":[]},{"id":121789,"nodeType":"ContractDefinition","src":"3683:17968:267","nodes":[{"id":121265,"nodeType":"VariableDeclaration","src":"3879:42:267","nodes":[],"constant":true,"documentation":{"id":121262,"nodeType":"StructuredDocumentation","src":"3827:47:267","text":"@notice Current message version identifier."},"functionSelector":"3f827a5a","mutability":"constant","name":"MESSAGE_VERSION","nameLocation":"3902:15:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":121263,"name":"uint16","nodeType":"ElementaryTypeName","src":"3879:6:267","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"31","id":121264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3920:1:267","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":121269,"nodeType":"VariableDeclaration","src":"3999:56:267","nodes":[],"constant":true,"documentation":{"id":121266,"nodeType":"StructuredDocumentation","src":"3928:66:267","text":"@notice Constant overhead added to the base gas for a message."},"functionSelector":"83a74074","mutability":"constant","name":"RELAY_CONSTANT_OVERHEAD","nameLocation":"4022:23:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121267,"name":"uint64","nodeType":"ElementaryTypeName","src":"3999:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3230305f303030","id":121268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4048:7:267","typeDescriptions":{"typeIdentifier":"t_rational_200000_by_1","typeString":"int_const 200000"},"value":"200_000"},"visibility":"public"},{"id":121273,"nodeType":"VariableDeclaration","src":"4146:62:267","nodes":[],"constant":true,"documentation":{"id":121270,"nodeType":"StructuredDocumentation","src":"4062:79:267","text":"@notice Numerator for dynamic overhead added to the base gas for a message."},"functionSelector":"2828d7e8","mutability":"constant","name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","nameLocation":"4169:34:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121271,"name":"uint64","nodeType":"ElementaryTypeName","src":"4146:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3634","id":121272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4206:2:267","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"visibility":"public"},{"id":121277,"nodeType":"VariableDeclaration","src":"4301:64:267","nodes":[],"constant":true,"documentation":{"id":121274,"nodeType":"StructuredDocumentation","src":"4215:81:267","text":"@notice Denominator for dynamic overhead added to the base gas for a message."},"functionSelector":"0c568498","mutability":"constant","name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","nameLocation":"4324:36:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121275,"name":"uint64","nodeType":"ElementaryTypeName","src":"4301:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3633","id":121276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4363:2:267","typeDescriptions":{"typeIdentifier":"t_rational_63_by_1","typeString":"int_const 63"},"value":"63"},"visibility":"public"},{"id":121281,"nodeType":"VariableDeclaration","src":"4456:53:267","nodes":[],"constant":true,"documentation":{"id":121278,"nodeType":"StructuredDocumentation","src":"4372:79:267","text":"@notice Extra gas added to base gas for each byte of calldata in a message."},"functionSelector":"028f85f7","mutability":"constant","name":"MIN_GAS_CALLDATA_OVERHEAD","nameLocation":"4479:25:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121279,"name":"uint64","nodeType":"ElementaryTypeName","src":"4456:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"3136","id":121280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4507:2:267","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"visibility":"public"},{"id":121285,"nodeType":"VariableDeclaration","src":"4597:51:267","nodes":[],"constant":true,"documentation":{"id":121282,"nodeType":"StructuredDocumentation","src":"4516:76:267","text":"@notice Gas reserved for performing the external call in `relayMessage`."},"functionSelector":"4c1d6a69","mutability":"constant","name":"RELAY_CALL_OVERHEAD","nameLocation":"4620:19:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121283,"name":"uint64","nodeType":"ElementaryTypeName","src":"4597:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"34305f303030","id":121284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4642:6:267","typeDescriptions":{"typeIdentifier":"t_rational_40000_by_1","typeString":"int_const 40000"},"value":"40_000"},"visibility":"public"},{"id":121289,"nodeType":"VariableDeclaration","src":"4752:50:267","nodes":[],"constant":true,"documentation":{"id":121286,"nodeType":"StructuredDocumentation","src":"4655:92:267","text":"@notice Gas reserved for finalizing the execution of `relayMessage` after the safe call."},"functionSelector":"8cbeeef2","mutability":"constant","name":"RELAY_RESERVED_GAS","nameLocation":"4775:18:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121287,"name":"uint64","nodeType":"ElementaryTypeName","src":"4752:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"34305f303030","id":121288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4796:6:267","typeDescriptions":{"typeIdentifier":"t_rational_40000_by_1","typeString":"int_const 40000"},"value":"40_000"},"visibility":"public"},{"id":121293,"nodeType":"VariableDeclaration","src":"4943:53:267","nodes":[],"constant":true,"documentation":{"id":121290,"nodeType":"StructuredDocumentation","src":"4809:129:267","text":"@notice Gas reserved for the execution between the `hasMinGas` check and the external\n         call in `relayMessage`."},"functionSelector":"5644cfdf","mutability":"constant","name":"RELAY_GAS_CHECK_BUFFER","nameLocation":"4966:22:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121291,"name":"uint64","nodeType":"ElementaryTypeName","src":"4943:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"355f303030","id":121292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4991:5:267","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},"visibility":"public"},{"id":121297,"nodeType":"VariableDeclaration","src":"5183:73:267","nodes":[],"constant":true,"documentation":{"id":121294,"nodeType":"StructuredDocumentation","src":"5003:175:267","text":"@notice Gas reserved for the execution between the `hasMinGas` check and the external\n         call in `relayMessage` on L1 (include gas for the approve() function)"},"functionSelector":"7f87f520","mutability":"constant","name":"RELAY_GAS_CHECK_BUFFER_INCLUDING_APPROVAL","nameLocation":"5206:41:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121295,"name":"uint64","nodeType":"ElementaryTypeName","src":"5183:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"34305f303030","id":121296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5250:6:267","typeDescriptions":{"typeIdentifier":"t_rational_40000_by_1","typeString":"int_const 40000"},"value":"40_000"},"visibility":"public"},{"id":121302,"nodeType":"VariableDeclaration","src":"5512:50:267","nodes":[],"constant":false,"documentation":{"id":121298,"nodeType":"StructuredDocumentation","src":"5263:244:267","text":"@notice Mapping of message hashes to boolean receipt values. Note that a message will only\n         be present in this mapping if it has successfully been relayed on this chain, and\n         can therefore not be relayed again."},"functionSelector":"b1b1b209","mutability":"mutable","name":"successfulMessages","nameLocation":"5544:18:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":121301,"keyType":{"id":121299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5520:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5512:24:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":121300,"name":"bool","nodeType":"ElementaryTypeName","src":"5531:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":121305,"nodeType":"VariableDeclaration","src":"5909:33:267","nodes":[],"constant":false,"documentation":{"id":121303,"nodeType":"StructuredDocumentation","src":"5569:335:267","text":"@notice Address of the sender of the currently executing message on the other chain. If the\n         value of this variable is the default value (0x00000000...dead) then no message is\n         currently being executed. Use the xDomainMessageSender getter which will throw an\n         error if this is the case."},"mutability":"mutable","name":"xDomainMsgSender","nameLocation":"5926:16:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121304,"name":"address","nodeType":"ElementaryTypeName","src":"5909:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":121308,"nodeType":"VariableDeclaration","src":"6211:25:267","nodes":[],"constant":false,"documentation":{"id":121306,"nodeType":"StructuredDocumentation","src":"5949:257:267","text":"@notice Nonce for the next message to be sent, without the message version applied. Use the\n         messageNonce getter which will insert the message version into the nonce to give you\n         the actual nonce to be used for the message."},"mutability":"mutable","name":"msgNonce","nameLocation":"6228:8:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"},"typeName":{"id":121307,"name":"uint240","nodeType":"ElementaryTypeName","src":"6211:7:267","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"visibility":"internal"},{"id":121313,"nodeType":"VariableDeclaration","src":"6494:46:267","nodes":[],"constant":false,"documentation":{"id":121309,"nodeType":"StructuredDocumentation","src":"6243:246:267","text":"@notice Mapping of message hashes to a boolean if and only if the message has failed to be\n         executed at least once. A message will not be present in this mapping if it\n         successfully executed on the first attempt."},"functionSelector":"a4e7f8bd","mutability":"mutable","name":"failedMessages","nameLocation":"6526:14:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"typeName":{"id":121312,"keyType":{"id":121310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6502:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"6494:24:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"},"valueType":{"id":121311,"name":"bool","nodeType":"ElementaryTypeName","src":"6513:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":121317,"nodeType":"VariableDeclaration","src":"6646:42:267","nodes":[],"constant":false,"documentation":{"id":121314,"nodeType":"StructuredDocumentation","src":"6547:94:267","text":"@notice CrossDomainMessenger contract on the other chain.\n @custom:network-specific"},"functionSelector":"db505d80","mutability":"mutable","name":"otherMessenger","nameLocation":"6674:14:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":121316,"nodeType":"UserDefinedTypeName","pathNode":{"id":121315,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"6646:20:267"},"referencedDeclaration":121789,"src":"6646:20:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"public"},{"id":121322,"nodeType":"VariableDeclaration","src":"6915:25:267","nodes":[],"constant":false,"documentation":{"id":121318,"nodeType":"StructuredDocumentation","src":"6695:215:267","text":"@notice Reserve extra slots in the storage layout for future upgrades.\n         A gap size of 41 was chosen here, so that the first slot used in a child contract\n         would be a multiple of 50."},"mutability":"mutable","name":"__gap","nameLocation":"6935:5:267","scope":121789,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$43_storage","typeString":"uint256[43]"},"typeName":{"baseType":{"id":121319,"name":"uint256","nodeType":"ElementaryTypeName","src":"6915:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":121321,"length":{"hexValue":"3433","id":121320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6923:2:267","typeDescriptions":{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"},"value":"43"},"nodeType":"ArrayTypeName","src":"6915:11:267","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$43_storage_ptr","typeString":"uint256[43]"}},"visibility":"private"},{"id":121335,"nodeType":"EventDefinition","src":"7379:113:267","nodes":[],"anonymous":false,"documentation":{"id":121323,"nodeType":"StructuredDocumentation","src":"6947:427:267","text":"@notice Emitted whenever a message is sent to the other chain.\n @param target       Address of the recipient of the message.\n @param sender       Address of the sender of the message.\n @param message      Message to trigger the recipient address with.\n @param messageNonce Unique nonce attached to the message.\n @param gasLimit     Minimum gas limit that the message can be executed with."},"eventSelector":"cb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a","name":"SentMessage","nameLocation":"7385:11:267","parameters":{"id":121334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121325,"indexed":true,"mutability":"mutable","name":"target","nameLocation":"7413:6:267","nodeType":"VariableDeclaration","scope":121335,"src":"7397:22:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121324,"name":"address","nodeType":"ElementaryTypeName","src":"7397:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121327,"indexed":false,"mutability":"mutable","name":"sender","nameLocation":"7429:6:267","nodeType":"VariableDeclaration","scope":121335,"src":"7421:14:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121326,"name":"address","nodeType":"ElementaryTypeName","src":"7421:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121329,"indexed":false,"mutability":"mutable","name":"message","nameLocation":"7443:7:267","nodeType":"VariableDeclaration","scope":121335,"src":"7437:13:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121328,"name":"bytes","nodeType":"ElementaryTypeName","src":"7437:5:267","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":121331,"indexed":false,"mutability":"mutable","name":"messageNonce","nameLocation":"7460:12:267","nodeType":"VariableDeclaration","scope":121335,"src":"7452:20:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121330,"name":"uint256","nodeType":"ElementaryTypeName","src":"7452:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121333,"indexed":false,"mutability":"mutable","name":"gasLimit","nameLocation":"7482:8:267","nodeType":"VariableDeclaration","scope":121335,"src":"7474:16:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121332,"name":"uint256","nodeType":"ElementaryTypeName","src":"7474:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7396:95:267"}},{"id":121342,"nodeType":"EventDefinition","src":"7831:67:267","nodes":[],"anonymous":false,"documentation":{"id":121336,"nodeType":"StructuredDocumentation","src":"7498:328:267","text":"@notice Additional event data to emit, required as of Bedrock. Cannot be merged with the\n         SentMessage event without breaking the ABI of this contract, this is good enough.\n @param sender Address of the sender of the message.\n @param value  ETH value sent along with the message to the recipient."},"eventSelector":"8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546","name":"SentMessageExtension1","nameLocation":"7837:21:267","parameters":{"id":121341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121338,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"7875:6:267","nodeType":"VariableDeclaration","scope":121342,"src":"7859:22:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121337,"name":"address","nodeType":"ElementaryTypeName","src":"7859:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121340,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"7891:5:267","nodeType":"VariableDeclaration","scope":121342,"src":"7883:13:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121339,"name":"uint256","nodeType":"ElementaryTypeName","src":"7883:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7858:39:267"}},{"id":121347,"nodeType":"EventDefinition","src":"8047:46:267","nodes":[],"anonymous":false,"documentation":{"id":121343,"nodeType":"StructuredDocumentation","src":"7904:138:267","text":"@notice Emitted whenever a message is successfully relayed on this chain.\n @param msgHash Hash of the message that was relayed."},"eventSelector":"4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c","name":"RelayedMessage","nameLocation":"8053:14:267","parameters":{"id":121346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121345,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"8084:7:267","nodeType":"VariableDeclaration","scope":121347,"src":"8068:23:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":121344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8068:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8067:25:267"}},{"id":121352,"nodeType":"EventDefinition","src":"8247:52:267","nodes":[],"anonymous":false,"documentation":{"id":121348,"nodeType":"StructuredDocumentation","src":"8099:143:267","text":"@notice Emitted whenever a message fails to be relayed on this chain.\n @param msgHash Hash of the message that failed to be relayed."},"eventSelector":"99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f","name":"FailedRelayedMessage","nameLocation":"8253:20:267","parameters":{"id":121351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121350,"indexed":true,"mutability":"mutable","name":"msgHash","nameLocation":"8290:7:267","nodeType":"VariableDeclaration","scope":121352,"src":"8274:23:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":121349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8274:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8273:25:267"}},{"id":121412,"nodeType":"FunctionDefinition","src":"8881:995:267","nodes":[],"body":{"id":121411,"nodeType":"Block","src":"8982:894:267","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":121365,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121317,"src":"9381:14:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}],"id":121364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9373:7:267","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121363,"name":"address","nodeType":"ElementaryTypeName","src":"9373:7:267","typeDescriptions":{}}},"id":121366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9373:23:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":121368,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121357,"src":"9429:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":121369,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121359,"src":"9439:12:267","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":121367,"name":"baseGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121718,"src":"9421:7:267","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$_t_uint32_$returns$_t_uint64_$","typeString":"function (bytes calldata,uint32) pure returns (uint64)"}},"id":121370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9421:31:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":121371,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9474:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"9474:9:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"expression":{"id":121375,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9544:4:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"id":121376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"relayMessage","nodeType":"MemberAccess","referencedDeclaration":121641,"src":"9544:17:267","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) payable external"}},"id":121377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"9544:26:267","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121378,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121681,"src":"9572:12:267","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":121379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9572:14:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":121380,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9588:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9588:10:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121382,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121355,"src":"9600:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":121383,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9609:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"9609:9:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121385,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121359,"src":"9620:12:267","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":121386,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121357,"src":"9634:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":121373,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9504:3:267","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":121374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"9504:22:267","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":121387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9504:152:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":121362,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121765,"src":"9341:12:267","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint64_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint64,uint256,bytes memory)"}},"id":121388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":["_to","_gasLimit","_value","_data"],"nodeType":"FunctionCall","src":"9341:326:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121389,"nodeType":"ExpressionStatement","src":"9341:326:267"},{"eventCall":{"arguments":[{"id":121391,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121355,"src":"9695:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":121392,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9704:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9704:10:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121394,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121357,"src":"9716:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"arguments":[],"expression":{"argumentTypes":[],"id":121395,"name":"messageNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121681,"src":"9726:12:267","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":121396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9726:14:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121397,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121359,"src":"9742:12:267","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":121390,"name":"SentMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121335,"src":"9683:11:267","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,bytes memory,uint256,uint256)"}},"id":121398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9683:72:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121399,"nodeType":"EmitStatement","src":"9678:77:267"},{"eventCall":{"arguments":[{"expression":{"id":121401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9792:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"9792:10:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":121403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9804:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"9804:9:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":121400,"name":"SentMessageExtension1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121342,"src":"9770:21:267","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":121405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9770:44:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121406,"nodeType":"EmitStatement","src":"9765:49:267"},{"id":121410,"nodeType":"UncheckedBlock","src":"9825:45:267","statements":[{"expression":{"id":121408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"9849:10:267","subExpression":{"id":121407,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121308,"src":"9851:8:267","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},"id":121409,"nodeType":"ExpressionStatement","src":"9849:10:267"}]}]},"documentation":{"id":121353,"nodeType":"StructuredDocumentation","src":"8305:571:267","text":"@notice Sends a message to some target address on the other chain. Note that if the call\n         always reverts, then the message will be unrelayable, and any ETH sent will be\n         permanently locked. The same will occur if the target on the other chain is\n         considered unsafe (see the _isUnsafeTarget() function).\n @param _target      Target contract or wallet address.\n @param _message     Message to trigger the target address with.\n @param _minGasLimit Minimum gas limit that the message can be executed with."},"functionSelector":"3dbb202b","implemented":true,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"8890:11:267","parameters":{"id":121360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121355,"mutability":"mutable","name":"_target","nameLocation":"8910:7:267","nodeType":"VariableDeclaration","scope":121412,"src":"8902:15:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121354,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121357,"mutability":"mutable","name":"_message","nameLocation":"8934:8:267","nodeType":"VariableDeclaration","scope":121412,"src":"8919:23:267","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":121356,"name":"bytes","nodeType":"ElementaryTypeName","src":"8919:5:267","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":121359,"mutability":"mutable","name":"_minGasLimit","nameLocation":"8951:12:267","nodeType":"VariableDeclaration","scope":121412,"src":"8944:19:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":121358,"name":"uint32","nodeType":"ElementaryTypeName","src":"8944:6:267","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"8901:63:267"},"returnParameters":{"id":121361,"nodeType":"ParameterList","parameters":[],"src":"8982:0:267"},"scope":121789,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":121641,"nodeType":"FunctionDefinition","src":"10564:5082:267","nodes":[],"body":{"id":121640,"nodeType":"Block","src":"10806:4840:267","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":121429,"name":"paused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121788,"src":"10991:6:267","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":121430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10991:8:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":121431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11003:5:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"10991:17:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a20706175736564","id":121433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11010:30:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_57006e26aaba91ed2fce10964d8770d2dfa8bbe1c262ff4007f9cbc644866d2c","typeString":"literal_string \"CrossDomainMessenger: paused\""},"value":"CrossDomainMessenger: paused"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57006e26aaba91ed2fce10964d8770d2dfa8bbe1c262ff4007f9cbc644866d2c","typeString":"literal_string \"CrossDomainMessenger: paused\""}],"id":121428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10983:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10983:58:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121435,"nodeType":"ExpressionStatement","src":"10983:58:267"},{"assignments":[null,121437],"declarations":[null,{"constant":false,"id":121437,"mutability":"mutable","name":"version","nameLocation":"11062:7:267","nodeType":"VariableDeclaration","scope":121640,"src":"11055:14:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":121436,"name":"uint16","nodeType":"ElementaryTypeName","src":"11055:6:267","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":121442,"initialValue":{"arguments":[{"id":121440,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121415,"src":"11103:6:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":121438,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113256,"src":"11073:8:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$113256_$","typeString":"type(library Encoding)"}},"id":121439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":113122,"src":"11073:29:267","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint240_$_t_uint16_$","typeString":"function (uint256) pure returns (uint240,uint16)"}},"id":121441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11073:37:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint240_$_t_uint16_$","typeString":"tuple(uint240,uint16)"}},"nodeType":"VariableDeclarationStatement","src":"11052:58:267"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":121446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121444,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121437,"src":"11128:7:267","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32","id":121445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11138:1:267","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11128:11:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a206f6e6c792076657273696f6e2030206f722031206d657373616765732061726520737570706f7274656420617420746869732074696d65","id":121447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11141:79:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_613c3f25ff5f199e4ef46f528b3fdb1db106536665e79fc5664217d5ace5b032","typeString":"literal_string \"CrossDomainMessenger: only version 0 or 1 messages are supported at this time\""},"value":"CrossDomainMessenger: only version 0 or 1 messages are supported at this time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_613c3f25ff5f199e4ef46f528b3fdb1db106536665e79fc5664217d5ace5b032","typeString":"literal_string \"CrossDomainMessenger: only version 0 or 1 messages are supported at this time\""}],"id":121443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11120:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11120:101:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121449,"nodeType":"ExpressionStatement","src":"11120:101:267"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":121452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121450,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121437,"src":"11423:7:267","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":121451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:1:267","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11423:12:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121473,"nodeType":"IfStatement","src":"11419:247:267","trueBody":{"id":121472,"nodeType":"Block","src":"11437:229:267","statements":[{"assignments":[121454],"declarations":[{"constant":false,"id":121454,"mutability":"mutable","name":"oldHash","nameLocation":"11459:7:267","nodeType":"VariableDeclaration","scope":121472,"src":"11451:15:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":121453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11451:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":121462,"initialValue":{"arguments":[{"id":121457,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121419,"src":"11502:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121458,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121417,"src":"11511:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121459,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121425,"src":"11520:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":121460,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121415,"src":"11530:6:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":121455,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113767,"src":"11469:7:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$113767_$","typeString":"type(library Hashing)"}},"id":121456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashCrossDomainMessageV0","nodeType":"MemberAccess","referencedDeclaration":113683,"src":"11469:32:267","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (address,address,bytes memory,uint256) pure returns (bytes32)"}},"id":121461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11469:68:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11451:86:267"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":121464,"name":"successfulMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121302,"src":"11559:18:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121466,"indexExpression":{"id":121465,"name":"oldHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121454,"src":"11578:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11559:27:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":121467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11590:5:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11559:36:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a206c6567616379207769746864726177616c20616c72656164792072656c61796564","id":121469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11597:57:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_6165e2ee174e7d1b46e40c12e0e6c5db7f29bb3c3a0e89cfb28416bcac9452e1","typeString":"literal_string \"CrossDomainMessenger: legacy withdrawal already relayed\""},"value":"CrossDomainMessenger: legacy withdrawal already relayed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6165e2ee174e7d1b46e40c12e0e6c5db7f29bb3c3a0e89cfb28416bcac9452e1","typeString":"literal_string \"CrossDomainMessenger: legacy withdrawal already relayed\""}],"id":121463,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11551:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11551:104:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121471,"nodeType":"ExpressionStatement","src":"11551:104:267"}]}},{"assignments":[121475],"declarations":[{"constant":false,"id":121475,"mutability":"mutable","name":"versionedHash","nameLocation":"11844:13:267","nodeType":"VariableDeclaration","scope":121640,"src":"11836:21:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":121474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11836:7:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":121485,"initialValue":{"arguments":[{"id":121478,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121415,"src":"11905:6:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121479,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121417,"src":"11913:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121480,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121419,"src":"11922:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121481,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121421,"src":"11931:6:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121482,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121423,"src":"11939:12:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121483,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121425,"src":"11953:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":121476,"name":"Hashing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113767,"src":"11872:7:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashing_$113767_$","typeString":"type(library Hashing)"}},"id":121477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hashCrossDomainMessageV1","nodeType":"MemberAccess","referencedDeclaration":113714,"src":"11872:32:267","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,address,address,uint256,uint256,bytes memory) pure returns (bytes32)"}},"id":121484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11872:90:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11836:126:267"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":121486,"name":"_isOtherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121771,"src":"11977:17:267","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":121487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11977:19:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":121518,"nodeType":"Block","src":"12242:237:267","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":121507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":121504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12264:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"12264:9:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":121506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12277:1:267","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12264:14:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a2076616c7565206d757374206265207a65726f20756e6c657373206d6573736167652069732066726f6d20612073797374656d2061646472657373","id":121508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12280:82:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_a674ba4f64545bbbef0e37bff5aab8291d8acaeac34534351c851dafbf6705a5","typeString":"literal_string \"CrossDomainMessenger: value must be zero unless message is from a system address\""},"value":"CrossDomainMessenger: value must be zero unless message is from a system address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a674ba4f64545bbbef0e37bff5aab8291d8acaeac34534351c851dafbf6705a5","typeString":"literal_string \"CrossDomainMessenger: value must be zero unless message is from a system address\""}],"id":121503,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12256:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12256:107:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121510,"nodeType":"ExpressionStatement","src":"12256:107:267"},{"expression":{"arguments":[{"baseExpression":{"id":121512,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121313,"src":"12386:14:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121514,"indexExpression":{"id":121513,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"12401:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12386:29:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a206d6573736167652063616e6e6f74206265207265706c61796564","id":121515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12417:50:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb745f097737872dff3bf4ce31c0d843f5adae9f5f676df9824da91fd83c421d","typeString":"literal_string \"CrossDomainMessenger: message cannot be replayed\""},"value":"CrossDomainMessenger: message cannot be replayed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bb745f097737872dff3bf4ce31c0d843f5adae9f5f676df9824da91fd83c421d","typeString":"literal_string \"CrossDomainMessenger: message cannot be replayed\""}],"id":121511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12378:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12378:90:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121517,"nodeType":"ExpressionStatement","src":"12378:90:267"}]},"id":121519,"nodeType":"IfStatement","src":"11973:506:267","trueBody":{"id":121502,"nodeType":"Block","src":"11998:238:267","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":121492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":121489,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12153:3:267","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","src":"12153:9:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":121491,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121421,"src":"12166:6:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12153:19:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":121488,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"12146:6:267","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":121493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12146:27:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121494,"nodeType":"ExpressionStatement","src":"12146:27:267"},{"expression":{"arguments":[{"id":121499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12194:30:267","subExpression":{"baseExpression":{"id":121496,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121313,"src":"12195:14:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121498,"indexExpression":{"id":121497,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"12210:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12195:29:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":121495,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"12187:6:267","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":121500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12187:38:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121501,"nodeType":"ExpressionStatement","src":"12187:38:267"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":121522,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121419,"src":"12526:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":121521,"name":"_isUnsafeTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121779,"src":"12510:15:267","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":121523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12510:24:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":121524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12538:5:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12510:33:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a2063616e6e6f742073656e64206d65737361676520746f20626c6f636b65642073797374656d2061646472657373","id":121526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12545:69:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a217cd91d5c986f3948516e02c31b8cd18c7bbfae68d3da54d71a8829a66cb5","typeString":"literal_string \"CrossDomainMessenger: cannot send message to blocked system address\""},"value":"CrossDomainMessenger: cannot send message to blocked system address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a217cd91d5c986f3948516e02c31b8cd18c7bbfae68d3da54d71a8829a66cb5","typeString":"literal_string \"CrossDomainMessenger: cannot send message to blocked system address\""}],"id":121520,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12489:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12489:135:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121528,"nodeType":"ExpressionStatement","src":"12489:135:267"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":121530,"name":"successfulMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121302,"src":"12643:18:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121532,"indexExpression":{"id":121531,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"12662:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12643:33:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":121533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12680:5:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12643:42:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a206d6573736167652068617320616c7265616479206265656e2072656c61796564","id":121535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12687:56:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_b63bfd5e0ee046bfdc0487044ba9676f2ee5e11cc19a24dacb9c46682e5c7150","typeString":"literal_string \"CrossDomainMessenger: message has already been relayed\""},"value":"CrossDomainMessenger: message has already been relayed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b63bfd5e0ee046bfdc0487044ba9676f2ee5e11cc19a24dacb9c46682e5c7150","typeString":"literal_string \"CrossDomainMessenger: message has already been relayed\""}],"id":121529,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12635:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12635:109:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121537,"nodeType":"ExpressionStatement","src":"12635:109:267"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13437:78:267","subExpression":{"arguments":[{"id":121540,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121423,"src":"13457:12:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":121541,"name":"RELAY_RESERVED_GAS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121289,"src":"13471:18:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":121542,"name":"RELAY_GAS_CHECK_BUFFER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121293,"src":"13492:22:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"13471:43:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"expression":{"id":121538,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114740,"src":"13438:8:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCall_$114740_$","typeString":"type(library SafeCall)"}},"id":121539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"hasMinGas","nodeType":"MemberAccess","referencedDeclaration":114711,"src":"13438:18:267","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) view returns (bool)"}},"id":121544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13438:77:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121546,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"13535:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":121547,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"13555:9:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$112830_$","typeString":"type(library Constants)"}},"id":121548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":112780,"src":"13555:27:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13535:47:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13437:145:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121574,"nodeType":"IfStatement","src":"13420:919:267","trueBody":{"id":121573,"nodeType":"Block","src":"13593:746:267","statements":[{"expression":{"id":121555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":121551,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121313,"src":"13607:14:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121553,"indexExpression":{"id":121552,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"13622:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13607:29:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":121554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13639:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13607:36:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121556,"nodeType":"ExpressionStatement","src":"13607:36:267"},{"eventCall":{"arguments":[{"id":121558,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"13683:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":121557,"name":"FailedRelayedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121352,"src":"13662:20:267","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":121559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13662:35:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121560,"nodeType":"EmitStatement","src":"13657:40:267"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":121561,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"14177:2:267","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":121562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"14177:9:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":121563,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"14190:9:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$112830_$","typeString":"type(library Constants)"}},"id":121564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ESTIMATION_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":112776,"src":"14190:28:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14177:41:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121571,"nodeType":"IfStatement","src":"14173:135:267","trueBody":{"id":121570,"nodeType":"Block","src":"14220:88:267","statements":[{"expression":{"arguments":[{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2072656c6179206d657373616765","id":121567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14245:47:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_c31d7113cd2cbba5d595fec2c0ea3cff3ab3bbe5f2eb02ef2bc82397a0578288","typeString":"literal_string \"CrossDomainMessenger: failed to relay message\""},"value":"CrossDomainMessenger: failed to relay message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c31d7113cd2cbba5d595fec2c0ea3cff3ab3bbe5f2eb02ef2bc82397a0578288","typeString":"literal_string \"CrossDomainMessenger: failed to relay message\""}],"id":121566,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"14238:6:267","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":121568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14238:55:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121569,"nodeType":"ExpressionStatement","src":"14238:55:267"}]}},{"functionReturnParameters":121427,"id":121572,"nodeType":"Return","src":"14322:7:267"}]}},{"expression":{"id":121577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":121575,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"14349:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":121576,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121417,"src":"14368:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14349:26:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121578,"nodeType":"ExpressionStatement","src":"14349:26:267"},{"assignments":[121580],"declarations":[{"constant":false,"id":121580,"mutability":"mutable","name":"success","nameLocation":"14390:7:267","nodeType":"VariableDeclaration","scope":121640,"src":"14385:12:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":121579,"name":"bool","nodeType":"ElementaryTypeName","src":"14385:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":121591,"initialValue":{"arguments":[{"id":121583,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121419,"src":"14414:7:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":121587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":121584,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"14423:7:267","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":121585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14423:9:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":121586,"name":"RELAY_RESERVED_GAS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121289,"src":"14435:18:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"14423:30:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121588,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121421,"src":"14455:6:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121589,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121425,"src":"14463:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":121581,"name":"SafeCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":114740,"src":"14400:8:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCall_$114740_$","typeString":"type(library SafeCall)"}},"id":121582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":114694,"src":"14400:13:267","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (address,uint256,uint256,bytes memory) returns (bool)"}},"id":121590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14400:72:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14385:87:267"},{"expression":{"id":121595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":121592,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"14482:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":121593,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"14501:9:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$112830_$","typeString":"type(library Constants)"}},"id":121594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":112780,"src":"14501:27:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14482:46:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121596,"nodeType":"ExpressionStatement","src":"14482:46:267"},{"condition":{"id":121597,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121580,"src":"14543:7:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":121638,"nodeType":"Block","src":"14915:725:267","statements":[{"expression":{"id":121621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":121617,"name":"failedMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121313,"src":"14929:14:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121619,"indexExpression":{"id":121618,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"14944:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14929:29:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":121620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14961:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14929:36:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121622,"nodeType":"ExpressionStatement","src":"14929:36:267"},{"eventCall":{"arguments":[{"id":121624,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"15005:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":121623,"name":"FailedRelayedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121352,"src":"14984:20:267","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":121625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14984:35:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121626,"nodeType":"EmitStatement","src":"14979:40:267"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":121627,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"15499:2:267","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":121628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"origin","nodeType":"MemberAccess","src":"15499:9:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":121629,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"15512:9:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$112830_$","typeString":"type(library Constants)"}},"id":121630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ESTIMATION_ADDRESS","nodeType":"MemberAccess","referencedDeclaration":112776,"src":"15512:28:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15499:41:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121637,"nodeType":"IfStatement","src":"15495:135:267","trueBody":{"id":121636,"nodeType":"Block","src":"15542:88:267","statements":[{"expression":{"arguments":[{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a206661696c656420746f2072656c6179206d657373616765","id":121633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15567:47:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_c31d7113cd2cbba5d595fec2c0ea3cff3ab3bbe5f2eb02ef2bc82397a0578288","typeString":"literal_string \"CrossDomainMessenger: failed to relay message\""},"value":"CrossDomainMessenger: failed to relay message"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c31d7113cd2cbba5d595fec2c0ea3cff3ab3bbe5f2eb02ef2bc82397a0578288","typeString":"literal_string \"CrossDomainMessenger: failed to relay message\""}],"id":121632,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"15560:6:267","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":121634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15560:55:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121635,"nodeType":"ExpressionStatement","src":"15560:55:267"}]}}]},"id":121639,"nodeType":"IfStatement","src":"14539:1101:267","trueBody":{"id":121616,"nodeType":"Block","src":"14552:357:267","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":121599,"name":"successfulMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121302,"src":"14753:18:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121601,"indexExpression":{"id":121600,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"14772:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14753:33:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":121602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14790:5:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"14753:42:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":121598,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"14746:6:267","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":121604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14746:50:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121605,"nodeType":"ExpressionStatement","src":"14746:50:267"},{"expression":{"id":121610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":121606,"name":"successfulMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121302,"src":"14810:18:267","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bool_$","typeString":"mapping(bytes32 => bool)"}},"id":121608,"indexExpression":{"id":121607,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"14829:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14810:33:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":121609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14846:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14810:40:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121611,"nodeType":"ExpressionStatement","src":"14810:40:267"},{"eventCall":{"arguments":[{"id":121613,"name":"versionedHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121475,"src":"14884:13:267","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":121612,"name":"RelayedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121347,"src":"14869:14:267","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":121614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14869:29:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121615,"nodeType":"EmitStatement","src":"14864:34:267"}]}}]},"documentation":{"id":121413,"nodeType":"StructuredDocumentation","src":"9882:677:267","text":"@notice Relays a message that was sent by the other CrossDomainMessenger contract. Can only\n         be executed via cross-chain call from the other messenger OR if the message was\n         already received once and is currently being replayed.\n @param _nonce       Nonce of the message being relayed.\n @param _sender      Address of the user who sent the message.\n @param _target      Address that the message is targeted at.\n @param _value       ETH value to send with the message.\n @param _minGasLimit Minimum amount of gas that the message can be executed with.\n @param _message     Message to send to the target."},"functionSelector":"d764ad0b","implemented":true,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"10573:12:267","parameters":{"id":121426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121415,"mutability":"mutable","name":"_nonce","nameLocation":"10603:6:267","nodeType":"VariableDeclaration","scope":121641,"src":"10595:14:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121414,"name":"uint256","nodeType":"ElementaryTypeName","src":"10595:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121417,"mutability":"mutable","name":"_sender","nameLocation":"10627:7:267","nodeType":"VariableDeclaration","scope":121641,"src":"10619:15:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121416,"name":"address","nodeType":"ElementaryTypeName","src":"10619:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121419,"mutability":"mutable","name":"_target","nameLocation":"10652:7:267","nodeType":"VariableDeclaration","scope":121641,"src":"10644:15:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121418,"name":"address","nodeType":"ElementaryTypeName","src":"10644:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121421,"mutability":"mutable","name":"_value","nameLocation":"10677:6:267","nodeType":"VariableDeclaration","scope":121641,"src":"10669:14:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121420,"name":"uint256","nodeType":"ElementaryTypeName","src":"10669:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121423,"mutability":"mutable","name":"_minGasLimit","nameLocation":"10701:12:267","nodeType":"VariableDeclaration","scope":121641,"src":"10693:20:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121422,"name":"uint256","nodeType":"ElementaryTypeName","src":"10693:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121425,"mutability":"mutable","name":"_message","nameLocation":"10738:8:267","nodeType":"VariableDeclaration","scope":121641,"src":"10723:23:267","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":121424,"name":"bytes","nodeType":"ElementaryTypeName","src":"10723:5:267","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10585:167:267"},"returnParameters":{"id":121427,"nodeType":"ParameterList","parameters":[],"src":"10806:0:267"},"scope":121789,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":121658,"nodeType":"FunctionDefinition","src":"16033:250:267","nodes":[],"body":{"id":121657,"nodeType":"Block","src":"16097:186:267","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121648,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"16128:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":121649,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"16148:9:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$112830_$","typeString":"type(library Constants)"}},"id":121650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":112780,"src":"16148:27:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16128:47:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43726f7373446f6d61696e4d657373656e6765723a2078446f6d61696e4d65737361676553656e646572206973206e6f7420736574","id":121652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16177:55:267","typeDescriptions":{"typeIdentifier":"t_stringliteral_768d531e1f3a80f728b84893add7c857f15fef8ea757c4d86de650c12b79f398","typeString":"literal_string \"CrossDomainMessenger: xDomainMessageSender is not set\""},"value":"CrossDomainMessenger: xDomainMessageSender is not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_768d531e1f3a80f728b84893add7c857f15fef8ea757c4d86de650c12b79f398","typeString":"literal_string \"CrossDomainMessenger: xDomainMessageSender is not set\""}],"id":121647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16107:7:267","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16107:135:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121654,"nodeType":"ExpressionStatement","src":"16107:135:267"},{"expression":{"id":121655,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"16260:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":121646,"id":121656,"nodeType":"Return","src":"16253:23:267"}]},"documentation":{"id":121642,"nodeType":"StructuredDocumentation","src":"15652:376:267","text":"@notice Retrieves the address of the contract or wallet that initiated the currently\n         executing message on the other chain. Will throw an error if there is no message\n         currently being executed. Allows the recipient of a call to see who triggered it.\n @return Address of the sender of the currently executing message on the other chain."},"functionSelector":"6e296e45","implemented":true,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"16042:20:267","parameters":{"id":121643,"nodeType":"ParameterList","parameters":[],"src":"16062:2:267"},"returnParameters":{"id":121646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121658,"src":"16088:7:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121644,"name":"address","nodeType":"ElementaryTypeName","src":"16088:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16087:9:267"},"scope":121789,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":121668,"nodeType":"FunctionDefinition","src":"16586:108:267","nodes":[],"body":{"id":121667,"nodeType":"Block","src":"16656:38:267","nodes":[],"statements":[{"expression":{"id":121665,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121317,"src":"16673:14:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"functionReturnParameters":121664,"id":121666,"nodeType":"Return","src":"16666:21:267"}]},"documentation":{"id":121659,"nodeType":"StructuredDocumentation","src":"16289:292:267","text":"@notice Retrieves the address of the paired CrossDomainMessenger contract on the other chain\n         Public getter is legacy and will be removed in the future. Use `otherMessenger()` instead.\n @return CrossDomainMessenger contract on the other chain.\n @custom:legacy"},"functionSelector":"9fce812c","implemented":true,"kind":"function","modifiers":[],"name":"OTHER_MESSENGER","nameLocation":"16595:15:267","parameters":{"id":121660,"nodeType":"ParameterList","parameters":[],"src":"16610:2:267"},"returnParameters":{"id":121664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121668,"src":"16634:20:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":121662,"nodeType":"UserDefinedTypeName","pathNode":{"id":121661,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"16634:20:267"},"referencedDeclaration":121789,"src":"16634:20:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"16633:22:267"},"scope":121789,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":121681,"nodeType":"FunctionDefinition","src":"17015:134:267","nodes":[],"body":{"id":121680,"nodeType":"Block","src":"17069:80:267","nodes":[],"statements":[{"expression":{"arguments":[{"id":121676,"name":"msgNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121308,"src":"17116:8:267","typeDescriptions":{"typeIdentifier":"t_uint240","typeString":"uint240"}},{"id":121677,"name":"MESSAGE_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121265,"src":"17126:15:267","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint240","typeString":"uint240"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"expression":{"id":121674,"name":"Encoding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":113256,"src":"17086:8:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Encoding_$113256_$","typeString":"type(library Encoding)"}},"id":121675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encodeVersionedNonce","nodeType":"MemberAccess","referencedDeclaration":113100,"src":"17086:29:267","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint240_$_t_uint16_$returns$_t_uint256_$","typeString":"function (uint240,uint16) pure returns (uint256)"}},"id":121678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17086:56:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":121673,"id":121679,"nodeType":"Return","src":"17079:63:267"}]},"documentation":{"id":121669,"nodeType":"StructuredDocumentation","src":"16700:310:267","text":"@notice Retrieves the next message nonce. Message version will be added to the upper two\n         bytes of the message nonce. Message version allows us to treat messages as having\n         different structures.\n @return Nonce of the next message to be sent, with added message version."},"functionSelector":"ecc70428","implemented":true,"kind":"function","modifiers":[],"name":"messageNonce","nameLocation":"17024:12:267","parameters":{"id":121670,"nodeType":"ParameterList","parameters":[],"src":"17036:2:267"},"returnParameters":{"id":121673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121681,"src":"17060:7:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121671,"name":"uint256","nodeType":"ElementaryTypeName","src":"17060:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17059:9:267"},"scope":121789,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":121718,"nodeType":"FunctionDefinition","src":"17762:894:267","nodes":[],"body":{"id":121717,"nodeType":"Block","src":"17854:802:267","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121691,"name":"RELAY_CONSTANT_OVERHEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121269,"src":"17908:23:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":121694,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121684,"src":"17979:8:267","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":121695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"17979:15:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":121693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17972:6:267","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":121692,"name":"uint64","nodeType":"ElementaryTypeName","src":"17972:6:267","typeDescriptions":{}}},"id":121696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17972:23:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":121697,"name":"MIN_GAS_CALLDATA_OVERHEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121281,"src":"17998:25:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17972:51:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":121699,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17971:53:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17908:116:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":121703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121701,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121686,"src":"18075:12:267","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":121702,"name":"MIN_GAS_DYNAMIC_OVERHEAD_NUMERATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121273,"src":"18090:34:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"18075:49:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":121704,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18074:51:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":121705,"name":"MIN_GAS_DYNAMIC_OVERHEAD_DENOMINATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121277,"src":"18128:36:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"18074:90:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":121707,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18073:92:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17908:257:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":121709,"name":"RELAY_CALL_OVERHEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121285,"src":"18301:19:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17908:412:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":121711,"name":"RELAY_RESERVED_GAS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121289,"src":"18477:18:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17908:587:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":121713,"name":"_relayGasCheckBuffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121753,"src":"18627:20:267","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint64_$","typeString":"function () pure returns (uint64)"}},"id":121714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18627:22:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"17908:741:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":121690,"id":121716,"nodeType":"Return","src":"17864:785:267"}]},"documentation":{"id":121682,"nodeType":"StructuredDocumentation","src":"17155:602:267","text":"@notice Computes the amount of gas required to guarantee that a given message will be\n         received on the other chain without running out of gas. Guaranteeing that a message\n         will not run out of gas is important because this ensures that a message can always\n         be replayed on the other chain if it fails to execute completely.\n @param _message     Message to compute the amount of required gas for.\n @param _minGasLimit Minimum desired gas limit when message goes to target.\n @return Amount of gas required to guarantee message receipt."},"functionSelector":"b28ade25","implemented":true,"kind":"function","modifiers":[],"name":"baseGas","nameLocation":"17771:7:267","parameters":{"id":121687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121684,"mutability":"mutable","name":"_message","nameLocation":"17794:8:267","nodeType":"VariableDeclaration","scope":121718,"src":"17779:23:267","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":121683,"name":"bytes","nodeType":"ElementaryTypeName","src":"17779:5:267","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":121686,"mutability":"mutable","name":"_minGasLimit","nameLocation":"17811:12:267","nodeType":"VariableDeclaration","scope":121718,"src":"17804:19:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":121685,"name":"uint32","nodeType":"ElementaryTypeName","src":"17804:6:267","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"17778:46:267"},"returnParameters":{"id":121690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121718,"src":"17846:6:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121688,"name":"uint64","nodeType":"ElementaryTypeName","src":"17846:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"17845:8:267"},"scope":121789,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":121745,"nodeType":"FunctionDefinition","src":"18772:636:267","nodes":[],"body":{"id":121744,"nodeType":"Block","src":"18873:535:267","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121727,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"19257:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":121730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19285:1:267","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":121729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19277:7:267","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121728,"name":"address","nodeType":"ElementaryTypeName","src":"19277:7:267","typeDescriptions":{}}},"id":121731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19277:10:267","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19257:30:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":121739,"nodeType":"IfStatement","src":"19253:107:267","trueBody":{"id":121738,"nodeType":"Block","src":"19289:71:267","statements":[{"expression":{"id":121736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":121733,"name":"xDomainMsgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121305,"src":"19303:16:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":121734,"name":"Constants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112830,"src":"19322:9:267","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Constants_$112830_$","typeString":"type(library Constants)"}},"id":121735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"DEFAULT_L2_SENDER","nodeType":"MemberAccess","referencedDeclaration":112780,"src":"19322:27:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19303:46:267","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":121737,"nodeType":"ExpressionStatement","src":"19303:46:267"}]}},{"expression":{"id":121742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":121740,"name":"otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121317,"src":"19369:14:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":121741,"name":"_otherMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121722,"src":"19386:15:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"src":"19369:32:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"id":121743,"nodeType":"ExpressionStatement","src":"19369:32:267"}]},"documentation":{"id":121719,"nodeType":"StructuredDocumentation","src":"18662:105:267","text":"@notice Initializer.\n @param _otherMessenger CrossDomainMessenger contract on the other chain."},"implemented":true,"kind":"function","modifiers":[{"id":121725,"kind":"modifierInvocation","modifierName":{"id":121724,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":47688,"src":"18856:16:267"},"nodeType":"ModifierInvocation","src":"18856:16:267"}],"name":"__CrossDomainMessenger_init","nameLocation":"18781:27:267","parameters":{"id":121723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121722,"mutability":"mutable","name":"_otherMessenger","nameLocation":"18830:15:267","nodeType":"VariableDeclaration","scope":121745,"src":"18809:36:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":121721,"nodeType":"UserDefinedTypeName","pathNode":{"id":121720,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"18809:20:267"},"referencedDeclaration":121789,"src":"18809:20:267","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"18808:38:267"},"returnParameters":{"id":121726,"nodeType":"ParameterList","parameters":[],"src":"18873:0:267"},"scope":121789,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":121753,"nodeType":"FunctionDefinition","src":"19557:117:267","nodes":[],"body":{"id":121752,"nodeType":"Block","src":"19628:46:267","nodes":[],"statements":[{"expression":{"id":121750,"name":"RELAY_GAS_CHECK_BUFFER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121293,"src":"19645:22:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":121749,"id":121751,"nodeType":"Return","src":"19638:29:267"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_relayGasCheckBuffer","nameLocation":"19566:20:267","parameters":{"id":121746,"nodeType":"ParameterList","parameters":[],"src":"19586:2:267"},"returnParameters":{"id":121749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121753,"src":"19620:6:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121747,"name":"uint64","nodeType":"ElementaryTypeName","src":"19620:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"19619:8:267"},"scope":121789,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":121765,"nodeType":"FunctionDefinition","src":"20161:106:267","nodes":[],"documentation":{"id":121754,"nodeType":"StructuredDocumentation","src":"19680:476:267","text":"@notice Sends a low-level message to the other messenger. Needs to be implemented by child\n         contracts because the logic for this depends on the network where the messenger is\n         being deployed.\n @param _to       Recipient of the message on the other chain.\n @param _gasLimit Minimum gas limit the message can be executed with.\n @param _value    Amount of ETH to send with the message.\n @param _data     Message data."},"implemented":false,"kind":"function","modifiers":[],"name":"_sendMessage","nameLocation":"20170:12:267","parameters":{"id":121763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121756,"mutability":"mutable","name":"_to","nameLocation":"20191:3:267","nodeType":"VariableDeclaration","scope":121765,"src":"20183:11:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121755,"name":"address","nodeType":"ElementaryTypeName","src":"20183:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121758,"mutability":"mutable","name":"_gasLimit","nameLocation":"20203:9:267","nodeType":"VariableDeclaration","scope":121765,"src":"20196:16:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":121757,"name":"uint64","nodeType":"ElementaryTypeName","src":"20196:6:267","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":121760,"mutability":"mutable","name":"_value","nameLocation":"20222:6:267","nodeType":"VariableDeclaration","scope":121765,"src":"20214:14:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121759,"name":"uint256","nodeType":"ElementaryTypeName","src":"20214:7:267","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121762,"mutability":"mutable","name":"_data","nameLocation":"20243:5:267","nodeType":"VariableDeclaration","scope":121765,"src":"20230:18:267","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121761,"name":"bytes","nodeType":"ElementaryTypeName","src":"20230:5:267","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20182:67:267"},"returnParameters":{"id":121764,"nodeType":"ParameterList","parameters":[],"src":"20266:0:267"},"scope":121789,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":121771,"nodeType":"FunctionDefinition","src":"20576:66:267","nodes":[],"documentation":{"id":121766,"nodeType":"StructuredDocumentation","src":"20273:298:267","text":"@notice Checks whether the message is coming from the other messenger. Implemented by child\n         contracts because the logic for this depends on the network where the messenger is\n         being deployed.\n @return Whether the message is coming from the other messenger."},"implemented":false,"kind":"function","modifiers":[],"name":"_isOtherMessenger","nameLocation":"20585:17:267","parameters":{"id":121767,"nodeType":"ParameterList","parameters":[],"src":"20602:2:267"},"returnParameters":{"id":121770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121769,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121771,"src":"20636:4:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":121768,"name":"bool","nodeType":"ElementaryTypeName","src":"20636:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20635:6:267"},"scope":121789,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":121779,"nodeType":"FunctionDefinition","src":"21205:79:267","nodes":[],"documentation":{"id":121772,"nodeType":"StructuredDocumentation","src":"20648:552:267","text":"@notice Checks whether a given call target is a system address that could cause the\n         messenger to peform an unsafe action. This is NOT a mechanism for blocking user\n         addresses. This is ONLY used to prevent the execution of messages to specific\n         system addresses that could cause security issues, e.g., having the\n         CrossDomainMessenger send messages to itself.\n @param _target Address of the contract to check.\n @return Whether or not the address is an unsafe system address."},"implemented":false,"kind":"function","modifiers":[],"name":"_isUnsafeTarget","nameLocation":"21214:15:267","parameters":{"id":121775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121774,"mutability":"mutable","name":"_target","nameLocation":"21238:7:267","nodeType":"VariableDeclaration","scope":121779,"src":"21230:15:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121773,"name":"address","nodeType":"ElementaryTypeName","src":"21230:7:267","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21229:17:267"},"returnParameters":{"id":121778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121779,"src":"21278:4:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":121776,"name":"bool","nodeType":"ElementaryTypeName","src":"21278:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21277:6:267"},"scope":121789,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":121788,"nodeType":"FunctionDefinition","src":"21567:82:267","nodes":[],"body":{"id":121787,"nodeType":"Block","src":"21620:29:267","nodes":[],"statements":[{"expression":{"hexValue":"66616c7365","id":121785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21637:5:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":121784,"id":121786,"nodeType":"Return","src":"21630:12:267"}]},"documentation":{"id":121780,"nodeType":"StructuredDocumentation","src":"21290:272:267","text":"@notice This function should return true if the contract is paused.\n         On L1 this function will check the SuperchainConfig for its paused status.\n         On L2 this function should be a no-op.\n @return Whether or not the contract is paused."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"21576:6:267","parameters":{"id":121781,"nodeType":"ParameterList","parameters":[],"src":"21582:2:267"},"returnParameters":{"id":121784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121788,"src":"21614:4:267","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":121782,"name":"bool","nodeType":"ElementaryTypeName","src":"21614:4:267","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21613:6:267"},"scope":121789,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":121256,"name":"CrossDomainMessengerLegacySpacer0","nodeType":"IdentifierPath","referencedDeclaration":121213,"src":"3729:33:267"},"id":121257,"nodeType":"InheritanceSpecifier","src":"3729:33:267"},{"baseName":{"id":121258,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":47725,"src":"3768:13:267"},"id":121259,"nodeType":"InheritanceSpecifier","src":"3768:13:267"},{"baseName":{"id":121260,"name":"CrossDomainMessengerLegacySpacer1","nodeType":"IdentifierPath","referencedDeclaration":121254,"src":"3787:33:267"},"id":121261,"nodeType":"InheritanceSpecifier","src":"3787:33:267"}],"canonicalName":"CrossDomainMessenger","contractDependencies":[],"contractKind":"contract","documentation":{"id":121255,"nodeType":"StructuredDocumentation","src":"3064:619:267","text":"@custom:upgradeable\n @title CrossDomainMessenger\n @notice CrossDomainMessenger is a base contract that provides the core logic for the L1 and L2\n         cross-chain messenger contracts. It's designed to be a universal interface that only\n         needs to be extended slightly to provide low-level message passing functionality on each\n         chain it's deployed on. Currently only designed for message passing between two paired\n         chains and does not support one-to-many interactions.\n         Any changes to this contract MUST result in a semver bump for contracts that inherit it."},"fullyImplemented":false,"linearizedBaseContracts":[121789,121254,47725,121213],"name":"CrossDomainMessenger","nameLocation":"3701:20:267","scope":121790,"usedErrors":[]}],"license":"MIT"},"id":267}