{"abi":[{"type":"constructor","inputs":[{"name":"starknetCore_","type":"address","internalType":"contract MockStarknetMessaging"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"l2ContractAddress","type":"uint256","internalType":"uint256"},{"name":"user","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"get_balance","inputs":[{"name":"user","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"userBalances","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[{"name":"l2ContractAddress","type":"uint256","internalType":"uint256"},{"name":"user","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516105463803806105468339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556104e1806100656000396000f3fe60806040526004361061003e5760003560e01c8062aeef8a14610043578063051475dd1461006e5780635b407a28146100aa578063a41fe49f146100d4575b600080fd5b61006c6004803603606081101561005957600080fd5b508035906020810135906040013561010a565b005b34801561007a57600080fd5b506100986004803603602081101561009157600080fd5b503561030a565b60408051918252519081900360200190f35b3480156100b657600080fd5b50610098600480360360208110156100cd57600080fd5b503561031c565b3480156100e057600080fd5b5061006c600480360360608110156100f757600080fd5b508035906020810135906040013561032e565b680100000000000000008110610159576040805162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b21030b6b7bab73a1760891b604482015290519081900360640190fd5b6000828152600160205260409020548111156101a65760405162461bcd60e51b81526004018080602001828103825260278152602001806104856027913960400191505060405180910390fd5b600082815260016020526040908190208054839003905580516002808252606082810190935281602001602082028036833701905050905082816000815181106101ec57fe5b602002602001018181525050818160018151811061020657fe5b60200260200101818152505060008054906101000a90046001600160a01b03166001600160a01b0316633e3aa6c534867ec73f681176fc7b3f9693986fd7b14581e8d540519e27400e88b8713932be01856040518563ffffffff1660e01b81526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156102b257818101518382015260200161029a565b5050505090500194505050505060408051808303818588803b1580156102d757600080fd5b505af11580156102eb573d6000803e3d6000fd5b50505050506040513d604081101561030257600080fd5b505050505050565b60016020526000908152604090205481565b60009081526001602052604090205490565b6040805160038082526080820190925260609160208201838036833701905050905060008160008151811061035f57fe5b602002602001018181525050828160018151811061037957fe5b602002602001018181525050818160028151811061039357fe5b60200260200101818152505060008054906101000a90046001600160a01b03166001600160a01b0316632c9dd5c085836040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015610418578181015183820152602001610400565b505050509050019350505050602060405180830381600087803b15801561043e57600080fd5b505af1158015610452573d6000803e3d6000fd5b505050506040513d602081101561046857600080fd5b505050600091825260016020526040909120805490910190555056fe546865207573657227732062616c616e6365206973206e6f74206c6172676520656e6f7567682ea264697066735822122079c6e12bd49f39ff8ad89f29625e3669924714087ff52fa9fe502413d287867164736f6c634300060c0033","sourceMap":"220:1965:19:-:0;;;641:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;641:101:19;707:12;:28;;-1:-1:-1;;;;;;707:28:19;-1:-1:-1;;;;;707:28:19;;;;;;;;;-1:-1:-1;;;;220:1965:19;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003e5760003560e01c8062aeef8a14610043578063051475dd1461006e5780635b407a28146100aa578063a41fe49f146100d4575b600080fd5b61006c6004803603606081101561005957600080fd5b508035906020810135906040013561010a565b005b34801561007a57600080fd5b506100986004803603602081101561009157600080fd5b503561030a565b60408051918252519081900360200190f35b3480156100b657600080fd5b50610098600480360360208110156100cd57600080fd5b503561031c565b3480156100e057600080fd5b5061006c600480360360608110156100f757600080fd5b508035906020810135906040013561032e565b680100000000000000008110610159576040805162461bcd60e51b815260206004820152600f60248201526e24b73b30b634b21030b6b7bab73a1760891b604482015290519081900360640190fd5b6000828152600160205260409020548111156101a65760405162461bcd60e51b81526004018080602001828103825260278152602001806104856027913960400191505060405180910390fd5b600082815260016020526040908190208054839003905580516002808252606082810190935281602001602082028036833701905050905082816000815181106101ec57fe5b602002602001018181525050818160018151811061020657fe5b60200260200101818152505060008054906101000a90046001600160a01b03166001600160a01b0316633e3aa6c534867ec73f681176fc7b3f9693986fd7b14581e8d540519e27400e88b8713932be01856040518563ffffffff1660e01b81526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156102b257818101518382015260200161029a565b5050505090500194505050505060408051808303818588803b1580156102d757600080fd5b505af11580156102eb573d6000803e3d6000fd5b50505050506040513d604081101561030257600080fd5b505050505050565b60016020526000908152604090205481565b60009081526001602052604090205490565b6040805160038082526080820190925260609160208201838036833701905050905060008160008151811061035f57fe5b602002602001018181525050828160018151811061037957fe5b602002602001018181525050818160028151811061039357fe5b60200260200101818152505060008054906101000a90046001600160a01b03166001600160a01b0316632c9dd5c085836040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015610418578181015183820152602001610400565b505050509050019350505050602060405180830381600087803b15801561043e57600080fd5b505af1158015610452573d6000803e3d6000fd5b505050506040513d602081101561046857600080fd5b505050600091825260016020526040909120805490910190555056fe546865207573657227732062616c616e6365206973206e6f74206c6172676520656e6f7567682ea264697066735822122079c6e12bd49f39ff8ad89f29625e3669924714087ff52fa9fe502413d287867164736f6c634300060c0033","sourceMap":"220:1965:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1516:667;;;;;;;;;;;;;;;;-1:-1:-1;1516:667:19;;;;;;;;;;;;:::i;:::-;;323:47;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;323:47:19;;:::i;:::-;;;;;;;;;;;;;;;;748:137;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;748:137:19;;:::i;891:619::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;891:619:19;;;;;;;;;;;;:::i;1516:667::-;1664:5;1655:6;:14;1647:42;;;;;-1:-1:-1;;;1647:42:19;;;;;;;;;;;;-1:-1:-1;;;1647:42:19;;;;;;;;;;;;;;;1717:18;;;;:12;:18;;;;;;1707:28;;;1699:80;;;;-1:-1:-1;;;1699:80:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1824:18;;;;:12;:18;;;;;;;:28;;;;;;;1942:16;;1956:1;1942:16;;;1915:24;1942:16;;;;;;;;;;;;;;;;;;-1:-1:-1;1942:16:19;1915:43;;1981:4;1968:7;1976:1;1968:10;;;;;;;;;;;;;:17;;;;;2008:6;1995:7;2003:1;1995:10;;;;;;;;;;;;;:19;;;;;2084:12;;;;;;;;-1:-1:-1;;;;;2084:12:19;-1:-1:-1;;;;;2084:28:19;;2120:9;2131:17;506:75;2168:7;2084:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1516:667:19:o;323:47::-;;;;;;;;;;;;;:::o;748:137::-;830:7;860:18;;;:12;:18;;;;;;;748:137::o;891:619::-;1097:16;;;1111:1;1097:16;;;;;;;;;1070:24;;1097:16;;;1070:24;;1097:16;;;;;-1:-1:-1;1097:16:19;1070:43;;413:1;1123:7;1131:1;1123:10;;;;;;;;;;;;;:29;;;;;1175:4;1162:7;1170:1;1162:10;;;;;;;;;;;;;:17;;;;;1202:6;1189:7;1197:1;1189:10;;;;;;;;;;;;;;;;;;:19;;;;1369:12;;;:61;;;-1:-1:-1;;;1369:61:19;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1369:12:19;;;;:33;;1403:17;;1422:7;;1369:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1475:18:19;;;;:12;1369:61;1475:18;;;;;:28;;;;;;;-1:-1:-1;891:619:19:o","linkReferences":{}},"methodIdentifiers":{"deposit(uint256,uint256,uint256)":"00aeef8a","get_balance(uint256)":"5b407a28","userBalances(uint256)":"051475dd","withdraw(uint256,uint256,uint256)":"a41fe49f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract MockStarknetMessaging\",\"name\":\"starknetCore_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"l2ContractAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"user\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"user\",\"type\":\"uint256\"}],\"name\":\"get_balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"userBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"l2ContractAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"user\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":\"Initializes the contract state.\"},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1L2.sol\":\"L1L2Example\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"src/IStarknetMessaging.sol\":{\"keccak256\":\"0x75d3dad61854e3115a97fa314066cd3ff4544fa712bea1a6595bbac7ef8e92f8\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://d5a07d8e15bfba827443a9f79f0465f1e24df4960a581754c6139964b56124c5\",\"dweb:/ipfs/QmUqBMSiC8b3T6L6mRFcxR83ByHK1q2KVo3nCoKsph8DJH\"]},\"src/IStarknetMessagingEvents.sol\":{\"keccak256\":\"0xfeac71f229049b84eb47fbdae456f9de2074016828a4529e00abd4eddc8bb844\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://c9acd4424ec21178670c3b1793f2f8d2c4d59ff0f22063ba5f60100f18f47b95\",\"dweb:/ipfs/QmTHjQARTTVRFnCeThphAVocQYSk2hXCYT2yDr6TmZccJP\"]},\"src/L1L2.sol\":{\"keccak256\":\"0xb64883d6f5532d391380b6be85dd7ba5e6d02e102a40285ef32dc691a0f235ca\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://d316cc05eda79acab87a6ddd84086ed4da6f5309895742cad25ef4082e17e440\",\"dweb:/ipfs/QmfScVxYJRjnf1jxSyFMBAxJjR6tnXfHnnxN5zXaSdMHJ3\"]},\"src/MockStarknetMessaging.sol\":{\"keccak256\":\"0xc70ac295b478f869a8ba3b95b9698ae2263a38a702993f622b3e36702f209f56\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://fcdc2494eafde351987c3ada66be602edc379cf7b41917563b6bea6d13b88150\",\"dweb:/ipfs/QmYUeK8GBydyFz6VfV6DzEWyEZt8SxLgDcLKGveZ7KVTRi\"]},\"src/NamedStorage.sol\":{\"keccak256\":\"0x014ba48551c965e42b7e8f2e22f6f5f559f1ecaa6b1ce2dbf965e2b9808514ee\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://fb77540fd0d17b382d61e597862b29d164256f7224f0f39a534d2e1c3c161140\",\"dweb:/ipfs/QmYCombekr8CQvCCjBDFVniNCnreg9Z2TT78ZjdS3FGNsk\"]},\"src/StarknetMessaging.sol\":{\"keccak256\":\"0x719a1abf0a6214cadd3e48f3dcdf270a96b23ab441b87d5df254ee703ab75233\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://e8844f6e9e9cf6f5ec223f02d43ab1b1897263b4256bbc3ff8c9c6d8040d039c\",\"dweb:/ipfs/QmQ2yDB3vLYmBdLswLqAVe59RgVtpffSTyvPp4eVdaixV9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract MockStarknetMessaging","name":"starknetCore_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"l2ContractAddress","type":"uint256"},{"internalType":"uint256","name":"user","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"uint256","name":"user","type":"uint256"}],"stateMutability":"view","type":"function","name":"get_balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"userBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"l2ContractAddress","type":"uint256"},{"internalType":"uint256","name":"user","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"constructor":"Initializes the contract state."},"version":1}},"settings":{"remappings":["ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/L1L2.sol":"L1L2Example"},"libraries":{}},"sources":{"src/IStarknetMessaging.sol":{"keccak256":"0x75d3dad61854e3115a97fa314066cd3ff4544fa712bea1a6595bbac7ef8e92f8","urls":["bzz-raw://d5a07d8e15bfba827443a9f79f0465f1e24df4960a581754c6139964b56124c5","dweb:/ipfs/QmUqBMSiC8b3T6L6mRFcxR83ByHK1q2KVo3nCoKsph8DJH"],"license":"Apache-2.0."},"src/IStarknetMessagingEvents.sol":{"keccak256":"0xfeac71f229049b84eb47fbdae456f9de2074016828a4529e00abd4eddc8bb844","urls":["bzz-raw://c9acd4424ec21178670c3b1793f2f8d2c4d59ff0f22063ba5f60100f18f47b95","dweb:/ipfs/QmTHjQARTTVRFnCeThphAVocQYSk2hXCYT2yDr6TmZccJP"],"license":"Apache-2.0."},"src/L1L2.sol":{"keccak256":"0xb64883d6f5532d391380b6be85dd7ba5e6d02e102a40285ef32dc691a0f235ca","urls":["bzz-raw://d316cc05eda79acab87a6ddd84086ed4da6f5309895742cad25ef4082e17e440","dweb:/ipfs/QmfScVxYJRjnf1jxSyFMBAxJjR6tnXfHnnxN5zXaSdMHJ3"],"license":"Apache-2.0."},"src/MockStarknetMessaging.sol":{"keccak256":"0xc70ac295b478f869a8ba3b95b9698ae2263a38a702993f622b3e36702f209f56","urls":["bzz-raw://fcdc2494eafde351987c3ada66be602edc379cf7b41917563b6bea6d13b88150","dweb:/ipfs/QmYUeK8GBydyFz6VfV6DzEWyEZt8SxLgDcLKGveZ7KVTRi"],"license":"Apache-2.0."},"src/NamedStorage.sol":{"keccak256":"0x014ba48551c965e42b7e8f2e22f6f5f559f1ecaa6b1ce2dbf965e2b9808514ee","urls":["bzz-raw://fb77540fd0d17b382d61e597862b29d164256f7224f0f39a534d2e1c3c161140","dweb:/ipfs/QmYCombekr8CQvCCjBDFVniNCnreg9Z2TT78ZjdS3FGNsk"],"license":"Apache-2.0."},"src/StarknetMessaging.sol":{"keccak256":"0x719a1abf0a6214cadd3e48f3dcdf270a96b23ab441b87d5df254ee703ab75233","urls":["bzz-raw://e8844f6e9e9cf6f5ec223f02d43ab1b1897263b4256bbc3ff8c9c6d8040d039c","dweb:/ipfs/QmQ2yDB3vLYmBdLswLqAVe59RgVtpffSTyvPp4eVdaixV9"],"license":"Apache-2.0."}},"version":1},"ast":{"absolutePath":"src/L1L2.sol","id":40711,"exportedSymbols":{"L1L2Example":[40710]},"nodeType":"SourceUnit","src":"40:2146:19","nodes":[{"id":40553,"nodeType":"PragmaDirective","src":"40:24:19","nodes":[],"literals":["solidity","^","0.6",".12"]},{"id":40554,"nodeType":"ImportDirective","src":"181:37:19","nodes":[],"absolutePath":"src/MockStarknetMessaging.sol","file":"./MockStarknetMessaging.sol","scope":40711,"sourceUnit":40817,"symbolAliases":[],"unitAlias":""},{"id":40710,"nodeType":"ContractDefinition","src":"220:1965:19","nodes":[{"id":40556,"nodeType":"VariableDeclaration","src":"282:34:19","nodes":[],"constant":false,"mutability":"mutable","name":"starknetCore","overrides":null,"scope":40710,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"},"typeName":{"contractScope":null,"id":40555,"name":"MockStarknetMessaging","nodeType":"UserDefinedTypeName","referencedDeclaration":40816,"src":"282:21:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"value":null,"visibility":"internal"},{"id":40560,"nodeType":"VariableDeclaration","src":"323:47:19","nodes":[],"constant":false,"functionSelector":"051475dd","mutability":"mutable","name":"userBalances","overrides":null,"scope":40710,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":40559,"keyType":{"id":40557,"name":"uint256","nodeType":"ElementaryTypeName","src":"331:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"323:27:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":40558,"name":"uint256","nodeType":"ElementaryTypeName","src":"342:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"id":40563,"nodeType":"VariableDeclaration","src":"377:37:19","nodes":[],"constant":true,"mutability":"constant","name":"MESSAGE_WITHDRAW","overrides":null,"scope":40710,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40561,"name":"uint256","nodeType":"ElementaryTypeName","src":"377:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"30","id":40562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"413:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"internal"},{"id":40566,"nodeType":"VariableDeclaration","src":"470:111:19","nodes":[],"constant":true,"mutability":"constant","name":"DEPOSIT_SELECTOR","overrides":null,"scope":40710,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40564,"name":"uint256","nodeType":"ElementaryTypeName","src":"470:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"333532303430313831353834343536373335363038353135353830373630383838353431343636303539353635303638353533333833353739343633373238353534383433343837373435","id":40565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"506:75:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_352040181584456735608515580760888541466059565068553383579463728554843487745_by_1","typeString":"int_const 3520...(67 digits omitted)...7745"},"value":"352040181584456735608515580760888541466059565068553383579463728554843487745"},"visibility":"internal"},{"id":40577,"nodeType":"FunctionDefinition","src":"641:101:19","nodes":[],"body":{"id":40576,"nodeType":"Block","src":"697:45:19","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":40574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":40572,"name":"starknetCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40556,"src":"707:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":40573,"name":"starknetCore_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40569,"src":"722:13:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"src":"707:28:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"id":40575,"nodeType":"ExpressionStatement","src":"707:28:19"}]},"documentation":{"id":40567,"nodeType":"StructuredDocumentation","src":"588:48:19","text":"Initializes the contract state."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":40570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40569,"mutability":"mutable","name":"starknetCore_","nodeType":"VariableDeclaration","overrides":null,"scope":40577,"src":"653:35:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"},"typeName":{"contractScope":null,"id":40568,"name":"MockStarknetMessaging","nodeType":"UserDefinedTypeName","referencedDeclaration":40816,"src":"653:21:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"value":null,"visibility":"internal"}],"src":"652:37:19"},"returnParameters":{"id":40571,"nodeType":"ParameterList","parameters":[],"src":"697:0:19"},"scope":40710,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":40589,"nodeType":"FunctionDefinition","src":"748:137:19","nodes":[],"body":{"id":40588,"nodeType":"Block","src":"843:42:19","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40584,"name":"userBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40560,"src":"860:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":40586,"indexExpression":{"argumentTypes":null,"id":40585,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40579,"src":"873:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"860:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":40583,"id":40587,"nodeType":"Return","src":"853:25:19"}]},"documentation":null,"functionSelector":"5b407a28","implemented":true,"kind":"function","modifiers":[],"name":"get_balance","overrides":null,"parameters":{"id":40580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40579,"mutability":"mutable","name":"user","nodeType":"VariableDeclaration","overrides":null,"scope":40589,"src":"769:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40578,"name":"uint256","nodeType":"ElementaryTypeName","src":"769:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"768:14:19"},"returnParameters":{"id":40583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40582,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":40589,"src":"830:7:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40581,"name":"uint256","nodeType":"ElementaryTypeName","src":"830:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"829:9:19"},"scope":40710,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":40641,"nodeType":"FunctionDefinition","src":"891:619:19","nodes":[],"body":{"id":40640,"nodeType":"Block","src":"1005:505:19","nodes":[],"statements":[{"assignments":[40602],"declarations":[{"constant":false,"id":40602,"mutability":"mutable","name":"payload","nodeType":"VariableDeclaration","overrides":null,"scope":40640,"src":"1070:24:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":40600,"name":"uint256","nodeType":"ElementaryTypeName","src":"1070:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40601,"length":null,"nodeType":"ArrayTypeName","src":"1070:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":40608,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"33","id":40606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1111:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":40605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1097:13:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":40603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1101:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40604,"length":null,"nodeType":"ArrayTypeName","src":"1101:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":40607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1097:16:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1070:43:19"},{"expression":{"argumentTypes":null,"id":40613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40609,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40602,"src":"1123:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":40611,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":40610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1131:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1123:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":40612,"name":"MESSAGE_WITHDRAW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40563,"src":"1136:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1123:29:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40614,"nodeType":"ExpressionStatement","src":"1123:29:19"},{"expression":{"argumentTypes":null,"id":40619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40615,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40602,"src":"1162:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":40617,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":40616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1170:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1162:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":40618,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40593,"src":"1175:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1162:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40620,"nodeType":"ExpressionStatement","src":"1162:17:19"},{"expression":{"argumentTypes":null,"id":40625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40621,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40602,"src":"1189:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":40623,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":40622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1197:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1189:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":40624,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40595,"src":"1202:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1189:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40626,"nodeType":"ExpressionStatement","src":"1189:19:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40630,"name":"l2ContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40591,"src":"1403:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40631,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40602,"src":"1422:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"argumentTypes":null,"id":40627,"name":"starknetCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40556,"src":"1369:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"id":40629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"consumeMessageFromL2","nodeType":"MemberAccess","referencedDeclaration":41376,"src":"1369:33:19","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,uint256[] memory) external returns (bytes32)"}},"id":40632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1369:61:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":40633,"nodeType":"ExpressionStatement","src":"1369:61:19"},{"expression":{"argumentTypes":null,"id":40638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40634,"name":"userBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40560,"src":"1475:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":40636,"indexExpression":{"argumentTypes":null,"id":40635,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40593,"src":"1488:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1475:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"id":40637,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40595,"src":"1497:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1475:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40639,"nodeType":"ExpressionStatement","src":"1475:28:19"}]},"documentation":null,"functionSelector":"a41fe49f","implemented":true,"kind":"function","modifiers":[],"name":"withdraw","overrides":null,"parameters":{"id":40596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40591,"mutability":"mutable","name":"l2ContractAddress","nodeType":"VariableDeclaration","overrides":null,"scope":40641,"src":"918:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40590,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40593,"mutability":"mutable","name":"user","nodeType":"VariableDeclaration","overrides":null,"scope":40641,"src":"953:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40592,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40595,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","overrides":null,"scope":40641,"src":"975:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40594,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"908:87:19"},"returnParameters":{"id":40597,"nodeType":"ParameterList","parameters":[],"src":"1005:0:19"},"scope":40710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":40709,"nodeType":"FunctionDefinition","src":"1516:667:19","nodes":[],"body":{"id":40708,"nodeType":"Block","src":"1637:546:19","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":40651,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40647,"src":"1655:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":40654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"hexValue":"32","id":40652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1664:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"argumentTypes":null,"hexValue":"3634","id":40653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1667:2:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"1664:5:19","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"1655:14:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"496e76616c696420616d6f756e742e","id":40656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1671:17:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_029a21b5fde4319dd75e1bd4f96d331a4a14ab18a0315f12999646068f384cbc","typeString":"literal_string \"Invalid amount.\""},"value":"Invalid amount."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_029a21b5fde4319dd75e1bd4f96d331a4a14ab18a0315f12999646068f384cbc","typeString":"literal_string \"Invalid amount.\""}],"id":40650,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1647:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":40657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1647:42:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40658,"nodeType":"ExpressionStatement","src":"1647:42:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":40664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":40660,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40647,"src":"1707:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40661,"name":"userBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40560,"src":"1717:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":40663,"indexExpression":{"argumentTypes":null,"id":40662,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40645,"src":"1730:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1717:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1707:28:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"546865207573657227732062616c616e6365206973206e6f74206c6172676520656e6f7567682e","id":40665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1737:41:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_60c48dda04baba34cb1f21efeafc259b2d16018992d91fe93bb2a4374ab2c87e","typeString":"literal_string \"The user's balance is not large enough.\""},"value":"The user's balance is not large enough."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_60c48dda04baba34cb1f21efeafc259b2d16018992d91fe93bb2a4374ab2c87e","typeString":"literal_string \"The user's balance is not large enough.\""}],"id":40659,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1699:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":40666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1699:80:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40667,"nodeType":"ExpressionStatement","src":"1699:80:19"},{"expression":{"argumentTypes":null,"id":40672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40668,"name":"userBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40560,"src":"1824:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":40670,"indexExpression":{"argumentTypes":null,"id":40669,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40645,"src":"1837:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1824:18:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":40671,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40647,"src":"1846:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1824:28:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40673,"nodeType":"ExpressionStatement","src":"1824:28:19"},{"assignments":[40678],"declarations":[{"constant":false,"id":40678,"mutability":"mutable","name":"payload","nodeType":"VariableDeclaration","overrides":null,"scope":40708,"src":"1915:24:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":40676,"name":"uint256","nodeType":"ElementaryTypeName","src":"1915:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40677,"length":null,"nodeType":"ArrayTypeName","src":"1915:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":40684,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":40682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1956:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":40681,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1942:13:19","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":40679,"name":"uint256","nodeType":"ElementaryTypeName","src":"1946:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40680,"length":null,"nodeType":"ArrayTypeName","src":"1946:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":40683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1942:16:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1915:43:19"},{"expression":{"argumentTypes":null,"id":40689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40685,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40678,"src":"1968:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":40687,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":40686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1976:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1968:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":40688,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40645,"src":"1981:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1968:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40690,"nodeType":"ExpressionStatement","src":"1968:17:19"},{"expression":{"argumentTypes":null,"id":40695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":40691,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40678,"src":"1995:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":40693,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":40692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2003:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1995:10:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":40694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40647,"src":"2008:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1995:19:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":40696,"nodeType":"ExpressionStatement","src":"1995:19:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":40703,"name":"l2ContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40643,"src":"2131:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40704,"name":"DEPOSIT_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40566,"src":"2150:16:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":40705,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40678,"src":"2168:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"argumentTypes":null,"id":40697,"name":"starknetCore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40556,"src":"2084:12:19","typeDescriptions":{"typeIdentifier":"t_contract$_MockStarknetMessaging_$40816","typeString":"contract MockStarknetMessaging"}},"id":40699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendMessageToL2","nodeType":"MemberAccess","referencedDeclaration":41320,"src":"2084:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_bytes32_$_t_uint256_$","typeString":"function (uint256,uint256,uint256[] memory) payable external returns (bytes32,uint256)"}},"id":40702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":40700,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2120:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":40701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2120:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2084:46:19","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_bytes32_$_t_uint256_$value","typeString":"function (uint256,uint256,uint256[] memory) payable external returns (bytes32,uint256)"}},"id":40706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2084:92:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes32_$_t_uint256_$","typeString":"tuple(bytes32,uint256)"}},"id":40707,"nodeType":"ExpressionStatement","src":"2084:92:19"}]},"documentation":null,"functionSelector":"00aeef8a","implemented":true,"kind":"function","modifiers":[],"name":"deposit","overrides":null,"parameters":{"id":40648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40643,"mutability":"mutable","name":"l2ContractAddress","nodeType":"VariableDeclaration","overrides":null,"scope":40709,"src":"1542:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40642,"name":"uint256","nodeType":"ElementaryTypeName","src":"1542:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40645,"mutability":"mutable","name":"user","nodeType":"VariableDeclaration","overrides":null,"scope":40709,"src":"1577:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40644,"name":"uint256","nodeType":"ElementaryTypeName","src":"1577:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":40647,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","overrides":null,"scope":40709,"src":"1599:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40646,"name":"uint256","nodeType":"ElementaryTypeName","src":"1599:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1532:87:19"},"returnParameters":{"id":40649,"nodeType":"ParameterList","parameters":[],"src":"1637:0:19"},"scope":40710,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[40710],"name":"L1L2Example","scope":40711}],"license":"Apache-2.0."},"id":19}