{"abi":[{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"OTHER_BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"bridgeERC721","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"bridgeERC721To","inputs":[{"name":"_localToken","type":"address","internalType":"address"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"messenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract CrossDomainMessenger"}],"stateMutability":"view"},{"type":"function","name":"otherBridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract StandardBridge"}],"stateMutability":"view"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"ERC721BridgeFinalized","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ERC721BridgeInitiated","inputs":[{"name":"localToken","type":"address","indexed":true,"internalType":"address"},{"name":"remoteToken","type":"address","indexed":true,"internalType":"address"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":false,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"extraData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"MESSENGER()":"927ede2d","OTHER_BRIDGE()":"7f46ddb2","bridgeERC721(address,address,uint256,uint32,bytes)":"3687011a","bridgeERC721To(address,address,address,uint256,uint32,bytes)":"aa557452","messenger()":"3cb747bf","otherBridge()":"c89701a2","paused()":"5c975abb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"localToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remoteToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"extraData\",\"type\":\"bytes\"}],\"name\":\"ERC721BridgeInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MESSENGER\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"OTHER_BRIDGE\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_localToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"bridgeERC721To\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messenger\",\"outputs\":[{\"internalType\":\"contract CrossDomainMessenger\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"otherBridge\",\"outputs\":[{\"internalType\":\"contract StandardBridge\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"params\":{\"extraData\":\"Extra data for use on the client-side.\",\"from\":\"Address that initiated bridging action.\",\"localToken\":\"Address of the token on this domain.\",\"remoteToken\":\"Address of the token on the remote domain.\",\"to\":\"Address to receive the token.\",\"tokenId\":\"ID of the specific token deposited.\"}},\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"params\":{\"extraData\":\"Extra data for use on the client-side.\",\"from\":\"Address that initiated bridging action.\",\"localToken\":\"Address of the token on this domain.\",\"remoteToken\":\"Address of the token on the remote domain.\",\"to\":\"Address to receive the token.\",\"tokenId\":\"ID of the specific token deposited.\"}}},\"kind\":\"dev\",\"methods\":{\"MESSENGER()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Messenger contract on this domain.\"}},\"OTHER_BRIDGE()\":{\"custom:legacy\":\"\",\"returns\":{\"_0\":\"Contract of the bridge on the other network.\"}},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"params\":{\"_extraData\":\"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.\",\"_localToken\":\"Address of the ERC721 on this domain.\",\"_minGasLimit\":\"Minimum gas limit for the bridge message on the other domain.\",\"_remoteToken\":\"Address of the ERC721 on the remote domain.\",\"_to\":\"Address to receive the token on the other domain.\",\"_tokenId\":\"Token ID to bridge.\"}},\"paused()\":{\"returns\":{\"_0\":\"Whether or not the contract is paused.\"}}},\"stateVariables\":{\"messenger\":{\"custom:network-specific\":\"\"},\"otherBridge\":{\"custom:network-specific\":\"\"},\"spacer_0_2_30\":{\"custom:spacer\":\"ERC721Bridge's initializer slot spacing\"}},\"title\":\"ERC721Bridge\",\"version\":1},\"userdoc\":{\"events\":{\"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge from the other network is finalized.\"},\"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)\":{\"notice\":\"Emitted when an ERC721 bridge to the other network is initiated.\"}},\"kind\":\"user\",\"methods\":{\"MESSENGER()\":{\"notice\":\"Legacy getter for messenger contract.         Public getter is legacy and will be removed in the future. Use `messenger` instead.\"},\"OTHER_BRIDGE()\":{\"notice\":\"Legacy getter for other bridge address.         Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\"},\"bridgeERC721(address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to the caller's account on the other chain. Note that         this function can only be called by EOAs. Smart contract wallets should use the         `bridgeERC721To` function after ensuring that the recipient address on the remote         chain exists. Also note that the current owner of the token on this chain must         approve this contract to operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2.\"},\"bridgeERC721To(address,address,address,uint256,uint32,bytes)\":{\"notice\":\"Initiates a bridge of an NFT to some recipient's account on the other chain. Note         that the current owner of the token on this chain must approve this contract to         operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2.\"},\"messenger()\":{\"notice\":\"Messenger contract on this domain.\"},\"otherBridge()\":{\"notice\":\"Contract of the bridge on the other network.\"},\"paused()\":{\"notice\":\"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op.\"}},\"notice\":\"ERC721Bridge is a base contract for the L1 and L2 ERC721 bridges.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/ERC721Bridge.sol\":\"ERC721Bridge\"},\"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/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol\":{\"keccak256\":\"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95\",\"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6\",\"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461\",\"dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"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/L1/SuperchainConfig.sol\":{\"keccak256\":\"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f\",\"dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB\"]},\"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/Storage.sol\":{\"keccak256\":\"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269\",\"dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK\"]},\"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\"]},\"src/universal/ERC721Bridge.sol\":{\"keccak256\":\"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb\",\"dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK\"]},\"src/universal/IOptimismMintableERC20.sol\":{\"keccak256\":\"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf\",\"dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC20.sol\":{\"keccak256\":\"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7\",\"dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa\"]},\"src/universal/StandardBridge.sol\":{\"keccak256\":\"0x5ff7c876bb5c2eb6651969f4b7eec64f87482e10de151100805705511572c1e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4fd5174801d75a2a1362729cb0f39c4ddf223896cfcc4b2a5f2c0f6ebca14064\",\"dweb:/ipfs/QmUCPkPfsZsA1uj76LtfAxPddZQEqvdcpSdpFdRhYtD9Fz\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeFinalized","anonymous":false},{"inputs":[{"internalType":"address","name":"localToken","type":"address","indexed":true},{"internalType":"address","name":"remoteToken","type":"address","indexed":true},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":false},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"bytes","name":"extraData","type":"bytes","indexed":false}],"type":"event","name":"ERC721BridgeInitiated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MESSENGER","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"OTHER_BRIDGE","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721"},{"inputs":[{"internalType":"address","name":"_localToken","type":"address"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"bridgeERC721To"},{"inputs":[],"stateMutability":"view","type":"function","name":"messenger","outputs":[{"internalType":"contract CrossDomainMessenger","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"otherBridge","outputs":[{"internalType":"contract StandardBridge","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"MESSENGER()":{"custom:legacy":"","returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"custom:legacy":"","returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"version":1},"userdoc":{"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract.         Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address.         Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that         this function can only be called by EOAs. Smart contract wallets should use the         `bridgeERC721To` function after ensuring that the recipient address on the remote         chain exists. Also note that the current owner of the token on this chain must         approve this contract to operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note         that the current owner of the token on this chain must approve this contract to         operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op."}},"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/ERC721Bridge.sol":"ERC721Bridge"},"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/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/draft-IERC20Permit.sol":{"keccak256":"0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329","urls":["bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95","dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29","urls":["bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6","dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"],"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/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0xc65c83c1039508fa7a42a09a3c6a32babd1c438ba4dbb23581255e784b5d5eed","urls":["bzz-raw://a1b3b38db0f76429db899909025e534c366415e9ea8b5ddc4c8901e6a7fc1461","dweb:/ipfs/QmYv1KxyHjLEky9JWNSsSfpGJbiCxFyzVFgTwQKpiqYGUg"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"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/L1/SuperchainConfig.sol":{"keccak256":"0x5fab874f980fe3e52c3398ddd25b655c56af0c98c15588b2ad9ebf30671d859d","urls":["bzz-raw://4e0aa613d38eceb621f8569fc714f521bc1f2df3d029552186ab3cdf2ee5d53f","dweb:/ipfs/QmZDzFxhTXLW79eohQbr1nghNh3oNC4CUfH7uMX8CsjVAB"],"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/Storage.sol":{"keccak256":"0x7ce27a05552aa69afa6b2ab6684dfe99f27366cf8ef2046baeb1fb62fff0022f","urls":["bzz-raw://a6a24f3ed56681720707a5ab0372fd67fcb1a4f6fb072c7140cda28bdb70f269","dweb:/ipfs/QmW9uTpUULV4xmP7A7MoBDeDhVfQgmJG5qVUFGtXxWpWWK"],"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"},"src/universal/ERC721Bridge.sol":{"keccak256":"0xea04387e26c6b3ba2ce5762166b7f790ccb068012f2cd5cc16c5734b47e1cb4f","urls":["bzz-raw://37a697c0886aa201672ded4196c3e5506903522183f27c9c3455ccdbd5e1c3cb","dweb:/ipfs/QmdxhxBFR8J2obRzuFCMtUirB4Fsc8CvKwNwR8DFc9SEGK"],"license":"MIT"},"src/universal/IOptimismMintableERC20.sol":{"keccak256":"0x6f8133b39efcbcbd5088f195dfacf1bedc3146508429c3865443909af735a04c","urls":["bzz-raw://adc36971e2e120458769f050428d9d2b0504516660345020c2521ee46e6d8abf","dweb:/ipfs/QmPbFusQkZgGKpU8Fv5JoqL4oVeJtM3yqnhRGLY9eZT5zZ"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC20.sol":{"keccak256":"0x18721f41a831ec39d47002e73ecc2aa3e6624f8d1ab7b9f25b53348e8b0765df","urls":["bzz-raw://2162fa7529a77b199a07f37fca26c778542f6c8805f0365f1ceef90c5cd3a3a7","dweb:/ipfs/QmaMmHJS52Bp95AGnrjh1zV7fLLqV3uAbFzkVLziMnPJYa"],"license":"MIT"},"src/universal/StandardBridge.sol":{"keccak256":"0x5ff7c876bb5c2eb6651969f4b7eec64f87482e10de151100805705511572c1e7","urls":["bzz-raw://4fd5174801d75a2a1362729cb0f39c4ddf223896cfcc4b2a5f2c0f6ebca14064","dweb:/ipfs/QmUCPkPfsZsA1uj76LtfAxPddZQEqvdcpSdpFdRhYtD9Fz"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":50145,"contract":"src/universal/ERC721Bridge.sol:ERC721Bridge","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":50148,"contract":"src/universal/ERC721Bridge.sol:ERC721Bridge","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":121807,"contract":"src/universal/ERC721Bridge.sol:ERC721Bridge","label":"spacer_0_2_30","offset":2,"slot":"0","type":"t_bytes30"},{"astId":121811,"contract":"src/universal/ERC721Bridge.sol:ERC721Bridge","label":"messenger","offset":0,"slot":"1","type":"t_contract(CrossDomainMessenger)121789"},{"astId":121815,"contract":"src/universal/ERC721Bridge.sol:ERC721Bridge","label":"otherBridge","offset":0,"slot":"2","type":"t_contract(StandardBridge)124636"},{"astId":121820,"contract":"src/universal/ERC721Bridge.sol:ERC721Bridge","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)46_storage"}],"types":{"t_array(t_uint256)46_storage":{"encoding":"inplace","label":"uint256[46]","numberOfBytes":"1472","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes30":{"encoding":"inplace","label":"bytes30","numberOfBytes":"30"},"t_contract(CrossDomainMessenger)121789":{"encoding":"inplace","label":"contract CrossDomainMessenger","numberOfBytes":"20"},"t_contract(StandardBridge)124636":{"encoding":"inplace","label":"contract StandardBridge","numberOfBytes":"20"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"userdoc":{"version":1,"kind":"user","methods":{"MESSENGER()":{"notice":"Legacy getter for messenger contract.         Public getter is legacy and will be removed in the future. Use `messenger` instead."},"OTHER_BRIDGE()":{"notice":"Legacy getter for other bridge address.         Public getter is legacy and will be removed in the future. Use `otherBridge` instead."},"bridgeERC721(address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to the caller's account on the other chain. Note that         this function can only be called by EOAs. Smart contract wallets should use the         `bridgeERC721To` function after ensuring that the recipient address on the remote         chain exists. Also note that the current owner of the token on this chain must         approve this contract to operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"notice":"Initiates a bridge of an NFT to some recipient's account on the other chain. Note         that the current owner of the token on this chain must approve this contract to         operate the NFT before it can be bridged.         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This         bridge only supports ERC721s originally deployed on Ethereum. Users will need to         wait for the one-week challenge period to elapse before their Optimism-native NFT         can be refunded on L2."},"messenger()":{"notice":"Messenger contract on this domain."},"otherBridge()":{"notice":"Contract of the bridge on the other network."},"paused()":{"notice":"This function should return true if the contract is paused.         On L1 this function will check the SuperchainConfig for its paused status.         On L2 this function should be a no-op."}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge from the other network is finalized."},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"notice":"Emitted when an ERC721 bridge to the other network is initiated."}},"notice":"ERC721Bridge is a base contract for the L1 and L2 ERC721 bridges."},"devdoc":{"version":1,"kind":"dev","methods":{"MESSENGER()":{"returns":{"_0":"Messenger contract on this domain."}},"OTHER_BRIDGE()":{"returns":{"_0":"Contract of the bridge on the other network."}},"bridgeERC721(address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_tokenId":"Token ID to bridge."}},"bridgeERC721To(address,address,address,uint256,uint32,bytes)":{"params":{"_extraData":"Optional data to forward to the other chain. Data supplied here will not                     be used to execute any code on the other chain and is only emitted as                     extra data for the convenience of off-chain tooling.","_localToken":"Address of the ERC721 on this domain.","_minGasLimit":"Minimum gas limit for the bridge message on the other domain.","_remoteToken":"Address of the ERC721 on the remote domain.","_to":"Address to receive the token on the other domain.","_tokenId":"Token ID to bridge."}},"paused()":{"returns":{"_0":"Whether or not the contract is paused."}}},"events":{"ERC721BridgeFinalized(address,address,address,address,uint256,bytes)":{"params":{"extraData":"Extra data for use on the client-side.","from":"Address that initiated bridging action.","localToken":"Address of the token on this domain.","remoteToken":"Address of the token on the remote domain.","to":"Address to receive the token.","tokenId":"ID of the specific token deposited."}},"ERC721BridgeInitiated(address,address,address,address,uint256,bytes)":{"params":{"extraData":"Extra data for use on the client-side.","from":"Address that initiated bridging action.","localToken":"Address of the token on this domain.","remoteToken":"Address of the token on the remote domain.","to":"Address to receive the token.","tokenId":"ID of the specific token deposited."}}},"title":"ERC721Bridge"},"ast":{"absolutePath":"src/universal/ERC721Bridge.sol","id":122020,"exportedSymbols":{"Address":[53880],"CrossDomainMessenger":[121789],"ERC721Bridge":[122019],"Initializable":[50289],"StandardBridge":[124636],"SuperchainConfig":[94870]},"nodeType":"SourceUnit","src":"32:9340:268","nodes":[{"id":121791,"nodeType":"PragmaDirective","src":"32:23:268","nodes":[],"literals":["solidity","0.8",".15"]},{"id":121793,"nodeType":"ImportDirective","src":"57:78:268","nodes":[],"absolutePath":"src/universal/CrossDomainMessenger.sol","file":"src/universal/CrossDomainMessenger.sol","nameLocation":"-1:-1:-1","scope":122020,"sourceUnit":121790,"symbolAliases":[{"foreign":{"id":121792,"name":"CrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121789,"src":"66:20:268","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121795,"nodeType":"ImportDirective","src":"136:66:268","nodes":[],"absolutePath":"src/universal/StandardBridge.sol","file":"src/universal/StandardBridge.sol","nameLocation":"-1:-1:-1","scope":122020,"sourceUnit":124637,"symbolAliases":[{"foreign":{"id":121794,"name":"StandardBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124636,"src":"145:14:268","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121797,"nodeType":"ImportDirective","src":"203:63:268","nodes":[],"absolutePath":"src/L1/SuperchainConfig.sol","file":"src/L1/SuperchainConfig.sol","nameLocation":"-1:-1:-1","scope":122020,"sourceUnit":94871,"symbolAliases":[{"foreign":{"id":121796,"name":"SuperchainConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":94870,"src":"212:16:268","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121799,"nodeType":"ImportDirective","src":"267:68:268","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"@openzeppelin/contracts/utils/Address.sol","nameLocation":"-1:-1:-1","scope":122020,"sourceUnit":53881,"symbolAliases":[{"foreign":{"id":121798,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53880,"src":"276:7:268","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":121801,"nodeType":"ImportDirective","src":"336:86:268","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":122020,"sourceUnit":50290,"symbolAliases":[{"foreign":{"id":121800,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50289,"src":"345:13:268","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122019,"nodeType":"ContractDefinition","src":"526:8845:268","nodes":[{"id":121807,"nodeType":"VariableDeclaration","src":"709:29:268","nodes":[],"constant":false,"documentation":{"id":121805,"nodeType":"StructuredDocumentation","src":"580:124:268","text":"@custom:spacer ERC721Bridge's initializer slot spacing\n @notice Spacer to avoid packing into the initializer slot"},"mutability":"mutable","name":"spacer_0_2_30","nameLocation":"725:13:268","scope":122019,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":121806,"name":"bytes30","nodeType":"ElementaryTypeName","src":"709:7:268","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"private"},{"id":121811,"nodeType":"VariableDeclaration","src":"829:37:268","nodes":[],"constant":false,"documentation":{"id":121808,"nodeType":"StructuredDocumentation","src":"745:79:268","text":"@notice Messenger contract on this domain.\n @custom:network-specific"},"functionSelector":"3cb747bf","mutability":"mutable","name":"messenger","nameLocation":"857:9:268","scope":122019,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":121810,"nodeType":"UserDefinedTypeName","pathNode":{"id":121809,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"829:20:268"},"referencedDeclaration":121789,"src":"829:20:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"public"},{"id":121815,"nodeType":"VariableDeclaration","src":"967:33:268","nodes":[],"constant":false,"documentation":{"id":121812,"nodeType":"StructuredDocumentation","src":"873:89:268","text":"@notice Contract of the bridge on the other network.\n @custom:network-specific"},"functionSelector":"c89701a2","mutability":"mutable","name":"otherBridge","nameLocation":"989:11:268","scope":122019,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"},"typeName":{"id":121814,"nodeType":"UserDefinedTypeName","pathNode":{"id":121813,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":124636,"src":"967:14:268"},"referencedDeclaration":124636,"src":"967:14:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"visibility":"public"},{"id":121820,"nodeType":"VariableDeclaration","src":"1105:25:268","nodes":[],"constant":false,"documentation":{"id":121816,"nodeType":"StructuredDocumentation","src":"1007:93:268","text":"@notice Reserve extra slots (to a total of 50) in the storage layout for future upgrades."},"mutability":"mutable","name":"__gap","nameLocation":"1125:5:268","scope":122019,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage","typeString":"uint256[46]"},"typeName":{"baseType":{"id":121817,"name":"uint256","nodeType":"ElementaryTypeName","src":"1105:7:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":121819,"length":{"hexValue":"3436","id":121818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1113:2:268","typeDescriptions":{"typeIdentifier":"t_rational_46_by_1","typeString":"int_const 46"},"value":"46"},"nodeType":"ArrayTypeName","src":"1105:11:268","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$46_storage_ptr","typeString":"uint256[46]"}},"visibility":"private"},{"id":121835,"nodeType":"EventDefinition","src":"1605:207:268","nodes":[],"anonymous":false,"documentation":{"id":121821,"nodeType":"StructuredDocumentation","src":"1137:463:268","text":"@notice Emitted when an ERC721 bridge to the other network is initiated.\n @param localToken  Address of the token on this domain.\n @param remoteToken Address of the token on the remote domain.\n @param from        Address that initiated bridging action.\n @param to          Address to receive the token.\n @param tokenId     ID of the specific token deposited.\n @param extraData   Extra data for use on the client-side."},"eventSelector":"b7460e2a880f256ebef3406116ff3eee0cee51ebccdc2a40698f87ebb2e9c1a5","name":"ERC721BridgeInitiated","nameLocation":"1611:21:268","parameters":{"id":121834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121823,"indexed":true,"mutability":"mutable","name":"localToken","nameLocation":"1658:10:268","nodeType":"VariableDeclaration","scope":121835,"src":"1642:26:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121822,"name":"address","nodeType":"ElementaryTypeName","src":"1642:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121825,"indexed":true,"mutability":"mutable","name":"remoteToken","nameLocation":"1694:11:268","nodeType":"VariableDeclaration","scope":121835,"src":"1678:27:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121824,"name":"address","nodeType":"ElementaryTypeName","src":"1678:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121827,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"1731:4:268","nodeType":"VariableDeclaration","scope":121835,"src":"1715:20:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121826,"name":"address","nodeType":"ElementaryTypeName","src":"1715:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121829,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"1753:2:268","nodeType":"VariableDeclaration","scope":121835,"src":"1745:10:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121828,"name":"address","nodeType":"ElementaryTypeName","src":"1745:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121831,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1773:7:268","nodeType":"VariableDeclaration","scope":121835,"src":"1765:15:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1765:7:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121833,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"1796:9:268","nodeType":"VariableDeclaration","scope":121835,"src":"1790:15:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121832,"name":"bytes","nodeType":"ElementaryTypeName","src":"1790:5:268","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1632:179:268"}},{"id":121850,"nodeType":"EventDefinition","src":"2288:207:268","nodes":[],"anonymous":false,"documentation":{"id":121836,"nodeType":"StructuredDocumentation","src":"1818:465:268","text":"@notice Emitted when an ERC721 bridge from the other network is finalized.\n @param localToken  Address of the token on this domain.\n @param remoteToken Address of the token on the remote domain.\n @param from        Address that initiated bridging action.\n @param to          Address to receive the token.\n @param tokenId     ID of the specific token deposited.\n @param extraData   Extra data for use on the client-side."},"eventSelector":"1f39bf6707b5d608453e0ae4c067b562bcc4c85c0f562ef5d2c774d2e7f131ac","name":"ERC721BridgeFinalized","nameLocation":"2294:21:268","parameters":{"id":121849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121838,"indexed":true,"mutability":"mutable","name":"localToken","nameLocation":"2341:10:268","nodeType":"VariableDeclaration","scope":121850,"src":"2325:26:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121837,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121840,"indexed":true,"mutability":"mutable","name":"remoteToken","nameLocation":"2377:11:268","nodeType":"VariableDeclaration","scope":121850,"src":"2361:27:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121839,"name":"address","nodeType":"ElementaryTypeName","src":"2361:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121842,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2414:4:268","nodeType":"VariableDeclaration","scope":121850,"src":"2398:20:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121841,"name":"address","nodeType":"ElementaryTypeName","src":"2398:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121844,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2436:2:268","nodeType":"VariableDeclaration","scope":121850,"src":"2428:10:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121843,"name":"address","nodeType":"ElementaryTypeName","src":"2428:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121846,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"2456:7:268","nodeType":"VariableDeclaration","scope":121850,"src":"2448:15:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121845,"name":"uint256","nodeType":"ElementaryTypeName","src":"2448:7:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121848,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2479:9:268","nodeType":"VariableDeclaration","scope":121850,"src":"2473:15:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121847,"name":"bytes","nodeType":"ElementaryTypeName","src":"2473:5:268","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2315:179:268"}},{"id":121875,"nodeType":"ModifierDefinition","src":"2589:257:268","nodes":[],"body":{"id":121874,"nodeType":"Block","src":"2616:230:268","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":121869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":121854,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2647:3:268","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"2647:10:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":121858,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121811,"src":"2669:9:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}],"id":121857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2661:7:268","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121856,"name":"address","nodeType":"ElementaryTypeName","src":"2661:7:268","typeDescriptions":{}}},"id":121859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2661:18:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2647:32:268","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":121861,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121811,"src":"2683:9:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"id":121862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":121658,"src":"2683:30:268","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":121863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2683:32:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":121866,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121815,"src":"2727:11:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}],"id":121865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2719:7:268","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121864,"name":"address","nodeType":"ElementaryTypeName","src":"2719:7:268","typeDescriptions":{}}},"id":121867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2719:20:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2683:56:268","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2647:92:268","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732314272696467653a2066756e6374696f6e2063616e206f6e6c792062652063616c6c65642066726f6d20746865206f7468657220627269646765","id":121870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2753:65:268","typeDescriptions":{"typeIdentifier":"t_stringliteral_df0f13ad04af6d094476535da5a5542b50d43fd989789d5fec09eaccb215a46d","typeString":"literal_string \"ERC721Bridge: function can only be called from the other bridge\""},"value":"ERC721Bridge: function can only be called from the other bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_df0f13ad04af6d094476535da5a5542b50d43fd989789d5fec09eaccb215a46d","typeString":"literal_string \"ERC721Bridge: function can only be called from the other bridge\""}],"id":121853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2626:7:268","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2626:202:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121872,"nodeType":"ExpressionStatement","src":"2626:202:268"},{"id":121873,"nodeType":"PlaceholderStatement","src":"2838:1:268"}]},"documentation":{"id":121851,"nodeType":"StructuredDocumentation","src":"2501:83:268","text":"@notice Ensures that the caller is a cross-chain message from the other bridge."},"name":"onlyOtherBridge","nameLocation":"2598:15:268","parameters":{"id":121852,"nodeType":"ParameterList","parameters":[],"src":"2613:2:268"},"virtual":false,"visibility":"internal"},{"id":121896,"nodeType":"FunctionDefinition","src":"3043:234:268","nodes":[],"body":{"id":121895,"nodeType":"Block","src":"3202:75:268","nodes":[],"statements":[{"expression":{"id":121889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":121887,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121811,"src":"3212:9:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":121888,"name":"_messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121879,"src":"3224:10:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"src":"3212:22:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"id":121890,"nodeType":"ExpressionStatement","src":"3212:22:268"},{"expression":{"id":121893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":121891,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121815,"src":"3244:11:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":121892,"name":"_otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121882,"src":"3258:12:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"src":"3244:26:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"id":121894,"nodeType":"ExpressionStatement","src":"3244:26:268"}]},"documentation":{"id":121876,"nodeType":"StructuredDocumentation","src":"2852:186:268","text":"@notice Initializer.\n @param _messenger   Contract of the CrossDomainMessenger on this network.\n @param _otherBridge Contract of the ERC721 bridge on the other network."},"implemented":true,"kind":"function","modifiers":[{"id":121885,"kind":"modifierInvocation","modifierName":{"id":121884,"name":"onlyInitializing","nodeType":"IdentifierPath","referencedDeclaration":50252,"src":"3181:16:268"},"nodeType":"ModifierInvocation","src":"3181:16:268"}],"name":"__ERC721Bridge_init","nameLocation":"3052:19:268","parameters":{"id":121883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121879,"mutability":"mutable","name":"_messenger","nameLocation":"3102:10:268","nodeType":"VariableDeclaration","scope":121896,"src":"3081:31:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":121878,"nodeType":"UserDefinedTypeName","pathNode":{"id":121877,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"3081:20:268"},"referencedDeclaration":121789,"src":"3081:20:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"},{"constant":false,"id":121882,"mutability":"mutable","name":"_otherBridge","nameLocation":"3137:12:268","nodeType":"VariableDeclaration","scope":121896,"src":"3122:27:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"},"typeName":{"id":121881,"nodeType":"UserDefinedTypeName","pathNode":{"id":121880,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":124636,"src":"3122:14:268"},"referencedDeclaration":124636,"src":"3122:14:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"visibility":"internal"}],"src":"3071:84:268"},"returnParameters":{"id":121886,"nodeType":"ParameterList","parameters":[],"src":"3202:0:268"},"scope":122019,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":121906,"nodeType":"FunctionDefinition","src":"3511:99:268","nodes":[],"body":{"id":121905,"nodeType":"Block","src":"3577:33:268","nodes":[],"statements":[{"expression":{"id":121903,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121811,"src":"3594:9:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"functionReturnParameters":121902,"id":121904,"nodeType":"Return","src":"3587:16:268"}]},"documentation":{"id":121897,"nodeType":"StructuredDocumentation","src":"3283:223:268","text":"@notice Legacy getter for messenger contract.\n         Public getter is legacy and will be removed in the future. Use `messenger` instead.\n @return Messenger contract on this domain.\n @custom:legacy"},"functionSelector":"927ede2d","implemented":true,"kind":"function","modifiers":[],"name":"MESSENGER","nameLocation":"3520:9:268","parameters":{"id":121898,"nodeType":"ParameterList","parameters":[],"src":"3529:2:268"},"returnParameters":{"id":121902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121906,"src":"3555:20:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"},"typeName":{"id":121900,"nodeType":"UserDefinedTypeName","pathNode":{"id":121899,"name":"CrossDomainMessenger","nodeType":"IdentifierPath","referencedDeclaration":121789,"src":"3555:20:268"},"referencedDeclaration":121789,"src":"3555:20:268","typeDescriptions":{"typeIdentifier":"t_contract$_CrossDomainMessenger_$121789","typeString":"contract CrossDomainMessenger"}},"visibility":"internal"}],"src":"3554:22:268"},"scope":122019,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":121916,"nodeType":"FunctionDefinition","src":"3858:98:268","nodes":[],"body":{"id":121915,"nodeType":"Block","src":"3921:35:268","nodes":[],"statements":[{"expression":{"id":121913,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121815,"src":"3938:11:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"functionReturnParameters":121912,"id":121914,"nodeType":"Return","src":"3931:18:268"}]},"documentation":{"id":121907,"nodeType":"StructuredDocumentation","src":"3616:237:268","text":"@notice Legacy getter for other bridge address.\n         Public getter is legacy and will be removed in the future. Use `otherBridge` instead.\n @return Contract of the bridge on the other network.\n @custom:legacy"},"functionSelector":"7f46ddb2","implemented":true,"kind":"function","modifiers":[],"name":"OTHER_BRIDGE","nameLocation":"3867:12:268","parameters":{"id":121908,"nodeType":"ParameterList","parameters":[],"src":"3879:2:268"},"returnParameters":{"id":121912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121916,"src":"3905:14:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"},"typeName":{"id":121910,"nodeType":"UserDefinedTypeName","pathNode":{"id":121909,"name":"StandardBridge","nodeType":"IdentifierPath","referencedDeclaration":124636,"src":"3905:14:268"},"referencedDeclaration":124636,"src":"3905:14:268","typeDescriptions":{"typeIdentifier":"t_contract$_StandardBridge_$124636","typeString":"contract StandardBridge"}},"visibility":"internal"}],"src":"3904:16:268"},"scope":122019,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":121925,"nodeType":"FunctionDefinition","src":"4239:82:268","nodes":[],"body":{"id":121924,"nodeType":"Block","src":"4292:29:268","nodes":[],"statements":[{"expression":{"hexValue":"66616c7365","id":121922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4309:5:268","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":121921,"id":121923,"nodeType":"Return","src":"4302:12:268"}]},"documentation":{"id":121917,"nodeType":"StructuredDocumentation","src":"3962:272:268","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":"4248:6:268","parameters":{"id":121918,"nodeType":"ParameterList","parameters":[],"src":"4254:2:268"},"returnParameters":{"id":121921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":121925,"src":"4286:4:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":121919,"name":"bool","nodeType":"ElementaryTypeName","src":"4286:4:268","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4285:6:268"},"scope":122019,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":121962,"nodeType":"FunctionDefinition","src":"5688:971:268","nodes":[],"body":{"id":121961,"nodeType":"Block","src":"5886:773:268","nodes":[],"statements":[{"expression":{"arguments":[{"id":121945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6452:31:268","subExpression":{"arguments":[{"expression":{"id":121942,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6472:3:268","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6472:10:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":121940,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53880,"src":"6453:7:268","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$53880_$","typeString":"type(library Address)"}},"id":121941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":53603,"src":"6453:18:268","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":121944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6453:30:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732314272696467653a206163636f756e74206973206e6f742065787465726e616c6c79206f776e6564","id":121946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6485:47:268","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d3a923eccbf32b3d18d8c9f139f87d6a5238b7a7cbbb6d2cd771b61dd955581","typeString":"literal_string \"ERC721Bridge: account is not externally owned\""},"value":"ERC721Bridge: account is not externally owned"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5d3a923eccbf32b3d18d8c9f139f87d6a5238b7a7cbbb6d2cd771b61dd955581","typeString":"literal_string \"ERC721Bridge: account is not externally owned\""}],"id":121939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6444:7:268","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6444:89:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121948,"nodeType":"ExpressionStatement","src":"6444:89:268"},{"expression":{"arguments":[{"id":121950,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121928,"src":"6566:11:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121951,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121930,"src":"6579:12:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":121952,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6593:3:268","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6593:10:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":121954,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6605:3:268","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"6605:10:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121956,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121932,"src":"6617:8:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121957,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121934,"src":"6627:12:268","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":121958,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121936,"src":"6641:10:268","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"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"}],"id":121949,"name":"_initiateBridgeERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122018,"src":"6544:21:268","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,uint32,bytes calldata)"}},"id":121959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6544:108:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121960,"nodeType":"ExpressionStatement","src":"6544:108:268"}]},"documentation":{"id":121926,"nodeType":"StructuredDocumentation","src":"4327:1356:268","text":"@notice Initiates a bridge of an NFT to the caller's account on the other chain. Note that\n         this function can only be called by EOAs. Smart contract wallets should use the\n         `bridgeERC721To` function after ensuring that the recipient address on the remote\n         chain exists. Also note that the current owner of the token on this chain must\n         approve this contract to operate the NFT before it can be bridged.\n         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This\n         bridge only supports ERC721s originally deployed on Ethereum. Users will need to\n         wait for the one-week challenge period to elapse before their Optimism-native NFT\n         can be refunded on L2.\n @param _localToken  Address of the ERC721 on this domain.\n @param _remoteToken Address of the ERC721 on the remote domain.\n @param _tokenId     Token ID to bridge.\n @param _minGasLimit Minimum gas limit for the bridge message on the other domain.\n @param _extraData   Optional data to forward to the other chain. Data supplied here will not\n                     be used to execute any code on the other chain and is only emitted as\n                     extra data for the convenience of off-chain tooling."},"functionSelector":"3687011a","implemented":true,"kind":"function","modifiers":[],"name":"bridgeERC721","nameLocation":"5697:12:268","parameters":{"id":121937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121928,"mutability":"mutable","name":"_localToken","nameLocation":"5727:11:268","nodeType":"VariableDeclaration","scope":121962,"src":"5719:19:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121927,"name":"address","nodeType":"ElementaryTypeName","src":"5719:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121930,"mutability":"mutable","name":"_remoteToken","nameLocation":"5756:12:268","nodeType":"VariableDeclaration","scope":121962,"src":"5748:20:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121929,"name":"address","nodeType":"ElementaryTypeName","src":"5748:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121932,"mutability":"mutable","name":"_tokenId","nameLocation":"5786:8:268","nodeType":"VariableDeclaration","scope":121962,"src":"5778:16:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121931,"name":"uint256","nodeType":"ElementaryTypeName","src":"5778:7:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121934,"mutability":"mutable","name":"_minGasLimit","nameLocation":"5811:12:268","nodeType":"VariableDeclaration","scope":121962,"src":"5804:19:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":121933,"name":"uint32","nodeType":"ElementaryTypeName","src":"5804:6:268","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":121936,"mutability":"mutable","name":"_extraData","nameLocation":"5848:10:268","nodeType":"VariableDeclaration","scope":121962,"src":"5833:25:268","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":121935,"name":"bytes","nodeType":"ElementaryTypeName","src":"5833:5:268","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:155:268"},"returnParameters":{"id":121938,"nodeType":"ParameterList","parameters":[],"src":"5886:0:268"},"scope":122019,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":122000,"nodeType":"FunctionDefinition","src":"7885:428:268","nodes":[],"body":{"id":121999,"nodeType":"Block","src":"8106:207:268","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":121984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":121979,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121969,"src":"8124:3:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":121982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8139:1:268","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":121981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8131:7:268","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":121980,"name":"address","nodeType":"ElementaryTypeName","src":"8131:7:268","typeDescriptions":{}}},"id":121983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8131:10:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8124:17:268","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552433732314272696467653a206e667420726563697069656e742063616e6e6f742062652061646472657373283029","id":121985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8143:50:268","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8e162591879310887e00ebb8c0dcee8006715baeadceb4b6960b476abc5a186","typeString":"literal_string \"ERC721Bridge: nft recipient cannot be address(0)\""},"value":"ERC721Bridge: nft recipient cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c8e162591879310887e00ebb8c0dcee8006715baeadceb4b6960b476abc5a186","typeString":"literal_string \"ERC721Bridge: nft recipient cannot be address(0)\""}],"id":121978,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8116:7:268","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":121986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8116:78:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121987,"nodeType":"ExpressionStatement","src":"8116:78:268"},{"expression":{"arguments":[{"id":121989,"name":"_localToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121965,"src":"8227:11:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121990,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121967,"src":"8240:12:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":121991,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8254:3:268","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":121992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"8254:10:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121993,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121969,"src":"8266:3:268","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":121994,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121971,"src":"8271:8:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":121995,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121973,"src":"8281:12:268","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":121996,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121975,"src":"8295:10:268","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"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"}],"id":121988,"name":"_initiateBridgeERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122018,"src":"8205:21:268","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint32_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,uint32,bytes calldata)"}},"id":121997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8205:101:268","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":121998,"nodeType":"ExpressionStatement","src":"8205:101:268"}]},"documentation":{"id":121963,"nodeType":"StructuredDocumentation","src":"6665:1215:268","text":"@notice Initiates a bridge of an NFT to some recipient's account on the other chain. Note\n         that the current owner of the token on this chain must approve this contract to\n         operate the NFT before it can be bridged.\n         **WARNING**: Do not bridge an ERC721 that was originally deployed on Optimism. This\n         bridge only supports ERC721s originally deployed on Ethereum. Users will need to\n         wait for the one-week challenge period to elapse before their Optimism-native NFT\n         can be refunded on L2.\n @param _localToken  Address of the ERC721 on this domain.\n @param _remoteToken Address of the ERC721 on the remote domain.\n @param _to          Address to receive the token on the other domain.\n @param _tokenId     Token ID to bridge.\n @param _minGasLimit Minimum gas limit for the bridge message on the other domain.\n @param _extraData   Optional data to forward to the other chain. Data supplied here will not\n                     be used to execute any code on the other chain and is only emitted as\n                     extra data for the convenience of off-chain tooling."},"functionSelector":"aa557452","implemented":true,"kind":"function","modifiers":[],"name":"bridgeERC721To","nameLocation":"7894:14:268","parameters":{"id":121976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121965,"mutability":"mutable","name":"_localToken","nameLocation":"7926:11:268","nodeType":"VariableDeclaration","scope":122000,"src":"7918:19:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121964,"name":"address","nodeType":"ElementaryTypeName","src":"7918:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121967,"mutability":"mutable","name":"_remoteToken","nameLocation":"7955:12:268","nodeType":"VariableDeclaration","scope":122000,"src":"7947:20:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121966,"name":"address","nodeType":"ElementaryTypeName","src":"7947:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121969,"mutability":"mutable","name":"_to","nameLocation":"7985:3:268","nodeType":"VariableDeclaration","scope":122000,"src":"7977:11:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121968,"name":"address","nodeType":"ElementaryTypeName","src":"7977:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":121971,"mutability":"mutable","name":"_tokenId","nameLocation":"8006:8:268","nodeType":"VariableDeclaration","scope":122000,"src":"7998:16:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121970,"name":"uint256","nodeType":"ElementaryTypeName","src":"7998:7:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":121973,"mutability":"mutable","name":"_minGasLimit","nameLocation":"8031:12:268","nodeType":"VariableDeclaration","scope":122000,"src":"8024:19:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":121972,"name":"uint32","nodeType":"ElementaryTypeName","src":"8024:6:268","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":121975,"mutability":"mutable","name":"_extraData","nameLocation":"8068:10:268","nodeType":"VariableDeclaration","scope":122000,"src":"8053:25:268","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":121974,"name":"bytes","nodeType":"ElementaryTypeName","src":"8053:5:268","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7908:176:268"},"returnParameters":{"id":121977,"nodeType":"ParameterList","parameters":[],"src":"8106:0:268"},"scope":122019,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":122018,"nodeType":"FunctionDefinition","src":"9106:263:268","nodes":[],"documentation":{"id":122001,"nodeType":"StructuredDocumentation","src":"8319:782:268","text":"@notice Internal function for initiating a token bridge to the other domain.\n @param _localToken  Address of the ERC721 on this domain.\n @param _remoteToken Address of the ERC721 on the remote domain.\n @param _from        Address of the sender on this domain.\n @param _to          Address to receive the token on the other domain.\n @param _tokenId     Token ID to bridge.\n @param _minGasLimit Minimum gas limit for the bridge message on the other domain.\n @param _extraData   Optional data to forward to the other domain. Data supplied here will\n                     not be used to execute any code on the other domain and is only emitted\n                     as extra data for the convenience of off-chain tooling."},"implemented":false,"kind":"function","modifiers":[],"name":"_initiateBridgeERC721","nameLocation":"9115:21:268","parameters":{"id":122016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122003,"mutability":"mutable","name":"_localToken","nameLocation":"9154:11:268","nodeType":"VariableDeclaration","scope":122018,"src":"9146:19:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122002,"name":"address","nodeType":"ElementaryTypeName","src":"9146:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122005,"mutability":"mutable","name":"_remoteToken","nameLocation":"9183:12:268","nodeType":"VariableDeclaration","scope":122018,"src":"9175:20:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122004,"name":"address","nodeType":"ElementaryTypeName","src":"9175:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122007,"mutability":"mutable","name":"_from","nameLocation":"9213:5:268","nodeType":"VariableDeclaration","scope":122018,"src":"9205:13:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122006,"name":"address","nodeType":"ElementaryTypeName","src":"9205:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122009,"mutability":"mutable","name":"_to","nameLocation":"9236:3:268","nodeType":"VariableDeclaration","scope":122018,"src":"9228:11:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122008,"name":"address","nodeType":"ElementaryTypeName","src":"9228:7:268","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122011,"mutability":"mutable","name":"_tokenId","nameLocation":"9257:8:268","nodeType":"VariableDeclaration","scope":122018,"src":"9249:16:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":122010,"name":"uint256","nodeType":"ElementaryTypeName","src":"9249:7:268","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":122013,"mutability":"mutable","name":"_minGasLimit","nameLocation":"9282:12:268","nodeType":"VariableDeclaration","scope":122018,"src":"9275:19:268","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":122012,"name":"uint32","nodeType":"ElementaryTypeName","src":"9275:6:268","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":122015,"mutability":"mutable","name":"_extraData","nameLocation":"9319:10:268","nodeType":"VariableDeclaration","scope":122018,"src":"9304:25:268","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":122014,"name":"bytes","nodeType":"ElementaryTypeName","src":"9304:5:268","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9136:199:268"},"returnParameters":{"id":122017,"nodeType":"ParameterList","parameters":[],"src":"9368:0:268"},"scope":122019,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":121803,"name":"Initializable","nodeType":"IdentifierPath","referencedDeclaration":50289,"src":"560:13:268"},"id":121804,"nodeType":"InheritanceSpecifier","src":"560:13:268"}],"canonicalName":"ERC721Bridge","contractDependencies":[],"contractKind":"contract","documentation":{"id":121802,"nodeType":"StructuredDocumentation","src":"424:102:268","text":"@title ERC721Bridge\n @notice ERC721Bridge is a base contract for the L1 and L2 ERC721 bridges."},"fullyImplemented":false,"linearizedBaseContracts":[122019,50289],"name":"ERC721Bridge","nameLocation":"544:12:268","scope":122020,"usedErrors":[]}],"license":"MIT"},"id":268}