4637 lines
185 KiB
JSON
4637 lines
185 KiB
JSON
{
|
|
"contractName": "ATM",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "bank_addr",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [],
|
|
"name": "Destroy",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "balance",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "Withdraw",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "bank",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract Bank",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
},
|
|
{
|
|
"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\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Destroy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bank\",\"outputs\":[{\"internalType\":\"contract Bank\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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/ATM.sol\":\"ATM\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ATM.sol\":{\"keccak256\":\"0x605bb8620f84b6aed5ce6b4477a371246d44e28fc2b7e2d5c1ba6df9b654ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf34bbb4de82d6286be250eee3406ebf0838de6f1cba544f55b2787ad24dfbab\",\"dweb:/ipfs/QmPK5xt9LhaX9z64htMrjDouFJvomY7S9PcjggPc3jCRod\"]},\"project:/contracts/Bank.sol\":{\"keccak256\":\"0xca57c5dc4ad868da564052c5f9af3c41fe0017483ecd8db56d03b51085f7372a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://416650dc67adcf68f6250ee5214821689c6a0fd765de75657d2c75da570e11d0\",\"dweb:/ipfs/QmPZkofx8pf4cmDsKBgWqaNGAgU8ocPj6tcXjQe9Xov9a8\"]},\"project:/contracts/BaseContract.sol\":{\"keccak256\":\"0x224dc0bd4bed0626cd3c6472ddbd14b3f81e594690ef64800f94db034a180417\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c18e9e30dc4ce07c3c55b64ca66aba0dd42a268e324c5413bd9dff599d0802e\",\"dweb:/ipfs/QmPkFdsgvrei43P1ockcmKr5XNwz7ZPVNe69jTMCcL6mve\"]}},\"version\":1}",
|
|
"bytecode": "0x608060405234801561001057600080fd5b506040516108dd3803806108dd8339818101604052810190610032919061011c565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610149565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e9826100be565b9050919050565b6100f9816100de565b811461010457600080fd5b50565b600081519050610116816100f0565b92915050565b600060208284031215610132576101316100b9565b5b600061014084828501610107565b91505092915050565b610785806101586000396000f3fe6080604052600436106100435760003560e01c80632e1a7d4d1461004f57806376cdb03b1461007857806383197ef0146100a35780638da5cb5b146100ba5761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b506100766004803603810190610071919061047b565b6100e5565b005b34801561008457600080fd5b5061008d6102ff565b60405161009a9190610527565b60405180910390f35b3480156100af57600080fd5b506100b8610325565b005b3480156100c657600080fd5b506100cf61041c565b6040516100dc9190610563565b60405180910390f35b67016345785d8a0000811115610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610601565b60405180910390fd5b67016345785d8a000047116101d557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d6706f05b59d3b200006040518263ffffffff1660e01b81526004016101a2919061065c565b600060405180830381600087803b1580156101bc57600080fd5b505af11580156101d0573d6000803e3d6000fd5b505050505b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561021b573d6000803e3d6000fd5b507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56833824760405161024f93929190610686565b60405180910390a167016345785d8a000047116102fc57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d6706f05b59d3b200006040518263ffffffff1660e01b81526004016102c9919061065c565b600060405180830381600087803b1580156102e357600080fd5b505af11580156102f7573d6000803e3d6000fd5b505050505b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103aa9061072f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610419573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b61045881610445565b811461046357600080fd5b50565b6000813590506104758161044f565b92915050565b60006020828403121561049157610490610440565b5b600061049f84828501610466565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006104ed6104e86104e3846104a8565b6104c8565b6104a8565b9050919050565b60006104ff826104d2565b9050919050565b6000610511826104f4565b9050919050565b61052181610506565b82525050565b600060208201905061053c6000830184610518565b92915050565b600061054d826104a8565b9050919050565b61055d81610542565b82525050565b60006020820190506105786000830184610554565b92915050565b600082825260208201905092915050565b7f596f752063616e6e6f74207769746864726177206d6f7265207468616e20302e60008201527f3120657468657200000000000000000000000000000000000000000000000000602082015250565b60006105eb60278361057e565b91506105f68261058f565b604082019050919050565b6000602082019050818103600083015261061a816105de565b9050919050565b6000819050919050565b600061064661064161063c84610621565b6104c8565b610445565b9050919050565b6106568161062b565b82525050565b6000602082019050610671600083018461064d565b92915050565b61068081610445565b82525050565b600060608201905061069b6000830186610554565b6106a86020830185610677565b6106b56040830184610677565b949350505050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b600061071960278361057e565b9150610724826106bd565b604082019050919050565b600060208201905081810360008301526107488161070c565b905091905056fea2646970667358221220558382de17ec88f3c065856f98084d6ac62e339570e1966c98ac61be09cc12f164736f6c63430008130033",
|
|
"deployedBytecode": "0x6080604052600436106100435760003560e01c80632e1a7d4d1461004f57806376cdb03b1461007857806383197ef0146100a35780638da5cb5b146100ba5761004a565b3661004a57005b600080fd5b34801561005b57600080fd5b506100766004803603810190610071919061047b565b6100e5565b005b34801561008457600080fd5b5061008d6102ff565b60405161009a9190610527565b60405180910390f35b3480156100af57600080fd5b506100b8610325565b005b3480156100c657600080fd5b506100cf61041c565b6040516100dc9190610563565b60405180910390f35b67016345785d8a0000811115610130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012790610601565b60405180910390fd5b67016345785d8a000047116101d557600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d6706f05b59d3b200006040518263ffffffff1660e01b81526004016101a2919061065c565b600060405180830381600087803b1580156101bc57600080fd5b505af11580156101d0573d6000803e3d6000fd5b505050505b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561021b573d6000803e3d6000fd5b507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b56833824760405161024f93929190610686565b60405180910390a167016345785d8a000047116102fc57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d6706f05b59d3b200006040518263ffffffff1660e01b81526004016102c9919061065c565b600060405180830381600087803b1580156102e357600080fd5b505af11580156102f7573d6000803e3d6000fd5b505050505b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103aa9061072f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610419573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b6000819050919050565b61045881610445565b811461046357600080fd5b50565b6000813590506104758161044f565b92915050565b60006020828403121561049157610490610440565b5b600061049f84828501610466565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006104ed6104e86104e3846104a8565b6104c8565b6104a8565b9050919050565b60006104ff826104d2565b9050919050565b6000610511826104f4565b9050919050565b61052181610506565b82525050565b600060208201905061053c6000830184610518565b92915050565b600061054d826104a8565b9050919050565b61055d81610542565b82525050565b60006020820190506105786000830184610554565b92915050565b600082825260208201905092915050565b7f596f752063616e6e6f74207769746864726177206d6f7265207468616e20302e60008201527f3120657468657200000000000000000000000000000000000000000000000000602082015250565b60006105eb60278361057e565b91506105f68261058f565b604082019050919050565b6000602082019050818103600083015261061a816105de565b9050919050565b6000819050919050565b600061064661064161063c84610621565b6104c8565b610445565b9050919050565b6106568161062b565b82525050565b6000602082019050610671600083018461064d565b92915050565b61068081610445565b82525050565b600060608201905061069b6000830186610554565b6106a86020830185610677565b6106b56040830184610677565b949350505050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b600061071960278361057e565b9150610724826106bd565b604082019050919050565b600060208201905081810360008301526107488161070c565b905091905056fea2646970667358221220558382de17ec88f3c065856f98084d6ac62e339570e1966c98ac61be09cc12f164736f6c63430008130033",
|
|
"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:6143: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": "1189:28:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "1199:12:3",
|
|
"value": {
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1206:5:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "ret",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1199:3:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "identity",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1175:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "ret",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1185:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "1157:60:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "1283:82:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "1293:66:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1351:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_uint160",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1333:17:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1333:24:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "identity",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1324:8:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1324:34:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_uint160",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1306:17:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1306:53:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1293:9:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "convert_t_uint160_to_t_uint160",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1263:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1273:9:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "1223:142:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "1439:66:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "1449:50:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1493:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "convert_t_uint160_to_t_uint160",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1462:30:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1462:37:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1449:9:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "convert_t_uint160_to_t_address_payable",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1419:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1429:9:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "1371:134:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "1591:74:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "1601:58:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1653:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "convert_t_uint160_to_t_address_payable",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1614:38:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1614:45:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1601:9:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "convert_t_contract$_Bank_$246_to_t_address_payable",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1571:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1581:9:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "1511:154:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "1756:86:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1773:3:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1829:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "convert_t_contract$_Bank_$246_to_t_address_payable",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1778:50:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1778:57:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1766:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1766:70:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "1766:70:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_t_contract$_Bank_$246_to_t_address_payable_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1744:5:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1751:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "1671:171:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "1966:144:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "1976:26:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1988:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "1999:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1984:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "1984:18:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "1976:4:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2076:6:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2089:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2100:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2085:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2085:17:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_contract$_Bank_$246_to_t_address_payable_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2012:63:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2012:91:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "2012:91:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_tuple_t_contract$_Bank_$246__to_t_address_payable__fromStack_reversed",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1938:9:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1950:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulTypedName",
|
|
"src": "1961:4:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "1848:262:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "2161:51:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "2171:35:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2200:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_uint160",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2182:17:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2182:24:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "cleaned",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2171:7:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "cleanup_t_address",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2143:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "cleaned",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2153:7:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "2116:96:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "2283:53:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2300:3:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2323:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_address",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2305:17:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2305:24:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2293:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2293:37:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "2293:37:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_t_address_to_t_address_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2271:5:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2278:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "2218:118:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "2440:124:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "2450:26:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2462:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2473:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2458:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2458:18:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2450:4:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2530:6:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2543:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2554:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2539:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2539:17:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_address_to_t_address_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2486:43:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2486:71:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "2486:71:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2412:9:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2424:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2435:4:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "2342:222:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "2666:73:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2683:3:3"
|
|
},
|
|
{
|
|
"name": "length",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2688:6:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2676:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2676:19:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "2676:19:3"
|
|
},
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "2704:29:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2723:3:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2728:4:3",
|
|
"type": "",
|
|
"value": "0x20"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2719:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2719:14:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "updated_pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2704:11:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2638:3:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "length",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2643:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "updated_pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2654:11:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "2570:169:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "2851:120:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "memPtr",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2873:6:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2881:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2869:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2869:14:3"
|
|
},
|
|
{
|
|
"hexValue": "596f752063616e6e6f74207769746864726177206d6f7265207468616e20302e",
|
|
"kind": "string",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2885:34:3",
|
|
"type": "",
|
|
"value": "You cannot withdraw more than 0."
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2862:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2862:58:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "2862:58:3"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "memPtr",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2941:6:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2949:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2937:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2937:15:3"
|
|
},
|
|
{
|
|
"hexValue": "31206574686572",
|
|
"kind": "string",
|
|
"nodeType": "YulLiteral",
|
|
"src": "2954:9:3",
|
|
"type": "",
|
|
"value": "1 ether"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "2930:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "2930:34:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "2930:34:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "store_literal_in_memory_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "memPtr",
|
|
"nodeType": "YulTypedName",
|
|
"src": "2843:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "2745:226:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "3123:220:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "3133:74:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3199:3:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "3204:2:3",
|
|
"type": "",
|
|
"value": "39"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3140:58:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3140:67:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3133:3:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3305:3:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "store_literal_in_memory_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3216:88:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3216:93:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "3216:93:3"
|
|
},
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "3318:19:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3329:3:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "3334:2:3",
|
|
"type": "",
|
|
"value": "64"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3325:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3325:12:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "end",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3318:3:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1_to_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3111:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "end",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3119:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "2977:366:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "3520:248:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "3530:26:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3542:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "3553:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3538:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3538:18:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3530:4:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3577:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "3588:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3573:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3573:17:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3596:4:3"
|
|
},
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3602:9:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "sub",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3592:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3592:20:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3566:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3566:47:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "3566:47:3"
|
|
},
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "3622:139:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3756:4:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1_to_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3630:124:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3630:131:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3622:4:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_tuple_t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1__to_t_string_memory_ptr__fromStack_reversed",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3500:9:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3515:4:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "3349:419:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "3844:32:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "3854:16:3",
|
|
"value": {
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3865:5:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "cleaned",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3854:7:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "cleanup_t_rational_500000000000000000_by_1",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3826:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "cleaned",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3836:7:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "3774:102:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "3967:107:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "3977:91:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4060:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_rational_500000000000000000_by_1",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4017:42:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4017:49:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "identity",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4008:8:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4008:59:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_uint256",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3990:17:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "3990:78:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "3977:9:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "convert_t_rational_500000000000000000_by_1_to_t_uint256",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3947:5:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "converted",
|
|
"nodeType": "YulTypedName",
|
|
"src": "3957:9:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "3882:192:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "4170:91:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4187:3:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4248:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "convert_t_rational_500000000000000000_by_1_to_t_uint256",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4192:55:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4192:62:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4180:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4180:75:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "4180:75:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_t_rational_500000000000000000_by_1_to_t_uint256_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4158:5:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4165:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "4080:181:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "4390:149:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "4400:26:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4412:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "4423:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4408:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4408:18:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4400:4:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4505:6:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4518:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "4529:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4514:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4514:17:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_rational_500000000000000000_by_1_to_t_uint256_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4436:68:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4436:96:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "4436:96:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_tuple_t_rational_500000000000000000_by_1__to_t_uint256__fromStack_reversed",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4362:9:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4374:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4385:4:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "4267:272:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "4610:53:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4627:3:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4650:5:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "cleanup_t_uint256",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4632:17:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4632:24:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4620:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4620:37:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "4620:37:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "value",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4598:5:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4605:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "4545:118:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "4823:288:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "4833:26:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4845:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "4856:2:3",
|
|
"type": "",
|
|
"value": "96"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4841:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4841:18:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4833:4:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4913:6:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4926:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "4937:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4922:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4922:17:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_address_to_t_address_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4869:43:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4869:71:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "4869:71:3"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "value1",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4994:6:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5007:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5018:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5003:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5003:18:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "4950:43:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "4950:72:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "4950:72:3"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "value2",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5076:6:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5089:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5100:2:3",
|
|
"type": "",
|
|
"value": "64"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5085:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5085:18:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5032:43:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5032:72:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "5032:72:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4779:9:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "value2",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4791:6:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "value1",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4799:6:3",
|
|
"type": ""
|
|
},
|
|
{
|
|
"name": "value0",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4807:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulTypedName",
|
|
"src": "4818:4:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "4669:442:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "5223:120:3",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "memPtr",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5245:6:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5253:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5241:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5241:14:3"
|
|
},
|
|
{
|
|
"hexValue": "546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e",
|
|
"kind": "string",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5257:34:3",
|
|
"type": "",
|
|
"value": "This function only the owner can"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5234:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5234:58:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "5234:58:3"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "memPtr",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5313:6:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5321:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5309:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5309:15:3"
|
|
},
|
|
{
|
|
"hexValue": "20616363657373",
|
|
"kind": "string",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5326:9:3",
|
|
"type": "",
|
|
"value": " access"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5302:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5302:34:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "5302:34:3"
|
|
}
|
|
]
|
|
},
|
|
"name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "memPtr",
|
|
"nodeType": "YulTypedName",
|
|
"src": "5215:6:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "5117:226:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "5495:220:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "5505:74:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5571:3:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5576:2:3",
|
|
"type": "",
|
|
"value": "39"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5512:58:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5512:67:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5505:3:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5677:3:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5588:88:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5588:93:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "5588:93:3"
|
|
},
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "5690:19:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5701:3:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5706:2:3",
|
|
"type": "",
|
|
"value": "64"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5697:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5697:12:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "end",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5690:3:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "pos",
|
|
"nodeType": "YulTypedName",
|
|
"src": "5483:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "end",
|
|
"nodeType": "YulTypedName",
|
|
"src": "5491:3:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "5349:366:3"
|
|
},
|
|
{
|
|
"body": {
|
|
"nodeType": "YulBlock",
|
|
"src": "5892:248:3",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "5902:26:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5914:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5925:2:3",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5910:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5910:18:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5902:4:3"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5949:9:3"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5960:1:3",
|
|
"type": "",
|
|
"value": "0"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5945:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5945:17:3"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5968:4:3"
|
|
},
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5974:9:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "sub",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5964:3:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5964:20:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mstore",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5938:6:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5938:47:3"
|
|
},
|
|
"nodeType": "YulExpressionStatement",
|
|
"src": "5938:47:3"
|
|
},
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "5994:139:3",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "6128:4:3"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "6002:124:3"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "6002:131:3"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5994:4:3"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"name": "abi_encode_tuple_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002__to_t_string_memory_ptr__fromStack_reversed",
|
|
"nodeType": "YulFunctionDefinition",
|
|
"parameters": [
|
|
{
|
|
"name": "headStart",
|
|
"nodeType": "YulTypedName",
|
|
"src": "5872:9:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"returnVariables": [
|
|
{
|
|
"name": "tail",
|
|
"nodeType": "YulTypedName",
|
|
"src": "5887:4:3",
|
|
"type": ""
|
|
}
|
|
],
|
|
"src": "5721: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 identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_Bank_$246_to_t_address_payable(value) -> converted {\n converted := convert_t_uint160_to_t_address_payable(value)\n }\n\n function abi_encode_t_contract$_Bank_$246_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Bank_$246_to_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_contract$_Bank_$246__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Bank_$246_to_t_address_payable_fromStack(value0, add(headStart, 0))\n\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 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_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1(memPtr) {\n\n mstore(add(memPtr, 0), \"You cannot withdraw more than 0.\")\n\n mstore(add(memPtr, 32), \"1 ether\")\n\n }\n\n function abi_encode_t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1__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_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_rational_500000000000000000_by_1(value) -> cleaned {\n cleaned := 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 abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\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:551:0:-:0;;;226:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;159:10:2;151:5;;:18;;;;;;;;;;;;;;;;;;281:9:0;261:4;;:31;;;;;;;;;;;;;;;;;;226:70;117:551;;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:551:0:-;;;;;;;",
|
|
"deployedSourceMap": "117:551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;299:367;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;148:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;285:89:2;;;;;;;;;;;;;:::i;:::-;;91:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;299:367:0;357:9;349:6;:17;;341:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;442:9;417:21;:34;414:73;;458:4;;;;;;;;;;;:13;;;472:9;458:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;414:73;498:10;490:28;;:36;519:6;490:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;535:51;544:10;556:6;564:21;535:51;;;;;;;;:::i;:::-;;;;;;;;618:9;593:21;:34;590:73;;634:4;;;;;;;;;;;:13;;;648:9;634:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;590:73;299:367;:::o;148:16::-;;;;;;;;;;;;;:::o;285:89:2:-;224:5;;;;;;;;;;210:19;;:10;:19;;;202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;332:5:::1;::::0;::::1;;;;;;;;324:23;;:46;348:21;324:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;285: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:60::-;1185:3;1206:5;1199:12;;1157:60;;;:::o;1223:142::-;1273:9;1306:53;1324:34;1333:24;1351:5;1333:24;:::i;:::-;1324:34;:::i;:::-;1306:53;:::i;:::-;1293:66;;1223:142;;;:::o;1371:134::-;1429:9;1462:37;1493:5;1462:37;:::i;:::-;1449:50;;1371:134;;;:::o;1511:154::-;1581:9;1614:45;1653:5;1614:45;:::i;:::-;1601:58;;1511:154;;;:::o;1671:171::-;1778:57;1829:5;1778:57;:::i;:::-;1773:3;1766:70;1671:171;;:::o;1848:262::-;1961:4;1999:2;1988:9;1984:18;1976:26;;2012:91;2100:1;2089:9;2085:17;2076:6;2012:91;:::i;:::-;1848:262;;;;:::o;2116:96::-;2153:7;2182:24;2200:5;2182:24;:::i;:::-;2171:35;;2116:96;;;:::o;2218:118::-;2305:24;2323:5;2305:24;:::i;:::-;2300:3;2293:37;2218:118;;:::o;2342:222::-;2435:4;2473:2;2462:9;2458:18;2450:26;;2486:71;2554:1;2543:9;2539:17;2530:6;2486:71;:::i;:::-;2342:222;;;;:::o;2570:169::-;2654:11;2688:6;2683:3;2676:19;2728:4;2723:3;2719:14;2704:29;;2570:169;;;;:::o;2745:226::-;2885:34;2881:1;2873:6;2869:14;2862:58;2954:9;2949:2;2941:6;2937:15;2930:34;2745:226;:::o;2977:366::-;3119:3;3140:67;3204:2;3199:3;3140:67;:::i;:::-;3133:74;;3216:93;3305:3;3216:93;:::i;:::-;3334:2;3329:3;3325:12;3318:19;;2977:366;;;:::o;3349:419::-;3515:4;3553:2;3542:9;3538:18;3530:26;;3602:9;3596:4;3592:20;3588:1;3577:9;3573:17;3566:47;3630:131;3756:4;3630:131;:::i;:::-;3622:139;;3349:419;;;:::o;3774:102::-;3836:7;3865:5;3854:16;;3774:102;;;:::o;3882:192::-;3957:9;3990:78;4008:59;4017:49;4060:5;4017:49;:::i;:::-;4008:59;:::i;:::-;3990:78;:::i;:::-;3977:91;;3882:192;;;:::o;4080:181::-;4192:62;4248:5;4192:62;:::i;:::-;4187:3;4180:75;4080:181;;:::o;4267:272::-;4385:4;4423:2;4412:9;4408:18;4400:26;;4436:96;4529:1;4518:9;4514:17;4505:6;4436:96;:::i;:::-;4267:272;;;;:::o;4545:118::-;4632:24;4650:5;4632:24;:::i;:::-;4627:3;4620:37;4545:118;;:::o;4669:442::-;4818:4;4856:2;4845:9;4841:18;4833:26;;4869:71;4937:1;4926:9;4922:17;4913:6;4869:71;:::i;:::-;4950:72;5018:2;5007:9;5003:18;4994:6;4950:72;:::i;:::-;5032;5100:2;5089:9;5085:18;5076:6;5032:72;:::i;:::-;4669:442;;;;;;:::o;5117:226::-;5257:34;5253:1;5245:6;5241:14;5234:58;5326:9;5321:2;5313:6;5309:15;5302:34;5117:226;:::o;5349:366::-;5491:3;5512:67;5576:2;5571:3;5512:67;:::i;:::-;5505:74;;5588:93;5677:3;5588:93;:::i;:::-;5706:2;5701:3;5697:12;5690:19;;5349:366;;;:::o;5721:419::-;5887:4;5925:2;5914:9;5910:18;5902:26;;5974:9;5968:4;5964:20;5960:1;5949:9;5945:17;5938:47;6002:131;6128:4;6002:131;:::i;:::-;5994:139;;5721: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 public bank;\n\tevent Withdraw(address from, uint amount, uint balance );\n\tconstructor(address bank_addr) {\n\t\tbank = Bank(payable(bank_addr));\n\t}\n\n\tfunction withdraw(uint amount) public {\n\t\trequire(amount<=0.1 ether, \"You cannot withdraw more than 0.1 ether\");\n\t\tif(address(this).balance <= 0.1 ether) {\n\t\t\tbank.withdraw(0.5 ether);\n\t\t}\n\t\tpayable(msg.sender).transfer(amount);\n\t\temit Withdraw(msg.sender, amount, address(this).balance);\n\t\tif(address(this).balance <= 0.1 ether) {\n\t\t\tbank.withdraw(0.5 ether);\n\t\t}\n\t}\n}\n",
|
|
"sourcePath": "/srv/http/code/1112_blockchain/advance_faucet/contracts/ATM.sol",
|
|
"ast": {
|
|
"absolutePath": "project:/contracts/ATM.sol",
|
|
"exportedSymbols": {
|
|
"ATM": [
|
|
95
|
|
],
|
|
"Bank": [
|
|
246
|
|
],
|
|
"BaseContract": [
|
|
296
|
|
]
|
|
},
|
|
"id": 96,
|
|
"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": 96,
|
|
"sourceUnit": 297,
|
|
"src": "66:28:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "project:/contracts/Bank.sol",
|
|
"file": "./Bank.sol",
|
|
"id": 3,
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "ImportDirective",
|
|
"scope": 96,
|
|
"sourceUnit": 247,
|
|
"src": "95:20:0",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"baseName": {
|
|
"id": 4,
|
|
"name": "BaseContract",
|
|
"nameLocations": [
|
|
"133:12:0"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 296,
|
|
"src": "133:12:0"
|
|
},
|
|
"id": 5,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "133:12:0"
|
|
}
|
|
],
|
|
"canonicalName": "ATM",
|
|
"contractDependencies": [],
|
|
"contractKind": "contract",
|
|
"fullyImplemented": true,
|
|
"id": 95,
|
|
"linearizedBaseContracts": [
|
|
95,
|
|
296
|
|
],
|
|
"name": "ATM",
|
|
"nameLocation": "126:3:0",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "76cdb03b",
|
|
"id": 8,
|
|
"mutability": "mutable",
|
|
"name": "bank",
|
|
"nameLocation": "160:4:0",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 95,
|
|
"src": "148:16:0",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
},
|
|
"typeName": {
|
|
"id": 7,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 6,
|
|
"name": "Bank",
|
|
"nameLocations": [
|
|
"148:4:0"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 246,
|
|
"src": "148:4:0"
|
|
},
|
|
"referencedDeclaration": 246,
|
|
"src": "148:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
}
|
|
},
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"eventSelector": "f279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568",
|
|
"id": 16,
|
|
"name": "Withdraw",
|
|
"nameLocation": "173:8:0",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 15,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 10,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "from",
|
|
"nameLocation": "190:4:0",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 16,
|
|
"src": "182:12:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 9,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "182:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 12,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nameLocation": "201:6:0",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 16,
|
|
"src": "196:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 11,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "196:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 14,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "balance",
|
|
"nameLocation": "214:7:0",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 16,
|
|
"src": "209:12:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 13,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "209:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "181:42:0"
|
|
},
|
|
"src": "167:57:0"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 30,
|
|
"nodeType": "Block",
|
|
"src": "257:39:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"id": 28,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"id": 21,
|
|
"name": "bank",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 8,
|
|
"src": "261:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 25,
|
|
"name": "bank_addr",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 18,
|
|
"src": "281:9:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 24,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "273:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 23,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "273:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 26,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "273:18:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 22,
|
|
"name": "Bank",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 246,
|
|
"src": "268:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_Bank_$246_$",
|
|
"typeString": "type(contract Bank)"
|
|
}
|
|
},
|
|
"id": 27,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "268:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
}
|
|
},
|
|
"src": "261:31:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
}
|
|
},
|
|
"id": 29,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "261:31:0"
|
|
}
|
|
]
|
|
},
|
|
"id": 31,
|
|
"implemented": true,
|
|
"kind": "constructor",
|
|
"modifiers": [],
|
|
"name": "",
|
|
"nameLocation": "-1:-1:-1",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 19,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 18,
|
|
"mutability": "mutable",
|
|
"name": "bank_addr",
|
|
"nameLocation": "246:9:0",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 31,
|
|
"src": "238:17:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 17,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "238:7:0",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "237:19:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 20,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "257:0:0"
|
|
},
|
|
"scope": 95,
|
|
"src": "226:70:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 93,
|
|
"nodeType": "Block",
|
|
"src": "337:329:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 39,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"id": 37,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 33,
|
|
"src": "349:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"hexValue": "302e31",
|
|
"id": 38,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "357:9:0",
|
|
"subdenomination": "ether",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_100000000000000000_by_1",
|
|
"typeString": "int_const 100000000000000000"
|
|
},
|
|
"value": "0.1"
|
|
},
|
|
"src": "349:17:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"hexValue": "596f752063616e6e6f74207769746864726177206d6f7265207468616e20302e31206574686572",
|
|
"id": 40,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "368:41:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1",
|
|
"typeString": "literal_string \"You cannot withdraw more than 0.1 ether\""
|
|
},
|
|
"value": "You cannot withdraw more than 0.1 ether"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_069a14f9b5497f07582c9b98503681bbfcfa9c8fba48a72add2948e82ac6b4b1",
|
|
"typeString": "literal_string \"You cannot withdraw more than 0.1 ether\""
|
|
}
|
|
],
|
|
"id": 36,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
4294967278,
|
|
4294967278
|
|
],
|
|
"referencedDeclaration": 4294967278,
|
|
"src": "341:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 41,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "341:69:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 42,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "341:69:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 49,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 45,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967268,
|
|
"src": "425:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ATM_$95",
|
|
"typeString": "contract ATM"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ATM_$95",
|
|
"typeString": "contract ATM"
|
|
}
|
|
],
|
|
"id": 44,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "417:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 43,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "417:7:0",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 46,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "417:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 47,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "431:7:0",
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"src": "417:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"hexValue": "302e31",
|
|
"id": 48,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "442:9:0",
|
|
"subdenomination": "ether",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_100000000000000000_by_1",
|
|
"typeString": "int_const 100000000000000000"
|
|
},
|
|
"value": "0.1"
|
|
},
|
|
"src": "417:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 57,
|
|
"nodeType": "IfStatement",
|
|
"src": "414:73:0",
|
|
"trueBody": {
|
|
"id": 56,
|
|
"nodeType": "Block",
|
|
"src": "453:34:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "302e35",
|
|
"id": 53,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "472: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": 50,
|
|
"name": "bank",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 8,
|
|
"src": "458:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
}
|
|
},
|
|
"id": 52,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "463:8:0",
|
|
"memberName": "withdraw",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 245,
|
|
"src": "458:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) external"
|
|
}
|
|
},
|
|
"id": 54,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "458:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 55,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "458:24:0"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 64,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 33,
|
|
"src": "519:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"expression": {
|
|
"id": 60,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967281,
|
|
"src": "498:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 61,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "502:6:0",
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"src": "498:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 59,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "490:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_payable_$",
|
|
"typeString": "type(address payable)"
|
|
},
|
|
"typeName": {
|
|
"id": 58,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "490:8:0",
|
|
"stateMutability": "payable",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 62,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "490:19:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"id": 63,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "510:8:0",
|
|
"memberName": "transfer",
|
|
"nodeType": "MemberAccess",
|
|
"src": "490:28:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256)"
|
|
}
|
|
},
|
|
"id": 65,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "490:36:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 66,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "490:36:0"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"arguments": [
|
|
{
|
|
"expression": {
|
|
"id": 68,
|
|
"name": "msg",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967281,
|
|
"src": "544:3:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_message",
|
|
"typeString": "msg"
|
|
}
|
|
},
|
|
"id": 69,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "548:6:0",
|
|
"memberName": "sender",
|
|
"nodeType": "MemberAccess",
|
|
"src": "544:10:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
{
|
|
"id": 70,
|
|
"name": "amount",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 33,
|
|
"src": "556:6:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 73,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967268,
|
|
"src": "572:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ATM_$95",
|
|
"typeString": "contract ATM"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ATM_$95",
|
|
"typeString": "contract ATM"
|
|
}
|
|
],
|
|
"id": 72,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "564:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 71,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "564:7:0",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 74,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "564:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 75,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "578:7:0",
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"src": "564:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"id": 67,
|
|
"name": "Withdraw",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 16,
|
|
"src": "535:8:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
|
|
"typeString": "function (address,uint256,uint256)"
|
|
}
|
|
},
|
|
"id": 76,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "535:51:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 77,
|
|
"nodeType": "EmitStatement",
|
|
"src": "530:56:0"
|
|
},
|
|
{
|
|
"condition": {
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 84,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 80,
|
|
"name": "this",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 4294967268,
|
|
"src": "601:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_ATM_$95",
|
|
"typeString": "contract ATM"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_ATM_$95",
|
|
"typeString": "contract ATM"
|
|
}
|
|
],
|
|
"id": 79,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "593:7:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 78,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "593:7:0",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 81,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "593:13:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 82,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "607:7:0",
|
|
"memberName": "balance",
|
|
"nodeType": "MemberAccess",
|
|
"src": "593:21:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<=",
|
|
"rightExpression": {
|
|
"hexValue": "302e31",
|
|
"id": 83,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "618:9:0",
|
|
"subdenomination": "ether",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_100000000000000000_by_1",
|
|
"typeString": "int_const 100000000000000000"
|
|
},
|
|
"value": "0.1"
|
|
},
|
|
"src": "593:34:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 92,
|
|
"nodeType": "IfStatement",
|
|
"src": "590:73:0",
|
|
"trueBody": {
|
|
"id": 91,
|
|
"nodeType": "Block",
|
|
"src": "629:34:0",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "302e35",
|
|
"id": 88,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "648: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": 85,
|
|
"name": "bank",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 8,
|
|
"src": "634:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Bank_$246",
|
|
"typeString": "contract Bank"
|
|
}
|
|
},
|
|
"id": 87,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "639:8:0",
|
|
"memberName": "withdraw",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 245,
|
|
"src": "634:13:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) external"
|
|
}
|
|
},
|
|
"id": 89,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "634:24:0",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 90,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "634:24:0"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "2e1a7d4d",
|
|
"id": 94,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "withdraw",
|
|
"nameLocation": "308:8:0",
|
|
"nodeType": "FunctionDefinition",
|
|
"parameters": {
|
|
"id": 34,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 33,
|
|
"mutability": "mutable",
|
|
"name": "amount",
|
|
"nameLocation": "322:6:0",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 94,
|
|
"src": "317:11:0",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 32,
|
|
"name": "uint",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "317:4:0",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "316:13:0"
|
|
},
|
|
"returnParameters": {
|
|
"id": 35,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "337:0:0"
|
|
},
|
|
"scope": 95,
|
|
"src": "299:367:0",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 96,
|
|
"src": "117:551:0",
|
|
"usedErrors": []
|
|
}
|
|
],
|
|
"src": "32:637:0"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.8.19+commit.7dd6d404.Emscripten.clang"
|
|
},
|
|
"networks": {
|
|
"5777": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0x73266002C269F6B6f9c2613Bd9766cfB4014e9e9",
|
|
"transactionHash": "0x33bb3a803a02c1a779c3c489ddaedd5df2f1409fb2656c25a505088047d01cc7"
|
|
},
|
|
"11155111": {
|
|
"events": {},
|
|
"links": {},
|
|
"address": "0x7ed82F1851960a0c2d2BA689c056616e2472Ddce",
|
|
"transactionHash": "0x6e839bcbf67572b740b6b4136ad56e076adc3c9b5a6fbaace0297d6e226003b6"
|
|
}
|
|
},
|
|
"schemaVersion": "3.4.13",
|
|
"updatedAt": "2023-04-06T16:11:17.473Z",
|
|
"networkType": "ethereum",
|
|
"devdoc": {
|
|
"kind": "dev",
|
|
"methods": {},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
} |