{"abi":[{"type":"function","name":"sendMessage","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_minGasLimit","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"xDomainMessageSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"sendMessage(address,bytes,uint32)":"3dbb202b","xDomainMessageSender()":"6e296e45"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_minGasLimit\",\"type\":\"uint32\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"xDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridge.sol\":\"ICrossDomainMessenger\"},\"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\":{\"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridge.sol\":{\"keccak256\":\"0xbd0042d258b9f10397ccb81dea8fc2ee5d787e5e20bc6d03f28aa62948b8be87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2cdb3bbe78dbcf306b0a49b09f149e94ee6d1c22b16d3e2315d5b5e356dc9\",\"dweb:/ipfs/QmUcRuWcqqzDboPkVLLwdDGqj4vzc83DWp98cxsbZ1pixj\"]},\"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridgeStorage.sol\":{\"keccak256\":\"0xcca6b8186e534ad59a4878f6756334175cd50aca504c4139d21930fce77e5b00\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4a647cb71c35e41a53248db3c03a3d05ae169180465ee6947b48efd05afd4f5\",\"dweb:/ipfs/Qmf26yXFLCm8LmX4CKCoZ6wg6pGrnJmC3VYXhLFNHsA49i\"]},\"src/tokamak-contracts/USDC/L1/libraries/Address.sol\":{\"keccak256\":\"0x7a2becd0fc138ccd81f63dc85f73aa43ac9e16107b1060dfb9bfcbc46e089060\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9cfc1478aba538118b63dca8c71983d8d522b9ac97b96364ae27dc505b675a3\",\"dweb:/ipfs/QmQJnCRPn61XoPbDtykyGGcXS4YYydmMCxcWDymhBTG6JJ\"]},\"src/tokamak-contracts/USDC/L1/libraries/IERC20.sol\":{\"keccak256\":\"0x32fc81940e398095a082754088b43bcd70dda770a819586abc34fe8b387a42b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e2c83e48dbd6c4576400811d11eccbbe8dd44d652fdbaabab22b6fa1188bba\",\"dweb:/ipfs/QmZkWkDCQGwJH44EN61jov9MY34qg15WYtAvJYvkSJusx4\"]},\"src/tokamak-contracts/USDC/L1/libraries/IERC20Permit.sol\":{\"keccak256\":\"0x38fa29834657581cb1cdb1a18762bf9f730e7f68523d63fb181606f6bea7b173\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d2fa77781be9fa115f4837d80d431761f4af463c3dbd9d5b103a4e2dcf8eee1\",\"dweb:/ipfs/QmSHYchPnZBddirEAa5wnGUgFVnBfq6v9gVJ4wdrtYxsrc\"]},\"src/tokamak-contracts/USDC/L1/libraries/SafeERC20.sol\":{\"keccak256\":\"0x1b796214de865837b31080bf4286131652925a25e206d11c1b870ea267742bae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e527f3891bbc917742346bb4cc230893bbf68eb925d2f0c70b475f3b901b3dd\",\"dweb:/ipfs/QmNeJTgxQKX7zvRCGYA81SJRMjkxcNEdemFcqpZsWJ4q9s\"]},\"src/tokamak-contracts/USDC/libraries/Address.sol\":{\"keccak256\":\"0x1d1dd930cd27cde1a42984254a481d8edb615a93bcea1a1d188568018751c92f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f54df028fb62a3a9ffdedba1b9209391b985b229c7c37a28acf27d7b34478246\",\"dweb:/ipfs/QmdkP1fEBq8mieprvTCMcFTihDfBNzEXwRRAE9teJ8x4nx\"]},\"src/tokamak-contracts/USDC/universal/StandardBridgeStorage.sol\":{\"keccak256\":\"0xc61c40717e55341880ec5ba5c8f7366c7f7cbe045e55cd5bab643dbb60295bac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://237615182e4d1bb0447434f22e494222f5ff9ca97f2673d55b99918eb84bd723\",\"dweb:/ipfs/Qmd8GxkGfN3uhxLQygkQws1c7d47YA6K5p6PSFYM3m8bpT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"},{"internalType":"uint32","name":"_minGasLimit","type":"uint32"}],"stateMutability":"payable","type":"function","name":"sendMessage"},{"inputs":[],"stateMutability":"view","type":"function","name":"xDomainMessageSender","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridge.sol":"ICrossDomainMessenger"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridge.sol":{"keccak256":"0xbd0042d258b9f10397ccb81dea8fc2ee5d787e5e20bc6d03f28aa62948b8be87","urls":["bzz-raw://81e2cdb3bbe78dbcf306b0a49b09f149e94ee6d1c22b16d3e2315d5b5e356dc9","dweb:/ipfs/QmUcRuWcqqzDboPkVLLwdDGqj4vzc83DWp98cxsbZ1pixj"],"license":"MIT"},"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridgeStorage.sol":{"keccak256":"0xcca6b8186e534ad59a4878f6756334175cd50aca504c4139d21930fce77e5b00","urls":["bzz-raw://c4a647cb71c35e41a53248db3c03a3d05ae169180465ee6947b48efd05afd4f5","dweb:/ipfs/Qmf26yXFLCm8LmX4CKCoZ6wg6pGrnJmC3VYXhLFNHsA49i"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/Address.sol":{"keccak256":"0x7a2becd0fc138ccd81f63dc85f73aa43ac9e16107b1060dfb9bfcbc46e089060","urls":["bzz-raw://a9cfc1478aba538118b63dca8c71983d8d522b9ac97b96364ae27dc505b675a3","dweb:/ipfs/QmQJnCRPn61XoPbDtykyGGcXS4YYydmMCxcWDymhBTG6JJ"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/IERC20.sol":{"keccak256":"0x32fc81940e398095a082754088b43bcd70dda770a819586abc34fe8b387a42b4","urls":["bzz-raw://59e2c83e48dbd6c4576400811d11eccbbe8dd44d652fdbaabab22b6fa1188bba","dweb:/ipfs/QmZkWkDCQGwJH44EN61jov9MY34qg15WYtAvJYvkSJusx4"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/IERC20Permit.sol":{"keccak256":"0x38fa29834657581cb1cdb1a18762bf9f730e7f68523d63fb181606f6bea7b173","urls":["bzz-raw://4d2fa77781be9fa115f4837d80d431761f4af463c3dbd9d5b103a4e2dcf8eee1","dweb:/ipfs/QmSHYchPnZBddirEAa5wnGUgFVnBfq6v9gVJ4wdrtYxsrc"],"license":"MIT"},"src/tokamak-contracts/USDC/L1/libraries/SafeERC20.sol":{"keccak256":"0x1b796214de865837b31080bf4286131652925a25e206d11c1b870ea267742bae","urls":["bzz-raw://1e527f3891bbc917742346bb4cc230893bbf68eb925d2f0c70b475f3b901b3dd","dweb:/ipfs/QmNeJTgxQKX7zvRCGYA81SJRMjkxcNEdemFcqpZsWJ4q9s"],"license":"MIT"},"src/tokamak-contracts/USDC/libraries/Address.sol":{"keccak256":"0x1d1dd930cd27cde1a42984254a481d8edb615a93bcea1a1d188568018751c92f","urls":["bzz-raw://f54df028fb62a3a9ffdedba1b9209391b985b229c7c37a28acf27d7b34478246","dweb:/ipfs/QmdkP1fEBq8mieprvTCMcFTihDfBNzEXwRRAE9teJ8x4nx"],"license":"MIT"},"src/tokamak-contracts/USDC/universal/StandardBridgeStorage.sol":{"keccak256":"0xc61c40717e55341880ec5ba5c8f7366c7f7cbe045e55cd5bab643dbb60295bac","urls":["bzz-raw://237615182e4d1bb0447434f22e494222f5ff9ca97f2673d55b99918eb84bd723","dweb:/ipfs/Qmd8GxkGfN3uhxLQygkQws1c7d47YA6K5p6PSFYM3m8bpT"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridge.sol","id":250929,"exportedSymbols":{"Address":[121159],"ICrossDomainMessenger":[250630],"IERC20":[119876],"IL2USDCBridge":[250646],"L1UsdcBridge":[250928],"L1UsdcBridgeStorage":[250941],"SafeERC20":[120238]},"nodeType":"SourceUnit","src":"32:7658:251","nodes":[{"id":250607,"nodeType":"PragmaDirective","src":"32:23:251","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":250609,"nodeType":"ImportDirective","src":"57:49:251","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/IERC20.sol","file":"../libraries/IERC20.sol","nameLocation":"-1:-1:-1","scope":250929,"sourceUnit":119877,"symbolAliases":[{"foreign":{"id":250608,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119876,"src":"66:6:251","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":250611,"nodeType":"ImportDirective","src":"107:54:251","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/libraries/Address.sol","file":"../../libraries/Address.sol","nameLocation":"-1:-1:-1","scope":250929,"sourceUnit":121160,"symbolAliases":[{"foreign":{"id":250610,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121159,"src":"116:7:251","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":250613,"nodeType":"ImportDirective","src":"162:55:251","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/SafeERC20.sol","file":"../libraries/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":250929,"sourceUnit":120239,"symbolAliases":[{"foreign":{"id":250612,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120238,"src":"171:9:251","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":250615,"nodeType":"ImportDirective","src":"219:64:251","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1//tokamak-UsdcBridge/L1UsdcBridgeStorage.sol","file":"./L1UsdcBridgeStorage.sol","nameLocation":"-1:-1:-1","scope":250929,"sourceUnit":250942,"symbolAliases":[{"foreign":{"id":250614,"name":"L1UsdcBridgeStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250941,"src":"228:19:251","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":250630,"nodeType":"ContractDefinition","src":"285:210:251","nodes":[{"id":250620,"nodeType":"FunctionDefinition","src":"323:64:251","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"332:20:251","parameters":{"id":250616,"nodeType":"ParameterList","parameters":[],"src":"352:2:251"},"returnParameters":{"id":250619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250618,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":250620,"src":"378:7:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250617,"name":"address","nodeType":"ElementaryTypeName","src":"378:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"377:9:251"},"scope":250630,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":250629,"nodeType":"FunctionDefinition","src":"392:101:251","nodes":[],"functionSelector":"3dbb202b","implemented":false,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"401:11:251","parameters":{"id":250627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250622,"mutability":"mutable","name":"_target","nameLocation":"421:7:251","nodeType":"VariableDeclaration","scope":250629,"src":"413:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250621,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250624,"mutability":"mutable","name":"_message","nameLocation":"445:8:251","nodeType":"VariableDeclaration","scope":250629,"src":"430:23:251","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":250623,"name":"bytes","nodeType":"ElementaryTypeName","src":"430:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":250626,"mutability":"mutable","name":"_minGasLimit","nameLocation":"462:12:251","nodeType":"VariableDeclaration","scope":250629,"src":"455:19:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":250625,"name":"uint32","nodeType":"ElementaryTypeName","src":"455:6:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"412:63:251"},"returnParameters":{"id":250628,"nodeType":"ParameterList","parameters":[],"src":"492:0:251"},"scope":250630,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ICrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[250630],"name":"ICrossDomainMessenger","nameLocation":"295:21:251","scope":250929,"usedErrors":[]},{"id":250646,"nodeType":"ContractDefinition","src":"497:236:251","nodes":[{"id":250645,"nodeType":"FunctionDefinition","src":"527:204:251","nodes":[],"functionSelector":"662a633a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeDeposit","nameLocation":"536:15:251","parameters":{"id":250643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250632,"mutability":"mutable","name":"_l1Token","nameLocation":"569:8:251","nodeType":"VariableDeclaration","scope":250645,"src":"561:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250631,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250634,"mutability":"mutable","name":"_l2Token","nameLocation":"595:8:251","nodeType":"VariableDeclaration","scope":250645,"src":"587:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250633,"name":"address","nodeType":"ElementaryTypeName","src":"587:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250636,"mutability":"mutable","name":"_from","nameLocation":"621:5:251","nodeType":"VariableDeclaration","scope":250645,"src":"613:13:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250635,"name":"address","nodeType":"ElementaryTypeName","src":"613:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250638,"mutability":"mutable","name":"_to","nameLocation":"644:3:251","nodeType":"VariableDeclaration","scope":250645,"src":"636:11:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250637,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250640,"mutability":"mutable","name":"_amount","nameLocation":"665:7:251","nodeType":"VariableDeclaration","scope":250645,"src":"657:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250639,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250642,"mutability":"mutable","name":"_extraData","nameLocation":"697:10:251","nodeType":"VariableDeclaration","scope":250645,"src":"682:25:251","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":250641,"name":"bytes","nodeType":"ElementaryTypeName","src":"682:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"551:162:251"},"returnParameters":{"id":250644,"nodeType":"ParameterList","parameters":[],"src":"730:0:251"},"scope":250646,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL2USDCBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[250646],"name":"IL2USDCBridge","nameLocation":"507:13:251","scope":250929,"usedErrors":[]},{"id":250928,"nodeType":"ContractDefinition","src":"735:6954:251","nodes":[{"id":250652,"nodeType":"UsingForDirective","src":"786:27:251","nodes":[],"global":false,"libraryName":{"id":250649,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":120238,"src":"792:9:251"},"typeName":{"id":250651,"nodeType":"UserDefinedTypeName","pathNode":{"id":250650,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":119876,"src":"806:6:251"},"referencedDeclaration":119876,"src":"806:6:251","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$119876","typeString":"contract IERC20"}}},{"id":250667,"nodeType":"ModifierDefinition","src":"1129:146:251","nodes":[],"body":{"id":250666,"nodeType":"Block","src":"1148:127:251","nodes":[],"statements":[{"expression":{"arguments":[{"id":250661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1166:31:251","subExpression":{"arguments":[{"expression":{"id":250658,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1186:3:251","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":250659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1186:10:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":250656,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121159,"src":"1167:7:251","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$121159_$","typeString":"type(library Address)"}},"id":250657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":120882,"src":"1167:18:251","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":250660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1167:30:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c792062652063616c6c65642066726f6d20616e20454f41","id":250662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1199:57:251","typeDescriptions":{"typeIdentifier":"t_stringliteral_f81f6db803ded0832643d2e0ed6f9119d9e7648506a58072f4a7195269d8cce8","typeString":"literal_string \"StandardBridge: function can only be called from an EOA\""},"value":"StandardBridge: function can only be called from an EOA"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f81f6db803ded0832643d2e0ed6f9119d9e7648506a58072f4a7195269d8cce8","typeString":"literal_string \"StandardBridge: function can only be called from an EOA\""}],"id":250655,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1158:7:251","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":250663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1158:99:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250664,"nodeType":"ExpressionStatement","src":"1158:99:251"},{"id":250665,"nodeType":"PlaceholderStatement","src":"1267:1:251"}]},"documentation":{"id":250653,"nodeType":"StructuredDocumentation","src":"818:305:251","text":" @notice Only allow EOAs to call the functions. Note that this is not safe against contracts\n         calling code within their constructors, but also doesn't really matter since we're\n         just trying to prevent users accidentally depositing with smart contract wallets."},"name":"onlyEOA","nameLocation":"1138:7:251","parameters":{"id":250654,"nodeType":"ParameterList","parameters":[],"src":"1145:2:251"},"virtual":false,"visibility":"internal"},{"id":250688,"nodeType":"ModifierDefinition","src":"1384:264:251","nodes":[],"body":{"id":250687,"nodeType":"Block","src":"1411:237:251","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":250682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":250674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":250671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1442:3:251","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":250672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1442:10:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":250673,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121163,"src":"1456:9:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1442:23:251","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":250681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":250676,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121163,"src":"1491:9:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":250675,"name":"ICrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250630,"src":"1469:21:251","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossDomainMessenger_$250630_$","typeString":"type(contract ICrossDomainMessenger)"}},"id":250677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1469:32:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessenger_$250630","typeString":"contract ICrossDomainMessenger"}},"id":250678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":250620,"src":"1469:53:251","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":250679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1469:55:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":250680,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121165,"src":"1528:11:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1469:70:251","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1442:97:251","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c792062652063616c6c65642066726f6d20746865206f7468657220627269646765","id":250683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1553:67:251","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbc7005e6a766806113d4613be79beeb8d602af868fc04e2279ff0ca60009b99","typeString":"literal_string \"StandardBridge: function can only be called from the other bridge\""},"value":"StandardBridge: function can only be called from the other bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbc7005e6a766806113d4613be79beeb8d602af868fc04e2279ff0ca60009b99","typeString":"literal_string \"StandardBridge: function can only be called from the other bridge\""}],"id":250670,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1421:7:251","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":250684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1421:209:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250685,"nodeType":"ExpressionStatement","src":"1421:209:251"},{"id":250686,"nodeType":"PlaceholderStatement","src":"1640:1:251"}]},"documentation":{"id":250668,"nodeType":"StructuredDocumentation","src":"1281:98:251","text":" @notice Ensures that the caller is a cross-chain message from the other bridge."},"name":"onlyOtherBridge","nameLocation":"1393:15:251","parameters":{"id":250669,"nodeType":"ParameterList","parameters":[],"src":"1408:2:251"},"virtual":false,"visibility":"internal"},{"id":250692,"nodeType":"FunctionDefinition","src":"1654:17:251","nodes":[],"body":{"id":250691,"nodeType":"Block","src":"1668:3:251","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":250689,"nodeType":"ParameterList","parameters":[],"src":"1665:2:251"},"returnParameters":{"id":250690,"nodeType":"ParameterList","parameters":[],"src":"1668:0:251"},"scope":250928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":250707,"nodeType":"EventDefinition","src":"2124:199:251","nodes":[],"anonymous":false,"documentation":{"id":250693,"nodeType":"StructuredDocumentation","src":"1677:442:251","text":" @custom:legacy\n @notice Emitted whenever an ERC20 deposit is initiated.\n @param l1Token   Address of the token on L1.\n @param l2Token   Address of the corresponding token on L2.\n @param from      Address of the depositor.\n @param to        Address of the recipient on L2.\n @param amount    Amount of the ERC20 deposited.\n @param extraData Extra data attached to the deposit."},"eventSelector":"718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396","name":"ERC20DepositInitiated","nameLocation":"2130:21:251","parameters":{"id":250706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250695,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"2177:7:251","nodeType":"VariableDeclaration","scope":250707,"src":"2161:23:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250694,"name":"address","nodeType":"ElementaryTypeName","src":"2161:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250697,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"2210:7:251","nodeType":"VariableDeclaration","scope":250707,"src":"2194:23:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250696,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250699,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2243:4:251","nodeType":"VariableDeclaration","scope":250707,"src":"2227:20:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250698,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250701,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2265:2:251","nodeType":"VariableDeclaration","scope":250707,"src":"2257:10:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250700,"name":"address","nodeType":"ElementaryTypeName","src":"2257:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250703,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2285:6:251","nodeType":"VariableDeclaration","scope":250707,"src":"2277:14:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250702,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250705,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2307:9:251","nodeType":"VariableDeclaration","scope":250707,"src":"2301:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":250704,"name":"bytes","nodeType":"ElementaryTypeName","src":"2301:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2151:171:251"}},{"id":250722,"nodeType":"EventDefinition","src":"2783:202:251","nodes":[],"anonymous":false,"documentation":{"id":250708,"nodeType":"StructuredDocumentation","src":"2329:449:251","text":" @custom:legacy\n @notice Emitted whenever an ERC20 withdrawal is finalized.\n @param l1Token   Address of the token on L1.\n @param l2Token   Address of the corresponding token on L2.\n @param from      Address of the withdrawer.\n @param to        Address of the recipient on L1.\n @param amount    Amount of the ERC20 withdrawn.\n @param extraData Extra data attached to the withdrawal."},"eventSelector":"3ceee06c1e37648fcbb6ed52e17b3e1f275a1f8c7b22a84b2b84732431e046b3","name":"ERC20WithdrawalFinalized","nameLocation":"2789:24:251","parameters":{"id":250721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250710,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"2839:7:251","nodeType":"VariableDeclaration","scope":250722,"src":"2823:23:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250709,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250712,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"2872:7:251","nodeType":"VariableDeclaration","scope":250722,"src":"2856:23:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250711,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250714,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2905:4:251","nodeType":"VariableDeclaration","scope":250722,"src":"2889:20:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250713,"name":"address","nodeType":"ElementaryTypeName","src":"2889:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250716,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2927:2:251","nodeType":"VariableDeclaration","scope":250722,"src":"2919:10:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250715,"name":"address","nodeType":"ElementaryTypeName","src":"2919:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250718,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2947:6:251","nodeType":"VariableDeclaration","scope":250722,"src":"2939:14:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250717,"name":"uint256","nodeType":"ElementaryTypeName","src":"2939:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250720,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2969:9:251","nodeType":"VariableDeclaration","scope":250722,"src":"2963:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":250719,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2813:171:251"}},{"id":250751,"nodeType":"FunctionDefinition","src":"3644:338:251","nodes":[],"body":{"id":250750,"nodeType":"Block","src":"3865:117:251","nodes":[],"statements":[{"expression":{"arguments":[{"id":250739,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250725,"src":"3897:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250740,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250727,"src":"3907:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":250741,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3917:3:251","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":250742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3917:10:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":250743,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3929:3:251","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":250744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3929:10:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250745,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250729,"src":"3941:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":250746,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250731,"src":"3950:12:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":250747,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250733,"src":"3964:10:251","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":250738,"name":"_initiateERC20Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250927,"src":"3875:21:251","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":250748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3875:100:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250749,"nodeType":"ExpressionStatement","src":"3875:100:251"}]},"documentation":{"id":250723,"nodeType":"StructuredDocumentation","src":"2991:648:251","text":" @custom:legacy\n @notice Deposits some amount of ERC20 tokens into the sender's account on L2.\n @param _l1Token     Address of the L1 token being deposited.\n @param _l2Token     Address of the corresponding token on L2.\n @param _amount      Amount of the ERC20 to deposit.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData   Optional data to forward to L2. Data supplied here will not be used to\n                     execute any code on L2 and is only emitted as extra data for the\n                     convenience of off-chain tooling."},"functionSelector":"87087623","implemented":true,"kind":"function","modifiers":[{"id":250736,"kind":"modifierInvocation","modifierName":{"id":250735,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":250667,"src":"3853:7:251"},"nodeType":"ModifierInvocation","src":"3853:7:251"}],"name":"bridgeERC20","nameLocation":"3653:11:251","parameters":{"id":250734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250725,"mutability":"mutable","name":"_l1Token","nameLocation":"3682:8:251","nodeType":"VariableDeclaration","scope":250751,"src":"3674:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250724,"name":"address","nodeType":"ElementaryTypeName","src":"3674:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250727,"mutability":"mutable","name":"_l2Token","nameLocation":"3708:8:251","nodeType":"VariableDeclaration","scope":250751,"src":"3700:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250726,"name":"address","nodeType":"ElementaryTypeName","src":"3700:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250729,"mutability":"mutable","name":"_amount","nameLocation":"3734:7:251","nodeType":"VariableDeclaration","scope":250751,"src":"3726:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250728,"name":"uint256","nodeType":"ElementaryTypeName","src":"3726:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250731,"mutability":"mutable","name":"_minGasLimit","nameLocation":"3758:12:251","nodeType":"VariableDeclaration","scope":250751,"src":"3751:19:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":250730,"name":"uint32","nodeType":"ElementaryTypeName","src":"3751:6:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":250733,"mutability":"mutable","name":"_extraData","nameLocation":"3795:10:251","nodeType":"VariableDeclaration","scope":250751,"src":"3780:25:251","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":250732,"name":"bytes","nodeType":"ElementaryTypeName","src":"3780:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3664:147:251"},"returnParameters":{"id":250737,"nodeType":"ParameterList","parameters":[],"src":"3865:0:251"},"scope":250928,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":250779,"nodeType":"FunctionDefinition","src":"4696:338:251","nodes":[],"body":{"id":250778,"nodeType":"Block","src":"4924:110:251","nodes":[],"statements":[{"expression":{"arguments":[{"id":250768,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250754,"src":"4956:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250769,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250756,"src":"4966:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":250770,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4976:3:251","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":250771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4976:10:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250772,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250758,"src":"4988:3:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250773,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250760,"src":"4993:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":250774,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250762,"src":"5002:12:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":250775,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250764,"src":"5016:10:251","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":250767,"name":"_initiateERC20Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250927,"src":"4934:21:251","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":250776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4934:93:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250777,"nodeType":"ExpressionStatement","src":"4934:93:251"}]},"documentation":{"id":250752,"nodeType":"StructuredDocumentation","src":"3988:703:251","text":" @custom:legacy\n @notice Deposits some amount of ERC20 tokens into a target account on L2.\n @param _l1Token     Address of the L1 token being deposited.\n @param _l2Token     Address of the corresponding token on L2.\n @param _to          Address of the recipient on L2.\n @param _amount      Amount of the ERC20 to deposit.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData   Optional data to forward to L2. Data supplied here will not be used to\n                     execute any code on L2 and is only emitted as extra data for the\n                     convenience of off-chain tooling."},"functionSelector":"540abf73","implemented":true,"kind":"function","modifiers":[],"name":"bridgeERC20To","nameLocation":"4705:13:251","parameters":{"id":250765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250754,"mutability":"mutable","name":"_l1Token","nameLocation":"4736:8:251","nodeType":"VariableDeclaration","scope":250779,"src":"4728:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250753,"name":"address","nodeType":"ElementaryTypeName","src":"4728:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250756,"mutability":"mutable","name":"_l2Token","nameLocation":"4762:8:251","nodeType":"VariableDeclaration","scope":250779,"src":"4754:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250755,"name":"address","nodeType":"ElementaryTypeName","src":"4754:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250758,"mutability":"mutable","name":"_to","nameLocation":"4788:3:251","nodeType":"VariableDeclaration","scope":250779,"src":"4780:11:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250757,"name":"address","nodeType":"ElementaryTypeName","src":"4780:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250760,"mutability":"mutable","name":"_amount","nameLocation":"4809:7:251","nodeType":"VariableDeclaration","scope":250779,"src":"4801:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250759,"name":"uint256","nodeType":"ElementaryTypeName","src":"4801:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250762,"mutability":"mutable","name":"_minGasLimit","nameLocation":"4833:12:251","nodeType":"VariableDeclaration","scope":250779,"src":"4826:19:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":250761,"name":"uint32","nodeType":"ElementaryTypeName","src":"4826:6:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":250764,"mutability":"mutable","name":"_extraData","nameLocation":"4870:10:251","nodeType":"VariableDeclaration","scope":250779,"src":"4855:25:251","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":250763,"name":"bytes","nodeType":"ElementaryTypeName","src":"4855:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4718:168:251"},"returnParameters":{"id":250766,"nodeType":"ParameterList","parameters":[],"src":"4924:0:251"},"scope":250928,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":250835,"nodeType":"FunctionDefinition","src":"5499:529:251","nodes":[],"body":{"id":250834,"nodeType":"Block","src":"5797:231:251","nodes":[],"statements":[{"expression":{"id":250815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":250803,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250940,"src":"5807:8:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":250806,"indexExpression":{"id":250804,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250782,"src":"5816:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5807:18:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":250807,"indexExpression":{"id":250805,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250784,"src":"5826:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5807:28:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":250814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":250808,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250940,"src":"5838:8:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":250810,"indexExpression":{"id":250809,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250782,"src":"5847:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5838:18:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":250812,"indexExpression":{"id":250811,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250784,"src":"5857:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5838:28:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":250813,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250790,"src":"5869:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5838:38:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5807:69:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":250816,"nodeType":"ExpressionStatement","src":"5807:69:251"},{"expression":{"arguments":[{"id":250821,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250788,"src":"5916:3:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250822,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250790,"src":"5921:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":250818,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250782,"src":"5893:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":250817,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119876,"src":"5886:6:251","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$119876_$","typeString":"type(contract IERC20)"}},"id":250819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5886:16:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$119876","typeString":"contract IERC20"}},"id":250820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":119998,"src":"5886:29:251","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$119876_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$119876_$","typeString":"function (contract IERC20,address,uint256)"}},"id":250823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5886:43:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250824,"nodeType":"ExpressionStatement","src":"5886:43:251"},{"eventCall":{"arguments":[{"id":250826,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250782,"src":"5969:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250827,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250784,"src":"5979:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250828,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250786,"src":"5989:5:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250829,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250788,"src":"5996:3:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250830,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250790,"src":"6001:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":250831,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250792,"src":"6010:10:251","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_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":250825,"name":"ERC20WithdrawalFinalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250722,"src":"5944:24:251","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":250832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5944:77:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250833,"nodeType":"EmitStatement","src":"5939:82:251"}]},"documentation":{"id":250780,"nodeType":"StructuredDocumentation","src":"5040:454:251","text":" @custom:legacy\n @notice Finalizes a withdrawal of ERC20 tokens from L2.\n @param _l1Token   Address of the token on L1.\n @param _l2Token   Address of the corresponding token on L2.\n @param _from      Address of the withdrawer on L2.\n @param _to        Address of the recipient on L1.\n @param _amount    Amount of the ERC20 to withdraw.\n @param _extraData Optional data forwarded from L2."},"functionSelector":"a9f9e675","implemented":true,"kind":"function","modifiers":[{"id":250795,"kind":"modifierInvocation","modifierName":{"id":250794,"name":"onlyOtherBridge","nodeType":"IdentifierPath","referencedDeclaration":250688,"src":"5719:15:251"},"nodeType":"ModifierInvocation","src":"5719:15:251"},{"arguments":[{"id":250797,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250782,"src":"5754:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":250798,"kind":"modifierInvocation","modifierName":{"id":250796,"name":"onlyL1Usdc","nodeType":"IdentifierPath","referencedDeclaration":121182,"src":"5743:10:251"},"nodeType":"ModifierInvocation","src":"5743:20:251"},{"arguments":[{"id":250800,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250784,"src":"5783:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":250801,"kind":"modifierInvocation","modifierName":{"id":250799,"name":"onlyL2Usdc","nodeType":"IdentifierPath","referencedDeclaration":121195,"src":"5772:10:251"},"nodeType":"ModifierInvocation","src":"5772:20:251"}],"name":"finalizeERC20Withdrawal","nameLocation":"5508:23:251","parameters":{"id":250793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250782,"mutability":"mutable","name":"_l1Token","nameLocation":"5549:8:251","nodeType":"VariableDeclaration","scope":250835,"src":"5541:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250781,"name":"address","nodeType":"ElementaryTypeName","src":"5541:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250784,"mutability":"mutable","name":"_l2Token","nameLocation":"5575:8:251","nodeType":"VariableDeclaration","scope":250835,"src":"5567:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250783,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250786,"mutability":"mutable","name":"_from","nameLocation":"5601:5:251","nodeType":"VariableDeclaration","scope":250835,"src":"5593:13:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250785,"name":"address","nodeType":"ElementaryTypeName","src":"5593:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250788,"mutability":"mutable","name":"_to","nameLocation":"5624:3:251","nodeType":"VariableDeclaration","scope":250835,"src":"5616:11:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250787,"name":"address","nodeType":"ElementaryTypeName","src":"5616:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250790,"mutability":"mutable","name":"_amount","nameLocation":"5645:7:251","nodeType":"VariableDeclaration","scope":250835,"src":"5637:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250789,"name":"uint256","nodeType":"ElementaryTypeName","src":"5637:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250792,"mutability":"mutable","name":"_extraData","nameLocation":"5677:10:251","nodeType":"VariableDeclaration","scope":250835,"src":"5662:25:251","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":250791,"name":"bytes","nodeType":"ElementaryTypeName","src":"5662:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5531:162:251"},"returnParameters":{"id":250802,"nodeType":"ParameterList","parameters":[],"src":"5797:0:251"},"scope":250928,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":250847,"nodeType":"FunctionDefinition","src":"6220:101:251","nodes":[],"body":{"id":250846,"nodeType":"Block","src":"6277:44:251","nodes":[],"statements":[{"expression":{"arguments":[{"id":250843,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121165,"src":"6302:11:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":250842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6294:7:251","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":250841,"name":"address","nodeType":"ElementaryTypeName","src":"6294:7:251","typeDescriptions":{}}},"id":250844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6294:20:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":250840,"id":250845,"nodeType":"Return","src":"6287:27:251"}]},"documentation":{"id":250836,"nodeType":"StructuredDocumentation","src":"6034:181:251","text":" @custom:legacy\n @notice Retrieves the access of the corresponding L2 bridge contract.\n @return Address of the corresponding L2 bridge contract."},"functionSelector":"91c49bf8","implemented":true,"kind":"function","modifiers":[],"name":"l2TokenBridge","nameLocation":"6229:13:251","parameters":{"id":250837,"nodeType":"ParameterList","parameters":[],"src":"6242:2:251"},"returnParameters":{"id":250840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":250847,"src":"6268:7:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250838,"name":"address","nodeType":"ElementaryTypeName","src":"6268:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6267:9:251"},"scope":250928,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":250927,"nodeType":"FunctionDefinition","src":"6862:825:251","nodes":[],"body":{"id":250926,"nodeType":"Block","src":"7163:524:251","nodes":[],"statements":[{"expression":{"arguments":[{"id":250875,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250854,"src":"7207:5:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":250878,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7222:4:251","typeDescriptions":{"typeIdentifier":"t_contract$_L1UsdcBridge_$250928","typeString":"contract L1UsdcBridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_L1UsdcBridge_$250928","typeString":"contract L1UsdcBridge"}],"id":250877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7214:7:251","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":250876,"name":"address","nodeType":"ElementaryTypeName","src":"7214:7:251","typeDescriptions":{}}},"id":250879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7214:13:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250880,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250858,"src":"7229:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":250872,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250850,"src":"7180:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":250871,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119876,"src":"7173:6:251","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$119876_$","typeString":"type(contract IERC20)"}},"id":250873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7173:16:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$119876","typeString":"contract IERC20"}},"id":250874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":120025,"src":"7173:33:251","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$119876_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$119876_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":250881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7173:64:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250882,"nodeType":"ExpressionStatement","src":"7173:64:251"},{"expression":{"id":250895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":250883,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250940,"src":"7247:8:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":250886,"indexExpression":{"id":250884,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250850,"src":"7256:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7247:18:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":250887,"indexExpression":{"id":250885,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250852,"src":"7266:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7247:28:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":250894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":250888,"name":"deposits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250940,"src":"7278:8:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":250890,"indexExpression":{"id":250889,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250850,"src":"7287:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7278:18:251","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":250892,"indexExpression":{"id":250891,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250852,"src":"7297:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7278:28:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":250893,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250858,"src":"7309:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7278:38:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7247:69:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":250896,"nodeType":"ExpressionStatement","src":"7247:69:251"},{"expression":{"arguments":[{"id":250901,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121165,"src":"7385:11:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"expression":{"id":250904,"name":"IL2USDCBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250646,"src":"7450:13:251","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IL2USDCBridge_$250646_$","typeString":"type(contract IL2USDCBridge)"}},"id":250905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"finalizeDeposit","nodeType":"MemberAccess","referencedDeclaration":250645,"src":"7450:29:251","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IL2USDCBridge.finalizeDeposit(address,address,address,address,uint256,bytes calldata)"}},"id":250906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"7450:38:251","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":250907,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250850,"src":"7490:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250908,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250852,"src":"7500:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250909,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250854,"src":"7510:5:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250910,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250856,"src":"7517:3:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250911,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250858,"src":"7522:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":250912,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250862,"src":"7531:10:251","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"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_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":250902,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7410:3:251","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":250903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"7410:22:251","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":250913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7410:145:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":250914,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250860,"src":"7569:12:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"arguments":[{"id":250898,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121163,"src":"7349:9:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":250897,"name":"ICrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250630,"src":"7327:21:251","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossDomainMessenger_$250630_$","typeString":"type(contract ICrossDomainMessenger)"}},"id":250899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7327:32:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessenger_$250630","typeString":"contract ICrossDomainMessenger"}},"id":250900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":250629,"src":"7327:44:251","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$_t_uint32_$returns$__$","typeString":"function (address,bytes memory,uint32) payable external"}},"id":250915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7327:264:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250916,"nodeType":"ExpressionStatement","src":"7327:264:251"},{"eventCall":{"arguments":[{"id":250918,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250850,"src":"7628:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250919,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250852,"src":"7638:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250920,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250854,"src":"7648:5:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250921,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250856,"src":"7655:3:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250922,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250858,"src":"7660:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":250923,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250862,"src":"7669:10:251","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_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":250917,"name":"ERC20DepositInitiated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250707,"src":"7606:21:251","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,uint256,bytes memory)"}},"id":250924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7606:74:251","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":250925,"nodeType":"EmitStatement","src":"7601:79:251"}]},"documentation":{"id":250848,"nodeType":"StructuredDocumentation","src":"6327:530:251","text":" @notice Internal function for initiating an ERC20 deposit.\n @param _l1Token     Address of the L1 token being deposited.\n @param _l2Token     Address of the corresponding token on L2.\n @param _from        Address of the sender on L1.\n @param _to          Address of the recipient on L2.\n @param _amount      Amount of the ERC20 to deposit.\n @param _minGasLimit Minimum gas limit for the deposit message on L2.\n @param _extraData   Optional data to forward to L2."},"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":250865,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250850,"src":"7120:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":250866,"kind":"modifierInvocation","modifierName":{"id":250864,"name":"onlyL1Usdc","nodeType":"IdentifierPath","referencedDeclaration":121182,"src":"7109:10:251"},"nodeType":"ModifierInvocation","src":"7109:20:251"},{"arguments":[{"id":250868,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":250852,"src":"7149:8:251","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":250869,"kind":"modifierInvocation","modifierName":{"id":250867,"name":"onlyL2Usdc","nodeType":"IdentifierPath","referencedDeclaration":121195,"src":"7138:10:251"},"nodeType":"ModifierInvocation","src":"7138:20:251"}],"name":"_initiateERC20Deposit","nameLocation":"6871:21:251","parameters":{"id":250863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250850,"mutability":"mutable","name":"_l1Token","nameLocation":"6910:8:251","nodeType":"VariableDeclaration","scope":250927,"src":"6902:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250849,"name":"address","nodeType":"ElementaryTypeName","src":"6902:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250852,"mutability":"mutable","name":"_l2Token","nameLocation":"6936:8:251","nodeType":"VariableDeclaration","scope":250927,"src":"6928:16:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250851,"name":"address","nodeType":"ElementaryTypeName","src":"6928:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250854,"mutability":"mutable","name":"_from","nameLocation":"6962:5:251","nodeType":"VariableDeclaration","scope":250927,"src":"6954:13:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250853,"name":"address","nodeType":"ElementaryTypeName","src":"6954:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250856,"mutability":"mutable","name":"_to","nameLocation":"6985:3:251","nodeType":"VariableDeclaration","scope":250927,"src":"6977:11:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":250855,"name":"address","nodeType":"ElementaryTypeName","src":"6977:7:251","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":250858,"mutability":"mutable","name":"_amount","nameLocation":"7006:7:251","nodeType":"VariableDeclaration","scope":250927,"src":"6998:15:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":250857,"name":"uint256","nodeType":"ElementaryTypeName","src":"6998:7:251","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":250860,"mutability":"mutable","name":"_minGasLimit","nameLocation":"7030:12:251","nodeType":"VariableDeclaration","scope":250927,"src":"7023:19:251","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":250859,"name":"uint32","nodeType":"ElementaryTypeName","src":"7023:6:251","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":250862,"mutability":"mutable","name":"_extraData","nameLocation":"7067:10:251","nodeType":"VariableDeclaration","scope":250927,"src":"7052:25:251","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":250861,"name":"bytes","nodeType":"ElementaryTypeName","src":"7052:5:251","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6892:191:251"},"returnParameters":{"id":250870,"nodeType":"ParameterList","parameters":[],"src":"7163:0:251"},"scope":250928,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":250647,"name":"L1UsdcBridgeStorage","nodeType":"IdentifierPath","referencedDeclaration":250941,"src":"760:19:251"},"id":250648,"nodeType":"InheritanceSpecifier","src":"760:19:251"}],"canonicalName":"L1UsdcBridge","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[250928,250941,121196],"name":"L1UsdcBridge","nameLocation":"744:12:251","scope":250929,"usedErrors":[119202,119207,119210,119965]}],"license":"MIT"},"id":251}