advance_faucet/build/contracts/Bank.json
2023-04-07 14:14:08 +08:00

6002 lines
241 KiB
JSON

{
"contractName": "Bank",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "atm",
"type": "address"
}
],
"name": "AddATM",
"type": "event"
},
{
"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": "NoMoney",
"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": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "atms",
"outputs": [
{
"internalType": "address",
"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": [],
"name": "getATMs",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function",
"constant": true
},
{
"inputs": [
{
"internalType": "address",
"name": "atm",
"type": "address"
}
],
"name": "addATM",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"atm\",\"type\":\"address\"}],\"name\":\"AddATM\",\"type\":\"event\"},{\"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\":\"NoMoney\",\"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\":[{\"internalType\":\"address\",\"name\":\"atm\",\"type\":\"address\"}],\"name\":\"addATM\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"atms\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getATMs\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Bank.sol\":\"Bank\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/Bank.sol\":{\"keccak256\":\"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": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b17806100606000396000f3fe6080604052600436106100595760003560e01c8063113d88d0146100655780632e1a7d4d146100905780635f310fc0146100b957806383197ef0146100f657806385c1a0021461010d5780638da5cb5b1461013657610060565b3661006057005b600080fd5b34801561007157600080fd5b5061007a610161565b6040516100879190610747565b60405180910390f35b34801561009c57600080fd5b506100b760048036038101906100b291906107a4565b6101ef565b005b3480156100c557600080fd5b506100e060048036038101906100db91906107a4565b6103d2565b6040516100ed91906107e0565b60405180910390f35b34801561010257600080fd5b5061010b610411565b005b34801561011957600080fd5b50610134600480360381019061012f9190610827565b610508565b005b34801561014257600080fd5b5061014b610633565b60405161015891906107e0565b60405180910390f35b606060018054806020026020016040519081016040528092919081815260200182805480156101e557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161019b575b5050505050905090565b6000805b60018054905081101561028d576001818154811061021457610213610854565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361027a576001915061028d565b8080610285906108b2565b9150506101f3565b50806102ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c590610957565b60405180910390fd5b4782111561034c577f468c981a92e5fd7f5019ff02c21de5dc81e64d992f7dd86e7d33dfc2e5fdb47033834760405161030993929190610986565b60405180910390a16040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034390610a2f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610392573d6000803e3d6000fd5b507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5683383476040516103c693929190610986565b60405180910390a15050565b600181815481106103e257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690610ac1565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610505573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d90610ac1565b60405180910390fd5b6001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f935726013d7722036a2b3b546d46f8fd4f43a3dcd0d0043b7cdab6b8b2b4b1158160405161062891906107e0565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ae82610683565b9050919050565b6106be816106a3565b82525050565b60006106d083836106b5565b60208301905092915050565b6000602082019050919050565b60006106f482610657565b6106fe8185610662565b935061070983610673565b8060005b8381101561073a57815161072188826106c4565b975061072c836106dc565b92505060018101905061070d565b5085935050505092915050565b6000602082019050818103600083015261076181846106e9565b905092915050565b600080fd5b6000819050919050565b6107818161076e565b811461078c57600080fd5b50565b60008135905061079e81610778565b92915050565b6000602082840312156107ba576107b9610769565b5b60006107c88482850161078f565b91505092915050565b6107da816106a3565b82525050565b60006020820190506107f560008301846107d1565b92915050565b610804816106a3565b811461080f57600080fd5b50565b600081359050610821816107fb565b92915050565b60006020828403121561083d5761083c610769565b5b600061084b84828501610812565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108bd8261076e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108ef576108ee610883565b5b600182019050919050565b600082825260208201905092915050565b7f596f75277265206e6f74206f75722041544d2e00000000000000000000000000600082015250565b60006109416013836108fa565b915061094c8261090b565b602082019050919050565b6000602082019050818103600083015261097081610934565b9050919050565b6109808161076e565b82525050565b600060608201905061099b60008301866107d1565b6109a86020830185610977565b6109b56040830184610977565b949350505050565b7f42616e6b20646f65736e2774206861766520656e6f756768206d6f6e6579207460008201527f6f20776974686472617700000000000000000000000000000000000000000000602082015250565b6000610a19602a836108fa565b9150610a24826109bd565b604082019050919050565b60006020820190508181036000830152610a4881610a0c565b9050919050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b6000610aab6027836108fa565b9150610ab682610a4f565b604082019050919050565b60006020820190508181036000830152610ada81610a9e565b905091905056fea26469706673582212207b78599838e59ffe771199635662a09e802bfe5f035c785886977174fe048da964736f6c63430008130033",
"deployedBytecode": "0x6080604052600436106100595760003560e01c8063113d88d0146100655780632e1a7d4d146100905780635f310fc0146100b957806383197ef0146100f657806385c1a0021461010d5780638da5cb5b1461013657610060565b3661006057005b600080fd5b34801561007157600080fd5b5061007a610161565b6040516100879190610747565b60405180910390f35b34801561009c57600080fd5b506100b760048036038101906100b291906107a4565b6101ef565b005b3480156100c557600080fd5b506100e060048036038101906100db91906107a4565b6103d2565b6040516100ed91906107e0565b60405180910390f35b34801561010257600080fd5b5061010b610411565b005b34801561011957600080fd5b50610134600480360381019061012f9190610827565b610508565b005b34801561014257600080fd5b5061014b610633565b60405161015891906107e0565b60405180910390f35b606060018054806020026020016040519081016040528092919081815260200182805480156101e557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161019b575b5050505050905090565b6000805b60018054905081101561028d576001818154811061021457610213610854565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361027a576001915061028d565b8080610285906108b2565b9150506101f3565b50806102ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102c590610957565b60405180910390fd5b4782111561034c577f468c981a92e5fd7f5019ff02c21de5dc81e64d992f7dd86e7d33dfc2e5fdb47033834760405161030993929190610986565b60405180910390a16040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034390610a2f565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610392573d6000803e3d6000fd5b507ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5683383476040516103c693929190610986565b60405180910390a15050565b600181815481106103e257600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049690610ac1565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610505573d6000803e3d6000fd5b50565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610596576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058d90610ac1565b60405180910390fd5b6001819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f935726013d7722036a2b3b546d46f8fd4f43a3dcd0d0043b7cdab6b8b2b4b1158160405161062891906107e0565b60405180910390a150565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ae82610683565b9050919050565b6106be816106a3565b82525050565b60006106d083836106b5565b60208301905092915050565b6000602082019050919050565b60006106f482610657565b6106fe8185610662565b935061070983610673565b8060005b8381101561073a57815161072188826106c4565b975061072c836106dc565b92505060018101905061070d565b5085935050505092915050565b6000602082019050818103600083015261076181846106e9565b905092915050565b600080fd5b6000819050919050565b6107818161076e565b811461078c57600080fd5b50565b60008135905061079e81610778565b92915050565b6000602082840312156107ba576107b9610769565b5b60006107c88482850161078f565b91505092915050565b6107da816106a3565b82525050565b60006020820190506107f560008301846107d1565b92915050565b610804816106a3565b811461080f57600080fd5b50565b600081359050610821816107fb565b92915050565b60006020828403121561083d5761083c610769565b5b600061084b84828501610812565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006108bd8261076e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036108ef576108ee610883565b5b600182019050919050565b600082825260208201905092915050565b7f596f75277265206e6f74206f75722041544d2e00000000000000000000000000600082015250565b60006109416013836108fa565b915061094c8261090b565b602082019050919050565b6000602082019050818103600083015261097081610934565b9050919050565b6109808161076e565b82525050565b600060608201905061099b60008301866107d1565b6109a86020830185610977565b6109b56040830184610977565b949350505050565b7f42616e6b20646f65736e2774206861766520656e6f756768206d6f6e6579207460008201527f6f20776974686472617700000000000000000000000000000000000000000000602082015250565b6000610a19602a836108fa565b9150610a24826109bd565b604082019050919050565b60006020820190508181036000830152610a4881610a0c565b9050919050565b7f546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e60008201527f2061636365737300000000000000000000000000000000000000000000000000602082015250565b6000610aab6027836108fa565b9150610ab682610a4f565b604082019050919050565b60006020820190508181036000830152610ada81610a9e565b905091905056fea26469706673582212207b78599838e59ffe771199635662a09e802bfe5f035c785886977174fe048da964736f6c63430008130033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:8620:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "81:40:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "92:22:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "108:5:3"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "102:5:3"
},
"nodeType": "YulFunctionCall",
"src": "102:12:3"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "92:6:3"
}
]
}
]
},
"name": "array_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "64:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "74:6:3",
"type": ""
}
],
"src": "7:114:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "238:73:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "255:3:3"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "260:6:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "248:6:3"
},
"nodeType": "YulFunctionCall",
"src": "248:19:3"
},
"nodeType": "YulExpressionStatement",
"src": "248:19:3"
},
{
"nodeType": "YulAssignment",
"src": "276:29:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "295:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "300:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "291:3:3"
},
"nodeType": "YulFunctionCall",
"src": "291:14:3"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "276:11:3"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "210:3:3",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "215:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "226:11:3",
"type": ""
}
],
"src": "127:184:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "389:60:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "399:11:3",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "407:3:3"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "399:4:3"
}
]
},
{
"nodeType": "YulAssignment",
"src": "420:22:3",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "432:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "437:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "428:3:3"
},
"nodeType": "YulFunctionCall",
"src": "428:14:3"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "420:4:3"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "376:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "384:4:3",
"type": ""
}
],
"src": "317:132:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "500:81:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "510:65:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "525:5:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "532:42:3",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "521:3:3"
},
"nodeType": "YulFunctionCall",
"src": "521:54:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "510:7:3"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "482:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "492:7:3",
"type": ""
}
],
"src": "455:126:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "632:51:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "642:35:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "671:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "653:17:3"
},
"nodeType": "YulFunctionCall",
"src": "653:24:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "642:7:3"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "614:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "624:7:3",
"type": ""
}
],
"src": "587:96:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:53:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "761:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "784:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "766:17:3"
},
"nodeType": "YulFunctionCall",
"src": "766:24:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "754:6:3"
},
"nodeType": "YulFunctionCall",
"src": "754:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "754:37:3"
}
]
},
"name": "abi_encode_t_address_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "732:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "739:3:3",
"type": ""
}
],
"src": "689:108:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "883:99:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "927:6:3"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "935:3:3"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address",
"nodeType": "YulIdentifier",
"src": "893:33:3"
},
"nodeType": "YulFunctionCall",
"src": "893:46:3"
},
"nodeType": "YulExpressionStatement",
"src": "893:46:3"
},
{
"nodeType": "YulAssignment",
"src": "948:28:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "966:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "971:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "962:3:3"
},
"nodeType": "YulFunctionCall",
"src": "962:14:3"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "948:10:3"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_address_to_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "856:6:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "864:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "872:10:3",
"type": ""
}
],
"src": "803:179:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1063:38:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1073:22:3",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "1085:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1090:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1081:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1081:14:3"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "1073:4:3"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "1050:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "1058:4:3",
"type": ""
}
],
"src": "988:113:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1261:608:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1271:68:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1333:5:3"
}
],
"functionName": {
"name": "array_length_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1285:47:3"
},
"nodeType": "YulFunctionCall",
"src": "1285:54:3"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1275:6:3",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1348:93:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1429:3:3"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1434:6:3"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1355:73:3"
},
"nodeType": "YulFunctionCall",
"src": "1355:86:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1348:3:3"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1450:71:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1515:5:3"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1465:49:3"
},
"nodeType": "YulFunctionCall",
"src": "1465:56:3"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "1454:7:3",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1530:21:3",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "1544:7:3"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "1534:6:3",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1620:224:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1634:34:3",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "1661:6:3"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1655:5:3"
},
"nodeType": "YulFunctionCall",
"src": "1655:13:3"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "1638:13:3",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1681:70:3",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "1732:13:3"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1747:3:3"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_address_to_t_address",
"nodeType": "YulIdentifier",
"src": "1688:43:3"
},
"nodeType": "YulFunctionCall",
"src": "1688:63:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1681:3:3"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1764:70:3",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "1827:6:3"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_address_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1774:52:3"
},
"nodeType": "YulFunctionCall",
"src": "1774:60:3"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "1764:6:3"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1582:1:3"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1585:6:3"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1579:2:3"
},
"nodeType": "YulFunctionCall",
"src": "1579:13:3"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1593:18:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1595:14:3",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1604:1:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1607:1:3",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1600:3:3"
},
"nodeType": "YulFunctionCall",
"src": "1600:9:3"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1595:1:3"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1564:14:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1566:10:3",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1575:1:3",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1570:1:3",
"type": ""
}
]
}
]
},
"src": "1560:284:3"
},
{
"nodeType": "YulAssignment",
"src": "1853:10:3",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1860:3:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1853:3:3"
}
]
}
]
},
"name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1240:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1247:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1256:3:3",
"type": ""
}
],
"src": "1137:732:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2023:225:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2033:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2045:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2056:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2041:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2041:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2033:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2080:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2091:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2076:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2076:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2099:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2105:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2095:3:3"
},
"nodeType": "YulFunctionCall",
"src": "2095:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2069:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2069:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "2069:47:3"
},
{
"nodeType": "YulAssignment",
"src": "2125:116:3",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2227:6:3"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2236:4:3"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2133:93:3"
},
"nodeType": "YulFunctionCall",
"src": "2133:108:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2125:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1995:9:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2007:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2018:4:3",
"type": ""
}
],
"src": "1875:373:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2294:35:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2304:19:3",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2320:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2314:5:3"
},
"nodeType": "YulFunctionCall",
"src": "2314:9:3"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2304:6:3"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2287:6:3",
"type": ""
}
],
"src": "2254:75:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2424:28:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2441:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2444:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2434:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2434:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "2434:12:3"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "2335:117:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2547:28:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2564:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2567:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2557:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2557:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "2557:12:3"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "2458:117:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2626:32:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2636:16:3",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2647:5:3"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2636:7:3"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2608:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2618:7:3",
"type": ""
}
],
"src": "2581:77:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2707:79:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2764:16:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2773:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2776:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2766:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2766:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "2766:12:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2730:5:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2755:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2737:17:3"
},
"nodeType": "YulFunctionCall",
"src": "2737:24:3"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2727:2:3"
},
"nodeType": "YulFunctionCall",
"src": "2727:35:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2720:6:3"
},
"nodeType": "YulFunctionCall",
"src": "2720:43:3"
},
"nodeType": "YulIf",
"src": "2717:63:3"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2700:5:3",
"type": ""
}
],
"src": "2664:122:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2844:87:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2854:29:3",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2876:6:3"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2863:12:3"
},
"nodeType": "YulFunctionCall",
"src": "2863:20:3"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2854:5:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2919:5:3"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "2892:26:3"
},
"nodeType": "YulFunctionCall",
"src": "2892:33:3"
},
"nodeType": "YulExpressionStatement",
"src": "2892:33:3"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2822:6:3",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2830:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2838:5:3",
"type": ""
}
],
"src": "2792:139:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3003:263:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3049:83:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3051:77:3"
},
"nodeType": "YulFunctionCall",
"src": "3051:79:3"
},
"nodeType": "YulExpressionStatement",
"src": "3051:79:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3024:7:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3033:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3020:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3020:23:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3045:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3016:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3016:32:3"
},
"nodeType": "YulIf",
"src": "3013:119:3"
},
{
"nodeType": "YulBlock",
"src": "3142:117:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3157:15:3",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3171:1:3",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3161:6:3",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3186:63:3",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3221:9:3"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3232:6:3"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3217:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3217:22:3"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3241:7:3"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3196:20:3"
},
"nodeType": "YulFunctionCall",
"src": "3196:53:3"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3186:6:3"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2973:9:3",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2984:7:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2996:6:3",
"type": ""
}
],
"src": "2937:329:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3337:53:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3354:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3377:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3359:17:3"
},
"nodeType": "YulFunctionCall",
"src": "3359:24:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3347:6:3"
},
"nodeType": "YulFunctionCall",
"src": "3347:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "3347:37:3"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3325:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3332:3:3",
"type": ""
}
],
"src": "3272:118:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3494:124:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3504:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3516:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3527:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3512:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3512:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3504:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3584:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3597:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3608:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3593:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3593:17:3"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3540:43:3"
},
"nodeType": "YulFunctionCall",
"src": "3540:71:3"
},
"nodeType": "YulExpressionStatement",
"src": "3540:71:3"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3466:9:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3478:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3489:4:3",
"type": ""
}
],
"src": "3396:222:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3667:79:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3724:16:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3733:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3736:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3726:6:3"
},
"nodeType": "YulFunctionCall",
"src": "3726:12:3"
},
"nodeType": "YulExpressionStatement",
"src": "3726:12:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3690:5:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3715:5:3"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "3697:17:3"
},
"nodeType": "YulFunctionCall",
"src": "3697:24:3"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3687:2:3"
},
"nodeType": "YulFunctionCall",
"src": "3687:35:3"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3680:6:3"
},
"nodeType": "YulFunctionCall",
"src": "3680:43:3"
},
"nodeType": "YulIf",
"src": "3677:63:3"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3660:5:3",
"type": ""
}
],
"src": "3624:122:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3804:87:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3814:29:3",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3836:6:3"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3823:12:3"
},
"nodeType": "YulFunctionCall",
"src": "3823:20:3"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3814:5:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3879:5:3"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "3852:26:3"
},
"nodeType": "YulFunctionCall",
"src": "3852:33:3"
},
"nodeType": "YulExpressionStatement",
"src": "3852:33:3"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3782:6:3",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3790:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3798:5:3",
"type": ""
}
],
"src": "3752:139:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3963:263:3",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4009:83:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4011:77:3"
},
"nodeType": "YulFunctionCall",
"src": "4011:79:3"
},
"nodeType": "YulExpressionStatement",
"src": "4011:79:3"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3984:7:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3993:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3980:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3980:23:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4005:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3976:3:3"
},
"nodeType": "YulFunctionCall",
"src": "3976:32:3"
},
"nodeType": "YulIf",
"src": "3973:119:3"
},
{
"nodeType": "YulBlock",
"src": "4102:117:3",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4117:15:3",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4131:1:3",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4121:6:3",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4146:63:3",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4181:9:3"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4192:6:3"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4177:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4177:22:3"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4201:7:3"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4156:20:3"
},
"nodeType": "YulFunctionCall",
"src": "4156:53:3"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4146:6:3"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3933:9:3",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3944:7:3",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3956:6:3",
"type": ""
}
],
"src": "3897:329:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4260:152:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4277:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4280:77:3",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4270:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4270:88:3"
},
"nodeType": "YulExpressionStatement",
"src": "4270:88:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4374:1:3",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4377:4:3",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4367:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4367:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "4367:15:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4398:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4401:4:3",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4391:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4391:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "4391:15:3"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "4232:180:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4446:152:3",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4463:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4466:77:3",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4456:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4456:88:3"
},
"nodeType": "YulExpressionStatement",
"src": "4456:88:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4560:1:3",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4563:4:3",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4553:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4553:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "4553:15:3"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4584:1:3",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4587:4:3",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4577:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4577:15:3"
},
"nodeType": "YulExpressionStatement",
"src": "4577:15:3"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "4418:180:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4647:190:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4657:33:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4684:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4666:17:3"
},
"nodeType": "YulFunctionCall",
"src": "4666:24:3"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4657:5:3"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4780:22:3",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "4782:16:3"
},
"nodeType": "YulFunctionCall",
"src": "4782:18:3"
},
"nodeType": "YulExpressionStatement",
"src": "4782:18:3"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4705:5:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4712:66:3",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4702:2:3"
},
"nodeType": "YulFunctionCall",
"src": "4702:77:3"
},
"nodeType": "YulIf",
"src": "4699:103:3"
},
{
"nodeType": "YulAssignment",
"src": "4811:20:3",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4822:5:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4829:1:3",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4818:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4818:13:3"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "4811:3:3"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4633:5:3",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "4643:3:3",
"type": ""
}
],
"src": "4604:233:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4939:73:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4956:3:3"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4961:6:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4949:6:3"
},
"nodeType": "YulFunctionCall",
"src": "4949:19:3"
},
"nodeType": "YulExpressionStatement",
"src": "4949:19:3"
},
{
"nodeType": "YulAssignment",
"src": "4977:29:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4996:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5001:4:3",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4992:3:3"
},
"nodeType": "YulFunctionCall",
"src": "4992:14:3"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4977:11:3"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4911:3:3",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4916:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4927:11:3",
"type": ""
}
],
"src": "4843:169:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5124:63:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5146:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5154:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5142:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5142:14:3"
},
{
"hexValue": "596f75277265206e6f74206f75722041544d2e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "5158:21:3",
"type": "",
"value": "You're not our ATM."
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5135:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5135:45:3"
},
"nodeType": "YulExpressionStatement",
"src": "5135:45:3"
}
]
},
"name": "store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5116:6:3",
"type": ""
}
],
"src": "5018:169:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5339:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5349:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5415:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5420:2:3",
"type": "",
"value": "19"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5356:58:3"
},
"nodeType": "YulFunctionCall",
"src": "5356:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5349:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5521:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"nodeType": "YulIdentifier",
"src": "5432:88:3"
},
"nodeType": "YulFunctionCall",
"src": "5432:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "5432:93:3"
},
{
"nodeType": "YulAssignment",
"src": "5534:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5545:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5550:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5541:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5541:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5534:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5327:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5335:3:3",
"type": ""
}
],
"src": "5193:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5736:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5746:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5758:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5769:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5754:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5754:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5746:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5793:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5804:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5789:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5789:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5812:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5818:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5808:3:3"
},
"nodeType": "YulFunctionCall",
"src": "5808:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5782:6:3"
},
"nodeType": "YulFunctionCall",
"src": "5782:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "5782:47:3"
},
{
"nodeType": "YulAssignment",
"src": "5838:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5972:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5846:124:3"
},
"nodeType": "YulFunctionCall",
"src": "5846:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5838:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5716:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5731:4:3",
"type": ""
}
],
"src": "5565:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6055:53:3",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6072:3:3"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6095:5:3"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6077:17:3"
},
"nodeType": "YulFunctionCall",
"src": "6077:24:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6065:6:3"
},
"nodeType": "YulFunctionCall",
"src": "6065:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "6065:37:3"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6043:5:3",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6050:3:3",
"type": ""
}
],
"src": "5990:118:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6268:288:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6278:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6290:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6301:2:3",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6286:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6286:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6278:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6358:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6371:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6382:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6367:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6367:17:3"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "6314:43:3"
},
"nodeType": "YulFunctionCall",
"src": "6314:71:3"
},
"nodeType": "YulExpressionStatement",
"src": "6314:71:3"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6439:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6452:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6463:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6448:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6448:18:3"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6395:43:3"
},
"nodeType": "YulFunctionCall",
"src": "6395:72:3"
},
"nodeType": "YulExpressionStatement",
"src": "6395:72:3"
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "6521:6:3"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6534:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6530:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6530:18:3"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6477:43:3"
},
"nodeType": "YulFunctionCall",
"src": "6477:72:3"
},
"nodeType": "YulExpressionStatement",
"src": "6477: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": "6224:9:3",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "6236:6:3",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6244:6:3",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6252:6:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6263:4:3",
"type": ""
}
],
"src": "6114:442:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6668:123:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6690:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6698:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6686:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6686:14:3"
},
{
"hexValue": "42616e6b20646f65736e2774206861766520656e6f756768206d6f6e65792074",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6702:34:3",
"type": "",
"value": "Bank doesn't have enough money t"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6679:6:3"
},
"nodeType": "YulFunctionCall",
"src": "6679:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "6679:58:3"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6758:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6766:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6754:3:3"
},
"nodeType": "YulFunctionCall",
"src": "6754:15:3"
},
{
"hexValue": "6f207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6771:12:3",
"type": "",
"value": "o withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6747:6:3"
},
"nodeType": "YulFunctionCall",
"src": "6747:37:3"
},
"nodeType": "YulExpressionStatement",
"src": "6747:37:3"
}
]
},
"name": "store_literal_in_memory_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6660:6:3",
"type": ""
}
],
"src": "6562:229:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6943:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6953:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7019:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7024:2:3",
"type": "",
"value": "42"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6960:58:3"
},
"nodeType": "YulFunctionCall",
"src": "6960:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6953:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7125:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0",
"nodeType": "YulIdentifier",
"src": "7036:88:3"
},
"nodeType": "YulFunctionCall",
"src": "7036:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "7036:93:3"
},
{
"nodeType": "YulAssignment",
"src": "7138:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7149:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7154:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7145:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7145:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7138:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6931:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6939:3:3",
"type": ""
}
],
"src": "6797:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7340:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7350:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7362:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7373:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7358:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7358:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7350:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7397:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7408:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7393:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7393:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7416:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7422:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7412:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7412:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7386:6:3"
},
"nodeType": "YulFunctionCall",
"src": "7386:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "7386:47:3"
},
{
"nodeType": "YulAssignment",
"src": "7442:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7576:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7450:124:3"
},
"nodeType": "YulFunctionCall",
"src": "7450:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7442:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7320:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7335:4:3",
"type": ""
}
],
"src": "7169:419:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7700:120:3",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7722:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7730:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7718:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7718:14:3"
},
{
"hexValue": "546869732066756e6374696f6e206f6e6c7920746865206f776e65722063616e",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7734:34:3",
"type": "",
"value": "This function only the owner can"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7711:6:3"
},
"nodeType": "YulFunctionCall",
"src": "7711:58:3"
},
"nodeType": "YulExpressionStatement",
"src": "7711:58:3"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7790:6:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7798:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7786:3:3"
},
"nodeType": "YulFunctionCall",
"src": "7786:15:3"
},
{
"hexValue": "20616363657373",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7803:9:3",
"type": "",
"value": " access"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7779:6:3"
},
"nodeType": "YulFunctionCall",
"src": "7779:34:3"
},
"nodeType": "YulExpressionStatement",
"src": "7779:34:3"
}
]
},
"name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7692:6:3",
"type": ""
}
],
"src": "7594:226:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7972:220:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7982:74:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8048:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8053:2:3",
"type": "",
"value": "39"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7989:58:3"
},
"nodeType": "YulFunctionCall",
"src": "7989:67:3"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7982:3:3"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8154:3:3"
}
],
"functionName": {
"name": "store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002",
"nodeType": "YulIdentifier",
"src": "8065:88:3"
},
"nodeType": "YulFunctionCall",
"src": "8065:93:3"
},
"nodeType": "YulExpressionStatement",
"src": "8065:93:3"
},
{
"nodeType": "YulAssignment",
"src": "8167:19:3",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "8178:3:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8183:2:3",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8174:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8174:12:3"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "8167:3:3"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7960:3:3",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7968:3:3",
"type": ""
}
],
"src": "7826:366:3"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8369:248:3",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8379:26:3",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8391:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8402:2:3",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8387:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8387:18:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8379:4:3"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8426:9:3"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8437:1:3",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8422:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8422:17:3"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8445:4:3"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8451:9:3"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8441:3:3"
},
"nodeType": "YulFunctionCall",
"src": "8441:20:3"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8415:6:3"
},
"nodeType": "YulFunctionCall",
"src": "8415:47:3"
},
"nodeType": "YulExpressionStatement",
"src": "8415:47:3"
},
{
"nodeType": "YulAssignment",
"src": "8471:139:3",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8605:4:3"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8479:124:3"
},
"nodeType": "YulFunctionCall",
"src": "8479:131:3"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8471:4:3"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8349:9:3",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8364:4:3",
"type": ""
}
],
"src": "8198:419:3"
}
]
},
"contents": "{\n\n function array_length_t_array$_t_address_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_address_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encodeUpdatedPos_t_address_to_t_address(value0, pos) -> updatedPos {\n abi_encode_t_address_to_t_address(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_address_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // address[] -> address[]\n function abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_address_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_address_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_address_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_address_to_t_address(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_address_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_address_$dyn_memory_ptr_to_t_array$_t_address_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\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 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 validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240(memPtr) {\n\n mstore(add(memPtr, 0), \"You're not our ATM.\")\n\n }\n\n function abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function 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_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0(memPtr) {\n\n mstore(add(memPtr, 0), \"Bank doesn't have enough money t\")\n\n mstore(add(memPtr, 32), \"o withdraw\")\n\n }\n\n function abi_encode_t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 42)\n store_literal_in_memory_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0__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_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002(memPtr) {\n\n mstore(add(memPtr, 0), \"This function only the owner can\")\n\n mstore(add(memPtr, 32), \" access\")\n\n }\n\n function abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 39)\n store_literal_in_memory_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f481286fd7e35fb08a942fbbdf386ddc72236b2a397440207a7e669288de8002_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
"id": 3,
"language": "Yul",
"name": "#utility.yul"
}
],
"sourceMap": "96:897:1:-:0;;;295:16;;;;;;;;;;159:10:2;151:5;;:18;;;;;;;;;;;;;;;;;;96:897:1;;;;;;",
"deployedSourceMap": "96:897:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;514:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;684:307;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;128:21;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;285:89:2;;;;;;;;;;;;;:::i;:::-;;593:88:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;91:20:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;514:76:1;554:16;582:4;575:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;514:76;:::o;684:307::-;337:10;363:6;359:103;375:4;:11;;;;373:1;:13;359:103;;;415:4;420:1;415:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;401:21;;:10;:21;;;398:60;;437:4;429:12;;447:5;;398:60;388:3;;;;;:::i;:::-;;;;359:103;;;;473:5;465:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;744:21:::1;737:6;:28;734:154;;;776:50;784:10;796:6;804:21;776:50;;;;;;;;:::i;:::-;;;;;;;;831:52;;;;;;;;;;:::i;:::-;;;;;;;;734:154;899:10;891:28;;:36;920:6;891:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;936:51;945:10;957:6;965:21;936:51;;;;;;;;:::i;:::-;;;;;;;;333:178:::0;684:307;:::o;128:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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;593:88:1:-;224:5:2;;;;;;;;;;210:19;;:10;:19;;;202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;643:4:1::1;653:3;643:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:11;673:3;666:11;;;;;;:::i;:::-;;;;;;;;593:88:::0;:::o;91:20:2:-;;;;;;;;;;;;:::o;7:114:3:-;74:6;108:5;102:12;92:22;;7:114;;;:::o;127:184::-;226:11;260:6;255:3;248:19;300:4;295:3;291:14;276:29;;127:184;;;;:::o;317:132::-;384:4;407:3;399:11;;437:4;432:3;428:14;420:22;;317:132;;;:::o;455:126::-;492:7;532:42;525:5;521:54;510:65;;455:126;;;:::o;587:96::-;624:7;653:24;671:5;653:24;:::i;:::-;642:35;;587:96;;;:::o;689:108::-;766:24;784:5;766:24;:::i;:::-;761:3;754:37;689:108;;:::o;803:179::-;872:10;893:46;935:3;927:6;893:46;:::i;:::-;971:4;966:3;962:14;948:28;;803:179;;;;:::o;988:113::-;1058:4;1090;1085:3;1081:14;1073:22;;988:113;;;:::o;1137:732::-;1256:3;1285:54;1333:5;1285:54;:::i;:::-;1355:86;1434:6;1429:3;1355:86;:::i;:::-;1348:93;;1465:56;1515:5;1465:56;:::i;:::-;1544:7;1575:1;1560:284;1585:6;1582:1;1579:13;1560:284;;;1661:6;1655:13;1688:63;1747:3;1732:13;1688:63;:::i;:::-;1681:70;;1774:60;1827:6;1774:60;:::i;:::-;1764:70;;1620:224;1607:1;1604;1600:9;1595:14;;1560:284;;;1564:14;1860:3;1853:10;;1261:608;;;1137:732;;;;:::o;1875:373::-;2018:4;2056:2;2045:9;2041:18;2033:26;;2105:9;2099:4;2095:20;2091:1;2080:9;2076:17;2069:47;2133:108;2236:4;2227:6;2133:108;:::i;:::-;2125:116;;1875:373;;;;:::o;2335:117::-;2444:1;2441;2434:12;2581:77;2618:7;2647:5;2636:16;;2581:77;;;:::o;2664:122::-;2737:24;2755:5;2737:24;:::i;:::-;2730:5;2727:35;2717:63;;2776:1;2773;2766:12;2717:63;2664:122;:::o;2792:139::-;2838:5;2876:6;2863:20;2854:29;;2892:33;2919:5;2892:33;:::i;:::-;2792:139;;;;:::o;2937:329::-;2996:6;3045:2;3033:9;3024:7;3020:23;3016:32;3013:119;;;3051:79;;:::i;:::-;3013:119;3171:1;3196:53;3241:7;3232:6;3221:9;3217:22;3196:53;:::i;:::-;3186:63;;3142:117;2937:329;;;;:::o;3272:118::-;3359:24;3377:5;3359:24;:::i;:::-;3354:3;3347:37;3272:118;;:::o;3396:222::-;3489:4;3527:2;3516:9;3512:18;3504:26;;3540:71;3608:1;3597:9;3593:17;3584:6;3540:71;:::i;:::-;3396:222;;;;:::o;3624:122::-;3697:24;3715:5;3697:24;:::i;:::-;3690:5;3687:35;3677:63;;3736:1;3733;3726:12;3677:63;3624:122;:::o;3752:139::-;3798:5;3836:6;3823:20;3814:29;;3852:33;3879:5;3852:33;:::i;:::-;3752:139;;;;:::o;3897:329::-;3956:6;4005:2;3993:9;3984:7;3980:23;3976:32;3973:119;;;4011:79;;:::i;:::-;3973:119;4131:1;4156:53;4201:7;4192:6;4181:9;4177:22;4156:53;:::i;:::-;4146:63;;4102:117;3897:329;;;;:::o;4232:180::-;4280:77;4277:1;4270:88;4377:4;4374:1;4367:15;4401:4;4398:1;4391:15;4418:180;4466:77;4463:1;4456:88;4563:4;4560:1;4553:15;4587:4;4584:1;4577:15;4604:233;4643:3;4666:24;4684:5;4666:24;:::i;:::-;4657:33;;4712:66;4705:5;4702:77;4699:103;;4782:18;;:::i;:::-;4699:103;4829:1;4822:5;4818:13;4811:20;;4604:233;;;:::o;4843:169::-;4927:11;4961:6;4956:3;4949:19;5001:4;4996:3;4992:14;4977:29;;4843:169;;;;:::o;5018:::-;5158:21;5154:1;5146:6;5142:14;5135:45;5018:169;:::o;5193:366::-;5335:3;5356:67;5420:2;5415:3;5356:67;:::i;:::-;5349:74;;5432:93;5521:3;5432:93;:::i;:::-;5550:2;5545:3;5541:12;5534:19;;5193:366;;;:::o;5565:419::-;5731:4;5769:2;5758:9;5754:18;5746:26;;5818:9;5812:4;5808:20;5804:1;5793:9;5789:17;5782:47;5846:131;5972:4;5846:131;:::i;:::-;5838:139;;5565:419;;;:::o;5990:118::-;6077:24;6095:5;6077:24;:::i;:::-;6072:3;6065:37;5990:118;;:::o;6114:442::-;6263:4;6301:2;6290:9;6286:18;6278:26;;6314:71;6382:1;6371:9;6367:17;6358:6;6314:71;:::i;:::-;6395:72;6463:2;6452:9;6448:18;6439:6;6395:72;:::i;:::-;6477;6545:2;6534:9;6530:18;6521:6;6477:72;:::i;:::-;6114:442;;;;;;:::o;6562:229::-;6702:34;6698:1;6690:6;6686:14;6679:58;6771:12;6766:2;6758:6;6754:15;6747:37;6562:229;:::o;6797:366::-;6939:3;6960:67;7024:2;7019:3;6960:67;:::i;:::-;6953:74;;7036:93;7125:3;7036:93;:::i;:::-;7154:2;7149:3;7145:12;7138:19;;6797:366;;;:::o;7169:419::-;7335:4;7373:2;7362:9;7358:18;7350:26;;7422:9;7416:4;7412:20;7408:1;7397:9;7393:17;7386:47;7450:131;7576:4;7450:131;:::i;:::-;7442:139;;7169:419;;;:::o;7594:226::-;7734:34;7730:1;7722:6;7718:14;7711:58;7803:9;7798:2;7790:6;7786:15;7779:34;7594:226;:::o;7826:366::-;7968:3;7989:67;8053:2;8048:3;7989:67;:::i;:::-;7982:74;;8065:93;8154:3;8065:93;:::i;:::-;8183:2;8178:3;8174:12;8167:19;;7826:366;;;:::o;8198:419::-;8364:4;8402:2;8391:9;8387:18;8379:26;;8451:9;8445:4;8441:20;8437:1;8426:9;8422:17;8415:47;8479:131;8605:4;8479:131;:::i;:::-;8471:139;;8198:419;;;:::o",
"source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nimport \"./BaseContract.sol\";\n\ncontract Bank is BaseContract{\n\taddress[] public atms;\n\tevent NoMoney(address from, uint amount, uint balance);\n\tevent Withdraw(address from, uint amount, uint balance);\n\tevent AddATM(address atm);\n\tconstructor() {}\n\n\tmodifier onlyATM() {\n\t\tbool found = false;\n\t\tfor(uint i=0; i<atms.length; i++) {\n\t\t\tif(msg.sender == atms[i]){\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\trequire(found, \"You're not our ATM.\");\n\t\t_;\n\t}\n\n\tfunction getATMs() public view returns (address[] memory){\n\t\treturn atms;\n\t}\n\n\tfunction addATM(address atm) public onlyOwner {\n\t\tatms.push(atm);\n\t\temit AddATM(atm);\n\t}\n\n\tfunction withdraw(uint amount) public onlyATM {\n\t\tif(amount>address(this).balance){\n\t\t\temit NoMoney(msg.sender, amount, address(this).balance);\n\t\t\trevert(\"Bank doesn't have enough money to withdraw\");\n\t\t}\n\t\tpayable(msg.sender).transfer(amount);\n\t\temit Withdraw(msg.sender, amount, address(this).balance);\n\t}\n}\n",
"sourcePath": "/srv/http/code/1112_blockchain/advance_faucet/contracts/Bank.sol",
"ast": {
"absolutePath": "project:/contracts/Bank.sol",
"exportedSymbols": {
"Bank": [
246
],
"BaseContract": [
296
]
},
"id": 247,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 97,
"literals": [
"solidity",
">=",
"0.4",
".22",
"<",
"0.9",
".0"
],
"nodeType": "PragmaDirective",
"src": "32:32:1"
},
{
"absolutePath": "project:/contracts/BaseContract.sol",
"file": "./BaseContract.sol",
"id": 98,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 247,
"sourceUnit": 297,
"src": "66:28:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 99,
"name": "BaseContract",
"nameLocations": [
"113:12:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 296,
"src": "113:12:1"
},
"id": 100,
"nodeType": "InheritanceSpecifier",
"src": "113:12:1"
}
],
"canonicalName": "Bank",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 246,
"linearizedBaseContracts": [
246,
296
],
"name": "Bank",
"nameLocation": "105:4:1",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "5f310fc0",
"id": 103,
"mutability": "mutable",
"name": "atms",
"nameLocation": "145:4:1",
"nodeType": "VariableDeclaration",
"scope": 246,
"src": "128:21:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 101,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "128:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 102,
"nodeType": "ArrayTypeName",
"src": "128:9:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "public"
},
{
"anonymous": false,
"eventSelector": "468c981a92e5fd7f5019ff02c21de5dc81e64d992f7dd86e7d33dfc2e5fdb470",
"id": 111,
"name": "NoMoney",
"nameLocation": "158:7:1",
"nodeType": "EventDefinition",
"parameters": {
"id": 110,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 105,
"indexed": false,
"mutability": "mutable",
"name": "from",
"nameLocation": "174:4:1",
"nodeType": "VariableDeclaration",
"scope": 111,
"src": "166:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 104,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "166:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 107,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "185:6:1",
"nodeType": "VariableDeclaration",
"scope": 111,
"src": "180:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 106,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "180:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 109,
"indexed": false,
"mutability": "mutable",
"name": "balance",
"nameLocation": "198:7:1",
"nodeType": "VariableDeclaration",
"scope": 111,
"src": "193:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 108,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "193:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "165:41:1"
},
"src": "152:55:1"
},
{
"anonymous": false,
"eventSelector": "f279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568",
"id": 119,
"name": "Withdraw",
"nameLocation": "215:8:1",
"nodeType": "EventDefinition",
"parameters": {
"id": 118,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 113,
"indexed": false,
"mutability": "mutable",
"name": "from",
"nameLocation": "232:4:1",
"nodeType": "VariableDeclaration",
"scope": 119,
"src": "224:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 112,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "224:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 115,
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nameLocation": "243:6:1",
"nodeType": "VariableDeclaration",
"scope": 119,
"src": "238:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 114,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "238:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 117,
"indexed": false,
"mutability": "mutable",
"name": "balance",
"nameLocation": "256:7:1",
"nodeType": "VariableDeclaration",
"scope": 119,
"src": "251:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 116,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "251:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "223:41:1"
},
"src": "209:56:1"
},
{
"anonymous": false,
"eventSelector": "935726013d7722036a2b3b546d46f8fd4f43a3dcd0d0043b7cdab6b8b2b4b115",
"id": 123,
"name": "AddATM",
"nameLocation": "273:6:1",
"nodeType": "EventDefinition",
"parameters": {
"id": 122,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 121,
"indexed": false,
"mutability": "mutable",
"name": "atm",
"nameLocation": "288:3:1",
"nodeType": "VariableDeclaration",
"scope": 123,
"src": "280:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 120,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "280:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "279:13:1"
},
"src": "267:26:1"
},
{
"body": {
"id": 126,
"nodeType": "Block",
"src": "309:2:1",
"statements": []
},
"id": 127,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 124,
"nodeType": "ParameterList",
"parameters": [],
"src": "306:2:1"
},
"returnParameters": {
"id": 125,
"nodeType": "ParameterList",
"parameters": [],
"src": "309:0:1"
},
"scope": 246,
"src": "295:16:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 165,
"nodeType": "Block",
"src": "333:178:1",
"statements": [
{
"assignments": [
130
],
"declarations": [
{
"constant": false,
"id": 130,
"mutability": "mutable",
"name": "found",
"nameLocation": "342:5:1",
"nodeType": "VariableDeclaration",
"scope": 165,
"src": "337:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 129,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "337:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"id": 132,
"initialValue": {
"hexValue": "66616c7365",
"id": 131,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "350:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
"nodeType": "VariableDeclarationStatement",
"src": "337:18:1"
},
{
"body": {
"id": 157,
"nodeType": "Block",
"src": "393:69:1",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 149,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 144,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "401:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 145,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "405:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "401:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"baseExpression": {
"id": 146,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 103,
"src": "415:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 148,
"indexExpression": {
"id": 147,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 134,
"src": "420:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "415:7:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "401:21:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 156,
"nodeType": "IfStatement",
"src": "398:60:1",
"trueBody": {
"id": 155,
"nodeType": "Block",
"src": "423:35:1",
"statements": [
{
"expression": {
"id": 152,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 150,
"name": "found",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 130,
"src": "429:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 151,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "437:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "429:12:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 153,
"nodeType": "ExpressionStatement",
"src": "429:12:1"
},
{
"id": 154,
"nodeType": "Break",
"src": "447:5:1"
}
]
}
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 140,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 137,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 134,
"src": "373:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"expression": {
"id": 138,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 103,
"src": "375:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 139,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "380:6:1",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "375:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "373:13:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 158,
"initializationExpression": {
"assignments": [
134
],
"declarations": [
{
"constant": false,
"id": 134,
"mutability": "mutable",
"name": "i",
"nameLocation": "368:1:1",
"nodeType": "VariableDeclaration",
"scope": 158,
"src": "363:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 133,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "363:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 136,
"initialValue": {
"hexValue": "30",
"id": 135,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "370:1:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "363:8:1"
},
"loopExpression": {
"expression": {
"id": 142,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "388:3:1",
"subExpression": {
"id": 141,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 134,
"src": "388:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 143,
"nodeType": "ExpressionStatement",
"src": "388:3:1"
},
"nodeType": "ForStatement",
"src": "359:103:1"
},
{
"expression": {
"arguments": [
{
"id": 160,
"name": "found",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 130,
"src": "473:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "596f75277265206e6f74206f75722041544d2e",
"id": 161,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "480:21:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"typeString": "literal_string \"You're not our ATM.\""
},
"value": "You're not our ATM."
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_ecf4acf33105f8fdcc92b1c56968f8eddd1fb1d581cd9de39e32785fffcef240",
"typeString": "literal_string \"You're not our ATM.\""
}
],
"id": 159,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "465:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 162,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "465:37:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 163,
"nodeType": "ExpressionStatement",
"src": "465:37:1"
},
{
"id": 164,
"nodeType": "PlaceholderStatement",
"src": "506:1:1"
}
]
},
"id": 166,
"name": "onlyATM",
"nameLocation": "323:7:1",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 128,
"nodeType": "ParameterList",
"parameters": [],
"src": "330:2:1"
},
"src": "314:197:1",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 174,
"nodeType": "Block",
"src": "571:19:1",
"statements": [
{
"expression": {
"id": 172,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 103,
"src": "582:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"functionReturnParameters": 171,
"id": 173,
"nodeType": "Return",
"src": "575:11:1"
}
]
},
"functionSelector": "113d88d0",
"id": 175,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getATMs",
"nameLocation": "523:7:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 167,
"nodeType": "ParameterList",
"parameters": [],
"src": "530:2:1"
},
"returnParameters": {
"id": 171,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 170,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "554:16:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 168,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "554:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 169,
"nodeType": "ArrayTypeName",
"src": "554:9:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "553:18:1"
},
"scope": 246,
"src": "514:76:1",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 192,
"nodeType": "Block",
"src": "639:42:1",
"statements": [
{
"expression": {
"arguments": [
{
"id": 185,
"name": "atm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 177,
"src": "653:3:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 182,
"name": "atms",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 103,
"src": "643:4:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 184,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "648:4:1",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "643:9:1",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$",
"typeString": "function (address[] storage pointer,address)"
}
},
"id": 186,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "643:14:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 187,
"nodeType": "ExpressionStatement",
"src": "643:14:1"
},
{
"eventCall": {
"arguments": [
{
"id": 189,
"name": "atm",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 177,
"src": "673:3:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 188,
"name": "AddATM",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 123,
"src": "666:6:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 190,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "666:11:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 191,
"nodeType": "EmitStatement",
"src": "661:16:1"
}
]
},
"functionSelector": "85c1a002",
"id": 193,
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 180,
"kind": "modifierInvocation",
"modifierName": {
"id": 179,
"name": "onlyOwner",
"nameLocations": [
"629:9:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 273,
"src": "629:9:1"
},
"nodeType": "ModifierInvocation",
"src": "629:9:1"
}
],
"name": "addATM",
"nameLocation": "602:6:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 177,
"mutability": "mutable",
"name": "atm",
"nameLocation": "617:3:1",
"nodeType": "VariableDeclaration",
"scope": 193,
"src": "609:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 176,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "609:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "608:13:1"
},
"returnParameters": {
"id": 181,
"nodeType": "ParameterList",
"parameters": [],
"src": "639:0:1"
},
"scope": 246,
"src": "593:88:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 244,
"nodeType": "Block",
"src": "730:261:1",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 206,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 200,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 195,
"src": "737:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"expression": {
"arguments": [
{
"id": 203,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "752:4:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Bank_$246",
"typeString": "contract Bank"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Bank_$246",
"typeString": "contract Bank"
}
],
"id": 202,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "744:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 201,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "744:7:1",
"typeDescriptions": {}
}
},
"id": 204,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "744:13:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 205,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "758:7:1",
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "744:21:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "737:28:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 223,
"nodeType": "IfStatement",
"src": "734:154:1",
"trueBody": {
"id": 222,
"nodeType": "Block",
"src": "766:122:1",
"statements": [
{
"eventCall": {
"arguments": [
{
"expression": {
"id": 208,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "784:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 209,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "788:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "784:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 210,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 195,
"src": "796:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"expression": {
"arguments": [
{
"id": 213,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "812:4:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Bank_$246",
"typeString": "contract Bank"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Bank_$246",
"typeString": "contract Bank"
}
],
"id": 212,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "804:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 211,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "804:7:1",
"typeDescriptions": {}
}
},
"id": 214,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "804:13:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 215,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "818:7:1",
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "804:21:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 207,
"name": "NoMoney",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 111,
"src": "776:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256,uint256)"
}
},
"id": 216,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "776:50:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 217,
"nodeType": "EmitStatement",
"src": "771:55:1"
},
{
"expression": {
"arguments": [
{
"hexValue": "42616e6b20646f65736e2774206861766520656e6f756768206d6f6e657920746f207769746864726177",
"id": 219,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "838:44:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0",
"typeString": "literal_string \"Bank doesn't have enough money to withdraw\""
},
"value": "Bank doesn't have enough money to withdraw"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_32a205a20fa87b7e7258fe360db2821288a514e1c3fb618adbfdd65354087da0",
"typeString": "literal_string \"Bank doesn't have enough money to withdraw\""
}
],
"id": 218,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967277,
4294967277
],
"referencedDeclaration": 4294967277,
"src": "831:6:1",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 220,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "831:52:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 221,
"nodeType": "ExpressionStatement",
"src": "831:52:1"
}
]
}
},
{
"expression": {
"arguments": [
{
"id": 230,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 195,
"src": "920:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"expression": {
"id": 226,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "899:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "903:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "899:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 225,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "891:8:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 224,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "891:8:1",
"stateMutability": "payable",
"typeDescriptions": {}
}
},
"id": 228,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "891:19:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 229,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "911:8:1",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "891:28:1",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 231,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "891:36:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 232,
"nodeType": "ExpressionStatement",
"src": "891:36:1"
},
{
"eventCall": {
"arguments": [
{
"expression": {
"id": 234,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "945:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 235,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "949:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "945:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 236,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 195,
"src": "957:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"expression": {
"arguments": [
{
"id": 239,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "973:4:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Bank_$246",
"typeString": "contract Bank"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Bank_$246",
"typeString": "contract Bank"
}
],
"id": 238,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "965:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 237,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "965:7:1",
"typeDescriptions": {}
}
},
"id": 240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "965:13:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 241,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "979:7:1",
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "965:21:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 233,
"name": "Withdraw",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 119,
"src": "936:8:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256,uint256)"
}
},
"id": 242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "936:51:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 243,
"nodeType": "EmitStatement",
"src": "931:56:1"
}
]
},
"functionSelector": "2e1a7d4d",
"id": 245,
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 198,
"kind": "modifierInvocation",
"modifierName": {
"id": 197,
"name": "onlyATM",
"nameLocations": [
"722:7:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 166,
"src": "722:7:1"
},
"nodeType": "ModifierInvocation",
"src": "722:7:1"
}
],
"name": "withdraw",
"nameLocation": "693:8:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 196,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 195,
"mutability": "mutable",
"name": "amount",
"nameLocation": "707:6:1",
"nodeType": "VariableDeclaration",
"scope": 245,
"src": "702:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 194,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "702:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "701:13:1"
},
"returnParameters": {
"id": 199,
"nodeType": "ParameterList",
"parameters": [],
"src": "730:0:1"
},
"scope": 246,
"src": "684:307:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 247,
"src": "96:897:1",
"usedErrors": []
}
],
"src": "32:962:1"
},
"compiler": {
"name": "solc",
"version": "0.8.19+commit.7dd6d404.Emscripten.clang"
},
"networks": {
"5777": {
"events": {
"0x935726013d7722036a2b3b546d46f8fd4f43a3dcd0d0043b7cdab6b8b2b4b115": {
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "atm",
"type": "address"
}
],
"name": "AddATM",
"type": "event"
},
"0x468c981a92e5fd7f5019ff02c21de5dc81e64d992f7dd86e7d33dfc2e5fdb470": {
"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": "NoMoney",
"type": "event"
},
"0xf279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568": {
"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"
},
"0xa163a6249e860c278ef4049759a7f7c7e8c141d30fd634fda9b5a6a95d111a30": {
"anonymous": false,
"inputs": [],
"name": "Test",
"type": "event"
},
"0xf58fef8e187ef8dfd7bef096c1ef3e4f3c54f98d95b8ad5659349b07e61204df": {
"anonymous": false,
"inputs": [],
"name": "Destroy",
"type": "event"
}
},
"links": {},
"address": "0x23EcF6BccF70F93e847f32FdcA50407209241469",
"transactionHash": "0x76c55d6676f1af13acd989b8ffe432719d90212c3d9b32af29a0651acbbd8ea8"
},
"11155111": {
"events": {},
"links": {},
"address": "0xc9083c99Bf625cD9eDbB3Ec1C62b5025D45418c6",
"transactionHash": "0x839ed554ca3125c95c5ccb13cf9acec12876cdb68bc0628eef953ca180678f0f"
}
},
"schemaVersion": "3.4.13",
"updatedAt": "2023-04-06T16:11:17.463Z",
"networkType": "ethereum",
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}