advance_faucet/build/contracts/Bank.json
2023-04-06 16:42:54 +08:00

3900 lines
158 KiB
JSON

{
"contractName": "Bank",
"abi": [
{
"inputs": [],
"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": "address",
"name": "atm",
"type": "address"
}
],
"name": "addATM",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"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\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"atm\",\"type\":\"address\"}],\"name\":\"addATM\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"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/Bank.sol\":\"Bank\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"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": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107f9806100606000396000f3fe6080604052600436106100435760003560e01c80632e1a7d4d1461004f57806383197ef01461007857806385c1a0021461008f5780638da5cb5b146100b85761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b506100766004803603810190610071919061049a565b6100e3565b005b34801561008457600080fd5b5061008d610250565b005b34801561009b57600080fd5b506100b660048036038101906100b19190610525565b610347565b005b3480156100c457600080fd5b506100cd61043b565b6040516100da9190610561565b60405180910390f35b6000805b60018054905081101561018157600181815481106101085761010761057c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361016e5760019150610181565b8080610179906105da565b9150506100e7565b50806101c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b99061067f565b60405180910390fd5b47821115610205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fc90610711565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561024b573d6000803e3d6000fd5b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d5906107a3565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610344573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cc906107a3565b60405180910390fd5b6001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b61047781610464565b811461048257600080fd5b50565b6000813590506104948161046e565b92915050565b6000602082840312156104b0576104af61045f565b5b60006104be84828501610485565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104f2826104c7565b9050919050565b610502816104e7565b811461050d57600080fd5b50565b60008135905061051f816104f9565b92915050565b60006020828403121561053b5761053a61045f565b5b600061054984828501610510565b91505092915050565b61055b816104e7565b82525050565b60006020820190506105766000830184610552565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006105e582610464565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610617576106166105ab565b5b600182019050919050565b600082825260208201905092915050565b7f596f75277265206e6f74206f75722041544d2e00000000000000000000000000600082015250565b6000610669601383610622565b915061067482610633565b602082019050919050565b600060208201905081810360008301526106988161065c565b9050919050565b7f42616e6b20646f65736e2774206861766520656e6f756768206d6f6e6579207460008201527f6f2077697468647261772e000000000000000000000000000000000000000000602082015250565b60006106fb602b83610622565b91506107068261069f565b604082019050919050565b6000602082019050818103600083015261072a816106ee565b9050919050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b600061078d602783610622565b915061079882610731565b604082019050919050565b600060208201905081810360008301526107bc81610780565b905091905056fea2646970667358221220ec4ba2f1703f5a512f6b6f3cc45b2f5ebeb8b8fe31a15dada9eb9429ba67b21c64736f6c63430008130033",
"deployedBytecode": "0x6080604052600436106100435760003560e01c80632e1a7d4d1461004f57806383197ef01461007857806385c1a0021461008f5780638da5cb5b146100b85761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b506100766004803603810190610071919061049a565b6100e3565b005b34801561008457600080fd5b5061008d610250565b005b34801561009b57600080fd5b506100b660048036038101906100b19190610525565b610347565b005b3480156100c457600080fd5b506100cd61043b565b6040516100da9190610561565b60405180910390f35b6000805b60018054905081101561018157600181815481106101085761010761057c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361016e5760019150610181565b8080610179906105da565b9150506100e7565b50806101c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101b99061067f565b60405180910390fd5b47821115610205576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101fc90610711565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015801561024b573d6000803e3d6000fd5b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102d5906107a3565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610344573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cc906107a3565b60405180910390fd5b6001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b61047781610464565b811461048257600080fd5b50565b6000813590506104948161046e565b92915050565b6000602082840312156104b0576104af61045f565b5b60006104be84828501610485565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104f2826104c7565b9050919050565b610502816104e7565b811461050d57600080fd5b50565b60008135905061051f816104f9565b92915050565b60006020828403121561053b5761053a61045f565b5b600061054984828501610510565b91505092915050565b61055b816104e7565b82525050565b60006020820190506105766000830184610552565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006105e582610464565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610617576106166105ab565b5b600182019050919050565b600082825260208201905092915050565b7f596f75277265206e6f74206f75722041544d2e00000000000000000000000000600082015250565b6000610669601383610622565b915061067482610633565b602082019050919050565b600060208201905081810360008301526106988161065c565b9050919050565b7f42616e6b20646f65736e2774206861766520656e6f756768206d6f6e6579207460008201527f6f2077697468647261772e000000000000000000000000000000000000000000602082015250565b60006106fb602b83610622565b91506107068261069f565b604082019050919050565b6000602082019050818103600083015261072a816106ee565b9050919050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b600061078d602783610622565b915061079882610731565b604082019050919050565b600060208201905081810360008301526107bc81610780565b905091905056fea2646970667358221220ec4ba2f1703f5a512f6b6f3cc45b2f5ebeb8b8fe31a15dada9eb9429ba67b21c64736f6c63430008130033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:6036: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": "1302:79:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1359:16:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1368:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1361:6:3"
},
"nodeType": "YulFunctionCall",
"src": "1361:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "1361:12:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1325:5:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1350:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1332:17:3"
},
"nodeType": "YulFunctionCall",
"src": "1332:24:3"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1322:2:3"
},
"nodeType": "YulFunctionCall",
"src": "1322:35:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1315:6:3"
},
"nodeType": "YulFunctionCall",
"src": "1315:43:3"
},
"nodeType": "YulIf",
"src": "1312:63:3"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1295:5:3",
"type": ""
}
],
"src": "1259:122:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1439:87:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1449:29:3",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1471:6:3"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1458:12:3"
},
"nodeType": "YulFunctionCall",
"src": "1458:20:3"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1449:5:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1514:5:3"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1487:26:3"
},
"nodeType": "YulFunctionCall",
"src": "1487:33:3"
},
"nodeType": "YulExpressionStatement",
"src": "1487:33:3"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1417:6:3",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1425:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1433:5:3",
"type": ""
}
],
"src": "1387:139:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1598:263:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1644:83:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1646:77:3"
},
"nodeType": "YulFunctionCall",
"src": "1646:79:3"
},
"nodeType": "YulExpressionStatement",
"src": "1646:79:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1619:7:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1628:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1615:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1615:23:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1640:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1611:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1611:32:3"
},
"nodeType": "YulIf",
"src": "1608:119:3"
},
{
"nodeType": "YulBlock",
"src": "1737:117:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1752:15:3",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1766:1:3",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1756:6:3",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1781:63:3",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1816:9:3"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1827:6:3"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1812:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1812:22:3"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1836:7:3"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1791:20:3"
},
"nodeType": "YulFunctionCall",
"src": "1791:53:3"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1781:6:3"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1568:9:3",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1579:7:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1591:6:3",
"type": ""
}
],
"src": "1532:329:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1932:53:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1949:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1972:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1954:17:3"
},
"nodeType": "YulFunctionCall",
"src": "1954:24:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1942:6:3"
},
"nodeType": "YulFunctionCall",
"src": "1942:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "1942:37:3"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1920:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1927:3:3",
"type": ""
}
],
"src": "1867:118:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2089:124:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2099:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2111:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2122:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2107:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2107:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2099:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2179:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2192:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2203:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2188:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2188:17:3"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "2135:43:3"
},
"nodeType": "YulFunctionCall",
"src": "2135:71:3"
},
"nodeType": "YulExpressionStatement",
"src": "2135:71:3"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2061:9:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2073:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2084:4:3",
"type": ""
}
],
"src": "1991:222:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2247:152:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2264:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2267:77:3",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2257:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2257:88:3"
},
"nodeType": "YulExpressionStatement",
"src": "2257:88:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2361:1:3",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2364:4:3",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2354:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2354:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "2354:15:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2385:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2388:4:3",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2378:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2378:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "2378:15:3"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "2219:180:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2433:152:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2450:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2453:77:3",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2443:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2443:88:3"
},
"nodeType": "YulExpressionStatement",
"src": "2443:88:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2547:1:3",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2550:4:3",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2540:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2540:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "2540:15:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2571:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2574:4:3",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2564:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2564:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "2564:15:3"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2405:180:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2634:190:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2644:33:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2671:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2653:17:3"
},
"nodeType": "YulFunctionCall",
"src": "2653:24:3"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2644:5:3"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2767:22:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2769:16:3"
},
"nodeType": "YulFunctionCall",
"src": "2769:18:3"
},
"nodeType": "YulExpressionStatement",
"src": "2769:18:3"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2692:5:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2699:66:3",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2689:2:3"
},
"nodeType": "YulFunctionCall",
"src": "2689:77:3"
},
"nodeType": "YulIf",
"src": "2686:103:3"
},
{
"nodeType": "YulAssignment",
"src": "2798:20:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2809:5:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2816:1:3",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2805:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2805:13:3"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "2798:3:3"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2620:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "2630:3:3",
"type": ""
}
],
"src": "2591:233:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2926:73:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2943:3:3"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2948:6:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2936:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2936:19:3"
},
"nodeType": "YulExpressionStatement",
"src": "2936:19:3"
},
{
"nodeType": "YulAssignment",
"src": "2964:29:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2983:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2988:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2979:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2979:14:3"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "2964:11:3"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2898:3:3",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2903:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "2914:11:3",
"type": ""
}
],
"src": "2830:169:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3111:63:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "3133:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3141:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3129:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3129:14:3"
},
{
"hexValue": "596f75277265206e6f74206f75722041544d2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "3145:21:3",
"type": "",
"value": "You're not our ATM."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3122:6:3"
},
"nodeType": "YulFunctionCall",
"src": "3122:45:3"
},
"nodeType": "YulExpressionStatement",
"src": "3122:45:3"
}
]
},
"name": "store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3103:6:3",
"type": ""
}
],
"src": "3005:169:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3326:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3336:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3402:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3407:2:3",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3343:58:3"
},
"nodeType": "YulFunctionCall",
"src": "3343:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3336:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3508:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"nodeType": "YulIdentifier",
"src": "3419:88:3"
},
"nodeType": "YulFunctionCall",
"src": "3419:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "3419:93:3"
},
{
"nodeType": "YulAssignment",
"src": "3521:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3532:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3537:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3528:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3528:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3521:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3314:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3322:3:3",
"type": ""
}
],
"src": "3180:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3723:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3733:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3745:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3756:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3741:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3741:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3733:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3780:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3791:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3776:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3776:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3799:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3805:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3795:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3795:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3769:6:3"
},
"nodeType": "YulFunctionCall",
"src": "3769:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "3769:47:3"
},
{
"nodeType": "YulAssignment",
"src": "3825:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3959:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3833:124:3"
},
"nodeType": "YulFunctionCall",
"src": "3833:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3825:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3703:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3718:4:3",
"type": ""
}
],
"src": "3552:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4083:124:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4105:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4113:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4101:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4101:14:3"
},
{
"hexValue": "42616e6b20646f65736e2774206861766520656e6f756768206d6f6e65792074",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4117:34:3",
"type": "",
"value": "Bank doesn't have enough money t"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4094:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4094:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "4094:58:3"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4173:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4181:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4169:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4169:15:3"
},
{
"hexValue": "6f2077697468647261772e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4186:13:3",
"type": "",
"value": "o withdraw."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4162:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4162:38:3"
},
"nodeType": "YulExpressionStatement",
"src": "4162:38:3"
}
]
},
"name": "store_literal_in_memory_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4075:6:3",
"type": ""
}
],
"src": "3977:230:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4359:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4369:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4435:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4440:2:3",
"type": "",
"value": "43"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4376:58:3"
},
"nodeType": "YulFunctionCall",
"src": "4376:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4369:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4541:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a",
"nodeType": "YulIdentifier",
"src": "4452:88:3"
},
"nodeType": "YulFunctionCall",
"src": "4452:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "4452:93:3"
},
{
"nodeType": "YulAssignment",
"src": "4554:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4565:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4570:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4561:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4561:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4554:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4347:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4355:3:3",
"type": ""
}
],
"src": "4213:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4756:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4766:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4778:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4789:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4774:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4774:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4766:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4813:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4824:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4809:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4809:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4832:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4838:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4828:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4828:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4802:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4802:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "4802:47:3"
},
{
"nodeType": "YulAssignment",
"src": "4858:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4992:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4866:124:3"
},
"nodeType": "YulFunctionCall",
"src": "4866:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4858:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4736:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4751:4:3",
"type": ""
}
],
"src": "4585:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5116:120:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5138:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5146:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5134:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5134:14:3"
},
{
"hexValue": "546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5150:34:3",
"type": "",
"value": "This function only the owner can"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5127:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5127:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "5127:58:3"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5206:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5214:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5202:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5202:15:3"
},
{
"hexValue": "20616363657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5219:9:3",
"type": "",
"value": " access"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5195:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5195:34:3"
},
"nodeType": "YulExpressionStatement",
"src": "5195:34:3"
}
]
},
"name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5108:6:3",
"type": ""
}
],
"src": "5010:226:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5388:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5398:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5464:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5469:2:3",
"type": "",
"value": "39"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5405:58:3"
},
"nodeType": "YulFunctionCall",
"src": "5405:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5398:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5570:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002",
"nodeType": "YulIdentifier",
"src": "5481:88:3"
},
"nodeType": "YulFunctionCall",
"src": "5481:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "5481:93:3"
},
{
"nodeType": "YulAssignment",
"src": "5583:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5594:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5599:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5590:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5590:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5583:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5376:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5384:3:3",
"type": ""
}
],
"src": "5242:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5785:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5795:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5807:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5818:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5803:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5803:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5795:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5842:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5853:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5838:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5838:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5861:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5867:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5857:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5857:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5831:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5831:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "5831:47:3"
},
{
"nodeType": "YulAssignment",
"src": "5887:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6021:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5895:124:3"
},
"nodeType": "YulFunctionCall",
"src": "5895:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5887:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5765:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5780:4:3",
"type": ""
}
],
"src": "5614: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 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(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(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(add(headStart, offset), dataEnd)\n }\n\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 panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\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_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240(memPtr) {\n\n mstore(add(memPtr, 0), \"You're not our ATM.\")\n\n }\n\n function abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240__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_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a(memPtr) {\n\n mstore(add(memPtr, 0), \"Bank doesn't have enough money t\")\n\n mstore(add(memPtr, 32), \"o withdraw.\")\n\n }\n\n function abi_encode_t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a__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_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a_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": "96:528:1:-:0;;;153:16;;;;;;;;;;141:10:2;133:5;;:18;;;;;;;;;;;;;;;;;;96:528:1;;;;;;",
"deployedSourceMap": "96:528:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;443:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;267:89:2;;;;;;;;;;;;;:::i;:::-;;372:68:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;91:20:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:179:1;195:10;221:6;217:103;233:4;:11;;;;231:1;:13;217:103;;;273:4;278:1;273:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;259:21;;:10;:21;;;256:60;;295:4;287:12;;305:5;;256:60;246:3;;;;;:::i;:::-;;;;217:103;;;;331:5;323:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;509:21:::1;501:6;:29;;493:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;590:10;582:28;;:36;611:6;582:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;191:178:::0;443:179;:::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;372:68:1:-;206:5:2;;;;;;;;;;192:19;;:10;:19;;;184:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;422:4:1::1;432:3;422:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;372:68:::0;:::o;91:20:2:-;;;;;;;;;;;;:::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:122::-;1332:24;1350:5;1332:24;:::i;:::-;1325:5;1322:35;1312:63;;1371:1;1368;1361:12;1312:63;1259:122;:::o;1387:139::-;1433:5;1471:6;1458:20;1449:29;;1487:33;1514:5;1487:33;:::i;:::-;1387:139;;;;:::o;1532:329::-;1591:6;1640:2;1628:9;1619:7;1615:23;1611:32;1608:119;;;1646:79;;:::i;:::-;1608:119;1766:1;1791:53;1836:7;1827:6;1816:9;1812:22;1791:53;:::i;:::-;1781:63;;1737:117;1532:329;;;;:::o;1867:118::-;1954:24;1972:5;1954:24;:::i;:::-;1949:3;1942:37;1867:118;;:::o;1991:222::-;2084:4;2122:2;2111:9;2107:18;2099:26;;2135:71;2203:1;2192:9;2188:17;2179:6;2135:71;:::i;:::-;1991:222;;;;:::o;2219:180::-;2267:77;2264:1;2257:88;2364:4;2361:1;2354:15;2388:4;2385:1;2378:15;2405:180;2453:77;2450:1;2443:88;2550:4;2547:1;2540:15;2574:4;2571:1;2564:15;2591:233;2630:3;2653:24;2671:5;2653:24;:::i;:::-;2644:33;;2699:66;2692:5;2689:77;2686:103;;2769:18;;:::i;:::-;2686:103;2816:1;2809:5;2805:13;2798:20;;2591:233;;;:::o;2830:169::-;2914:11;2948:6;2943:3;2936:19;2988:4;2983:3;2979:14;2964:29;;2830:169;;;;:::o;3005:::-;3145:21;3141:1;3133:6;3129:14;3122:45;3005:169;:::o;3180:366::-;3322:3;3343:67;3407:2;3402:3;3343:67;:::i;:::-;3336:74;;3419:93;3508:3;3419:93;:::i;:::-;3537:2;3532:3;3528:12;3521:19;;3180:366;;;:::o;3552:419::-;3718:4;3756:2;3745:9;3741:18;3733:26;;3805:9;3799:4;3795:20;3791:1;3780:9;3776:17;3769:47;3833:131;3959:4;3833:131;:::i;:::-;3825:139;;3552:419;;;:::o;3977:230::-;4117:34;4113:1;4105:6;4101:14;4094:58;4186:13;4181:2;4173:6;4169:15;4162:38;3977:230;:::o;4213:366::-;4355:3;4376:67;4440:2;4435:3;4376:67;:::i;:::-;4369:74;;4452:93;4541:3;4452:93;:::i;:::-;4570:2;4565:3;4561:12;4554:19;;4213:366;;;:::o;4585:419::-;4751:4;4789:2;4778:9;4774:18;4766:26;;4838:9;4832:4;4828:20;4824:1;4813:9;4809:17;4802:47;4866:131;4992:4;4866:131;:::i;:::-;4858:139;;4585:419;;;:::o;5010:226::-;5150:34;5146:1;5138:6;5134:14;5127:58;5219:9;5214:2;5206:6;5202:15;5195:34;5010:226;:::o;5242:366::-;5384:3;5405:67;5469:2;5464:3;5405:67;:::i;:::-;5398:74;;5481:93;5570:3;5481:93;:::i;:::-;5599:2;5594:3;5590:12;5583:19;;5242:366;;;:::o;5614:419::-;5780:4;5818:2;5807:9;5803:18;5795:26;;5867:9;5861:4;5857:20;5853:1;5842:9;5838:17;5831:47;5895:131;6021:4;5895:131;:::i;:::-;5887:139;;5614:419;;;:::o",
"source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nimport \"./BaseContract.sol\";\n\ncontract Bank is BaseContract{\n\taddress[] private atms;\n\tconstructor() {}\n\n\tmodifier onlyATM() {\n\t\tbool found = false;\n\t\tfor(uint i=0; i<atms.length; i++) {\n\t\t\tif(msg.sender == atms[i]){\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\trequire(found, \"You're not our ATM.\");\n\t\t_;\n\t}\n\n\tfunction addATM(address atm) public onlyOwner {\n\t\tatms.push(atm);\n\t}\n\n\tfunction withdraw(uint amount) public onlyATM {\n\t\trequire(amount<=address(this).balance, \"Bank doesn't have enough money to withdraw.\");\n\t\tpayable(msg.sender).transfer(amount);\n\t}\n}\n",
"sourcePath": "/home/snsd0805/code/1112_blockchain/HW2_Advanced_Faucet/contracts/Bank.sol",
"ast": {
"absolutePath": "project:/contracts/Bank.sol",
"exportedSymbols": {
"Bank": [
164
],
"BaseContract": [
212
]
},
"id": 165,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 72,
"literals": [
"solidity",
">=",
"0.4",
".22",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "32:32:1"
},
{
"absolutePath": "project:/contracts/BaseContract.sol",
"file": "./BaseContract.sol",
"id": 73,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 165,
"sourceUnit": 213,
"src": "66:28:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 74,
"name": "BaseContract",
"nameLocations": [
"113:12:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 212,
"src": "113:12:1"
},
"id": 75,
"nodeType": "InheritanceSpecifier",
"src": "113:12:1"
}
],
"canonicalName": "Bank",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 164,
"linearizedBaseContracts": [
164,
212
],
"name": "Bank",
"nameLocation": "105:4:1",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 78,
"mutability": "mutable",
"name": "atms",
"nameLocation": "146:4:1",
"nodeType": "VariableDeclaration",
"scope": 164,
"src": "128:22:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 76,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "128:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 77,
"nodeType": "ArrayTypeName",
"src": "128:9:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "private"
},
{
"body": {
"id": 81,
"nodeType": "Block",
"src": "167:2:1",
"statements": []
},
"id": 82,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 79,
"nodeType": "ParameterList",
"parameters": [],
"src": "164:2:1"
},
"returnParameters": {
"id": 80,
"nodeType": "ParameterList",
"parameters": [],
"src": "167:0:1"
},
"scope": 164,
"src": "153:16:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 120,
"nodeType": "Block",
"src": "191:178:1",
"statements": [
{
"assignments": [
85
],
"declarations": [
{
"constant": false,
"id": 85,
"mutability": "mutable",
"name": "found",
"nameLocation": "200:5:1",
"nodeType": "VariableDeclaration",
"scope": 120,
"src": "195:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 84,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "195:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"id": 87,
"initialValue": {
"hexValue": "66616c7365",
"id": 86,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "208:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"nodeType": "VariableDeclarationStatement",
"src": "195:18:1"
},
{
"body": {
"id": 112,
"nodeType": "Block",
"src": "251:69:1",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 104,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 99,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "259:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 100,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "263:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "259:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"baseExpression": {
"id": 101,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 78,
"src": "273:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 103,
"indexExpression": {
"id": 102,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 89,
"src": "278:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "273:7:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "259:21:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 111,
"nodeType": "IfStatement",
"src": "256:60:1",
"trueBody": {
"id": 110,
"nodeType": "Block",
"src": "281:35:1",
"statements": [
{
"expression": {
"id": 107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 105,
"name": "found",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "287:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "295:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "287:12:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 108,
"nodeType": "ExpressionStatement",
"src": "287:12:1"
},
{
"id": 109,
"nodeType": "Break",
"src": "305:5:1"
}
]
}
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 95,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 92,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 89,
"src": "231:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 93,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 78,
"src": "233:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "238:6:1",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "233:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "231:13:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 113,
"initializationExpression": {
"assignments": [
89
],
"declarations": [
{
"constant": false,
"id": 89,
"mutability": "mutable",
"name": "i",
"nameLocation": "226:1:1",
"nodeType": "VariableDeclaration",
"scope": 113,
"src": "221:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 88,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "221:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 91,
"initialValue": {
"hexValue": "30",
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "228:1:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "221:8:1"
},
"loopExpression": {
"expression": {
"id": 97,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "246:3:1",
"subExpression": {
"id": 96,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 89,
"src": "246:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 98,
"nodeType": "ExpressionStatement",
"src": "246:3:1"
},
"nodeType": "ForStatement",
"src": "217:103:1"
},
{
"expression": {
"arguments": [
{
"id": 115,
"name": "found",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 85,
"src": "331:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "596f75277265206e6f74206f75722041544d2e",
"id": 116,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "338:21:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"typeString": "literal_string \"You're not our ATM.\""
},
"value": "You're not our ATM."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"typeString": "literal_string \"You're not our ATM.\""
}
],
"id": 114,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "323:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 117,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "323:37:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 118,
"nodeType": "ExpressionStatement",
"src": "323:37:1"
},
{
"id": 119,
"nodeType": "PlaceholderStatement",
"src": "364:1:1"
}
]
},
"id": 121,
"name": "onlyATM",
"nameLocation": "181:7:1",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 83,
"nodeType": "ParameterList",
"parameters": [],
"src": "188:2:1"
},
"src": "172:197:1",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 134,
"nodeType": "Block",
"src": "418:22:1",
"statements": [
{
"expression": {
"arguments": [
{
"id": 131,
"name": "atm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 123,
"src": "432:3:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 128,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 78,
"src": "422:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 130,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "427:4:1",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "422:9:1",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$",
"typeString": "function (address[] storage pointer,address)"
}
},
"id": 132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "422:14:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 133,
"nodeType": "ExpressionStatement",
"src": "422:14:1"
}
]
},
"functionSelector": "85c1a002",
"id": 135,
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 126,
"kind": "modifierInvocation",
"modifierName": {
"id": 125,
"name": "onlyOwner",
"nameLocations": [
"408:9:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 189,
"src": "408:9:1"
},
"nodeType": "ModifierInvocation",
"src": "408:9:1"
}
],
"name": "addATM",
"nameLocation": "381:6:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 124,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 123,
"mutability": "mutable",
"name": "atm",
"nameLocation": "396:3:1",
"nodeType": "VariableDeclaration",
"scope": 135,
"src": "388:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 122,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "388:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "387:13:1"
},
"returnParameters": {
"id": 127,
"nodeType": "ParameterList",
"parameters": [],
"src": "418:0:1"
},
"scope": 164,
"src": "372:68:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 162,
"nodeType": "Block",
"src": "489:133:1",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 149,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 143,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 137,
"src": "501:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 146,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "517:4:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Bank_$164",
"typeString": "contract Bank"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Bank_$164",
"typeString": "contract Bank"
}
],
"id": 145,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "509:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 144,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "509:7:1",
"typeDescriptions": {}
}
},
"id": 147,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "509:13:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 148,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "523:7:1",
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "509:21:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "501:29:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "42616e6b20646f65736e2774206861766520656e6f756768206d6f6e657920746f2077697468647261772e",
"id": 150,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "532:45:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a",
"typeString": "literal_string \"Bank doesn't have enough money to withdraw.\""
},
"value": "Bank doesn't have enough money to withdraw."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_a974b494e87129cdf7bb801ffd0278760cd3f8edc4c62b941d00da857d86df0a",
"typeString": "literal_string \"Bank doesn't have enough money to withdraw.\""
}
],
"id": 142,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "493:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 151,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "493:85:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 152,
"nodeType": "ExpressionStatement",
"src": "493:85:1"
},
{
"expression": {
"arguments": [
{
"id": 159,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 137,
"src": "611:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"expression": {
"id": 155,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "590:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 156,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "594:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "590:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 154,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "582:8:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 153,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "582:8:1",
"stateMutability": "payable",
"typeDescriptions": {}
}
},
"id": 157,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "582:19:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 158,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "602:8:1",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "582:28:1",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 160,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "582:36:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 161,
"nodeType": "ExpressionStatement",
"src": "582:36:1"
}
]
},
"functionSelector": "2e1a7d4d",
"id": 163,
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 140,
"kind": "modifierInvocation",
"modifierName": {
"id": 139,
"name": "onlyATM",
"nameLocations": [
"481:7:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 121,
"src": "481:7:1"
},
"nodeType": "ModifierInvocation",
"src": "481:7:1"
}
],
"name": "withdraw",
"nameLocation": "452:8:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 138,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 137,
"mutability": "mutable",
"name": "amount",
"nameLocation": "466:6:1",
"nodeType": "VariableDeclaration",
"scope": 163,
"src": "461:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 136,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "461:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "460:13:1"
},
"returnParameters": {
"id": 141,
"nodeType": "ParameterList",
"parameters": [],
"src": "489:0:1"
},
"scope": 164,
"src": "443:179:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 165,
"src": "96:528:1",
"usedErrors": []
}
],
"src": "32:593:1"
},
"compiler": {
"name": "solc",
"version": "0.8.19+commit.7dd6d404.Emscripten.clang"
},
"networks": {
"5777": {
"events": {},
"links": {},
"address": "0xa380843E80eB6f26cA9caA7CC4aAED43e01b5381",
"transactionHash": "0x7be20f483adaaefc292a516f0ef01cae4b7c9f1b2d77be5a7c9f1bdb670ca079"
},
"11155111": {
"events": {},
"links": {},
"address": "0xc9083c99Bf625cD9eDbB3Ec1C62b5025D45418c6",
"transactionHash": "0x839ed554ca3125c95c5ccb13cf9acec12876cdb68bc0628eef953ca180678f0f"
}
},
"schemaVersion": "3.4.13",
"updatedAt": "2023-03-29T08:50:14.690Z",
"networkType": "ethereum",
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}