UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 88.9 kB
{"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/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/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/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/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/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/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":120672,"exportedSymbols":{"Address":[121159],"ICrossDomainMessenger":[120373],"IERC20":[119876],"IL2USDCBridge":[120389],"L1UsdcBridge":[120671],"L1UsdcBridgeStorage":[120864],"SafeERC20":[120238]},"nodeType":"SourceUnit","src":"32:7658:262","nodes":[{"id":120350,"nodeType":"PragmaDirective","src":"32:23:262","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":120352,"nodeType":"ImportDirective","src":"57:49:262","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/IERC20.sol","file":"../libraries/IERC20.sol","nameLocation":"-1:-1:-1","scope":120672,"sourceUnit":119877,"symbolAliases":[{"foreign":{"id":120351,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":119876,"src":"66:6:262","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":120354,"nodeType":"ImportDirective","src":"107:54:262","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/libraries/Address.sol","file":"../../libraries/Address.sol","nameLocation":"-1:-1:-1","scope":120672,"sourceUnit":121160,"symbolAliases":[{"foreign":{"id":120353,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121159,"src":"116:7:262","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":120356,"nodeType":"ImportDirective","src":"162:55:262","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/libraries/SafeERC20.sol","file":"../libraries/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":120672,"sourceUnit":120239,"symbolAliases":[{"foreign":{"id":120355,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120238,"src":"171:9:262","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":120358,"nodeType":"ImportDirective","src":"219:64:262","nodes":[],"absolutePath":"src/tokamak-contracts/USDC/L1/tokamak-UsdcBridge/L1UsdcBridgeStorage.sol","file":"./L1UsdcBridgeStorage.sol","nameLocation":"-1:-1:-1","scope":120672,"sourceUnit":120865,"symbolAliases":[{"foreign":{"id":120357,"name":"L1UsdcBridgeStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120864,"src":"228:19:262","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":120373,"nodeType":"ContractDefinition","src":"285:210:262","nodes":[{"id":120363,"nodeType":"FunctionDefinition","src":"323:64:262","nodes":[],"functionSelector":"6e296e45","implemented":false,"kind":"function","modifiers":[],"name":"xDomainMessageSender","nameLocation":"332:20:262","parameters":{"id":120359,"nodeType":"ParameterList","parameters":[],"src":"352:2:262"},"returnParameters":{"id":120362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":120363,"src":"378:7:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120360,"name":"address","nodeType":"ElementaryTypeName","src":"378:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"377:9:262"},"scope":120373,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":120372,"nodeType":"FunctionDefinition","src":"392:101:262","nodes":[],"functionSelector":"3dbb202b","implemented":false,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"401:11:262","parameters":{"id":120370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120365,"mutability":"mutable","name":"_target","nameLocation":"421:7:262","nodeType":"VariableDeclaration","scope":120372,"src":"413:15:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120364,"name":"address","nodeType":"ElementaryTypeName","src":"413:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120367,"mutability":"mutable","name":"_message","nameLocation":"445:8:262","nodeType":"VariableDeclaration","scope":120372,"src":"430:23:262","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":120366,"name":"bytes","nodeType":"ElementaryTypeName","src":"430:5:262","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":120369,"mutability":"mutable","name":"_minGasLimit","nameLocation":"462:12:262","nodeType":"VariableDeclaration","scope":120372,"src":"455:19:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":120368,"name":"uint32","nodeType":"ElementaryTypeName","src":"455:6:262","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"412:63:262"},"returnParameters":{"id":120371,"nodeType":"ParameterList","parameters":[],"src":"492:0:262"},"scope":120373,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ICrossDomainMessenger","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[120373],"name":"ICrossDomainMessenger","nameLocation":"295:21:262","scope":120672,"usedErrors":[]},{"id":120389,"nodeType":"ContractDefinition","src":"497:236:262","nodes":[{"id":120388,"nodeType":"FunctionDefinition","src":"527:204:262","nodes":[],"functionSelector":"662a633a","implemented":false,"kind":"function","modifiers":[],"name":"finalizeDeposit","nameLocation":"536:15:262","parameters":{"id":120386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120375,"mutability":"mutable","name":"_l1Token","nameLocation":"569:8:262","nodeType":"VariableDeclaration","scope":120388,"src":"561:16:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120374,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120377,"mutability":"mutable","name":"_l2Token","nameLocation":"595:8:262","nodeType":"VariableDeclaration","scope":120388,"src":"587:16:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120376,"name":"address","nodeType":"ElementaryTypeName","src":"587:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120379,"mutability":"mutable","name":"_from","nameLocation":"621:5:262","nodeType":"VariableDeclaration","scope":120388,"src":"613:13:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120378,"name":"address","nodeType":"ElementaryTypeName","src":"613:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120381,"mutability":"mutable","name":"_to","nameLocation":"644:3:262","nodeType":"VariableDeclaration","scope":120388,"src":"636:11:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120380,"name":"address","nodeType":"ElementaryTypeName","src":"636:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120383,"mutability":"mutable","name":"_amount","nameLocation":"665:7:262","nodeType":"VariableDeclaration","scope":120388,"src":"657:15:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120382,"name":"uint256","nodeType":"ElementaryTypeName","src":"657:7:262","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":120385,"mutability":"mutable","name":"_extraData","nameLocation":"697:10:262","nodeType":"VariableDeclaration","scope":120388,"src":"682:25:262","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":120384,"name":"bytes","nodeType":"ElementaryTypeName","src":"682:5:262","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"551:162:262"},"returnParameters":{"id":120387,"nodeType":"ParameterList","parameters":[],"src":"730:0:262"},"scope":120389,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL2USDCBridge","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[120389],"name":"IL2USDCBridge","nameLocation":"507:13:262","scope":120672,"usedErrors":[]},{"id":120671,"nodeType":"ContractDefinition","src":"735:6954:262","nodes":[{"id":120395,"nodeType":"UsingForDirective","src":"786:27:262","nodes":[],"global":false,"libraryName":{"id":120392,"name":"SafeERC20","nodeType":"IdentifierPath","referencedDeclaration":120238,"src":"792:9:262"},"typeName":{"id":120394,"nodeType":"UserDefinedTypeName","pathNode":{"id":120393,"name":"IERC20","nodeType":"IdentifierPath","referencedDeclaration":119876,"src":"806:6:262"},"referencedDeclaration":119876,"src":"806:6:262","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$119876","typeString":"contract IERC20"}}},{"id":120410,"nodeType":"ModifierDefinition","src":"1129:146:262","nodes":[],"body":{"id":120409,"nodeType":"Block","src":"1148:127:262","nodes":[],"statements":[{"expression":{"arguments":[{"id":120404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1166:31:262","subExpression":{"arguments":[{"expression":{"id":120401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1186:3:262","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":120402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1186:10:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":120399,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121159,"src":"1167:7:262","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$121159_$","typeString":"type(library Address)"}},"id":120400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":120882,"src":"1167:18:262","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":120403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1167:30:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c792062652063616c6c65642066726f6d20616e20454f41","id":120405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1199:57:262","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":120398,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1158:7:262","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":120406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1158:99:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120407,"nodeType":"ExpressionStatement","src":"1158:99:262"},{"id":120408,"nodeType":"PlaceholderStatement","src":"1267:1:262"}]},"documentation":{"id":120396,"nodeType":"StructuredDocumentation","src":"818:305:262","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:262","parameters":{"id":120397,"nodeType":"ParameterList","parameters":[],"src":"1145:2:262"},"virtual":false,"visibility":"internal"},{"id":120431,"nodeType":"ModifierDefinition","src":"1384:264:262","nodes":[],"body":{"id":120430,"nodeType":"Block","src":"1411:237:262","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":120425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":120417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":120414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1442:3:262","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":120415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1442:10:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":120416,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121163,"src":"1456:9:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1442:23:262","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":120424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":120419,"name":"messenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121163,"src":"1491:9:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":120418,"name":"ICrossDomainMessenger","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120373,"src":"1469:21:262","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICrossDomainMessenger_$120373_$","typeString":"type(contract ICrossDomainMessenger)"}},"id":120420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1469:32:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ICrossDomainMessenger_$120373","typeString":"contract ICrossDomainMessenger"}},"id":120421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"xDomainMessageSender","nodeType":"MemberAccess","referencedDeclaration":120363,"src":"1469:53:262","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":120422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1469:55:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":120423,"name":"otherBridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":121165,"src":"1528:11:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1469:70:262","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1442:97:262","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374616e646172644272696467653a2066756e6374696f6e2063616e206f6e6c792062652063616c6c65642066726f6d20746865206f7468657220627269646765","id":120426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1553:67:262","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":120413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1421:7:262","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":120427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1421:209:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120428,"nodeType":"ExpressionStatement","src":"1421:209:262"},{"id":120429,"nodeType":"PlaceholderStatement","src":"1640:1:262"}]},"documentation":{"id":120411,"nodeType":"StructuredDocumentation","src":"1281:98:262","text":" @notice Ensures that the caller is a cross-chain message from the other bridge."},"name":"onlyOtherBridge","nameLocation":"1393:15:262","parameters":{"id":120412,"nodeType":"ParameterList","parameters":[],"src":"1408:2:262"},"virtual":false,"visibility":"internal"},{"id":120435,"nodeType":"FunctionDefinition","src":"1654:17:262","nodes":[],"body":{"id":120434,"nodeType":"Block","src":"1668:3:262","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":120432,"nodeType":"ParameterList","parameters":[],"src":"1665:2:262"},"returnParameters":{"id":120433,"nodeType":"ParameterList","parameters":[],"src":"1668:0:262"},"scope":120671,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":120450,"nodeType":"EventDefinition","src":"2124:199:262","nodes":[],"anonymous":false,"documentation":{"id":120436,"nodeType":"StructuredDocumentation","src":"1677:442:262","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:262","parameters":{"id":120449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120438,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"2177:7:262","nodeType":"VariableDeclaration","scope":120450,"src":"2161:23:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120437,"name":"address","nodeType":"ElementaryTypeName","src":"2161:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120440,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"2210:7:262","nodeType":"VariableDeclaration","scope":120450,"src":"2194:23:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120439,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120442,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2243:4:262","nodeType":"VariableDeclaration","scope":120450,"src":"2227:20:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120441,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120444,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2265:2:262","nodeType":"VariableDeclaration","scope":120450,"src":"2257:10:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120443,"name":"address","nodeType":"ElementaryTypeName","src":"2257:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120446,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2285:6:262","nodeType":"VariableDeclaration","scope":120450,"src":"2277:14:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120445,"name":"uint256","nodeType":"ElementaryTypeName","src":"2277:7:262","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":120448,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2307:9:262","nodeType":"VariableDeclaration","scope":120450,"src":"2301:15:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":120447,"name":"bytes","nodeType":"ElementaryTypeName","src":"2301:5:262","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2151:171:262"}},{"id":120465,"nodeType":"EventDefinition","src":"2783:202:262","nodes":[],"anonymous":false,"documentation":{"id":120451,"nodeType":"StructuredDocumentation","src":"2329:449:262","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:262","parameters":{"id":120464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120453,"indexed":true,"mutability":"mutable","name":"l1Token","nameLocation":"2839:7:262","nodeType":"VariableDeclaration","scope":120465,"src":"2823:23:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120452,"name":"address","nodeType":"ElementaryTypeName","src":"2823:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120455,"indexed":true,"mutability":"mutable","name":"l2Token","nameLocation":"2872:7:262","nodeType":"VariableDeclaration","scope":120465,"src":"2856:23:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120454,"name":"address","nodeType":"ElementaryTypeName","src":"2856:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120457,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"2905:4:262","nodeType":"VariableDeclaration","scope":120465,"src":"2889:20:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120456,"name":"address","nodeType":"ElementaryTypeName","src":"2889:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120459,"indexed":false,"mutability":"mutable","name":"to","nameLocation":"2927:2:262","nodeType":"VariableDeclaration","scope":120465,"src":"2919:10:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120458,"name":"address","nodeType":"ElementaryTypeName","src":"2919:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120461,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2947:6:262","nodeType":"VariableDeclaration","scope":120465,"src":"2939:14:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120460,"name":"uint256","nodeType":"ElementaryTypeName","src":"2939:7:262","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":120463,"indexed":false,"mutability":"mutable","name":"extraData","nameLocation":"2969:9:262","nodeType":"VariableDeclaration","scope":120465,"src":"2963:15:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":120462,"name":"bytes","nodeType":"ElementaryTypeName","src":"2963:5:262","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2813:171:262"}},{"id":120494,"nodeType":"FunctionDefinition","src":"3644:338:262","nodes":[],"body":{"id":120493,"nodeType":"Block","src":"3865:117:262","nodes":[],"statements":[{"expression":{"arguments":[{"id":120482,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120468,"src":"3897:8:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":120483,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120470,"src":"3907:8:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":120484,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3917:3:262","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":120485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3917:10:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":120486,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3929:3:262","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":120487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3929:10:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":120488,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120472,"src":"3941:7:262","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":120489,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120474,"src":"3950:12:262","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":120490,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120476,"src":"3964:10:262","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":120481,"name":"_initiateERC20Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120670,"src":"3875:21:262","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":120491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3875:100:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120492,"nodeType":"ExpressionStatement","src":"3875:100:262"}]},"documentation":{"id":120466,"nodeType":"StructuredDocumentation","src":"2991:648:262","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":120479,"kind":"modifierInvocation","modifierName":{"id":120478,"name":"onlyEOA","nodeType":"IdentifierPath","referencedDeclaration":120410,"src":"3853:7:262"},"nodeType":"ModifierInvocation","src":"3853:7:262"}],"name":"bridgeERC20","nameLocation":"3653:11:262","parameters":{"id":120477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120468,"mutability":"mutable","name":"_l1Token","nameLocation":"3682:8:262","nodeType":"VariableDeclaration","scope":120494,"src":"3674:16:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120467,"name":"address","nodeType":"ElementaryTypeName","src":"3674:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120470,"mutability":"mutable","name":"_l2Token","nameLocation":"3708:8:262","nodeType":"VariableDeclaration","scope":120494,"src":"3700:16:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120469,"name":"address","nodeType":"ElementaryTypeName","src":"3700:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":120472,"mutability":"mutable","name":"_amount","nameLocation":"3734:7:262","nodeType":"VariableDeclaration","scope":120494,"src":"3726:15:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120471,"name":"uint256","nodeType":"ElementaryTypeName","src":"3726:7:262","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":120474,"mutability":"mutable","name":"_minGasLimit","nameLocation":"3758:12:262","nodeType":"VariableDeclaration","scope":120494,"src":"3751:19:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":120473,"name":"uint32","nodeType":"ElementaryTypeName","src":"3751:6:262","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":120476,"mutability":"mutable","name":"_extraData","nameLocation":"3795:10:262","nodeType":"VariableDeclaration","scope":120494,"src":"3780:25:262","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":120475,"name":"bytes","nodeType":"ElementaryTypeName","src":"3780:5:262","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3664:147:262"},"returnParameters":{"id":120480,"nodeType":"ParameterList","parameters":[],"src":"3865:0:262"},"scope":120671,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":120522,"nodeType":"FunctionDefinition","src":"4696:338:262","nodes":[],"body":{"id":120521,"nodeType":"Block","src":"4924:110:262","nodes":[],"statements":[{"expression":{"arguments":[{"id":120511,"name":"_l1Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120497,"src":"4956:8:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":120512,"name":"_l2Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120499,"src":"4966:8:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":120513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4976:3:262","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":120514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"4976:10:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":120515,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120501,"src":"4988:3:262","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":120516,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120503,"src":"4993:7:262","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":120517,"name":"_minGasLimit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120505,"src":"5002:12:262","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"id":120518,"name":"_extraData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120507,"src":"5016:10:262","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":120510,"name":"_initiateERC20Deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":120670,"src":"4934:21:262","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":120519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4934:93:262","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120520,"nodeType":"ExpressionStatement","src":"4934:93:262"}]},"documentation":{"id":120495,"nodeType":"StructuredDocumentation","src":"3988:703:262","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:262","parameters":{"id":120508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120497,"mutability":"mutable","name":"_l1Token","nameLocation":"4736:8:262","nodeType":"VariableDeclaration","scope":120522,"src":"4728:16:262","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120496,"name":"address","nodeType":"ElementaryTypeName","src":"4728:7:262","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifi