{ "contractName": "MetaCoin", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "sendCoin", "outputs": [ { "internalType": "bool", "name": "sufficient", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getBalanceInEth", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "getBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getBalanceInEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendCoin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"sufficient\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/MetaCoin.sol\":\"MetaCoin\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/ConvertLib.sol\":{\"keccak256\":\"0x3ee33e6e8cf55bad996568ba3cd311ac174c8b4fd9fd51cd6aabf6000d5c9643\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de003f417b98896601d7f63ab7cee95f38f237af4d56712019221644954a7509\",\"dweb:/ipfs/QmQb7FVshbroABJCpCsn6hf2gu7nqUdXvFHkWNwjRSVwkm\"]},\"project:/contracts/MetaCoin.sol\":{\"keccak256\":\"0xdbe28f9b62da2b85710c1895194f53c4989bbf85f0597e704e501dfc6d8aa74c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87ef8112316f5c79f56afbd86f71351208ecbe887bb6fa7af42dd405c9fa8439\",\"dweb:/ipfs/QmVv81q3LLoG1HgUKzi2bUpgmWQmTqJea67hzFGiBXXRD5\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b506127106000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610629806100656000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a1114610076578063f8b2cb4f146100a6575b600080fd5b610060600480360381019061005b9190610378565b6100d6565b60405161006d91906103be565b60405180910390f35b610090600480360381019061008b9190610405565b610162565b60405161009d9190610460565b60405180910390f35b6100c060048036038101906100bb9190610378565b6102cd565b6040516100cd91906103be565b60405180910390f35b600073__ConvertLib____________________________6396e4ee3d6100fb846102cd565b60026040518363ffffffff1660e01b815260040161011a9291906104cf565b602060405180830381865af4158015610137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015b919061050d565b9050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101b357600090506102c7565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546102019190610569565b92505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610256919061059d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516102ba91906103be565b60405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103458261031a565b9050919050565b6103558161033a565b811461036057600080fd5b50565b6000813590506103728161034c565b92915050565b60006020828403121561038e5761038d610315565b5b600061039c84828501610363565b91505092915050565b6000819050919050565b6103b8816103a5565b82525050565b60006020820190506103d360008301846103af565b92915050565b6103e2816103a5565b81146103ed57600080fd5b50565b6000813590506103ff816103d9565b92915050565b6000806040838503121561041c5761041b610315565b5b600061042a85828601610363565b925050602061043b858286016103f0565b9150509250929050565b60008115159050919050565b61045a81610445565b82525050565b60006020820190506104756000830184610451565b92915050565b610484816103a5565b82525050565b6000819050919050565b6000819050919050565b60006104b96104b46104af8461048a565b610494565b6103a5565b9050919050565b6104c98161049e565b82525050565b60006040820190506104e4600083018561047b565b6104f160208301846104c0565b9392505050565b600081519050610507816103d9565b92915050565b60006020828403121561052357610522610315565b5b6000610531848285016104f8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610574826103a5565b915061057f836103a5565b9250828210156105925761059161053a565b5b828203905092915050565b60006105a8826103a5565b91506105b3836103a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156105e8576105e761053a565b5b82820190509291505056fea2646970667358221220f7d78b8ecd0e2883ff83d21d5a300205374dac173bc969466a9a8c8432e5c17364736f6c634300080d0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80637bd703e81461004657806390b98a1114610076578063f8b2cb4f146100a6575b600080fd5b610060600480360381019061005b9190610378565b6100d6565b60405161006d91906103be565b60405180910390f35b610090600480360381019061008b9190610405565b610162565b60405161009d9190610460565b60405180910390f35b6100c060048036038101906100bb9190610378565b6102cd565b6040516100cd91906103be565b60405180910390f35b600073__ConvertLib____________________________6396e4ee3d6100fb846102cd565b60026040518363ffffffff1660e01b815260040161011a9291906104cf565b602060405180830381865af4158015610137573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015b919061050d565b9050919050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101b357600090506102c7565b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546102019190610569565b92505081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610256919061059d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516102ba91906103be565b60405180910390a3600190505b92915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103458261031a565b9050919050565b6103558161033a565b811461036057600080fd5b50565b6000813590506103728161034c565b92915050565b60006020828403121561038e5761038d610315565b5b600061039c84828501610363565b91505092915050565b6000819050919050565b6103b8816103a5565b82525050565b60006020820190506103d360008301846103af565b92915050565b6103e2816103a5565b81146103ed57600080fd5b50565b6000813590506103ff816103d9565b92915050565b6000806040838503121561041c5761041b610315565b5b600061042a85828601610363565b925050602061043b858286016103f0565b9150509250929050565b60008115159050919050565b61045a81610445565b82525050565b60006020820190506104756000830184610451565b92915050565b610484816103a5565b82525050565b6000819050919050565b6000819050919050565b60006104b96104b46104af8461048a565b610494565b6103a5565b9050919050565b6104c98161049e565b82525050565b60006040820190506104e4600083018561047b565b6104f160208301846104c0565b9392505050565b600081519050610507816103d9565b92915050565b60006020828403121561052357610522610315565b5b6000610531848285016104f8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610574826103a5565b915061057f836103a5565b9250828210156105925761059161053a565b5b828203905092915050565b60006105a8826103a5565b91506105b3836103a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156105e8576105e761053a565b5b82820190509291505056fea2646970667358221220f7d78b8ecd0e2883ff83d21d5a300205374dac173bc969466a9a8c8432e5c17364736f6c634300080d0033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:4980:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:3", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:3", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:3", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:3" }, "nodeType": "YulFunctionCall", "src": "67:9:3" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:3" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:3", "type": "" } ], "src": "7:75:3" }, { "body": { "nodeType": "YulBlock", "src": "177:28:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:3" }, "nodeType": "YulFunctionCall", "src": "187:12:3" }, "nodeType": "YulExpressionStatement", "src": "187:12:3" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:3" }, { "body": { "nodeType": "YulBlock", "src": "300:28:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:3" }, "nodeType": "YulFunctionCall", "src": "310:12:3" }, "nodeType": "YulExpressionStatement", "src": "310:12:3" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:3" }, { "body": { "nodeType": "YulBlock", "src": "379:81:3", "statements": [ { "nodeType": "YulAssignment", "src": "389:65:3", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "404:5:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "411:42:3", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "400:3:3" }, "nodeType": "YulFunctionCall", "src": "400:54:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:3" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:3", "type": "" } ], "src": "334:126:3" }, { "body": { "nodeType": "YulBlock", "src": "511:51:3", "statements": [ { "nodeType": "YulAssignment", "src": "521:35:3", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "550:5:3" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "532:17:3" }, "nodeType": "YulFunctionCall", "src": "532:24:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "521:7:3" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "493:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "503:7:3", "type": "" } ], "src": "466:96:3" }, { "body": { "nodeType": "YulBlock", "src": "611:79:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "668:16:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "677:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "680:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "670:6:3" }, "nodeType": "YulFunctionCall", "src": "670:12:3" }, "nodeType": "YulExpressionStatement", "src": "670:12:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "634:5:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "659:5:3" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "641:17:3" }, "nodeType": "YulFunctionCall", "src": "641:24:3" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "631:2:3" }, "nodeType": "YulFunctionCall", "src": "631:35:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "624:6:3" }, "nodeType": "YulFunctionCall", "src": "624:43:3" }, "nodeType": "YulIf", "src": "621:63:3" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "604:5:3", "type": "" } ], "src": "568:122:3" }, { "body": { "nodeType": "YulBlock", "src": "748:87:3", "statements": [ { "nodeType": "YulAssignment", "src": "758:29:3", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "780:6:3" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "767:12:3" }, "nodeType": "YulFunctionCall", "src": "767:20:3" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "758:5:3" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "823:5:3" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "796:26:3" }, "nodeType": "YulFunctionCall", "src": "796:33:3" }, "nodeType": "YulExpressionStatement", "src": "796:33:3" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "726:6:3", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "734:3:3", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "742:5:3", "type": "" } ], "src": "696:139:3" }, { "body": { "nodeType": "YulBlock", "src": "907:263:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "953:83:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "955:77:3" }, "nodeType": "YulFunctionCall", "src": "955:79:3" }, "nodeType": "YulExpressionStatement", "src": "955:79:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "928:7:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "937:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "924:3:3" }, "nodeType": "YulFunctionCall", "src": "924:23:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "949:2:3", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "920:3:3" }, "nodeType": "YulFunctionCall", "src": "920:32:3" }, "nodeType": "YulIf", "src": "917:119:3" }, { "nodeType": "YulBlock", "src": "1046:117:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1061:15:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1075:1:3", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1065:6:3", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1090:63:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1125:9:3" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1136:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1121:3:3" }, "nodeType": "YulFunctionCall", "src": "1121:22:3" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1145:7:3" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "1100:20:3" }, "nodeType": "YulFunctionCall", "src": "1100:53:3" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1090:6:3" } ] } ] } ] }, "name": "abi_decode_tuple_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "877:9:3", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "888:7:3", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "900:6:3", "type": "" } ], "src": "841:329:3" }, { "body": { "nodeType": "YulBlock", "src": "1221:32:3", "statements": [ { "nodeType": "YulAssignment", "src": "1231:16:3", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1242:5:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1231:7:3" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1203:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1213:7:3", "type": "" } ], "src": "1176:77:3" }, { "body": { "nodeType": "YulBlock", "src": "1324:53:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1341:3:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1364:5:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1346:17:3" }, "nodeType": "YulFunctionCall", "src": "1346:24:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1334:6:3" }, "nodeType": "YulFunctionCall", "src": "1334:37:3" }, "nodeType": "YulExpressionStatement", "src": "1334:37:3" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1312:5:3", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1319:3:3", "type": "" } ], "src": "1259:118:3" }, { "body": { "nodeType": "YulBlock", "src": "1481:124:3", "statements": [ { "nodeType": "YulAssignment", "src": "1491:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1503:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1514:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1499:3:3" }, "nodeType": "YulFunctionCall", "src": "1499:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "1491:4:3" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1571:6:3" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1584:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1595:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1580:3:3" }, "nodeType": "YulFunctionCall", "src": "1580:17:3" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "1527:43:3" }, "nodeType": "YulFunctionCall", "src": "1527:71:3" }, "nodeType": "YulExpressionStatement", "src": "1527:71:3" } ] }, "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1453:9:3", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "1465:6:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "1476:4:3", "type": "" } ], "src": "1383:222:3" }, { "body": { "nodeType": "YulBlock", "src": "1654:79:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1711:16:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1720:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1723:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1713:6:3" }, "nodeType": "YulFunctionCall", "src": "1713:12:3" }, "nodeType": "YulExpressionStatement", "src": "1713:12:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1677:5:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1702:5:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1684:17:3" }, "nodeType": "YulFunctionCall", "src": "1684:24:3" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "1674:2:3" }, "nodeType": "YulFunctionCall", "src": "1674:35:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "1667:6:3" }, "nodeType": "YulFunctionCall", "src": "1667:43:3" }, "nodeType": "YulIf", "src": "1664:63:3" } ] }, "name": "validator_revert_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1647:5:3", "type": "" } ], "src": "1611:122:3" }, { "body": { "nodeType": "YulBlock", "src": "1791:87:3", "statements": [ { "nodeType": "YulAssignment", "src": "1801:29:3", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1823:6:3" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1810:12:3" }, "nodeType": "YulFunctionCall", "src": "1810:20:3" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1801:5:3" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1866:5:3" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", "src": "1839:26:3" }, "nodeType": "YulFunctionCall", "src": "1839:33:3" }, "nodeType": "YulExpressionStatement", "src": "1839:33:3" } ] }, "name": "abi_decode_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1769:6:3", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "1777:3:3", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "1785:5:3", "type": "" } ], "src": "1739:139:3" }, { "body": { "nodeType": "YulBlock", "src": "1967:391:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "2013:83:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "2015:77:3" }, "nodeType": "YulFunctionCall", "src": "2015:79:3" }, "nodeType": "YulExpressionStatement", "src": "2015:79:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1988:7:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "1997:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "1984:3:3" }, "nodeType": "YulFunctionCall", "src": "1984:23:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2009:2:3", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "1980:3:3" }, "nodeType": "YulFunctionCall", "src": "1980:32:3" }, "nodeType": "YulIf", "src": "1977:119:3" }, { "nodeType": "YulBlock", "src": "2106:117:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2121:15:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "2135:1:3", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "2125:6:3", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2150:63:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2185:9:3" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "2196:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2181:3:3" }, "nodeType": "YulFunctionCall", "src": "2181:22:3" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "2205:7:3" } ], "functionName": { "name": "abi_decode_t_address", "nodeType": "YulIdentifier", "src": "2160:20:3" }, "nodeType": "YulFunctionCall", "src": "2160:53:3" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2150:6:3" } ] } ] }, { "nodeType": "YulBlock", "src": "2233:118:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2248:16:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "2262:2:3", "type": "", "value": "32" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "2252:6:3", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2278:63:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2313:9:3" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "2324:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2309:3:3" }, "nodeType": "YulFunctionCall", "src": "2309:22:3" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "2333:7:3" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", "src": "2288:20:3" }, "nodeType": "YulFunctionCall", "src": "2288:53:3" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "2278:6:3" } ] } ] } ] }, "name": "abi_decode_tuple_t_addresst_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1929:9:3", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "1940:7:3", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "1952:6:3", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "1960:6:3", "type": "" } ], "src": "1884:474:3" }, { "body": { "nodeType": "YulBlock", "src": "2406:48:3", "statements": [ { "nodeType": "YulAssignment", "src": "2416:32:3", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2441:5:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "2434:6:3" }, "nodeType": "YulFunctionCall", "src": "2434:13:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "2427:6:3" }, "nodeType": "YulFunctionCall", "src": "2427:21:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "2416:7:3" } ] } ] }, "name": "cleanup_t_bool", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2388:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "2398:7:3", "type": "" } ], "src": "2364:90:3" }, { "body": { "nodeType": "YulBlock", "src": "2519:50:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2536:3:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2556:5:3" } ], "functionName": { "name": "cleanup_t_bool", "nodeType": "YulIdentifier", "src": "2541:14:3" }, "nodeType": "YulFunctionCall", "src": "2541:21:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2529:6:3" }, "nodeType": "YulFunctionCall", "src": "2529:34:3" }, "nodeType": "YulExpressionStatement", "src": "2529:34:3" } ] }, "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2507:5:3", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2514:3:3", "type": "" } ], "src": "2460:109:3" }, { "body": { "nodeType": "YulBlock", "src": "2667:118:3", "statements": [ { "nodeType": "YulAssignment", "src": "2677:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2689:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2700:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2685:3:3" }, "nodeType": "YulFunctionCall", "src": "2685:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "2677:4:3" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "2751:6:3" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "2764:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2775:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2760:3:3" }, "nodeType": "YulFunctionCall", "src": "2760:17:3" } ], "functionName": { "name": "abi_encode_t_bool_to_t_bool_fromStack", "nodeType": "YulIdentifier", "src": "2713:37:3" }, "nodeType": "YulFunctionCall", "src": "2713:65:3" }, "nodeType": "YulExpressionStatement", "src": "2713:65:3" } ] }, "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "2639:9:3", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "2651:6:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "2662:4:3", "type": "" } ], "src": "2575:210:3" }, { "body": { "nodeType": "YulBlock", "src": "2864:53:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "2881:3:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "2904:5:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "2886:17:3" }, "nodeType": "YulFunctionCall", "src": "2886:24:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2874:6:3" }, "nodeType": "YulFunctionCall", "src": "2874:37:3" }, "nodeType": "YulExpressionStatement", "src": "2874:37:3" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack_library", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2852:5:3", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "2859:3:3", "type": "" } ], "src": "2791:126:3" }, { "body": { "nodeType": "YulBlock", "src": "2976:32:3", "statements": [ { "nodeType": "YulAssignment", "src": "2986:16:3", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "2997:5:3" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "2986:7:3" } ] } ] }, "name": "cleanup_t_rational_2_by_1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "2958:5:3", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "2968:7:3", "type": "" } ], "src": "2923:85:3" }, { "body": { "nodeType": "YulBlock", "src": "3046:28:3", "statements": [ { "nodeType": "YulAssignment", "src": "3056:12:3", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "3063:5:3" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", "src": "3056:3:3" } ] } ] }, "name": "identity", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "3032:5:3", "type": "" } ], "returnVariables": [ { "name": "ret", "nodeType": "YulTypedName", "src": "3042:3:3", "type": "" } ], "src": "3014:60:3" }, { "body": { "nodeType": "YulBlock", "src": "3148:90:3", "statements": [ { "nodeType": "YulAssignment", "src": "3158:74:3", "value": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3224:5:3" } ], "functionName": { "name": "cleanup_t_rational_2_by_1", "nodeType": "YulIdentifier", "src": "3198:25:3" }, "nodeType": "YulFunctionCall", "src": "3198:32:3" } ], "functionName": { "name": "identity", "nodeType": "YulIdentifier", "src": "3189:8:3" }, "nodeType": "YulFunctionCall", "src": "3189:42:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "3171:17:3" }, "nodeType": "YulFunctionCall", "src": "3171:61:3" }, "variableNames": [ { "name": "converted", "nodeType": "YulIdentifier", "src": "3158:9:3" } ] } ] }, "name": "convert_t_rational_2_by_1_to_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "3128:5:3", "type": "" } ], "returnVariables": [ { "name": "converted", "nodeType": "YulTypedName", "src": "3138:9:3", "type": "" } ], "src": "3080:158:3" }, { "body": { "nodeType": "YulBlock", "src": "3325:74:3", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3342:3:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3386:5:3" } ], "functionName": { "name": "convert_t_rational_2_by_1_to_t_uint256", "nodeType": "YulIdentifier", "src": "3347:38:3" }, "nodeType": "YulFunctionCall", "src": "3347:45:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3335:6:3" }, "nodeType": "YulFunctionCall", "src": "3335:58:3" }, "nodeType": "YulExpressionStatement", "src": "3335:58:3" } ] }, "name": "abi_encode_t_rational_2_by_1_to_t_uint256_fromStack_library", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "3313:5:3", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "3320:3:3", "type": "" } ], "src": "3244:155:3" }, { "body": { "nodeType": "YulBlock", "src": "3547:230:3", "statements": [ { "nodeType": "YulAssignment", "src": "3557:26:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3569:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3580:2:3", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3565:3:3" }, "nodeType": "YulFunctionCall", "src": "3565:18:3" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3557:4:3" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3645:6:3" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3658:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3669:1:3", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3654:3:3" }, "nodeType": "YulFunctionCall", "src": "3654:17:3" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack_library", "nodeType": "YulIdentifier", "src": "3593:51:3" }, "nodeType": "YulFunctionCall", "src": "3593:79:3" }, "nodeType": "YulExpressionStatement", "src": "3593:79:3" }, { "expression": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "3742:6:3" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3755:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3766:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3751:3:3" }, "nodeType": "YulFunctionCall", "src": "3751:18:3" } ], "functionName": { "name": "abi_encode_t_rational_2_by_1_to_t_uint256_fromStack_library", "nodeType": "YulIdentifier", "src": "3682:59:3" }, "nodeType": "YulFunctionCall", "src": "3682:88:3" }, "nodeType": "YulExpressionStatement", "src": "3682:88:3" } ] }, "name": "abi_encode_tuple_t_uint256_t_rational_2_by_1__to_t_uint256_t_uint256__fromStack_library_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3511:9:3", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "3523:6:3", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3531:6:3", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3542:4:3", "type": "" } ], "src": "3405:372:3" }, { "body": { "nodeType": "YulBlock", "src": "3846:80:3", "statements": [ { "nodeType": "YulAssignment", "src": "3856:22:3", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "3871:6:3" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "3865:5:3" }, "nodeType": "YulFunctionCall", "src": "3865:13:3" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3856:5:3" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3914:5:3" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", "src": "3887:26:3" }, "nodeType": "YulFunctionCall", "src": "3887:33:3" }, "nodeType": "YulExpressionStatement", "src": "3887:33:3" } ] }, "name": "abi_decode_t_uint256_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "3824:6:3", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "3832:3:3", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "3840:5:3", "type": "" } ], "src": "3783:143:3" }, { "body": { "nodeType": "YulBlock", "src": "4009:274:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "4055:83:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "4057:77:3" }, "nodeType": "YulFunctionCall", "src": "4057:79:3" }, "nodeType": "YulExpressionStatement", "src": "4057:79:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "4030:7:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "4039:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "4026:3:3" }, "nodeType": "YulFunctionCall", "src": "4026:23:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4051:2:3", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "4022:3:3" }, "nodeType": "YulFunctionCall", "src": "4022:32:3" }, "nodeType": "YulIf", "src": "4019:119:3" }, { "nodeType": "YulBlock", "src": "4148:128:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "4163:15:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "4177:1:3", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "4167:6:3", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "4192:74:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "4238:9:3" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "4249:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4234:3:3" }, "nodeType": "YulFunctionCall", "src": "4234:22:3" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "4258:7:3" } ], "functionName": { "name": "abi_decode_t_uint256_fromMemory", "nodeType": "YulIdentifier", "src": "4202:31:3" }, "nodeType": "YulFunctionCall", "src": "4202:64:3" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "4192:6:3" } ] } ] } ] }, "name": "abi_decode_tuple_t_uint256_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3979:9:3", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "3990:7:3", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "4002:6:3", "type": "" } ], "src": "3932:351:3" }, { "body": { "nodeType": "YulBlock", "src": "4317:152:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4334:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4337:77:3", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4327:6:3" }, "nodeType": "YulFunctionCall", "src": "4327:88:3" }, "nodeType": "YulExpressionStatement", "src": "4327:88:3" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4431:1:3", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4434:4:3", "type": "", "value": "0x11" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "4424:6:3" }, "nodeType": "YulFunctionCall", "src": "4424:15:3" }, "nodeType": "YulExpressionStatement", "src": "4424:15:3" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4455:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "4458:4:3", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "4448:6:3" }, "nodeType": "YulFunctionCall", "src": "4448:15:3" }, "nodeType": "YulExpressionStatement", "src": "4448:15:3" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", "src": "4289:180:3" }, { "body": { "nodeType": "YulBlock", "src": "4520:146:3", "statements": [ { "nodeType": "YulAssignment", "src": "4530:25:3", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4553:1:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "4535:17:3" }, "nodeType": "YulFunctionCall", "src": "4535:20:3" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4530:1:3" } ] }, { "nodeType": "YulAssignment", "src": "4564:25:3", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "4587:1:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "4569:17:3" }, "nodeType": "YulFunctionCall", "src": "4569:20:3" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", "src": "4564:1:3" } ] }, { "body": { "nodeType": "YulBlock", "src": "4611:22:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", "src": "4613:16:3" }, "nodeType": "YulFunctionCall", "src": "4613:18:3" }, "nodeType": "YulExpressionStatement", "src": "4613:18:3" } ] }, "condition": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4605:1:3" }, { "name": "y", "nodeType": "YulIdentifier", "src": "4608:1:3" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "4602:2:3" }, "nodeType": "YulFunctionCall", "src": "4602:8:3" }, "nodeType": "YulIf", "src": "4599:34:3" }, { "nodeType": "YulAssignment", "src": "4643:17:3", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4655:1:3" }, { "name": "y", "nodeType": "YulIdentifier", "src": "4658:1:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "4651:3:3" }, "nodeType": "YulFunctionCall", "src": "4651:9:3" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", "src": "4643:4:3" } ] } ] }, "name": "checked_sub_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "x", "nodeType": "YulTypedName", "src": "4506:1:3", "type": "" }, { "name": "y", "nodeType": "YulTypedName", "src": "4509:1:3", "type": "" } ], "returnVariables": [ { "name": "diff", "nodeType": "YulTypedName", "src": "4515:4:3", "type": "" } ], "src": "4475:191:3" }, { "body": { "nodeType": "YulBlock", "src": "4716:261:3", "statements": [ { "nodeType": "YulAssignment", "src": "4726:25:3", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4749:1:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "4731:17:3" }, "nodeType": "YulFunctionCall", "src": "4731:20:3" }, "variableNames": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4726:1:3" } ] }, { "nodeType": "YulAssignment", "src": "4760:25:3", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", "src": "4783:1:3" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "4765:17:3" }, "nodeType": "YulFunctionCall", "src": "4765:20:3" }, "variableNames": [ { "name": "y", "nodeType": "YulIdentifier", "src": "4760:1:3" } ] }, { "body": { "nodeType": "YulBlock", "src": "4923:22:3", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", "src": "4925:16:3" }, "nodeType": "YulFunctionCall", "src": "4925:18:3" }, "nodeType": "YulExpressionStatement", "src": "4925:18:3" } ] }, "condition": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4844:1:3" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "4851:66:3", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" }, { "name": "y", "nodeType": "YulIdentifier", "src": "4919:1:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "4847:3:3" }, "nodeType": "YulFunctionCall", "src": "4847:74:3" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "4841:2:3" }, "nodeType": "YulFunctionCall", "src": "4841:81:3" }, "nodeType": "YulIf", "src": "4838:107:3" }, { "nodeType": "YulAssignment", "src": "4955:16:3", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", "src": "4966:1:3" }, { "name": "y", "nodeType": "YulIdentifier", "src": "4969:1:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "4962:3:3" }, "nodeType": "YulFunctionCall", "src": "4962:9:3" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", "src": "4955:3:3" } ] } ] }, "name": "checked_add_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "x", "nodeType": "YulTypedName", "src": "4703:1:3", "type": "" }, { "name": "y", "nodeType": "YulTypedName", "src": "4706:1:3", "type": "" } ], "returnVariables": [ { "name": "sum", "nodeType": "YulTypedName", "src": "4712:3:3", "type": "" } ], "src": "4672:305:3" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\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_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\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_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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 let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack_library(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function cleanup_t_rational_2_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_2_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_2_by_1(value)))\n }\n\n function abi_encode_t_rational_2_by_1_to_t_uint256_fromStack_library(value, pos) {\n mstore(pos, convert_t_rational_2_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_rational_2_by_1__to_t_uint256_t_uint256__fromStack_library_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack_library(value0, add(headStart, 0))\n\n abi_encode_t_rational_2_by_1_to_t_uint256_fromStack_library(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n}\n", "id": 3, "language": "Yul", "name": "#utility.yul" } ], "sourceMap": "310:667:2:-:0;;;447:49;;;;;;;;;;487:5;465:8;:19;474:9;465:19;;;;;;;;;;;;;;;:27;;;;310:667;;;;;;", "deployedSourceMap": "310:667:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;499:264;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;886:89;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;766:117;825:4;841:10;:18;860:16;871:4;860:10;:16::i;:::-;877:1;841:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;834:45;;766:117;;;:::o;499:264::-;563:15;611:6;588:8;:20;597:10;588:20;;;;;;;;;;;;;;;;:29;584:47;;;626:5;619:12;;;;584:47;659:6;635:8;:20;644:10;635:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;691:6;669:8;:18;678:8;669:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;727:8;706:38;;715:10;706:38;;;737:6;706:38;;;;;;:::i;:::-;;;;;;;;755:4;748:11;;499:264;;;;;:::o;886:89::-;940:4;957:8;:14;966:4;957:14;;;;;;;;;;;;;;;;950:21;;886:89;;;:::o;88:117:3:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:474::-;1952:6;1960;2009:2;1997:9;1988:7;1984:23;1980:32;1977:119;;;2015:79;;:::i;:::-;1977:119;2135:1;2160:53;2205:7;2196:6;2185:9;2181:22;2160:53;:::i;:::-;2150:63;;2106:117;2262:2;2288:53;2333:7;2324:6;2313:9;2309:22;2288:53;:::i;:::-;2278:63;;2233:118;1884:474;;;;;:::o;2364:90::-;2398:7;2441:5;2434:13;2427:21;2416:32;;2364:90;;;:::o;2460:109::-;2541:21;2556:5;2541:21;:::i;:::-;2536:3;2529:34;2460:109;;:::o;2575:210::-;2662:4;2700:2;2689:9;2685:18;2677:26;;2713:65;2775:1;2764:9;2760:17;2751:6;2713:65;:::i;:::-;2575:210;;;;:::o;2791:126::-;2886:24;2904:5;2886:24;:::i;:::-;2881:3;2874:37;2791:126;;:::o;2923:85::-;2968:7;2997:5;2986:16;;2923:85;;;:::o;3014:60::-;3042:3;3063:5;3056:12;;3014:60;;;:::o;3080:158::-;3138:9;3171:61;3189:42;3198:32;3224:5;3198:32;:::i;:::-;3189:42;:::i;:::-;3171:61;:::i;:::-;3158:74;;3080:158;;;:::o;3244:155::-;3347:45;3386:5;3347:45;:::i;:::-;3342:3;3335:58;3244:155;;:::o;3405:372::-;3542:4;3580:2;3569:9;3565:18;3557:26;;3593:79;3669:1;3658:9;3654:17;3645:6;3593:79;:::i;:::-;3682:88;3766:2;3755:9;3751:18;3742:6;3682:88;:::i;:::-;3405:372;;;;;:::o;3783:143::-;3840:5;3871:6;3865:13;3856:22;;3887:33;3914:5;3887:33;:::i;:::-;3783:143;;;;:::o;3932:351::-;4002:6;4051:2;4039:9;4030:7;4026:23;4022:32;4019:119;;;4057:79;;:::i;:::-;4019:119;4177:1;4202:64;4258:7;4249:6;4238:9;4234:22;4202:64;:::i;:::-;4192:74;;4148:128;3932:351;;;;:::o;4289:180::-;4337:77;4334:1;4327:88;4434:4;4431:1;4424:15;4458:4;4455:1;4448:15;4475:191;4515:4;4535:20;4553:1;4535:20;:::i;:::-;4530:25;;4569:20;4587:1;4569:20;:::i;:::-;4564:25;;4608:1;4605;4602:8;4599:34;;;4613:18;;:::i;:::-;4599:34;4658:1;4655;4651:9;4643:17;;4475:191;;;;:::o;4672:305::-;4712:3;4731:20;4749:1;4731:20;:::i;:::-;4726:25;;4765:20;4783:1;4765:20;:::i;:::-;4760:25;;4919:1;4851:66;4847:74;4844:1;4841:81;4838:107;;;4925:18;;:::i;:::-;4838:107;4969:1;4966;4962:9;4955:16;;4672:305;;;;:::o", "source": "// SPDX-License-Identifier: MIT\n// Tells the Solidity compiler to compile only from v0.8.13 to v0.9.0\npragma solidity ^0.8.13;\n\nimport \"./ConvertLib.sol\";\n\n// This is just a simple example of a coin-like contract.\n// It is not ERC20 compatible and cannot be expected to talk to other\n// coin/token contracts.\n\ncontract MetaCoin {\n\tmapping (address => uint) balances;\n\n\tevent Transfer(address indexed _from, address indexed _to, uint256 _value);\n\n\tconstructor() {\n\t\tbalances[tx.origin] = 10000;\n\t}\n\n\tfunction sendCoin(address receiver, uint amount) public returns(bool sufficient) {\n\t\tif (balances[msg.sender] < amount) return false;\n\t\tbalances[msg.sender] -= amount;\n\t\tbalances[receiver] += amount;\n\t\temit Transfer(msg.sender, receiver, amount);\n\t\treturn true;\n\t}\n\n\tfunction getBalanceInEth(address addr) public view returns(uint){\n\t\treturn ConvertLib.convert(getBalance(addr),2);\n\t}\n\n\tfunction getBalance(address addr) public view returns(uint) {\n\t\treturn balances[addr];\n\t}\n}\n", "sourcePath": "/home/matze/Programming/legacy/truffle/contracts/MetaCoin.sol", "ast": { "absolutePath": "project:/contracts/MetaCoin.sol", "exportedSymbols": { "ConvertLib": [ 16 ], "MetaCoin": [ 440 ] }, "id": 441, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 346, "literals": [ "solidity", "^", "0.8", ".13" ], "nodeType": "PragmaDirective", "src": "102:24:2" }, { "absolutePath": "project:/contracts/ConvertLib.sol", "file": "./ConvertLib.sol", "id": 347, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 441, "sourceUnit": 17, "src": "128:26:2", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "canonicalName": "MetaCoin", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 440, "linearizedBaseContracts": [ 440 ], "name": "MetaCoin", "nameLocation": "319:8:2", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 351, "mutability": "mutable", "name": "balances", "nameLocation": "357:8:2", "nodeType": "VariableDeclaration", "scope": 440, "src": "331:34:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 350, "keyType": { "id": 348, "name": "address", "nodeType": "ElementaryTypeName", "src": "340:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "331:25:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 349, "name": "uint", "nodeType": "ElementaryTypeName", "src": "351:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "internal" }, { "anonymous": false, "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "id": 359, "name": "Transfer", "nameLocation": "375:8:2", "nodeType": "EventDefinition", "parameters": { "id": 358, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 353, "indexed": true, "mutability": "mutable", "name": "_from", "nameLocation": "400:5:2", "nodeType": "VariableDeclaration", "scope": 359, "src": "384:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 352, "name": "address", "nodeType": "ElementaryTypeName", "src": "384:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 355, "indexed": true, "mutability": "mutable", "name": "_to", "nameLocation": "423:3:2", "nodeType": "VariableDeclaration", "scope": 359, "src": "407:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 354, "name": "address", "nodeType": "ElementaryTypeName", "src": "407:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 357, "indexed": false, "mutability": "mutable", "name": "_value", "nameLocation": "436:6:2", "nodeType": "VariableDeclaration", "scope": 359, "src": "428:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 356, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "428:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "383:60:2" }, "src": "369:75:2" }, { "body": { "id": 369, "nodeType": "Block", "src": "461:35:2", "statements": [ { "expression": { "id": 367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 362, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 351, "src": "465:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 365, "indexExpression": { "expression": { "id": 363, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967270, "src": "474:2:2", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, "id": 364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "origin", "nodeType": "MemberAccess", "src": "474:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "465:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "3130303030", "id": 366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "487:5:2", "typeDescriptions": { "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" }, "value": "10000" }, "src": "465:27:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 368, "nodeType": "ExpressionStatement", "src": "465:27:2" } ] }, "id": 370, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 360, "nodeType": "ParameterList", "parameters": [], "src": "458:2:2" }, "returnParameters": { "id": 361, "nodeType": "ParameterList", "parameters": [], "src": "461:0:2" }, "scope": 440, "src": "447:49:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 410, "nodeType": "Block", "src": "580:183:2", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 379, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 351, "src": "588:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 382, "indexExpression": { "expression": { "id": 380, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "597:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 381, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "597:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "588:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 383, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 374, "src": "611:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "588:29:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 387, "nodeType": "IfStatement", "src": "584:47:2", "trueBody": { "expression": { "hexValue": "66616c7365", "id": 385, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "626:5:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "functionReturnParameters": 378, "id": 386, "nodeType": "Return", "src": "619:12:2" } }, { "expression": { "id": 393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 388, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 351, "src": "635:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 391, "indexExpression": { "expression": { "id": 389, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "644:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "644:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "635:20:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "id": 392, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 374, "src": "659:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "635:30:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 394, "nodeType": "ExpressionStatement", "src": "635:30:2" }, { "expression": { "id": 399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 395, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 351, "src": "669:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 397, "indexExpression": { "id": 396, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 372, "src": "678:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "669:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "id": 398, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 374, "src": "691:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "669:28:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 400, "nodeType": "ExpressionStatement", "src": "669:28:2" }, { "eventCall": { "arguments": [ { "expression": { "id": 402, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "715:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "715:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 404, "name": "receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 372, "src": "727:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 405, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 374, "src": "737:6:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 401, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, "src": "706:8:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "706:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 407, "nodeType": "EmitStatement", "src": "701:43:2" }, { "expression": { "hexValue": "74727565", "id": 408, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "755:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 378, "id": 409, "nodeType": "Return", "src": "748:11:2" } ] }, "functionSelector": "90b98a11", "id": 411, "implemented": true, "kind": "function", "modifiers": [], "name": "sendCoin", "nameLocation": "508:8:2", "nodeType": "FunctionDefinition", "parameters": { "id": 375, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 372, "mutability": "mutable", "name": "receiver", "nameLocation": "525:8:2", "nodeType": "VariableDeclaration", "scope": 411, "src": "517:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 371, "name": "address", "nodeType": "ElementaryTypeName", "src": "517:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 374, "mutability": "mutable", "name": "amount", "nameLocation": "540:6:2", "nodeType": "VariableDeclaration", "scope": 411, "src": "535:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 373, "name": "uint", "nodeType": "ElementaryTypeName", "src": "535:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "516:31:2" }, "returnParameters": { "id": 378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 377, "mutability": "mutable", "name": "sufficient", "nameLocation": "568:10:2", "nodeType": "VariableDeclaration", "scope": 411, "src": "563:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 376, "name": "bool", "nodeType": "ElementaryTypeName", "src": "563:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "562:17:2" }, "scope": 440, "src": "499:264:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 426, "nodeType": "Block", "src": "830:53:2", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 421, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 413, "src": "871:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 420, "name": "getBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, "src": "860:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, "id": 422, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "860:16:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "32", "id": 423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "877:1:2", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" } ], "expression": { "id": 418, "name": "ConvertLib", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16, "src": "841:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ConvertLib_$16_$", "typeString": "type(library ConvertLib)" } }, "id": 419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "convert", "nodeType": "MemberAccess", "referencedDeclaration": 15, "src": "841:18:2", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, "id": 424, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "841:38:2", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 417, "id": 425, "nodeType": "Return", "src": "834:45:2" } ] }, "functionSelector": "7bd703e8", "id": 427, "implemented": true, "kind": "function", "modifiers": [], "name": "getBalanceInEth", "nameLocation": "775:15:2", "nodeType": "FunctionDefinition", "parameters": { "id": 414, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 413, "mutability": "mutable", "name": "addr", "nameLocation": "799:4:2", "nodeType": "VariableDeclaration", "scope": 427, "src": "791:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 412, "name": "address", "nodeType": "ElementaryTypeName", "src": "791:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "790:14:2" }, "returnParameters": { "id": 417, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 416, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 427, "src": "825:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 415, "name": "uint", "nodeType": "ElementaryTypeName", "src": "825:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "824:6:2" }, "scope": 440, "src": "766:117:2", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 438, "nodeType": "Block", "src": "946:29:2", "statements": [ { "expression": { "baseExpression": { "id": 434, "name": "balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 351, "src": "957:8:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 436, "indexExpression": { "id": 435, "name": "addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 429, "src": "966:4:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "957:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 433, "id": 437, "nodeType": "Return", "src": "950:21:2" } ] }, "functionSelector": "f8b2cb4f", "id": 439, "implemented": true, "kind": "function", "modifiers": [], "name": "getBalance", "nameLocation": "895:10:2", "nodeType": "FunctionDefinition", "parameters": { "id": 430, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 429, "mutability": "mutable", "name": "addr", "nameLocation": "914:4:2", "nodeType": "VariableDeclaration", "scope": 439, "src": "906:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 428, "name": "address", "nodeType": "ElementaryTypeName", "src": "906:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "905:14:2" }, "returnParameters": { "id": 433, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 432, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 439, "src": "940:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 431, "name": "uint", "nodeType": "ElementaryTypeName", "src": "940:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "939:6:2" }, "scope": 440, "src": "886:89:2", "stateMutability": "view", "virtual": false, "visibility": "public" } ], "scope": 441, "src": "310:667:2", "usedErrors": [] } ], "src": "102:876:2" }, "compiler": { "name": "solc", "version": "0.8.13+commit.abaa5c0e.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.4.10", "updatedAt": "2022-11-12T10:54:46.515Z", "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }