UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 23.6 kB
{"abi":[{"type":"function","name":"crossDomainMessageSender","inputs":[],"outputs":[{"name":"_sender","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"crossDomainMessageSource","inputs":[],"outputs":[{"name":"_source","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"relayMessage","inputs":[{"name":"_destination","type":"uint256","internalType":"uint256"},{"name":"_source","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_sender","type":"address","internalType":"address"},{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"sendMessage","inputs":[{"name":"_destination","type":"uint256","internalType":"uint256"},{"name":"_target","type":"address","internalType":"address"},{"name":"_message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"crossDomainMessageSender()":"38ffde18","crossDomainMessageSource()":"24794462","relayMessage(uint256,uint256,uint256,address,address,bytes)":"1ecd26f2","sendMessage(uint256,address,bytes)":"7056f41f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"crossDomainMessageSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crossDomainMessageSource\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_source\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_destination\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_source\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"relayMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_destination\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_message\",\"type\":\"bytes\"}],\"name\":\"sendMessage\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"crossDomainMessageSender()\":{\"returns\":{\"_sender\":\"Address of the sender of the current cross domain message.\"}},\"crossDomainMessageSource()\":{\"returns\":{\"_source\":\"Chain ID of the source of the current cross domain message.\"}},\"relayMessage(uint256,uint256,uint256,address,address,bytes)\":{\"params\":{\"_destination\":\"Chain ID of the destination chain.\",\"_message\":\"Message to send to the target.\",\"_nonce\":\"Nonce of the message being relayed.\",\"_sender\":\"Address of the user who sent the message.\",\"_source\":\"Chain ID of the source chain.\",\"_target\":\"Address that the message is targeted at.\"}},\"sendMessage(uint256,address,bytes)\":{\"params\":{\"_destination\":\"Chain ID of the destination chain.\",\"_message\":\"Message to trigger the target address with.\",\"_target\":\"Target contract or wallet address.\"}}},\"title\":\"IL2ToL2CrossDomainMessenger\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"crossDomainMessageSender()\":{\"notice\":\"Retrieves the sender of the current cross domain message.\"},\"crossDomainMessageSource()\":{\"notice\":\"Retrieves the source of the current cross domain message.\"},\"relayMessage(uint256,uint256,uint256,address,address,bytes)\":{\"notice\":\"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed.\"},\"sendMessage(uint256,address,bytes)\":{\"notice\":\"Sends a message to some target address on a destination chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function).\"}},\"notice\":\"Interface for the L2ToL2CrossDomainMessenger contract.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/IL2ToL2CrossDomainMessenger.sol\":\"IL2ToL2CrossDomainMessenger\"},\"evmVersion\":\"cancun\",\"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/L2/IL2ToL2CrossDomainMessenger.sol\":{\"keccak256\":\"0x0bc5519108a6077e3918968f9812c6f20fcb036c8473b845c065b3cd9d6ef2a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56d64a5a169d54b16b02423faaf98fe9947780957678ec849596cb68880f3e97\",\"dweb:/ipfs/QmRXkq7ABqUffim7foK5EiZRwZPk8Ln6vArafjABHySBbR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"crossDomainMessageSender","outputs":[{"internalType":"address","name":"_sender","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crossDomainMessageSource","outputs":[{"internalType":"uint256","name":"_source","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_destination","type":"uint256"},{"internalType":"uint256","name":"_source","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"relayMessage"},{"inputs":[{"internalType":"uint256","name":"_destination","type":"uint256"},{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_message","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendMessage"}],"devdoc":{"kind":"dev","methods":{"crossDomainMessageSender()":{"returns":{"_sender":"Address of the sender of the current cross domain message."}},"crossDomainMessageSource()":{"returns":{"_source":"Chain ID of the source of the current cross domain message."}},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"params":{"_destination":"Chain ID of the destination chain.","_message":"Message to send to the target.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_source":"Chain ID of the source chain.","_target":"Address that the message is targeted at."}},"sendMessage(uint256,address,bytes)":{"params":{"_destination":"Chain ID of the destination chain.","_message":"Message to trigger the target address with.","_target":"Target contract or wallet address."}}},"version":1},"userdoc":{"kind":"user","methods":{"crossDomainMessageSender()":{"notice":"Retrieves the sender of the current cross domain message."},"crossDomainMessageSource()":{"notice":"Retrieves the source of the current cross domain message."},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(uint256,address,bytes)":{"notice":"Sends a message to some target address on a destination chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."}},"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/L2/IL2ToL2CrossDomainMessenger.sol":"IL2ToL2CrossDomainMessenger"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/L2/IL2ToL2CrossDomainMessenger.sol":{"keccak256":"0x0bc5519108a6077e3918968f9812c6f20fcb036c8473b845c065b3cd9d6ef2a3","urls":["bzz-raw://56d64a5a169d54b16b02423faaf98fe9947780957678ec849596cb68880f3e97","dweb:/ipfs/QmRXkq7ABqUffim7foK5EiZRwZPk8Ln6vArafjABHySBbR"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user","methods":{"crossDomainMessageSender()":{"notice":"Retrieves the sender of the current cross domain message."},"crossDomainMessageSource()":{"notice":"Retrieves the source of the current cross domain message."},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"notice":"Relays a message that was sent by the other CrossDomainMessenger contract. Can only be executed via cross-chain call from the other messenger OR if the message was already received once and is currently being replayed."},"sendMessage(uint256,address,bytes)":{"notice":"Sends a message to some target address on a destination chain. Note that if the call always reverts, then the message will be unrelayable, and any ETH sent will be permanently locked. The same will occur if the target on the other chain is considered unsafe (see the _isUnsafeTarget() function)."}},"notice":"Interface for the L2ToL2CrossDomainMessenger contract."},"devdoc":{"version":1,"kind":"dev","methods":{"crossDomainMessageSender()":{"returns":{"_sender":"Address of the sender of the current cross domain message."}},"crossDomainMessageSource()":{"returns":{"_source":"Chain ID of the source of the current cross domain message."}},"relayMessage(uint256,uint256,uint256,address,address,bytes)":{"params":{"_destination":"Chain ID of the destination chain.","_message":"Message to send to the target.","_nonce":"Nonce of the message being relayed.","_sender":"Address of the user who sent the message.","_source":"Chain ID of the source chain.","_target":"Address that the message is targeted at."}},"sendMessage(uint256,address,bytes)":{"params":{"_destination":"Chain ID of the destination chain.","_message":"Message to trigger the target address with.","_target":"Target contract or wallet address."}}},"title":"IL2ToL2CrossDomainMessenger"},"ast":{"absolutePath":"src/L2/IL2ToL2CrossDomainMessenger.sol","id":47119,"exportedSymbols":{"IL2ToL2CrossDomainMessenger":[47118]},"nodeType":"SourceUnit","src":"32:2196:25","nodes":[{"id":47078,"nodeType":"PragmaDirective","src":"32:23:25","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47118,"nodeType":"ContractDefinition","src":"163:2064:25","nodes":[{"id":47085,"nodeType":"FunctionDefinition","src":"364:76:25","nodes":[],"documentation":{"id":47080,"nodeType":"StructuredDocumentation","src":"207:152:25","text":"@notice Retrieves the sender of the current cross domain message.\n @return _sender Address of the sender of the current cross domain message."},"functionSelector":"38ffde18","implemented":false,"kind":"function","modifiers":[],"name":"crossDomainMessageSender","nameLocation":"373:24:25","parameters":{"id":47081,"nodeType":"ParameterList","parameters":[],"src":"397:2:25"},"returnParameters":{"id":47084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47083,"mutability":"mutable","name":"_sender","nameLocation":"431:7:25","nodeType":"VariableDeclaration","scope":47085,"src":"423:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47082,"name":"address","nodeType":"ElementaryTypeName","src":"423:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"422:17:25"},"scope":47118,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47091,"nodeType":"FunctionDefinition","src":"604:76:25","nodes":[],"documentation":{"id":47086,"nodeType":"StructuredDocumentation","src":"446:153:25","text":"@notice Retrieves the source of the current cross domain message.\n @return _source Chain ID of the source of the current cross domain message."},"functionSelector":"24794462","implemented":false,"kind":"function","modifiers":[],"name":"crossDomainMessageSource","nameLocation":"613:24:25","parameters":{"id":47087,"nodeType":"ParameterList","parameters":[],"src":"637:2:25"},"returnParameters":{"id":47090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47089,"mutability":"mutable","name":"_source","nameLocation":"671:7:25","nodeType":"VariableDeclaration","scope":47091,"src":"663:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47088,"name":"uint256","nodeType":"ElementaryTypeName","src":"663:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"662:17:25"},"scope":47118,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47101,"nodeType":"FunctionDefinition","src":"1244:102:25","nodes":[],"documentation":{"id":47092,"nodeType":"StructuredDocumentation","src":"686:553:25","text":"@notice Sends a message to some target address on a destination chain. Note that if the call\n always reverts, then the message will be unrelayable, and any ETH sent will be\n permanently locked. The same will occur if the target on the other chain is\n considered unsafe (see the _isUnsafeTarget() function).\n @param _destination Chain ID of the destination chain.\n @param _target Target contract or wallet address.\n @param _message Message to trigger the target address with."},"functionSelector":"7056f41f","implemented":false,"kind":"function","modifiers":[],"name":"sendMessage","nameLocation":"1253:11:25","parameters":{"id":47099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47094,"mutability":"mutable","name":"_destination","nameLocation":"1273:12:25","nodeType":"VariableDeclaration","scope":47101,"src":"1265:20:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47093,"name":"uint256","nodeType":"ElementaryTypeName","src":"1265:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47096,"mutability":"mutable","name":"_target","nameLocation":"1295:7:25","nodeType":"VariableDeclaration","scope":47101,"src":"1287:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47095,"name":"address","nodeType":"ElementaryTypeName","src":"1287:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47098,"mutability":"mutable","name":"_message","nameLocation":"1319:8:25","nodeType":"VariableDeclaration","scope":47101,"src":"1304:23:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":47097,"name":"bytes","nodeType":"ElementaryTypeName","src":"1304:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1264:64:25"},"returnParameters":{"id":47100,"nodeType":"ParameterList","parameters":[],"src":"1345:0:25"},"scope":47118,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":47117,"nodeType":"FunctionDefinition","src":"2002:223:25","nodes":[],"documentation":{"id":47102,"nodeType":"StructuredDocumentation","src":"1352:645:25","text":"@notice Relays a message that was sent by the other CrossDomainMessenger contract. Can only\n be executed via cross-chain call from the other messenger OR if the message was\n already received once and is currently being replayed.\n @param _destination Chain ID of the destination chain.\n @param _nonce Nonce of the message being relayed.\n @param _sender Address of the user who sent the message.\n @param _source Chain ID of the source chain.\n @param _target Address that the message is targeted at.\n @param _message Message to send to the target."},"functionSelector":"1ecd26f2","implemented":false,"kind":"function","modifiers":[],"name":"relayMessage","nameLocation":"2011:12:25","parameters":{"id":47115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47104,"mutability":"mutable","name":"_destination","nameLocation":"2041:12:25","nodeType":"VariableDeclaration","scope":47117,"src":"2033:20:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2033:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47106,"mutability":"mutable","name":"_source","nameLocation":"2071:7:25","nodeType":"VariableDeclaration","scope":47117,"src":"2063:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47105,"name":"uint256","nodeType":"ElementaryTypeName","src":"2063:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47108,"mutability":"mutable","name":"_nonce","nameLocation":"2096:6:25","nodeType":"VariableDeclaration","scope":47117,"src":"2088:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47107,"name":"uint256","nodeType":"ElementaryTypeName","src":"2088:7:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":47110,"mutability":"mutable","name":"_sender","nameLocation":"2120:7:25","nodeType":"VariableDeclaration","scope":47117,"src":"2112:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47109,"name":"address","nodeType":"ElementaryTypeName","src":"2112:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47112,"mutability":"mutable","name":"_target","nameLocation":"2145:7:25","nodeType":"VariableDeclaration","scope":47117,"src":"2137:15:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47111,"name":"address","nodeType":"ElementaryTypeName","src":"2137:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47114,"mutability":"mutable","name":"_message","nameLocation":"2177:8:25","nodeType":"VariableDeclaration","scope":47117,"src":"2162:23:25","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":47113,"name":"bytes","nodeType":"ElementaryTypeName","src":"2162:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2023:168:25"},"returnParameters":{"id":47116,"nodeType":"ParameterList","parameters":[],"src":"2224:0:25"},"scope":47118,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IL2ToL2CrossDomainMessenger","contractDependencies":[],"contractKind":"interface","documentation":{"id":47079,"nodeType":"StructuredDocumentation","src":"57:106:25","text":"@title IL2ToL2CrossDomainMessenger\n @notice Interface for the L2ToL2CrossDomainMessenger contract."},"fullyImplemented":false,"linearizedBaseContracts":[47118],"name":"IL2ToL2CrossDomainMessenger","nameLocation":"173:27:25","scope":47119,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":25}