{ "contractName": "ATM", "abi": [ { "inputs": [ { "internalType": "address", "name": "bank_addr", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "destroy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function", "constant": true }, { "stateMutability": "payable", "type": "receive", "payable": true }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bank_addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ATM.sol\":\"ATM\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ATM.sol\":{\"keccak256\":\"0xacb5a205088c1cb9258949f4b030c82ce8bd44deac74e5f95cd4b9b41508a60d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e18c28ae09afcb826dee6fad30703aba8171d7da87da8153e77e6bc8df6c0616\",\"dweb:/ipfs/QmdmzwzQUVHfEqXWz26VrV5tFCK58Lk8mzrj95B25xN9Af\"]},\"project:/contracts/Bank.sol\":{\"keccak256\":\"0x7e71586662e9ff25c22934c0898039b5027d914971e8eb2876ad100c17105a04\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a4b07fc981db749280db101aed247db5698848b980348238b59058921a2396f\",\"dweb:/ipfs/QmWS5cvNoaq5MQFMzR6udwPWTu7NcoZUbLifgbLb5DpHMo\"]},\"project:/contracts/BaseContract.sol\":{\"keccak256\":\"0xe4a7a376123fde9f62e656195c2b5208f8fe81b22346263c4f52fd2408eb3ef1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://921d16d096d80ce97a7596e3706588d1bbf0e3f55df790bfedac171cd9bd2dc5\",\"dweb:/ipfs/QmQmXW1HZoNrhhEtgSxapUg8hghEtVWJ1DLvbDZNbikr5j\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506040516107c03803806107c08339818101604052810190610032919061011c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610149565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e9826100be565b9050919050565b6100f9816100de565b811461010457600080fd5b50565b600081519050610116816100f0565b92915050565b600060208284031215610132576101316100b9565b5b600061014084828501610107565b91505092915050565b610668806101586000396000f3fe6080604052600436106100385760003560e01c80632e1a7d4d1461004457806383197ef01461006d5780638da5cb5b146100845761003f565b3661003f57005b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610382565b6100af565b005b34801561007957600080fd5b5061008261022c565b005b34801561009057600080fd5b50610099610323565b6040516100a691906103f0565b60405180910390f35b67016345785d8a0000471161015457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d6706f05b59d3b200006040518263ffffffff1660e01b81526004016101219190610450565b600060405180830381600087803b15801561013b57600080fd5b505af115801561014f573d6000803e3d6000fd5b505050505b67016345785d8a000081111561019f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610196906104ee565b60405180910390fd5b478111156101e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d990610580565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610228573d6000803e3d6000fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b190610612565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610320573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b61035f8161034c565b811461036a57600080fd5b50565b60008135905061037c81610356565b92915050565b60006020828403121561039857610397610347565b5b60006103a68482850161036d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103da826103af565b9050919050565b6103ea816103cf565b82525050565b600060208201905061040560008301846103e1565b92915050565b6000819050919050565b6000819050919050565b600061043a6104356104308461040b565b610415565b61034c565b9050919050565b61044a8161041f565b82525050565b60006020820190506104656000830184610441565b92915050565b600082825260208201905092915050565b7f596f75207265717565737420616d6f756e742063616e6e6f742062696767657260008201527f207468616e20302e312065746865720000000000000000000000000000000000602082015250565b60006104d8602f8361046b565b91506104e38261047c565b604082019050919050565b60006020820190508181036000830152610507816104cb565b9050919050565b7f546869732041544d20646f65736e2774206861766520656e6f7567682045544860008201527f20746f2077697468647261770000000000000000000000000000000000000000602082015250565b600061056a602c8361046b565b91506105758261050e565b604082019050919050565b600060208201905081810360008301526105998161055d565b9050919050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b60006105fc60278361046b565b9150610607826105a0565b604082019050919050565b6000602082019050818103600083015261062b816105ef565b905091905056fea26469706673582212200521cc993228aa54841fa64b380119092ed1328d422246267ded778d7e74a40f64736f6c63430008130033", "deployedBytecode": "0x6080604052600436106100385760003560e01c80632e1a7d4d1461004457806383197ef01461006d5780638da5cb5b146100845761003f565b3661003f57005b600080fd5b34801561005057600080fd5b5061006b60048036038101906100669190610382565b6100af565b005b34801561007957600080fd5b5061008261022c565b005b34801561009057600080fd5b50610099610323565b6040516100a691906103f0565b60405180910390f35b67016345785d8a0000471161015457600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d6706f05b59d3b200006040518263ffffffff1660e01b81526004016101219190610450565b600060405180830381600087803b15801561013b57600080fd5b505af115801561014f573d6000803e3d6000fd5b505050505b67016345785d8a000081111561019f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610196906104ee565b60405180910390fd5b478111156101e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d990610580565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610228573d6000803e3d6000fd5b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102b190610612565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610320573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b61035f8161034c565b811461036a57600080fd5b50565b60008135905061037c81610356565b92915050565b60006020828403121561039857610397610347565b5b60006103a68482850161036d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103da826103af565b9050919050565b6103ea816103cf565b82525050565b600060208201905061040560008301846103e1565b92915050565b6000819050919050565b6000819050919050565b600061043a6104356104308461040b565b610415565b61034c565b9050919050565b61044a8161041f565b82525050565b60006020820190506104656000830184610441565b92915050565b600082825260208201905092915050565b7f596f75207265717565737420616d6f756e742063616e6e6f742062696767657260008201527f207468616e20302e312065746865720000000000000000000000000000000000602082015250565b60006104d8602f8361046b565b91506104e38261047c565b604082019050919050565b60006020820190508181036000830152610507816104cb565b9050919050565b7f546869732041544d20646f65736e2774206861766520656e6f7567682045544860008201527f20746f2077697468647261770000000000000000000000000000000000000000602082015250565b600061056a602c8361046b565b91506105758261050e565b604082019050919050565b600060208201905081810360008301526105998161055d565b9050919050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b60006105fc60278361046b565b9150610607826105a0565b604082019050919050565b6000602082019050818103600083015261062b816105ef565b905091905056fea26469706673582212200521cc993228aa54841fa64b380119092ed1328d422246267ded778d7e74a40f64736f6c63430008130033", "immutableReferences": {}, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1199:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:3", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:3", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:3", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:3" }, "nodeType": "YulFunctionCall", "src": "67:9:3" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:3" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:3", "type": "" } ], "src": "7:75:3" }, { "body": { "nodeType": "YulBlock", "src": "177:28:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:3" }, "nodeType": "YulFunctionCall", "src": "187:12:3" }, "nodeType": "YulExpressionStatement", "src": "187:12:3" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:3" }, { "body": { "nodeType": "YulBlock", "src": "300:28:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:3" }, "nodeType": "YulFunctionCall", "src": "310:12:3" }, "nodeType": "YulExpressionStatement", "src": "310:12:3" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:3" }, { "body": { "nodeType": "YulBlock", "src": "379:81:3", "statements": [ { "nodeType": "YulAssignment", "src": "389:65:3", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "404:5:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "411:42:3", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "400:3:3" }, "nodeType": "YulFunctionCall", "src": "400:54:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:3" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:3", "type": "" } ], "src": "334:126:3" }, { "body": { "nodeType": "YulBlock", "src": "511:51:3", "statements": [ { "nodeType": "YulAssignment", "src": "521:35:3", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "550:5:3" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "532:17:3" }, "nodeType": "YulFunctionCall", "src": "532:24:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "521:7:3" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "493:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "503:7:3", "type": "" } ], "src": "466:96:3" }, { "body": { "nodeType": "YulBlock", "src": "611:79:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "668:16:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "677:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "680:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "670:6:3" }, "nodeType": "YulFunctionCall", "src": "670:12:3" }, "nodeType": "YulExpressionStatement", "src": "670:12:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "634:5:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "659:5:3" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "641:17:3" }, "nodeType": "YulFunctionCall", "src": "641:24:3" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "631:2:3" }, "nodeType": "YulFunctionCall", "src": "631:35:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "624:6:3" }, "nodeType": "YulFunctionCall", "src": "624:43:3" }, "nodeType": "YulIf", "src": "621:63:3" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "604:5:3", "type": "" } ], "src": "568:122:3" }, { "body": { "nodeType": "YulBlock", "src": "759:80:3", "statements": [ { "nodeType": "YulAssignment", "src": "769:22:3", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "784:6:3" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "778:5:3" }, "nodeType": "YulFunctionCall", "src": "778:13:3" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "769:5:3" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "827:5:3" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "800:26:3" }, "nodeType": "YulFunctionCall", "src": "800:33:3" }, "nodeType": "YulExpressionStatement", "src": "800:33:3" } ] }, "name": "abi_decode_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "737:6:3", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "745:3:3", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "753:5:3", "type": "" } ], "src": "696:143:3" }, { "body": { "nodeType": "YulBlock", "src": "922:274:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "968:83:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "970:77:3" }, "nodeType": "YulFunctionCall", "src": "970:79:3" }, "nodeType": "YulExpressionStatement", "src": "970:79:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "943:7:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "952:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "939:3:3" }, "nodeType": "YulFunctionCall", "src": "939:23:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "964:2:3", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "935:3:3" }, "nodeType": "YulFunctionCall", "src": "935:32:3" }, "nodeType": "YulIf", "src": "932:119:3" }, { "nodeType": "YulBlock", "src": "1061:128:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1076:15:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1090:1:3", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1080:6:3", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1105:74:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1151:9:3" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1162:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1147:3:3" }, "nodeType": "YulFunctionCall", "src": "1147:22:3" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1171:7:3" } ], "functionName": { "name": "abi_decode_t_address_fromMemory", "nodeType": "YulIdentifier", "src": "1115:31:3" }, "nodeType": "YulFunctionCall", "src": "1115:64:3" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1105:6:3" } ] } ] } ] }, "name": "abi_decode_tuple_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "892:9:3", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "903:7:3", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "915:6:3", "type": "" } ], "src": "845:351:3" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 3, "language": "Yul", "name": "#utility.yul" } ], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:5720:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:3", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:3", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:3", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:3" }, "nodeType": "YulFunctionCall", "src": "67:9:3" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:3" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:3", "type": "" } ], "src": "7:75:3" }, { "body": { "nodeType": "YulBlock", "src": "177:28:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:3" }, "nodeType": "YulFunctionCall", "src": "187:12:3" }, "nodeType": "YulExpressionStatement", "src": "187:12:3" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:3" }, { "body": { "nodeType": "YulBlock", "src": "300:28:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:3" }, "nodeType": "YulFunctionCall", "src": "310:12:3" }, "nodeType": "YulExpressionStatement", "src": "310:12:3" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:3" }, { "body": { "nodeType": "YulBlock", "src": "379:32:3", "statements": [ { "nodeType": "YulAssignment", "src": "389:16:3", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "400:5:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:3" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:3", "type": "" } ], "src": "334:77:3" }, { "body": { "nodeType": "YulBlock", "src": "460:79:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "517:16:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "526:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "529:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "519:6:3" }, "nodeType": "YulFunctionCall", "src": "519:12:3" }, "nodeType": "YulExpressionStatement", "src": "519:12:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "483:5:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "508:5:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "490:17:3" }, "nodeType": "YulFunctionCall", "src": "490:24:3" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "480:2:3" }, "nodeType": "YulFunctionCall", "src": "480:35:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "473:6:3" }, "nodeType": "YulFunctionCall", "src": "473:43:3" }, "nodeType": "YulIf", "src": "470:63:3" } ] }, "name": "validator_revert_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "453:5:3", "type": "" } ], "src": "417:122:3" }, { "body": { "nodeType": "YulBlock", "src": "597:87:3", "statements": [ { "nodeType": "YulAssignment", "src": "607:29:3", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "629:6:3" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "616:12:3" }, "nodeType": "YulFunctionCall", "src": "616:20:3" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "607:5:3" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "672:5:3" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", "src": "645:26:3" }, "nodeType": "YulFunctionCall", "src": "645:33:3" }, "nodeType": "YulExpressionStatement", "src": "645:33:3" } ] }, "name": "abi_decode_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "575:6:3", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "583:3:3", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "591:5:3", "type": "" } ], "src": "545:139:3" }, { "body": { "nodeType": "YulBlock", "src": "756:263:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "802:83:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "804:77:3" }, "nodeType": "YulFunctionCall", "src": "804:79:3" }, "nodeType": "YulExpressionStatement", "src": "804:79:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "777:7:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "786:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "773:3:3" }, "nodeType": "YulFunctionCall", "src": "773:23:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "798:2:3", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "769:3:3" }, "nodeType": "YulFunctionCall", "src": "769:32:3" }, "nodeType": "YulIf", "src": "766:119:3" }, { "nodeType": "YulBlock", "src": "895:117:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "910:15:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "924:1:3", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "914:6:3", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "939:63:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "974:9:3" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "985:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "970:3:3" }, "nodeType": "YulFunctionCall", "src": "970:22:3" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "994:7:3" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", "src": "949:20:3" }, "nodeType": "YulFunctionCall", "src": "949:53:3" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "939:6:3" } ] } ] } ] }, "name": "abi_decode_tuple_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "726:9:3", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "737:7:3", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "749:6:3", "type": "" } ], "src": "690:329:3" }, { "body": { "nodeType": "YulBlock", "src": "1070:81:3", "statements": [ { "nodeType": "YulAssignment", "src": "1080:65:3", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1095:5:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1102:42:3", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "1091:3:3" }, "nodeType": "YulFunctionCall", "src": "1091:54:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1080:7:3" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1052:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1062:7:3", "type": "" } ], "src": "1025:126:3" }, { "body": { "nodeType": "YulBlock", "src": "1202:51:3", "statements": [ { "nodeType": "YulAssignment", "src": "1212:35:3", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1241:5:3" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "1223:17:3" }, "nodeType": "YulFunctionCall", "src": "1223:24:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1212:7:3" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1184:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1194:7:3", "type": "" } ], "src": "1157:96:3" }, { "body": { "nodeType": "YulBlock", "src": "1324:53:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1341:3:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1364:5:3" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1346:17:3" }, "nodeType": "YulFunctionCall", "src": "1346:24:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1334:6:3" }, "nodeType": "YulFunctionCall", "src": "1334:37:3" }, "nodeType": "YulExpressionStatement", "src": "1334:37:3" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1312:5:3", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1319:3:3", "type": "" } ], "src": "1259:118:3" }, { "body": { "nodeType": "YulBlock", "src": "1481:124:3", "statements": [ { "nodeType": "YulAssignment", "src": "1491:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1503:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1514:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1499:3:3" }, "nodeType": "YulFunctionCall", "src": "1499:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "1491:4:3" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1571:6:3" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1584:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1595:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1580:3:3" }, "nodeType": "YulFunctionCall", "src": "1580:17:3" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "1527:43:3" }, "nodeType": "YulFunctionCall", "src": "1527:71:3" }, "nodeType": "YulExpressionStatement", "src": "1527:71:3" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1453:9:3", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "1465:6:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "1476:4:3", "type": "" } ], "src": "1383:222:3" }, { "body": { "nodeType": "YulBlock", "src": "1681:32:3", "statements": [ { "nodeType": "YulAssignment", "src": "1691:16:3", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1702:5:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1691:7:3" } ] } ] }, "name": "cleanup_t_rational_500000000000000000_by_1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1663:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1673:7:3", "type": "" } ], "src": "1611:102:3" }, { "body": { "nodeType": "YulBlock", "src": "1751:28:3", "statements": [ { "nodeType": "YulAssignment", "src": "1761:12:3", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1768:5:3" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", "src": "1761:3:3" } ] } ] }, "name": "identity", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1737:5:3", "type": "" } ], "returnVariables": [ { "name": "ret", "nodeType": "YulTypedName", "src": "1747:3:3", "type": "" } ], "src": "1719:60:3" }, { "body": { "nodeType": "YulBlock", "src": "1870:107:3", "statements": [ { "nodeType": "YulAssignment", "src": "1880:91:3", "value": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1963:5:3" } ], "functionName": { "name": "cleanup_t_rational_500000000000000000_by_1", "nodeType": "YulIdentifier", "src": "1920:42:3" }, "nodeType": "YulFunctionCall", "src": "1920:49:3" } ], "functionName": { "name": "identity", "nodeType": "YulIdentifier", "src": "1911:8:3" }, "nodeType": "YulFunctionCall", "src": "1911:59:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1893:17:3" }, "nodeType": "YulFunctionCall", "src": "1893:78:3" }, "variableNames": [ { "name": "converted", "nodeType": "YulIdentifier", "src": "1880:9:3" } ] } ] }, "name": "convert_t_rational_500000000000000000_by_1_to_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1850:5:3", "type": "" } ], "returnVariables": [ { "name": "converted", "nodeType": "YulTypedName", "src": "1860:9:3", "type": "" } ], "src": "1785:192:3" }, { "body": { "nodeType": "YulBlock", "src": "2073:91:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2090:3:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2151:5:3" } ], "functionName": { "name": "convert_t_rational_500000000000000000_by_1_to_t_uint256", "nodeType": "YulIdentifier", "src": "2095:55:3" }, "nodeType": "YulFunctionCall", "src": "2095:62:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2083:6:3" }, "nodeType": "YulFunctionCall", "src": "2083:75:3" }, "nodeType": "YulExpressionStatement", "src": "2083:75:3" } ] }, "name": "abi_encode_t_rational_500000000000000000_by_1_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2061:5:3", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2068:3:3", "type": "" } ], "src": "1983:181:3" }, { "body": { "nodeType": "YulBlock", "src": "2293:149:3", "statements": [ { "nodeType": "YulAssignment", "src": "2303:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2315:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2326:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2311:3:3" }, "nodeType": "YulFunctionCall", "src": "2311:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2303:4:3" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2408:6:3" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2421:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2432:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2417:3:3" }, "nodeType": "YulFunctionCall", "src": "2417:17:3" } ], "functionName": { "name": "abi_encode_t_rational_500000000000000000_by_1_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "2339:68:3" }, "nodeType": "YulFunctionCall", "src": "2339:96:3" }, "nodeType": "YulExpressionStatement", "src": "2339:96:3" } ] }, "name": "abi_encode_tuple_t_rational_500000000000000000_by_1__to_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "2265:9:3", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2277:6:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "2288:4:3", "type": "" } ], "src": "2170:272:3" }, { "body": { "nodeType": "YulBlock", "src": "2544:73:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2561:3:3" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2566:6:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2554:6:3" }, "nodeType": "YulFunctionCall", "src": "2554:19:3" }, "nodeType": "YulExpressionStatement", "src": "2554:19:3" }, { "nodeType": "YulAssignment", "src": "2582:29:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2601:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2606:4:3", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2597:3:3" }, "nodeType": "YulFunctionCall", "src": "2597:14:3" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "2582:11:3" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2516:3:3", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2521:6:3", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "2532:11:3", "type": "" } ], "src": "2448:169:3" }, { "body": { "nodeType": "YulBlock", "src": "2729:128:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "2751:6:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2759:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2747:3:3" }, "nodeType": "YulFunctionCall", "src": "2747:14:3" }, { "hexValue": "596f75207265717565737420616d6f756e742063616e6e6f7420626967676572", "kind": "string", "nodeType": "YulLiteral", "src": "2763:34:3", "type": "", "value": "You request amount cannot bigger" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2740:6:3" }, "nodeType": "YulFunctionCall", "src": "2740:58:3" }, "nodeType": "YulExpressionStatement", "src": "2740:58:3" }, { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "2819:6:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2827:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2815:3:3" }, "nodeType": "YulFunctionCall", "src": "2815:15:3" }, { "hexValue": "207468616e20302e31206574686572", "kind": "string", "nodeType": "YulLiteral", "src": "2832:17:3", "type": "", "value": " than 0.1 ether" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2808:6:3" }, "nodeType": "YulFunctionCall", "src": "2808:42:3" }, "nodeType": "YulExpressionStatement", "src": "2808:42:3" } ] }, "name": "store_literal_in_memory_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "2721:6:3", "type": "" } ], "src": "2623:234:3" }, { "body": { "nodeType": "YulBlock", "src": "3009:220:3", "statements": [ { "nodeType": "YulAssignment", "src": "3019:74:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3085:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3090:2:3", "type": "", "value": "47" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3026:58:3" }, "nodeType": "YulFunctionCall", "src": "3026:67:3" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3019:3:3" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3191:3:3" } ], "functionName": { "name": "store_literal_in_memory_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0", "nodeType": "YulIdentifier", "src": "3102:88:3" }, "nodeType": "YulFunctionCall", "src": "3102:93:3" }, "nodeType": "YulExpressionStatement", "src": "3102:93:3" }, { "nodeType": "YulAssignment", "src": "3204:19:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3215:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3220:2:3", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3211:3:3" }, "nodeType": "YulFunctionCall", "src": "3211:12:3" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "3204:3:3" } ] } ] }, "name": "abi_encode_t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "2997:3:3", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "3005:3:3", "type": "" } ], "src": "2863:366:3" }, { "body": { "nodeType": "YulBlock", "src": "3406:248:3", "statements": [ { "nodeType": "YulAssignment", "src": "3416:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3428:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3439:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3424:3:3" }, "nodeType": "YulFunctionCall", "src": "3424:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3416:4:3" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3463:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3474:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3459:3:3" }, "nodeType": "YulFunctionCall", "src": "3459:17:3" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3482:4:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "3488:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "3478:3:3" }, "nodeType": "YulFunctionCall", "src": "3478:20:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3452:6:3" }, "nodeType": "YulFunctionCall", "src": "3452:47:3" }, "nodeType": "YulExpressionStatement", "src": "3452:47:3" }, { "nodeType": "YulAssignment", "src": "3508:139:3", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3642:4:3" } ], "functionName": { "name": "abi_encode_t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "3516:124:3" }, "nodeType": "YulFunctionCall", "src": "3516:131:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3508:4:3" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3386:9:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3401:4:3", "type": "" } ], "src": "3235:419:3" }, { "body": { "nodeType": "YulBlock", "src": "3766:125:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3788:6:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3796:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3784:3:3" }, "nodeType": "YulFunctionCall", "src": "3784:14:3" }, { "hexValue": "546869732041544d20646f65736e2774206861766520656e6f75676820455448", "kind": "string", "nodeType": "YulLiteral", "src": "3800:34:3", "type": "", "value": "This ATM doesn't have enough ETH" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3777:6:3" }, "nodeType": "YulFunctionCall", "src": "3777:58:3" }, "nodeType": "YulExpressionStatement", "src": "3777:58:3" }, { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "3856:6:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3864:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3852:3:3" }, "nodeType": "YulFunctionCall", "src": "3852:15:3" }, { "hexValue": "20746f207769746864726177", "kind": "string", "nodeType": "YulLiteral", "src": "3869:14:3", "type": "", "value": " to withdraw" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3845:6:3" }, "nodeType": "YulFunctionCall", "src": "3845:39:3" }, "nodeType": "YulExpressionStatement", "src": "3845:39:3" } ] }, "name": "store_literal_in_memory_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "3758:6:3", "type": "" } ], "src": "3660:231:3" }, { "body": { "nodeType": "YulBlock", "src": "4043:220:3", "statements": [ { "nodeType": "YulAssignment", "src": "4053:74:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4119:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4124:2:3", "type": "", "value": "44" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "4060:58:3" }, "nodeType": "YulFunctionCall", "src": "4060:67:3" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4053:3:3" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4225:3:3" } ], "functionName": { "name": "store_literal_in_memory_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e", "nodeType": "YulIdentifier", "src": "4136:88:3" }, "nodeType": "YulFunctionCall", "src": "4136:93:3" }, "nodeType": "YulExpressionStatement", "src": "4136:93:3" }, { "nodeType": "YulAssignment", "src": "4238:19:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "4249:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4254:2:3", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4245:3:3" }, "nodeType": "YulFunctionCall", "src": "4245:12:3" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "4238:3:3" } ] } ] }, "name": "abi_encode_t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "4031:3:3", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "4039:3:3", "type": "" } ], "src": "3897:366:3" }, { "body": { "nodeType": "YulBlock", "src": "4440:248:3", "statements": [ { "nodeType": "YulAssignment", "src": "4450:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "4462:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4473:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4458:3:3" }, "nodeType": "YulFunctionCall", "src": "4458:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4450:4:3" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "4497:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4508:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4493:3:3" }, "nodeType": "YulFunctionCall", "src": "4493:17:3" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4516:4:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "4522:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "4512:3:3" }, "nodeType": "YulFunctionCall", "src": "4512:20:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4486:6:3" }, "nodeType": "YulFunctionCall", "src": "4486:47:3" }, "nodeType": "YulExpressionStatement", "src": "4486:47:3" }, { "nodeType": "YulAssignment", "src": "4542:139:3", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4676:4:3" } ], "functionName": { "name": "abi_encode_t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "4550:124:3" }, "nodeType": "YulFunctionCall", "src": "4550:131:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "4542:4:3" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "4420:9:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "4435:4:3", "type": "" } ], "src": "4269:419:3" }, { "body": { "nodeType": "YulBlock", "src": "4800:120:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4822:6:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4830:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4818:3:3" }, "nodeType": "YulFunctionCall", "src": "4818:14:3" }, { "hexValue": "546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e", "kind": "string", "nodeType": "YulLiteral", "src": "4834:34:3", "type": "", "value": "This function only the owner can" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4811:6:3" }, "nodeType": "YulFunctionCall", "src": "4811:58:3" }, "nodeType": "YulExpressionStatement", "src": "4811:58:3" }, { "expression": { "arguments": [ { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "4890:6:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4898:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4886:3:3" }, "nodeType": "YulFunctionCall", "src": "4886:15:3" }, { "hexValue": "20616363657373", "kind": "string", "nodeType": "YulLiteral", "src": "4903:9:3", "type": "", "value": " access" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4879:6:3" }, "nodeType": "YulFunctionCall", "src": "4879:34:3" }, "nodeType": "YulExpressionStatement", "src": "4879:34:3" } ] }, "name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "4792:6:3", "type": "" } ], "src": "4694:226:3" }, { "body": { "nodeType": "YulBlock", "src": "5072:220:3", "statements": [ { "nodeType": "YulAssignment", "src": "5082:74:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5148:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5153:2:3", "type": "", "value": "39" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "5089:58:3" }, "nodeType": "YulFunctionCall", "src": "5089:67:3" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5082:3:3" } ] }, { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5254:3:3" } ], "functionName": { "name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002", "nodeType": "YulIdentifier", "src": "5165:88:3" }, "nodeType": "YulFunctionCall", "src": "5165:93:3" }, "nodeType": "YulExpressionStatement", "src": "5165:93:3" }, { "nodeType": "YulAssignment", "src": "5267:19:3", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "5278:3:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5283:2:3", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5274:3:3" }, "nodeType": "YulFunctionCall", "src": "5274:12:3" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "5267:3:3" } ] } ] }, "name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "5060:3:3", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "5068:3:3", "type": "" } ], "src": "4926:366:3" }, { "body": { "nodeType": "YulBlock", "src": "5469:248:3", "statements": [ { "nodeType": "YulAssignment", "src": "5479:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5491:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5502:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5487:3:3" }, "nodeType": "YulFunctionCall", "src": "5487:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "5479:4:3" } ] }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "5526:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "5537:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "5522:3:3" }, "nodeType": "YulFunctionCall", "src": "5522:17:3" }, { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "5545:4:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "5551:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "5541:3:3" }, "nodeType": "YulFunctionCall", "src": "5541:20:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "5515:6:3" }, "nodeType": "YulFunctionCall", "src": "5515:47:3" }, "nodeType": "YulExpressionStatement", "src": "5515:47:3" }, { "nodeType": "YulAssignment", "src": "5571:139:3", "value": { "arguments": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "5705:4:3" } ], "functionName": { "name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack", "nodeType": "YulIdentifier", "src": "5579:124:3" }, "nodeType": "YulFunctionCall", "src": "5579:131:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "5571:4:3" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "5449:9:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "5464:4:3", "type": "" } ], "src": "5298:419:3" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_rational_500000000000000000_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_500000000000000000_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_500000000000000000_by_1(value)))\n }\n\n function abi_encode_t_rational_500000000000000000_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_500000000000000000_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_500000000000000000_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_500000000000000000_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0(memPtr) {\n\n mstore(add(memPtr, 0), \"You request amount cannot bigger\")\n\n mstore(add(memPtr, 32), \" than 0.1 ether\")\n\n }\n\n function abi_encode_t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 47)\n store_literal_in_memory_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e(memPtr) {\n\n mstore(add(memPtr, 0), \"This ATM doesn't have enough ETH\")\n\n mstore(add(memPtr, 32), \" to withdraw\")\n\n }\n\n function abi_encode_t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 44)\n store_literal_in_memory_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002(memPtr) {\n\n mstore(add(memPtr, 0), \"This function only the owner can\")\n\n mstore(add(memPtr, 32), \" access\")\n\n }\n\n function abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", "id": 3, "language": "Yul", "name": "#utility.yul" } ], "sourceMap": "117:447:0:-:0;;;160:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;141:10:2;133:5;;:18;;;;;;;;;;;;;;;;;;215:9:0;195:4;;:31;;;;;;;;;;;;;;;;;;160:70;117:447;;88:117:3;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;117:447:0:-;;;;;;;", "deployedSourceMap": "117:447:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;233:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;267:89:2;;;;;;;;;;;;;:::i;:::-;;91:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;233:329:0;303:9;278:21;:34;275:73;;319:4;;;;;;;;;;;:13;;;333:9;319:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;275:73;367:9;359:6;:17;;351:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;448:21;440:6;:29;;432:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;530:10;522:28;;:36;551:6;522:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;233:329;:::o;267:89:2:-;206:5;;;;;;;;;;192:19;;:10;:19;;;184:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;314:5:::1;::::0;::::1;;;;;;;;306:23;;:46;330:21;306:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;267:89::o:0;91:20::-;;;;;;;;;;;;:::o;88:117:3:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:126::-;1062:7;1102:42;1095:5;1091:54;1080:65;;1025:126;;;:::o;1157:96::-;1194:7;1223:24;1241:5;1223:24;:::i;:::-;1212:35;;1157:96;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:102::-;1673:7;1702:5;1691:16;;1611:102;;;:::o;1719:60::-;1747:3;1768:5;1761:12;;1719:60;;;:::o;1785:192::-;1860:9;1893:78;1911:59;1920:49;1963:5;1920:49;:::i;:::-;1911:59;:::i;:::-;1893:78;:::i;:::-;1880:91;;1785:192;;;:::o;1983:181::-;2095:62;2151:5;2095:62;:::i;:::-;2090:3;2083:75;1983:181;;:::o;2170:272::-;2288:4;2326:2;2315:9;2311:18;2303:26;;2339:96;2432:1;2421:9;2417:17;2408:6;2339:96;:::i;:::-;2170:272;;;;:::o;2448:169::-;2532:11;2566:6;2561:3;2554:19;2606:4;2601:3;2597:14;2582:29;;2448:169;;;;:::o;2623:234::-;2763:34;2759:1;2751:6;2747:14;2740:58;2832:17;2827:2;2819:6;2815:15;2808:42;2623:234;:::o;2863:366::-;3005:3;3026:67;3090:2;3085:3;3026:67;:::i;:::-;3019:74;;3102:93;3191:3;3102:93;:::i;:::-;3220:2;3215:3;3211:12;3204:19;;2863:366;;;:::o;3235:419::-;3401:4;3439:2;3428:9;3424:18;3416:26;;3488:9;3482:4;3478:20;3474:1;3463:9;3459:17;3452:47;3516:131;3642:4;3516:131;:::i;:::-;3508:139;;3235:419;;;:::o;3660:231::-;3800:34;3796:1;3788:6;3784:14;3777:58;3869:14;3864:2;3856:6;3852:15;3845:39;3660:231;:::o;3897:366::-;4039:3;4060:67;4124:2;4119:3;4060:67;:::i;:::-;4053:74;;4136:93;4225:3;4136:93;:::i;:::-;4254:2;4249:3;4245:12;4238:19;;3897:366;;;:::o;4269:419::-;4435:4;4473:2;4462:9;4458:18;4450:26;;4522:9;4516:4;4512:20;4508:1;4497:9;4493:17;4486:47;4550:131;4676:4;4550:131;:::i;:::-;4542:139;;4269:419;;;:::o;4694:226::-;4834:34;4830:1;4822:6;4818:14;4811:58;4903:9;4898:2;4890:6;4886:15;4879:34;4694:226;:::o;4926:366::-;5068:3;5089:67;5153:2;5148:3;5089:67;:::i;:::-;5082:74;;5165:93;5254:3;5165:93;:::i;:::-;5283:2;5278:3;5274:12;5267:19;;4926:366;;;:::o;5298:419::-;5464:4;5502:2;5491:9;5487:18;5479:26;;5551:9;5545:4;5541:20;5537:1;5526:9;5522:17;5515:47;5579:131;5705:4;5579:131;:::i;:::-;5571:139;;5298:419;;;:::o", "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nimport \"./BaseContract.sol\";\nimport \"./Bank.sol\";\n\ncontract ATM is BaseContract{\n\tBank bank;\n\tconstructor(address bank_addr) {\n\t\tbank = Bank(payable(bank_addr));\n\t}\n\n\tfunction withdraw(uint amount) public {\n\t\tif(address(this).balance <= 0.1 ether) {\n\t\t\tbank.withdraw(0.5 ether);\n\t\t}\n\t\trequire(amount<=0.1 ether, \"You request amount cannot bigger than 0.1 ether\");\n\t\trequire(amount<=address(this).balance, \"This ATM doesn't have enough ETH to withdraw\");\n\t\tpayable(msg.sender).transfer(amount);\n\t}\n}\n", "sourcePath": "/home/snsd0805/code/1112_blockchain/HW2_Advanced_Faucet/contracts/ATM.sol", "ast": { "absolutePath": "project:/contracts/ATM.sol", "exportedSymbols": { "ATM": [ 72 ], "Bank": [ 166 ], "BaseContract": [ 214 ] }, "id": 73, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", ">=", "0.4", ".22", "<", "0.9", ".0" ], "nodeType": "PragmaDirective", "src": "32:32:0" }, { "absolutePath": "project:/contracts/BaseContract.sol", "file": "./BaseContract.sol", "id": 2, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 73, "sourceUnit": 215, "src": "66:28:0", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "project:/contracts/Bank.sol", "file": "./Bank.sol", "id": 3, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 73, "sourceUnit": 167, "src": "95:20:0", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 4, "name": "BaseContract", "nameLocations": [ "133:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 214, "src": "133:12:0" }, "id": 5, "nodeType": "InheritanceSpecifier", "src": "133:12:0" } ], "canonicalName": "ATM", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 72, "linearizedBaseContracts": [ 72, 214 ], "name": "ATM", "nameLocation": "126:3:0", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 8, "mutability": "mutable", "name": "bank", "nameLocation": "153:4:0", "nodeType": "VariableDeclaration", "scope": 72, "src": "148:9:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Bank_$166", "typeString": "contract Bank" }, "typeName": { "id": 7, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 6, "name": "Bank", "nameLocations": [ "148:4:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 166, "src": "148:4:0" }, "referencedDeclaration": 166, "src": "148:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Bank_$166", "typeString": "contract Bank" } }, "visibility": "internal" }, { "body": { "id": 22, "nodeType": "Block", "src": "191:39:0", "statements": [ { "expression": { "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 13, "name": "bank", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "195:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Bank_$166", "typeString": "contract Bank" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "arguments": [ { "id": 17, "name": "bank_addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10, "src": "215:9:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 16, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "207:8:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { "id": 15, "name": "address", "nodeType": "ElementaryTypeName", "src": "207:8:0", "stateMutability": "payable", "typeDescriptions": {} } }, "id": 18, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "207:18:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 14, "name": "Bank", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 166, "src": "202:4:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Bank_$166_$", "typeString": "type(contract Bank)" } }, "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "202:24:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_Bank_$166", "typeString": "contract Bank" } }, "src": "195:31:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Bank_$166", "typeString": "contract Bank" } }, "id": 21, "nodeType": "ExpressionStatement", "src": "195:31:0" } ] }, "id": 23, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 11, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10, "mutability": "mutable", "name": "bank_addr", "nameLocation": "180:9:0", "nodeType": "VariableDeclaration", "scope": 23, "src": "172:17:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 9, "name": "address", "nodeType": "ElementaryTypeName", "src": "172:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "171:19:0" }, "returnParameters": { "id": 12, "nodeType": "ParameterList", "parameters": [], "src": "191:0:0" }, "scope": 72, "src": "160:70:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 70, "nodeType": "Block", "src": "271:291:0", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 34, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "arguments": [ { "id": 30, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "286:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ATM_$72", "typeString": "contract ATM" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_ATM_$72", "typeString": "contract ATM" } ], "id": 29, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "278:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 28, "name": "address", "nodeType": "ElementaryTypeName", "src": "278:7:0", "typeDescriptions": {} } }, "id": 31, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "278:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "292:7:0", "memberName": "balance", "nodeType": "MemberAccess", "src": "278:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "302e31", "id": 33, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "303:9:0", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000_by_1", "typeString": "int_const 100000000000000000" }, "value": "0.1" }, "src": "278:34:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 42, "nodeType": "IfStatement", "src": "275:73:0", "trueBody": { "id": 41, "nodeType": "Block", "src": "314:34:0", "statements": [ { "expression": { "arguments": [ { "hexValue": "302e35", "id": 38, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "333:9:0", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_500000000000000000_by_1", "typeString": "int_const 500000000000000000" }, "value": "0.5" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_500000000000000000_by_1", "typeString": "int_const 500000000000000000" } ], "expression": { "id": 35, "name": "bank", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 8, "src": "319:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Bank_$166", "typeString": "contract Bank" } }, "id": 37, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "324:8:0", "memberName": "withdraw", "nodeType": "MemberAccess", "referencedDeclaration": 165, "src": "319:13:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, "id": 39, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "319:24:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40, "nodeType": "ExpressionStatement", "src": "319:24:0" } ] } }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 46, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 44, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "359:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "302e31", "id": 45, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "367:9:0", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000_by_1", "typeString": "int_const 100000000000000000" }, "value": "0.1" }, "src": "359:17:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "596f75207265717565737420616d6f756e742063616e6e6f7420626967676572207468616e20302e31206574686572", "id": 47, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "378:49:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0", "typeString": "literal_string \"You request amount cannot bigger than 0.1 ether\"" }, "value": "You request amount cannot bigger than 0.1 ether" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_88aa1d38043ad612a5bd3cf6af90a5a4173bf63e5e2d2acf062571b31d7562d0", "typeString": "literal_string \"You request amount cannot bigger than 0.1 ether\"" } ], "id": 43, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "351:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 48, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "351:77:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 49, "nodeType": "ExpressionStatement", "src": "351:77:0" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 51, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "440:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "arguments": [ { "id": 54, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "456:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_ATM_$72", "typeString": "contract ATM" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_ATM_$72", "typeString": "contract ATM" } ], "id": 53, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "448:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 52, "name": "address", "nodeType": "ElementaryTypeName", "src": "448:7:0", "typeDescriptions": {} } }, "id": 55, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "448:13:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 56, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "462:7:0", "memberName": "balance", "nodeType": "MemberAccess", "src": "448:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "440:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "546869732041544d20646f65736e2774206861766520656e6f7567682045544820746f207769746864726177", "id": 58, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "471:46:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e", "typeString": "literal_string \"This ATM doesn't have enough ETH to withdraw\"" }, "value": "This ATM doesn't have enough ETH to withdraw" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_951c6c204a160ed91974382975e9f63d26a9475fc11185703124d836e6656a3e", "typeString": "literal_string \"This ATM doesn't have enough ETH to withdraw\"" } ], "id": 50, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 4294967278, 4294967278 ], "referencedDeclaration": 4294967278, "src": "432:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 59, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "432:86:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 60, "nodeType": "ExpressionStatement", "src": "432:86:0" }, { "expression": { "arguments": [ { "id": 67, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "551:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "arguments": [ { "expression": { "id": 63, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "530:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 64, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "534:6:0", "memberName": "sender", "nodeType": "MemberAccess", "src": "530:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 62, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "522:8:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { "id": 61, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:8:0", "stateMutability": "payable", "typeDescriptions": {} } }, "id": 65, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "522:19:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 66, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "542:8:0", "memberName": "transfer", "nodeType": "MemberAccess", "src": "522:28:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 68, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "522:36:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 69, "nodeType": "ExpressionStatement", "src": "522:36:0" } ] }, "functionSelector": "2e1a7d4d", "id": 71, "implemented": true, "kind": "function", "modifiers": [], "name": "withdraw", "nameLocation": "242:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 26, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25, "mutability": "mutable", "name": "amount", "nameLocation": "256:6:0", "nodeType": "VariableDeclaration", "scope": 71, "src": "251:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", "src": "251:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "250:13:0" }, "returnParameters": { "id": 27, "nodeType": "ParameterList", "parameters": [], "src": "271:0:0" }, "scope": 72, "src": "233:329:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 73, "src": "117:447:0", "usedErrors": [] } ], "src": "32:533:0" }, "compiler": { "name": "solc", "version": "0.8.19+commit.7dd6d404.Emscripten.clang" }, "networks": { "5777": { "events": {}, "links": {}, "address": "0xb0bAd9C307436e37073bEC8a845Eb121c94491D5", "transactionHash": "0x8e9cd18dba4189113682aa7571e9b02757ee9bcd693be9a76cb16bc98b4c8344" }, "11155111": { "events": {}, "links": {}, "address": "0x7ed82F1851960a0c2d2BA689c056616e2472Ddce", "transactionHash": "0x6e839bcbf67572b740b6b4136ad56e076adc3c9b5a6fbaace0297d6e226003b6" } }, "schemaVersion": "3.4.13", "updatedAt": "2023-03-29T08:50:14.693Z", "networkType": "ethereum", "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }