{ "id": "a9e3025bfe654037a4ddeea1a6649f66", "_format": "hh-sol-build-info-1", "solcVersion": "0.8.18", "solcLongVersion": "0.8.18+commit.87f61d96", "input": { "language": "Solidity", "sources": { "contracts/ethernaut/delegation.sol": { "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract Delegate {\n\n address public owner;\n\n constructor(address _owner) {\n owner = _owner;\n }\n\n function pwn() public {\n owner = msg.sender;\n }\n}\n\ncontract Delegation {\n\n address public owner;\n Delegate delegate;\n\n constructor(address _delegateAddress) {\n delegate = Delegate(_delegateAddress);\n owner = msg.sender;\n }\n\n fallback() external {\n (bool result,) = address(delegate).delegatecall(msg.data);\n if (result) {\n this;\n }\n }\n}" } }, "settings": { "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "": [ "ast" ], "*": [ "abi", "metadata", "devdoc", "userdoc", "storageLayout", "evm.legacyAssembly", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "evm.gasEstimates", "evm.assembly" ] } } } }, "output": { "contracts": { "contracts/ethernaut/delegation.sol": { "Delegate": { "abi": [ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pwn", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "assembly": " /* \"contracts/ethernaut/delegation.sol\":57:215 contract Delegate {... */\n mstore(0x40, 0x80)\n /* \"contracts/ethernaut/delegation.sol\":105:158 constructor(address _owner) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"contracts/ethernaut/delegation.sol\":147:153 _owner */\n dup1\n /* \"contracts/ethernaut/delegation.sol\":139:144 owner */\n 0x00\n dup1\n /* \"contracts/ethernaut/delegation.sol\":139:153 owner = _owner */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/delegation.sol\":105:158 constructor(address _owner) {... */\n pop\n /* \"contracts/ethernaut/delegation.sol\":57:215 contract Delegate {... */\n jump(tag_6)\n /* \"#utility.yul\":88:205 */\ntag_8:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":334:460 */\ntag_10:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":411:453 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":404:409 */\n dup3\n /* \"#utility.yul\":400:454 */\n and\n /* \"#utility.yul\":389:454 */\n swap1\n pop\n /* \"#utility.yul\":334:460 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":466:562 */\ntag_11:\n /* \"#utility.yul\":503:510 */\n 0x00\n /* \"#utility.yul\":532:556 */\n tag_20\n /* \"#utility.yul\":550:555 */\n dup3\n /* \"#utility.yul\":532:556 */\n tag_10\n jump\t// in\ntag_20:\n /* \"#utility.yul\":521:556 */\n swap1\n pop\n /* \"#utility.yul\":466:562 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":568:690 */\ntag_12:\n /* \"#utility.yul\":641:665 */\n tag_22\n /* \"#utility.yul\":659:664 */\n dup2\n /* \"#utility.yul\":641:665 */\n tag_11\n jump\t// in\ntag_22:\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":631:666 */\n eq\n /* \"#utility.yul\":621:684 */\n tag_23\n jumpi\n /* \"#utility.yul\":680:681 */\n 0x00\n /* \"#utility.yul\":677:678 */\n dup1\n /* \"#utility.yul\":670:682 */\n revert\n /* \"#utility.yul\":621:684 */\ntag_23:\n /* \"#utility.yul\":568:690 */\n pop\n jump\t// out\n /* \"#utility.yul\":696:839 */\ntag_13:\n /* \"#utility.yul\":753:758 */\n 0x00\n /* \"#utility.yul\":784:790 */\n dup2\n /* \"#utility.yul\":778:791 */\n mload\n /* \"#utility.yul\":769:791 */\n swap1\n pop\n /* \"#utility.yul\":800:833 */\n tag_25\n /* \"#utility.yul\":827:832 */\n dup2\n /* \"#utility.yul\":800:833 */\n tag_12\n jump\t// in\ntag_25:\n /* \"#utility.yul\":696:839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":845:1196 */\ntag_3:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":964:966 */\n 0x20\n /* \"#utility.yul\":952:961 */\n dup3\n /* \"#utility.yul\":943:950 */\n dup5\n /* \"#utility.yul\":939:962 */\n sub\n /* \"#utility.yul\":935:967 */\n slt\n /* \"#utility.yul\":932:1051 */\n iszero\n tag_27\n jumpi\n /* \"#utility.yul\":970:1049 */\n tag_28\n tag_8\n jump\t// in\ntag_28:\n /* \"#utility.yul\":932:1051 */\ntag_27:\n /* \"#utility.yul\":1090:1091 */\n 0x00\n /* \"#utility.yul\":1115:1179 */\n tag_29\n /* \"#utility.yul\":1171:1178 */\n dup5\n /* \"#utility.yul\":1162:1168 */\n dup3\n /* \"#utility.yul\":1151:1160 */\n dup6\n /* \"#utility.yul\":1147:1169 */\n add\n /* \"#utility.yul\":1115:1179 */\n tag_13\n jump\t// in\ntag_29:\n /* \"#utility.yul\":1105:1179 */\n swap2\n pop\n /* \"#utility.yul\":1061:1189 */\n pop\n /* \"#utility.yul\":845:1196 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/ethernaut/delegation.sol\":57:215 contract Delegate {... */\ntag_6:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/ethernaut/delegation.sol\":57:215 contract Delegate {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x8da5cb5b\n eq\n tag_3\n jumpi\n dup1\n 0xdd365b8b\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/ethernaut/delegation.sol\":80:100 address public owner */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/ethernaut/delegation.sol\":162:213 function pwn() public {... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"contracts/ethernaut/delegation.sol\":80:100 address public owner */\n tag_6:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"contracts/ethernaut/delegation.sol\":162:213 function pwn() public {... */\n tag_10:\n /* \"contracts/ethernaut/delegation.sol\":198:208 msg.sender */\n caller\n /* \"contracts/ethernaut/delegation.sol\":190:195 owner */\n 0x00\n dup1\n /* \"contracts/ethernaut/delegation.sol\":190:208 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/delegation.sol\":162:213 function pwn() public {... */\n jump\t// out\n /* \"#utility.yul\":7:133 */\n tag_12:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":84:126 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":77:82 */\n dup3\n /* \"#utility.yul\":73:127 */\n and\n /* \"#utility.yul\":62:127 */\n swap1\n pop\n /* \"#utility.yul\":7:133 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":139:235 */\n tag_13:\n /* \"#utility.yul\":176:183 */\n 0x00\n /* \"#utility.yul\":205:229 */\n tag_18\n /* \"#utility.yul\":223:228 */\n dup3\n /* \"#utility.yul\":205:229 */\n tag_12\n jump\t// in\n tag_18:\n /* \"#utility.yul\":194:229 */\n swap1\n pop\n /* \"#utility.yul\":139:235 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":241:359 */\n tag_14:\n /* \"#utility.yul\":328:352 */\n tag_20\n /* \"#utility.yul\":346:351 */\n dup2\n /* \"#utility.yul\":328:352 */\n tag_13\n jump\t// in\n tag_20:\n /* \"#utility.yul\":323:326 */\n dup3\n /* \"#utility.yul\":316:353 */\n mstore\n /* \"#utility.yul\":241:359 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":365:587 */\n tag_8:\n /* \"#utility.yul\":458:462 */\n 0x00\n /* \"#utility.yul\":496:498 */\n 0x20\n /* \"#utility.yul\":485:494 */\n dup3\n /* \"#utility.yul\":481:499 */\n add\n /* \"#utility.yul\":473:499 */\n swap1\n pop\n /* \"#utility.yul\":509:580 */\n tag_22\n /* \"#utility.yul\":577:578 */\n 0x00\n /* \"#utility.yul\":566:575 */\n dup4\n /* \"#utility.yul\":562:579 */\n add\n /* \"#utility.yul\":553:559 */\n dup5\n /* \"#utility.yul\":509:580 */\n tag_14\n jump\t// in\n tag_22:\n /* \"#utility.yul\":365:587 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033\n}\n", "bytecode": { "functionDebugData": { "@_13": { "entryPoint": null, "id": 13, "parameterSlots": 1, "returnSlots": 0 }, "abi_decode_t_address_fromMemory": { "entryPoint": 198, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address_fromMemory": { "entryPoint": 219, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 157, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 125, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 120, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "validator_revert_t_address": { "entryPoint": 175, "id": null, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1199:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:1", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:1", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:1" }, "nodeType": "YulFunctionCall", "src": "67:9:1" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:1" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:1", "type": "" } ], "src": "7:75:1" }, { "body": { "nodeType": "YulBlock", "src": "177:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:1" }, "nodeType": "YulFunctionCall", "src": "187:12:1" }, "nodeType": "YulExpressionStatement", "src": "187:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:1" }, { "body": { "nodeType": "YulBlock", "src": "300:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:1" }, "nodeType": "YulFunctionCall", "src": "310:12:1" }, "nodeType": "YulExpressionStatement", "src": "310:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:1" }, { "body": { "nodeType": "YulBlock", "src": "379:81:1", "statements": [ { "nodeType": "YulAssignment", "src": "389:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "404:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "411:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "400:3:1" }, "nodeType": "YulFunctionCall", "src": "400:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:1" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:1", "type": "" } ], "src": "334:126:1" }, { "body": { "nodeType": "YulBlock", "src": "511:51:1", "statements": [ { "nodeType": "YulAssignment", "src": "521:35:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "550:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "532:17:1" }, "nodeType": "YulFunctionCall", "src": "532:24:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "521:7:1" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "493:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "503:7:1", "type": "" } ], "src": "466:96:1" }, { "body": { "nodeType": "YulBlock", "src": "611:79:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "668:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "677:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "680:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "670:6:1" }, "nodeType": "YulFunctionCall", "src": "670:12:1" }, "nodeType": "YulExpressionStatement", "src": "670:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "634:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "659:5:1" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "641:17:1" }, "nodeType": "YulFunctionCall", "src": "641:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "631:2:1" }, "nodeType": "YulFunctionCall", "src": "631:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "624:6:1" }, "nodeType": "YulFunctionCall", "src": "624:43:1" }, "nodeType": "YulIf", "src": "621:63:1" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "604:5:1", "type": "" } ], "src": "568:122:1" }, { "body": { "nodeType": "YulBlock", "src": "759:80:1", "statements": [ { "nodeType": "YulAssignment", "src": "769:22:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "784:6:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "778:5:1" }, "nodeType": "YulFunctionCall", "src": "778:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "769:5:1" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "827:5:1" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "800:26:1" }, "nodeType": "YulFunctionCall", "src": "800:33:1" }, "nodeType": "YulExpressionStatement", "src": "800:33:1" } ] }, "name": "abi_decode_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "737:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "745:3:1", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "753:5:1", "type": "" } ], "src": "696:143:1" }, { "body": { "nodeType": "YulBlock", "src": "922:274:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "968:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "970:77:1" }, "nodeType": "YulFunctionCall", "src": "970:79:1" }, "nodeType": "YulExpressionStatement", "src": "970:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "943:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "952:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "939:3:1" }, "nodeType": "YulFunctionCall", "src": "939:23:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "964:2:1", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "935:3:1" }, "nodeType": "YulFunctionCall", "src": "935:32:1" }, "nodeType": "YulIf", "src": "932:119:1" }, { "nodeType": "YulBlock", "src": "1061:128:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1076:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1090:1:1", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1080:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1105:74:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1151:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1162:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1147:3:1" }, "nodeType": "YulFunctionCall", "src": "1147:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1171:7:1" } ], "functionName": { "name": "abi_decode_t_address_fromMemory", "nodeType": "YulIdentifier", "src": "1115:31:1" }, "nodeType": "YulFunctionCall", "src": "1115:64:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1105:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "892:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "903:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "915:6:1", "type": "" } ], "src": "845:351:1" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, "object": "608060405234801561001057600080fd5b50604051610272380380610272833981810160405281019061003291906100db565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610108565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100a88261007d565b9050919050565b6100b88161009d565b81146100c357600080fd5b50565b6000815190506100d5816100af565b92915050565b6000602082840312156100f1576100f0610078565b5b60006100ff848285016100c6565b91505092915050565b61015b806101176000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063dd365b8b14610059575b600080fd5b610043610063565b604051610050919061010a565b60405180910390f35b610061610087565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100f4826100c9565b9050919050565b610104816100e9565b82525050565b600060208201905061011f60008301846100fb565b9291505056fea2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x272 CODESIZE SUB DUP1 PUSH2 0x272 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xDB JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x108 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8 DUP3 PUSH2 0x7D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB8 DUP2 PUSH2 0x9D JUMP JUMPDEST DUP2 EQ PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xD5 DUP2 PUSH2 0xAF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xF1 JUMPI PUSH2 0xF0 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xFF DUP5 DUP3 DUP6 ADD PUSH2 0xC6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x15B DUP1 PUSH2 0x117 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xDD365B8B EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x87 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF4 DUP3 PUSH2 0xC9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104 DUP2 PUSH2 0xE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA MLOAD 0xC2 PUSH14 0x528BDBD008B20B00226372830D75 0xD8 PUSH26 0x7BB26C4910C67F89D59CC84964736F6C63430008120033000000 ", "sourceMap": "57:158:0:-:0;;;105:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;147:6;139:5;;:14;;;;;;;;;;;;;;;;;;105:53;57:158;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;57:158:0:-;;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@owner_3": { "entryPoint": 99, "id": 3, "parameterSlots": 0, "returnSlots": 0 }, "@pwn_22": { "entryPoint": 135, "id": 22, "parameterSlots": 0, "returnSlots": 0 }, "abi_encode_t_address_to_t_address_fromStack": { "entryPoint": 251, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { "entryPoint": 266, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 233, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 201, "id": null, "parameterSlots": 1, "returnSlots": 1 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:590:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "52:81:1", "statements": [ { "nodeType": "YulAssignment", "src": "62:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "77:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "84:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "73:3:1" }, "nodeType": "YulFunctionCall", "src": "73:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "62:7:1" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "34:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "44:7:1", "type": "" } ], "src": "7:126:1" }, { "body": { "nodeType": "YulBlock", "src": "184:51:1", "statements": [ { "nodeType": "YulAssignment", "src": "194:35:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "223:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "205:17:1" }, "nodeType": "YulFunctionCall", "src": "205:24:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "194:7:1" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "166:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "176:7:1", "type": "" } ], "src": "139:96:1" }, { "body": { "nodeType": "YulBlock", "src": "306:53:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "323:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "346:5:1" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "328:17:1" }, "nodeType": "YulFunctionCall", "src": "328:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "316:6:1" }, "nodeType": "YulFunctionCall", "src": "316:37:1" }, "nodeType": "YulExpressionStatement", "src": "316:37:1" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "294:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "301:3:1", "type": "" } ], "src": "241:118:1" }, { "body": { "nodeType": "YulBlock", "src": "463:124:1", "statements": [ { "nodeType": "YulAssignment", "src": "473:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "485:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "496:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "481:3:1" }, "nodeType": "YulFunctionCall", "src": "481:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "473:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "553:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "566:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "577:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "562:3:1" }, "nodeType": "YulFunctionCall", "src": "562:17:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "509:43:1" }, "nodeType": "YulFunctionCall", "src": "509:71:1" }, "nodeType": "YulExpressionStatement", "src": "509:71:1" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "435:9:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "447:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "458:4:1", "type": "" } ], "src": "365:222:1" } ] }, "contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80638da5cb5b1461003b578063dd365b8b14610059575b600080fd5b610043610063565b604051610050919061010a565b60405180910390f35b610061610087565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100f4826100c9565b9050919050565b610104816100e9565b82525050565b600060208201905061011f60008301846100fb565b9291505056fea2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xDD365B8B EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x87 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF4 DUP3 PUSH2 0xC9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x104 DUP2 PUSH2 0xE9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xFB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCA MLOAD 0xC2 PUSH14 0x528BDBD008B20B00226372830D75 0xD8 PUSH26 0x7BB26C4910C67F89D59CC84964736F6C63430008120033000000 ", "sourceMap": "57:158:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;80:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;162:51;;;:::i;:::-;;80:20;;;;;;;;;;;;:::o;162:51::-;198:10;190:5;;:18;;;;;;;;;;;;;;;;;;162:51::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o" }, "gasEstimates": { "creation": { "codeDepositCost": "69400", "executionCost": "infinite", "totalCost": "infinite" }, "external": { "owner()": "2489", "pwn()": "24410" } }, "legacyAssembly": { ".code": [ { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 57, "end": 215, "name": "MSTORE", "source": 0 }, { "begin": 105, "end": 158, "name": "CALLVALUE", "source": 0 }, { "begin": 105, "end": 158, "name": "DUP1", "source": 0 }, { "begin": 105, "end": 158, "name": "ISZERO", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 105, "end": 158, "name": "JUMPI", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 105, "end": 158, "name": "DUP1", "source": 0 }, { "begin": 105, "end": 158, "name": "REVERT", "source": 0 }, { "begin": 105, "end": 158, "name": "tag", "source": 0, "value": "1" }, { "begin": 105, "end": 158, "name": "JUMPDEST", "source": 0 }, { "begin": 105, "end": 158, "name": "POP", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 105, "end": 158, "name": "MLOAD", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSHSIZE", "source": 0 }, { "begin": 105, "end": 158, "name": "CODESIZE", "source": 0 }, { "begin": 105, "end": 158, "name": "SUB", "source": 0 }, { "begin": 105, "end": 158, "name": "DUP1", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSHSIZE", "source": 0 }, { "begin": 105, "end": 158, "name": "DUP4", "source": 0 }, { "begin": 105, "end": 158, "name": "CODECOPY", "source": 0 }, { "begin": 105, "end": 158, "name": "DUP2", "source": 0 }, { "begin": 105, "end": 158, "name": "DUP2", "source": 0 }, { "begin": 105, "end": 158, "name": "ADD", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 105, "end": 158, "name": "MSTORE", "source": 0 }, { "begin": 105, "end": 158, "name": "DUP2", "source": 0 }, { "begin": 105, "end": 158, "name": "ADD", "source": 0 }, { "begin": 105, "end": 158, "name": "SWAP1", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 105, "end": 158, "name": "SWAP2", "source": 0 }, { "begin": 105, "end": 158, "name": "SWAP1", "source": 0 }, { "begin": 105, "end": 158, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 105, "end": 158, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 105, "end": 158, "name": "tag", "source": 0, "value": "2" }, { "begin": 105, "end": 158, "name": "JUMPDEST", "source": 0 }, { "begin": 147, "end": 153, "name": "DUP1", "source": 0 }, { "begin": 139, "end": 144, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 139, "end": 144, "name": "DUP1", "source": 0 }, { "begin": 139, "end": 153, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 139, "end": 153, "name": "EXP", "source": 0 }, { "begin": 139, "end": 153, "name": "DUP2", "source": 0 }, { "begin": 139, "end": 153, "name": "SLOAD", "source": 0 }, { "begin": 139, "end": 153, "name": "DUP2", "source": 0 }, { "begin": 139, "end": 153, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 139, "end": 153, "name": "MUL", "source": 0 }, { "begin": 139, "end": 153, "name": "NOT", "source": 0 }, { "begin": 139, "end": 153, "name": "AND", "source": 0 }, { "begin": 139, "end": 153, "name": "SWAP1", "source": 0 }, { "begin": 139, "end": 153, "name": "DUP4", "source": 0 }, { "begin": 139, "end": 153, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 139, "end": 153, "name": "AND", "source": 0 }, { "begin": 139, "end": 153, "name": "MUL", "source": 0 }, { "begin": 139, "end": 153, "name": "OR", "source": 0 }, { "begin": 139, "end": 153, "name": "SWAP1", "source": 0 }, { "begin": 139, "end": 153, "name": "SSTORE", "source": 0 }, { "begin": 139, "end": 153, "name": "POP", "source": 0 }, { "begin": 105, "end": 158, "name": "POP", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH [tag]", "source": 0, "value": "6" }, { "begin": 57, "end": 215, "name": "JUMP", "source": 0 }, { "begin": 88, "end": 205, "name": "tag", "source": 1, "value": "8" }, { "begin": 88, "end": 205, "name": "JUMPDEST", "source": 1 }, { "begin": 197, "end": 198, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 194, "end": 195, "name": "DUP1", "source": 1 }, { "begin": 187, "end": 199, "name": "REVERT", "source": 1 }, { "begin": 334, "end": 460, "name": "tag", "source": 1, "value": "10" }, { "begin": 334, "end": 460, "name": "JUMPDEST", "source": 1 }, { "begin": 371, "end": 378, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 411, "end": 453, "name": "PUSH", "source": 1, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 404, "end": 409, "name": "DUP3", "source": 1 }, { "begin": 400, "end": 454, "name": "AND", "source": 1 }, { "begin": 389, "end": 454, "name": "SWAP1", "source": 1 }, { "begin": 389, "end": 454, "name": "POP", "source": 1 }, { "begin": 334, "end": 460, "name": "SWAP2", "source": 1 }, { "begin": 334, "end": 460, "name": "SWAP1", "source": 1 }, { "begin": 334, "end": 460, "name": "POP", "source": 1 }, { "begin": 334, "end": 460, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 466, "end": 562, "name": "tag", "source": 1, "value": "11" }, { "begin": 466, "end": 562, "name": "JUMPDEST", "source": 1 }, { "begin": 503, "end": 510, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 532, "end": 556, "name": "PUSH [tag]", "source": 1, "value": "20" }, { "begin": 550, "end": 555, "name": "DUP3", "source": 1 }, { "begin": 532, "end": 556, "name": "PUSH [tag]", "source": 1, "value": "10" }, { "begin": 532, "end": 556, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 532, "end": 556, "name": "tag", "source": 1, "value": "20" }, { "begin": 532, "end": 556, "name": "JUMPDEST", "source": 1 }, { "begin": 521, "end": 556, "name": "SWAP1", "source": 1 }, { "begin": 521, "end": 556, "name": "POP", "source": 1 }, { "begin": 466, "end": 562, "name": "SWAP2", "source": 1 }, { "begin": 466, "end": 562, "name": "SWAP1", "source": 1 }, { "begin": 466, "end": 562, "name": "POP", "source": 1 }, { "begin": 466, "end": 562, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 568, "end": 690, "name": "tag", "source": 1, "value": "12" }, { "begin": 568, "end": 690, "name": "JUMPDEST", "source": 1 }, { "begin": 641, "end": 665, "name": "PUSH [tag]", "source": 1, "value": "22" }, { "begin": 659, "end": 664, "name": "DUP2", "source": 1 }, { "begin": 641, "end": 665, "name": "PUSH [tag]", "source": 1, "value": "11" }, { "begin": 641, "end": 665, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 641, "end": 665, "name": "tag", "source": 1, "value": "22" }, { "begin": 641, "end": 665, "name": "JUMPDEST", "source": 1 }, { "begin": 634, "end": 639, "name": "DUP2", "source": 1 }, { "begin": 631, "end": 666, "name": "EQ", "source": 1 }, { "begin": 621, "end": 684, "name": "PUSH [tag]", "source": 1, "value": "23" }, { "begin": 621, "end": 684, "name": "JUMPI", "source": 1 }, { "begin": 680, "end": 681, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 677, "end": 678, "name": "DUP1", "source": 1 }, { "begin": 670, "end": 682, "name": "REVERT", "source": 1 }, { "begin": 621, "end": 684, "name": "tag", "source": 1, "value": "23" }, { "begin": 621, "end": 684, "name": "JUMPDEST", "source": 1 }, { "begin": 568, "end": 690, "name": "POP", "source": 1 }, { "begin": 568, "end": 690, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 696, "end": 839, "name": "tag", "source": 1, "value": "13" }, { "begin": 696, "end": 839, "name": "JUMPDEST", "source": 1 }, { "begin": 753, "end": 758, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 784, "end": 790, "name": "DUP2", "source": 1 }, { "begin": 778, "end": 791, "name": "MLOAD", "source": 1 }, { "begin": 769, "end": 791, "name": "SWAP1", "source": 1 }, { "begin": 769, "end": 791, "name": "POP", "source": 1 }, { "begin": 800, "end": 833, "name": "PUSH [tag]", "source": 1, "value": "25" }, { "begin": 827, "end": 832, "name": "DUP2", "source": 1 }, { "begin": 800, "end": 833, "name": "PUSH [tag]", "source": 1, "value": "12" }, { "begin": 800, "end": 833, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 800, "end": 833, "name": "tag", "source": 1, "value": "25" }, { "begin": 800, "end": 833, "name": "JUMPDEST", "source": 1 }, { "begin": 696, "end": 839, "name": "SWAP3", "source": 1 }, { "begin": 696, "end": 839, "name": "SWAP2", "source": 1 }, { "begin": 696, "end": 839, "name": "POP", "source": 1 }, { "begin": 696, "end": 839, "name": "POP", "source": 1 }, { "begin": 696, "end": 839, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 845, "end": 1196, "name": "tag", "source": 1, "value": "3" }, { "begin": 845, "end": 1196, "name": "JUMPDEST", "source": 1 }, { "begin": 915, "end": 921, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 964, "end": 966, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 952, "end": 961, "name": "DUP3", "source": 1 }, { "begin": 943, "end": 950, "name": "DUP5", "source": 1 }, { "begin": 939, "end": 962, "name": "SUB", "source": 1 }, { "begin": 935, "end": 967, "name": "SLT", "source": 1 }, { "begin": 932, "end": 1051, "name": "ISZERO", "source": 1 }, { "begin": 932, "end": 1051, "name": "PUSH [tag]", "source": 1, "value": "27" }, { "begin": 932, "end": 1051, "name": "JUMPI", "source": 1 }, { "begin": 970, "end": 1049, "name": "PUSH [tag]", "source": 1, "value": "28" }, { "begin": 970, "end": 1049, "name": "PUSH [tag]", "source": 1, "value": "8" }, { "begin": 970, "end": 1049, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 970, "end": 1049, "name": "tag", "source": 1, "value": "28" }, { "begin": 970, "end": 1049, "name": "JUMPDEST", "source": 1 }, { "begin": 932, "end": 1051, "name": "tag", "source": 1, "value": "27" }, { "begin": 932, "end": 1051, "name": "JUMPDEST", "source": 1 }, { "begin": 1090, "end": 1091, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1115, "end": 1179, "name": "PUSH [tag]", "source": 1, "value": "29" }, { "begin": 1171, "end": 1178, "name": "DUP5", "source": 1 }, { "begin": 1162, "end": 1168, "name": "DUP3", "source": 1 }, { "begin": 1151, "end": 1160, "name": "DUP6", "source": 1 }, { "begin": 1147, "end": 1169, "name": "ADD", "source": 1 }, { "begin": 1115, "end": 1179, "name": "PUSH [tag]", "source": 1, "value": "13" }, { "begin": 1115, "end": 1179, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1115, "end": 1179, "name": "tag", "source": 1, "value": "29" }, { "begin": 1115, "end": 1179, "name": "JUMPDEST", "source": 1 }, { "begin": 1105, "end": 1179, "name": "SWAP2", "source": 1 }, { "begin": 1105, "end": 1179, "name": "POP", "source": 1 }, { "begin": 1061, "end": 1189, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "name": "SWAP3", "source": 1 }, { "begin": 845, "end": 1196, "name": "SWAP2", "source": 1 }, { "begin": 845, "end": 1196, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 57, "end": 215, "name": "tag", "source": 0, "value": "6" }, { "begin": 57, "end": 215, "name": "JUMPDEST", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH #[$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 57, "end": 215, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH [$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 215, "name": "CODECOPY", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 215, "name": "RETURN", "source": 0 } ], ".data": { "0": { ".auxdata": "a2646970667358221220ca51c26d528bdbd008b20b00226372830d75d8797bb26c4910c67f89d59cc84964736f6c63430008120033", ".code": [ { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 57, "end": 215, "name": "MSTORE", "source": 0 }, { "begin": 57, "end": 215, "name": "CALLVALUE", "source": 0 }, { "begin": 57, "end": 215, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 215, "name": "ISZERO", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 57, "end": 215, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 215, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 215, "name": "REVERT", "source": 0 }, { "begin": 57, "end": 215, "name": "tag", "source": 0, "value": "1" }, { "begin": 57, "end": 215, "name": "JUMPDEST", "source": 0 }, { "begin": 57, "end": 215, "name": "POP", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "4" }, { "begin": 57, "end": 215, "name": "CALLDATASIZE", "source": 0 }, { "begin": 57, "end": 215, "name": "LT", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 57, "end": 215, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 215, "name": "CALLDATALOAD", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "E0" }, { "begin": 57, "end": 215, "name": "SHR", "source": 0 }, { "begin": 57, "end": 215, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "8DA5CB5B" }, { "begin": 57, "end": 215, "name": "EQ", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 57, "end": 215, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 215, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "DD365B8B" }, { "begin": 57, "end": 215, "name": "EQ", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH [tag]", "source": 0, "value": "4" }, { "begin": 57, "end": 215, "name": "JUMPI", "source": 0 }, { "begin": 57, "end": 215, "name": "tag", "source": 0, "value": "2" }, { "begin": 57, "end": 215, "name": "JUMPDEST", "source": 0 }, { "begin": 57, "end": 215, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 57, "end": 215, "name": "DUP1", "source": 0 }, { "begin": 57, "end": 215, "name": "REVERT", "source": 0 }, { "begin": 80, "end": 100, "name": "tag", "source": 0, "value": "3" }, { "begin": 80, "end": 100, "name": "JUMPDEST", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH [tag]", "source": 0, "value": "5" }, { "begin": 80, "end": 100, "name": "PUSH [tag]", "source": 0, "value": "6" }, { "begin": 80, "end": 100, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 80, "end": 100, "name": "tag", "source": 0, "value": "5" }, { "begin": 80, "end": 100, "name": "JUMPDEST", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 80, "end": 100, "name": "MLOAD", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH [tag]", "source": 0, "value": "7" }, { "begin": 80, "end": 100, "name": "SWAP2", "source": 0 }, { "begin": 80, "end": 100, "name": "SWAP1", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH [tag]", "source": 0, "value": "8" }, { "begin": 80, "end": 100, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 80, "end": 100, "name": "tag", "source": 0, "value": "7" }, { "begin": 80, "end": 100, "name": "JUMPDEST", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 80, "end": 100, "name": "MLOAD", "source": 0 }, { "begin": 80, "end": 100, "name": "DUP1", "source": 0 }, { "begin": 80, "end": 100, "name": "SWAP2", "source": 0 }, { "begin": 80, "end": 100, "name": "SUB", "source": 0 }, { "begin": 80, "end": 100, "name": "SWAP1", "source": 0 }, { "begin": 80, "end": 100, "name": "RETURN", "source": 0 }, { "begin": 162, "end": 213, "name": "tag", "source": 0, "value": "4" }, { "begin": 162, "end": 213, "name": "JUMPDEST", "source": 0 }, { "begin": 162, "end": 213, "name": "PUSH [tag]", "source": 0, "value": "9" }, { "begin": 162, "end": 213, "name": "PUSH [tag]", "source": 0, "value": "10" }, { "begin": 162, "end": 213, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 162, "end": 213, "name": "tag", "source": 0, "value": "9" }, { "begin": 162, "end": 213, "name": "JUMPDEST", "source": 0 }, { "begin": 162, "end": 213, "name": "STOP", "source": 0 }, { "begin": 80, "end": 100, "name": "tag", "source": 0, "value": "6" }, { "begin": 80, "end": 100, "name": "JUMPDEST", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 80, "end": 100, "name": "DUP1", "source": 0 }, { "begin": 80, "end": 100, "name": "SLOAD", "source": 0 }, { "begin": 80, "end": 100, "name": "SWAP1", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 80, "end": 100, "name": "EXP", "source": 0 }, { "begin": 80, "end": 100, "name": "SWAP1", "source": 0 }, { "begin": 80, "end": 100, "name": "DIV", "source": 0 }, { "begin": 80, "end": 100, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 80, "end": 100, "name": "AND", "source": 0 }, { "begin": 80, "end": 100, "name": "DUP2", "source": 0 }, { "begin": 80, "end": 100, "jumpType": "[out]", "name": "JUMP", "source": 0 }, { "begin": 162, "end": 213, "name": "tag", "source": 0, "value": "10" }, { "begin": 162, "end": 213, "name": "JUMPDEST", "source": 0 }, { "begin": 198, "end": 208, "name": "CALLER", "source": 0 }, { "begin": 190, "end": 195, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 190, "end": 195, "name": "DUP1", "source": 0 }, { "begin": 190, "end": 208, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 190, "end": 208, "name": "EXP", "source": 0 }, { "begin": 190, "end": 208, "name": "DUP2", "source": 0 }, { "begin": 190, "end": 208, "name": "SLOAD", "source": 0 }, { "begin": 190, "end": 208, "name": "DUP2", "source": 0 }, { "begin": 190, "end": 208, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 190, "end": 208, "name": "MUL", "source": 0 }, { "begin": 190, "end": 208, "name": "NOT", "source": 0 }, { "begin": 190, "end": 208, "name": "AND", "source": 0 }, { "begin": 190, "end": 208, "name": "SWAP1", "source": 0 }, { "begin": 190, "end": 208, "name": "DUP4", "source": 0 }, { "begin": 190, "end": 208, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 190, "end": 208, "name": "AND", "source": 0 }, { "begin": 190, "end": 208, "name": "MUL", "source": 0 }, { "begin": 190, "end": 208, "name": "OR", "source": 0 }, { "begin": 190, "end": 208, "name": "SWAP1", "source": 0 }, { "begin": 190, "end": 208, "name": "SSTORE", "source": 0 }, { "begin": 190, "end": 208, "name": "POP", "source": 0 }, { "begin": 162, "end": 213, "jumpType": "[out]", "name": "JUMP", "source": 0 }, { "begin": 7, "end": 133, "name": "tag", "source": 1, "value": "12" }, { "begin": 7, "end": 133, "name": "JUMPDEST", "source": 1 }, { "begin": 44, "end": 51, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 84, "end": 126, "name": "PUSH", "source": 1, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 77, "end": 82, "name": "DUP3", "source": 1 }, { "begin": 73, "end": 127, "name": "AND", "source": 1 }, { "begin": 62, "end": 127, "name": "SWAP1", "source": 1 }, { "begin": 62, "end": 127, "name": "POP", "source": 1 }, { "begin": 7, "end": 133, "name": "SWAP2", "source": 1 }, { "begin": 7, "end": 133, "name": "SWAP1", "source": 1 }, { "begin": 7, "end": 133, "name": "POP", "source": 1 }, { "begin": 7, "end": 133, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 139, "end": 235, "name": "tag", "source": 1, "value": "13" }, { "begin": 139, "end": 235, "name": "JUMPDEST", "source": 1 }, { "begin": 176, "end": 183, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 205, "end": 229, "name": "PUSH [tag]", "source": 1, "value": "18" }, { "begin": 223, "end": 228, "name": "DUP3", "source": 1 }, { "begin": 205, "end": 229, "name": "PUSH [tag]", "source": 1, "value": "12" }, { "begin": 205, "end": 229, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 205, "end": 229, "name": "tag", "source": 1, "value": "18" }, { "begin": 205, "end": 229, "name": "JUMPDEST", "source": 1 }, { "begin": 194, "end": 229, "name": "SWAP1", "source": 1 }, { "begin": 194, "end": 229, "name": "POP", "source": 1 }, { "begin": 139, "end": 235, "name": "SWAP2", "source": 1 }, { "begin": 139, "end": 235, "name": "SWAP1", "source": 1 }, { "begin": 139, "end": 235, "name": "POP", "source": 1 }, { "begin": 139, "end": 235, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 241, "end": 359, "name": "tag", "source": 1, "value": "14" }, { "begin": 241, "end": 359, "name": "JUMPDEST", "source": 1 }, { "begin": 328, "end": 352, "name": "PUSH [tag]", "source": 1, "value": "20" }, { "begin": 346, "end": 351, "name": "DUP2", "source": 1 }, { "begin": 328, "end": 352, "name": "PUSH [tag]", "source": 1, "value": "13" }, { "begin": 328, "end": 352, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 328, "end": 352, "name": "tag", "source": 1, "value": "20" }, { "begin": 328, "end": 352, "name": "JUMPDEST", "source": 1 }, { "begin": 323, "end": 326, "name": "DUP3", "source": 1 }, { "begin": 316, "end": 353, "name": "MSTORE", "source": 1 }, { "begin": 241, "end": 359, "name": "POP", "source": 1 }, { "begin": 241, "end": 359, "name": "POP", "source": 1 }, { "begin": 241, "end": 359, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 365, "end": 587, "name": "tag", "source": 1, "value": "8" }, { "begin": 365, "end": 587, "name": "JUMPDEST", "source": 1 }, { "begin": 458, "end": 462, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 496, "end": 498, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 485, "end": 494, "name": "DUP3", "source": 1 }, { "begin": 481, "end": 499, "name": "ADD", "source": 1 }, { "begin": 473, "end": 499, "name": "SWAP1", "source": 1 }, { "begin": 473, "end": 499, "name": "POP", "source": 1 }, { "begin": 509, "end": 580, "name": "PUSH [tag]", "source": 1, "value": "22" }, { "begin": 577, "end": 578, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 566, "end": 575, "name": "DUP4", "source": 1 }, { "begin": 562, "end": 579, "name": "ADD", "source": 1 }, { "begin": 553, "end": 559, "name": "DUP5", "source": 1 }, { "begin": 509, "end": 580, "name": "PUSH [tag]", "source": 1, "value": "14" }, { "begin": 509, "end": 580, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 509, "end": 580, "name": "tag", "source": 1, "value": "22" }, { "begin": 509, "end": 580, "name": "JUMPDEST", "source": 1 }, { "begin": 365, "end": 587, "name": "SWAP3", "source": 1 }, { "begin": 365, "end": 587, "name": "SWAP2", "source": 1 }, { "begin": 365, "end": 587, "name": "POP", "source": 1 }, { "begin": 365, "end": 587, "name": "POP", "source": 1 }, { "begin": 365, "end": 587, "jumpType": "[out]", "name": "JUMP", "source": 1 } ] } }, "sourceList": [ "contracts/ethernaut/delegation.sol", "#utility.yul" ] }, "methodIdentifiers": { "owner()": "8da5cb5b", "pwn()": "dd365b8b" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pwn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ethernaut/delegation.sol\":\"Delegate\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ethernaut/delegation.sol\":{\"keccak256\":\"0x43f9c25f4cad214f0730f685e35d8450575ed2037acad4a3e391e466063a7918\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462e1967968e5f4e911875790251114f7b9fffdf89ace399cad458003f158eeb\",\"dweb:/ipfs/QmS2VqAtWjRhX5kyvLDSvffK9NmqyRgedH4SxHPAntV41N\"]}},\"version\":1}", "storageLayout": { "storage": [ { "astId": 3, "contract": "contracts/ethernaut/delegation.sol:Delegate", "label": "owner", "offset": 0, "slot": "0", "type": "t_address" } ], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" } } }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "Delegation": { "abi": [ { "inputs": [ { "internalType": "address", "name": "_delegateAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "stateMutability": "nonpayable", "type": "fallback" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "assembly": " /* \"contracts/ethernaut/delegation.sol\":217:528 contract Delegation {... */\n mstore(0x40, 0x80)\n /* \"contracts/ethernaut/delegation.sol\":288:398 constructor(address _delegateAddress) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"contracts/ethernaut/delegation.sol\":352:368 _delegateAddress */\n dup1\n /* \"contracts/ethernaut/delegation.sol\":332:340 delegate */\n 0x01\n 0x00\n /* \"contracts/ethernaut/delegation.sol\":332:369 delegate = Delegate(_delegateAddress) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/delegation.sol\":383:393 msg.sender */\n caller\n /* \"contracts/ethernaut/delegation.sol\":375:380 owner */\n 0x00\n dup1\n /* \"contracts/ethernaut/delegation.sol\":375:393 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ethernaut/delegation.sol\":288:398 constructor(address _delegateAddress) {... */\n pop\n /* \"contracts/ethernaut/delegation.sol\":217:528 contract Delegation {... */\n jump(tag_6)\n /* \"#utility.yul\":88:205 */\ntag_8:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n dup1\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":334:460 */\ntag_10:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":411:453 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":404:409 */\n dup3\n /* \"#utility.yul\":400:454 */\n and\n /* \"#utility.yul\":389:454 */\n swap1\n pop\n /* \"#utility.yul\":334:460 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":466:562 */\ntag_11:\n /* \"#utility.yul\":503:510 */\n 0x00\n /* \"#utility.yul\":532:556 */\n tag_20\n /* \"#utility.yul\":550:555 */\n dup3\n /* \"#utility.yul\":532:556 */\n tag_10\n jump\t// in\ntag_20:\n /* \"#utility.yul\":521:556 */\n swap1\n pop\n /* \"#utility.yul\":466:562 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":568:690 */\ntag_12:\n /* \"#utility.yul\":641:665 */\n tag_22\n /* \"#utility.yul\":659:664 */\n dup2\n /* \"#utility.yul\":641:665 */\n tag_11\n jump\t// in\ntag_22:\n /* \"#utility.yul\":634:639 */\n dup2\n /* \"#utility.yul\":631:666 */\n eq\n /* \"#utility.yul\":621:684 */\n tag_23\n jumpi\n /* \"#utility.yul\":680:681 */\n 0x00\n /* \"#utility.yul\":677:678 */\n dup1\n /* \"#utility.yul\":670:682 */\n revert\n /* \"#utility.yul\":621:684 */\ntag_23:\n /* \"#utility.yul\":568:690 */\n pop\n jump\t// out\n /* \"#utility.yul\":696:839 */\ntag_13:\n /* \"#utility.yul\":753:758 */\n 0x00\n /* \"#utility.yul\":784:790 */\n dup2\n /* \"#utility.yul\":778:791 */\n mload\n /* \"#utility.yul\":769:791 */\n swap1\n pop\n /* \"#utility.yul\":800:833 */\n tag_25\n /* \"#utility.yul\":827:832 */\n dup2\n /* \"#utility.yul\":800:833 */\n tag_12\n jump\t// in\ntag_25:\n /* \"#utility.yul\":696:839 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":845:1196 */\ntag_3:\n /* \"#utility.yul\":915:921 */\n 0x00\n /* \"#utility.yul\":964:966 */\n 0x20\n /* \"#utility.yul\":952:961 */\n dup3\n /* \"#utility.yul\":943:950 */\n dup5\n /* \"#utility.yul\":939:962 */\n sub\n /* \"#utility.yul\":935:967 */\n slt\n /* \"#utility.yul\":932:1051 */\n iszero\n tag_27\n jumpi\n /* \"#utility.yul\":970:1049 */\n tag_28\n tag_8\n jump\t// in\ntag_28:\n /* \"#utility.yul\":932:1051 */\ntag_27:\n /* \"#utility.yul\":1090:1091 */\n 0x00\n /* \"#utility.yul\":1115:1179 */\n tag_29\n /* \"#utility.yul\":1171:1178 */\n dup5\n /* \"#utility.yul\":1162:1168 */\n dup3\n /* \"#utility.yul\":1151:1160 */\n dup6\n /* \"#utility.yul\":1147:1169 */\n add\n /* \"#utility.yul\":1115:1179 */\n tag_13\n jump\t// in\ntag_29:\n /* \"#utility.yul\":1105:1179 */\n swap2\n pop\n /* \"#utility.yul\":1061:1189 */\n pop\n /* \"#utility.yul\":845:1196 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/ethernaut/delegation.sol\":217:528 contract Delegation {... */\ntag_6:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/ethernaut/delegation.sol\":217:528 contract Delegation {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n jump(tag_3)\n tag_2:\n tag_3:\n /* \"contracts/ethernaut/delegation.sol\":429:440 bool result */\n 0x00\n /* \"contracts/ethernaut/delegation.sol\":453:461 delegate */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/ethernaut/delegation.sol\":445:475 address(delegate).delegatecall */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/ethernaut/delegation.sol\":476:484 msg.data */\n 0x00\n calldatasize\n /* \"contracts/ethernaut/delegation.sol\":445:485 address(delegate).delegatecall(msg.data) */\n mload(0x40)\n tag_7\n swap3\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n gas\n delegatecall\n swap2\n pop\n pop\n returndatasize\n dup1\n 0x00\n dup2\n eq\n tag_11\n jumpi\n mload(0x40)\n swap2\n pop\n and(add(returndatasize, 0x3f), not(0x1f))\n dup3\n add\n 0x40\n mstore\n returndatasize\n dup3\n mstore\n returndatasize\n 0x00\n 0x20\n dup5\n add\n returndatacopy\n jump(tag_10)\n tag_11:\n 0x60\n swap2\n pop\n tag_10:\n stop\n /* \"contracts/ethernaut/delegation.sol\":242:262 address public owner */\n tag_4:\n tag_13\n tag_14\n jump\t// in\n tag_13:\n mload(0x40)\n tag_15\n swap2\n swap1\n tag_16\n jump\t// in\n tag_15:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_14:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"#utility.yul\":7:154 */\n tag_17:\n /* \"#utility.yul\":108:119 */\n 0x00\n /* \"#utility.yul\":145:148 */\n dup2\n /* \"#utility.yul\":130:148 */\n swap1\n pop\n /* \"#utility.yul\":7:154 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":160:306 */\n tag_18:\n /* \"#utility.yul\":257:263 */\n dup3\n /* \"#utility.yul\":252:255 */\n dup2\n /* \"#utility.yul\":247:250 */\n dup4\n /* \"#utility.yul\":234:264 */\n calldatacopy\n /* \"#utility.yul\":298:299 */\n 0x00\n /* \"#utility.yul\":289:295 */\n dup4\n /* \"#utility.yul\":284:287 */\n dup4\n /* \"#utility.yul\":280:296 */\n add\n /* \"#utility.yul\":273:300 */\n mstore\n /* \"#utility.yul\":160:306 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":334:661 */\n tag_19:\n /* \"#utility.yul\":448:451 */\n 0x00\n /* \"#utility.yul\":469:557 */\n tag_27\n /* \"#utility.yul\":550:556 */\n dup4\n /* \"#utility.yul\":545:548 */\n dup6\n /* \"#utility.yul\":469:557 */\n tag_17\n jump\t// in\n tag_27:\n /* \"#utility.yul\":462:557 */\n swap4\n pop\n /* \"#utility.yul\":567:623 */\n tag_28\n /* \"#utility.yul\":616:622 */\n dup4\n /* \"#utility.yul\":611:614 */\n dup6\n /* \"#utility.yul\":604:609 */\n dup5\n /* \"#utility.yul\":567:623 */\n tag_18\n jump\t// in\n tag_28:\n /* \"#utility.yul\":648:654 */\n dup3\n /* \"#utility.yul\":643:646 */\n dup5\n /* \"#utility.yul\":639:655 */\n add\n /* \"#utility.yul\":632:655 */\n swap1\n pop\n /* \"#utility.yul\":334:661 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":667:958 */\n tag_8:\n /* \"#utility.yul\":807:810 */\n 0x00\n /* \"#utility.yul\":829:932 */\n tag_30\n /* \"#utility.yul\":928:931 */\n dup3\n /* \"#utility.yul\":919:925 */\n dup5\n /* \"#utility.yul\":911:917 */\n dup7\n /* \"#utility.yul\":829:932 */\n tag_19\n jump\t// in\n tag_30:\n /* \"#utility.yul\":822:932 */\n swap2\n pop\n /* \"#utility.yul\":949:952 */\n dup2\n /* \"#utility.yul\":942:952 */\n swap1\n pop\n /* \"#utility.yul\":667:958 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":964:1090 */\n tag_20:\n /* \"#utility.yul\":1001:1008 */\n 0x00\n /* \"#utility.yul\":1041:1083 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":1034:1039 */\n dup3\n /* \"#utility.yul\":1030:1084 */\n and\n /* \"#utility.yul\":1019:1084 */\n swap1\n pop\n /* \"#utility.yul\":964:1090 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1096:1192 */\n tag_21:\n /* \"#utility.yul\":1133:1140 */\n 0x00\n /* \"#utility.yul\":1162:1186 */\n tag_33\n /* \"#utility.yul\":1180:1185 */\n dup3\n /* \"#utility.yul\":1162:1186 */\n tag_20\n jump\t// in\n tag_33:\n /* \"#utility.yul\":1151:1186 */\n swap1\n pop\n /* \"#utility.yul\":1096:1192 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1198:1316 */\n tag_22:\n /* \"#utility.yul\":1285:1309 */\n tag_35\n /* \"#utility.yul\":1303:1308 */\n dup2\n /* \"#utility.yul\":1285:1309 */\n tag_21\n jump\t// in\n tag_35:\n /* \"#utility.yul\":1280:1283 */\n dup3\n /* \"#utility.yul\":1273:1310 */\n mstore\n /* \"#utility.yul\":1198:1316 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1322:1544 */\n tag_16:\n /* \"#utility.yul\":1415:1419 */\n 0x00\n /* \"#utility.yul\":1453:1455 */\n 0x20\n /* \"#utility.yul\":1442:1451 */\n dup3\n /* \"#utility.yul\":1438:1456 */\n add\n /* \"#utility.yul\":1430:1456 */\n swap1\n pop\n /* \"#utility.yul\":1466:1537 */\n tag_37\n /* \"#utility.yul\":1534:1535 */\n 0x00\n /* \"#utility.yul\":1523:1532 */\n dup4\n /* \"#utility.yul\":1519:1536 */\n add\n /* \"#utility.yul\":1510:1516 */\n dup5\n /* \"#utility.yul\":1466:1537 */\n tag_22\n jump\t// in\n tag_37:\n /* \"#utility.yul\":1322:1544 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033\n}\n", "bytecode": { "functionDebugData": { "@_45": { "entryPoint": null, "id": 45, "parameterSlots": 1, "returnSlots": 0 }, "abi_decode_t_address_fromMemory": { "entryPoint": 263, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_address_fromMemory": { "entryPoint": 284, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 222, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 190, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": null, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 185, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "validator_revert_t_address": { "entryPoint": 240, "id": null, "parameterSlots": 1, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1199:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "47:35:1", "statements": [ { "nodeType": "YulAssignment", "src": "57:19:1", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "73:2:1", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "67:5:1" }, "nodeType": "YulFunctionCall", "src": "67:9:1" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "57:6:1" } ] } ] }, "name": "allocate_unbounded", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "40:6:1", "type": "" } ], "src": "7:75:1" }, { "body": { "nodeType": "YulBlock", "src": "177:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "194:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "197:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "187:6:1" }, "nodeType": "YulFunctionCall", "src": "187:12:1" }, "nodeType": "YulExpressionStatement", "src": "187:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulFunctionDefinition", "src": "88:117:1" }, { "body": { "nodeType": "YulBlock", "src": "300:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "317:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "320:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "310:6:1" }, "nodeType": "YulFunctionCall", "src": "310:12:1" }, "nodeType": "YulExpressionStatement", "src": "310:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulFunctionDefinition", "src": "211:117:1" }, { "body": { "nodeType": "YulBlock", "src": "379:81:1", "statements": [ { "nodeType": "YulAssignment", "src": "389:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "404:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "411:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "400:3:1" }, "nodeType": "YulFunctionCall", "src": "400:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "389:7:1" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "361:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "371:7:1", "type": "" } ], "src": "334:126:1" }, { "body": { "nodeType": "YulBlock", "src": "511:51:1", "statements": [ { "nodeType": "YulAssignment", "src": "521:35:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "550:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "532:17:1" }, "nodeType": "YulFunctionCall", "src": "532:24:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "521:7:1" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "493:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "503:7:1", "type": "" } ], "src": "466:96:1" }, { "body": { "nodeType": "YulBlock", "src": "611:79:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "668:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "677:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "680:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "670:6:1" }, "nodeType": "YulFunctionCall", "src": "670:12:1" }, "nodeType": "YulExpressionStatement", "src": "670:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "634:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "659:5:1" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "641:17:1" }, "nodeType": "YulFunctionCall", "src": "641:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "631:2:1" }, "nodeType": "YulFunctionCall", "src": "631:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "624:6:1" }, "nodeType": "YulFunctionCall", "src": "624:43:1" }, "nodeType": "YulIf", "src": "621:63:1" } ] }, "name": "validator_revert_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "604:5:1", "type": "" } ], "src": "568:122:1" }, { "body": { "nodeType": "YulBlock", "src": "759:80:1", "statements": [ { "nodeType": "YulAssignment", "src": "769:22:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "784:6:1" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "778:5:1" }, "nodeType": "YulFunctionCall", "src": "778:13:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "769:5:1" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "827:5:1" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "800:26:1" }, "nodeType": "YulFunctionCall", "src": "800:33:1" }, "nodeType": "YulExpressionStatement", "src": "800:33:1" } ] }, "name": "abi_decode_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "737:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "745:3:1", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "753:5:1", "type": "" } ], "src": "696:143:1" }, { "body": { "nodeType": "YulBlock", "src": "922:274:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "968:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "970:77:1" }, "nodeType": "YulFunctionCall", "src": "970:79:1" }, "nodeType": "YulExpressionStatement", "src": "970:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "943:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "952:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "939:3:1" }, "nodeType": "YulFunctionCall", "src": "939:23:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "964:2:1", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "935:3:1" }, "nodeType": "YulFunctionCall", "src": "935:32:1" }, "nodeType": "YulIf", "src": "932:119:1" }, { "nodeType": "YulBlock", "src": "1061:128:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "1076:15:1", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "1090:1:1", "type": "", "value": "0" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1080:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1105:74:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1151:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "1162:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1147:3:1" }, "nodeType": "YulFunctionCall", "src": "1147:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "1171:7:1" } ], "functionName": { "name": "abi_decode_t_address_fromMemory", "nodeType": "YulIdentifier", "src": "1115:31:1" }, "nodeType": "YulFunctionCall", "src": "1115:64:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1105:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "892:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "903:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "915:6:1", "type": "" } ], "src": "845:351:1" } ] }, "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, "object": "608060405234801561001057600080fd5b506040516103423803806103428339818101604052810190610032919061011c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610149565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100e9826100be565b9050919050565b6100f9816100de565b811461010457600080fd5b50565b600081519050610116816100f0565b92915050565b600060208284031215610132576101316100b9565b5b600061014084828501610107565b91505092915050565b6101ea806101586000396000f3fe608060405234801561001057600080fd5b506004361061002f5760003560e01c80638da5cb5b146100be57610030565b5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660003660405161007c92919061013f565b600060405180830381855af49150503d80600081146100b7576040519150601f19603f3d011682016040523d82523d6000602084013e6100bc565b606091505b005b6100c66100dc565b6040516100d39190610199565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081905092915050565b82818337600083830152505050565b60006101268385610100565b935061013383858461010b565b82840190509392505050565b600061014c82848661011a565b91508190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061018382610158565b9050919050565b61019381610178565b82525050565b60006020820190506101ae600083018461018a565b9291505056fea2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x342 CODESIZE SUB DUP1 PUSH2 0x342 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x11C JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x149 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 DUP3 PUSH2 0xBE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0xDE JUMP JUMPDEST DUP2 EQ PUSH2 0x104 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x116 DUP2 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x132 JUMPI PUSH2 0x131 PUSH2 0xB9 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x140 DUP5 DUP3 DUP6 ADD PUSH2 0x107 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1EA DUP1 PUSH2 0x158 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xBE JUMPI PUSH2 0x30 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x7C SWAP3 SWAP2 SWAP1 PUSH2 0x13F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST STOP JUMPDEST PUSH2 0xC6 PUSH2 0xDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD3 SWAP2 SWAP1 PUSH2 0x199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126 DUP4 DUP6 PUSH2 0x100 JUMP JUMPDEST SWAP4 POP PUSH2 0x133 DUP4 DUP6 DUP5 PUSH2 0x10B JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14C DUP3 DUP5 DUP7 PUSH2 0x11A JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x183 DUP3 PUSH2 0x158 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x193 DUP2 PUSH2 0x178 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0x4E 0xC6 0x28 SGT 0xAF 0xE9 0xCB DUP7 PUSH11 0x7DACE124472C2540E63363 GASPRICE LOG2 0xD8 PUSH23 0x42DB322053AE564736F6C634300081200330000000000 ", "sourceMap": "217:311:0:-:0;;;288:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;352:16;332:8;;:37;;;;;;;;;;;;;;;;;;383:10;375:5;;:18;;;;;;;;;;;;;;;;;;288:110;217:311;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;217:311:0:-;;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@_65": { "entryPoint": null, "id": 65, "parameterSlots": 0, "returnSlots": 0 }, "@owner_25": { "entryPoint": 220, "id": 25, "parameterSlots": 0, "returnSlots": 0 }, "abi_encode_t_address_to_t_address_fromStack": { "entryPoint": 394, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { "entryPoint": 282, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { "entryPoint": 319, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { "entryPoint": 409, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { "entryPoint": 256, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 376, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 344, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_calldata_to_memory_with_cleanup": { "entryPoint": 267, "id": null, "parameterSlots": 3, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1547:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "120:34:1", "statements": [ { "nodeType": "YulAssignment", "src": "130:18:1", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "145:3:1" }, "variableNames": [ { "name": "updated_pos", "nodeType": "YulIdentifier", "src": "130:11:1" } ] } ] }, "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "92:3:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "97:6:1", "type": "" } ], "returnVariables": [ { "name": "updated_pos", "nodeType": "YulTypedName", "src": "108:11:1", "type": "" } ], "src": "7:147:1" }, { "body": { "nodeType": "YulBlock", "src": "224:82:1", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "247:3:1" }, { "name": "src", "nodeType": "YulIdentifier", "src": "252:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "257:6:1" } ], "functionName": { "name": "calldatacopy", "nodeType": "YulIdentifier", "src": "234:12:1" }, "nodeType": "YulFunctionCall", "src": "234:30:1" }, "nodeType": "YulExpressionStatement", "src": "234:30:1" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "284:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "289:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "280:3:1" }, "nodeType": "YulFunctionCall", "src": "280:16:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "298:1:1", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "273:6:1" }, "nodeType": "YulFunctionCall", "src": "273:27:1" }, "nodeType": "YulExpressionStatement", "src": "273:27:1" } ] }, "name": "copy_calldata_to_memory_with_cleanup", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "206:3:1", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "211:3:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "216:6:1", "type": "" } ], "src": "160:146:1" }, { "body": { "nodeType": "YulBlock", "src": "452:209:1", "statements": [ { "nodeType": "YulAssignment", "src": "462:95:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "545:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "550:6:1" } ], "functionName": { "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "469:75:1" }, "nodeType": "YulFunctionCall", "src": "469:88:1" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "462:3:1" } ] }, { "expression": { "arguments": [ { "name": "start", "nodeType": "YulIdentifier", "src": "604:5:1" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "611:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "616:6:1" } ], "functionName": { "name": "copy_calldata_to_memory_with_cleanup", "nodeType": "YulIdentifier", "src": "567:36:1" }, "nodeType": "YulFunctionCall", "src": "567:56:1" }, "nodeType": "YulExpressionStatement", "src": "567:56:1" }, { "nodeType": "YulAssignment", "src": "632:23:1", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "643:3:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "648:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "639:3:1" }, "nodeType": "YulFunctionCall", "src": "639:16:1" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "632:3:1" } ] } ] }, "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "start", "nodeType": "YulTypedName", "src": "425:5:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "432:6:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "440:3:1", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "448:3:1", "type": "" } ], "src": "334:327:1" }, { "body": { "nodeType": "YulBlock", "src": "811:147:1", "statements": [ { "nodeType": "YulAssignment", "src": "822:110:1", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "911:6:1" }, { "name": "value1", "nodeType": "YulIdentifier", "src": "919:6:1" }, { "name": "pos", "nodeType": "YulIdentifier", "src": "928:3:1" } ], "functionName": { "name": "abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", "nodeType": "YulIdentifier", "src": "829:81:1" }, "nodeType": "YulFunctionCall", "src": "829:103:1" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "822:3:1" } ] }, { "nodeType": "YulAssignment", "src": "942:10:1", "value": { "name": "pos", "nodeType": "YulIdentifier", "src": "949:3:1" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", "src": "942:3:1" } ] } ] }, "name": "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", "nodeType": "YulTypedName", "src": "782:3:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "788:6:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "796:6:1", "type": "" } ], "returnVariables": [ { "name": "end", "nodeType": "YulTypedName", "src": "807:3:1", "type": "" } ], "src": "667:291:1" }, { "body": { "nodeType": "YulBlock", "src": "1009:81:1", "statements": [ { "nodeType": "YulAssignment", "src": "1019:65:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1034:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1041:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "1030:3:1" }, "nodeType": "YulFunctionCall", "src": "1030:54:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1019:7:1" } ] } ] }, "name": "cleanup_t_uint160", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "991:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1001:7:1", "type": "" } ], "src": "964:126:1" }, { "body": { "nodeType": "YulBlock", "src": "1141:51:1", "statements": [ { "nodeType": "YulAssignment", "src": "1151:35:1", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1180:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nodeType": "YulIdentifier", "src": "1162:17:1" }, "nodeType": "YulFunctionCall", "src": "1162:24:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1151:7:1" } ] } ] }, "name": "cleanup_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1123:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1133:7:1", "type": "" } ], "src": "1096:96:1" }, { "body": { "nodeType": "YulBlock", "src": "1263:53:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "1280:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1303:5:1" } ], "functionName": { "name": "cleanup_t_address", "nodeType": "YulIdentifier", "src": "1285:17:1" }, "nodeType": "YulFunctionCall", "src": "1285:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1273:6:1" }, "nodeType": "YulFunctionCall", "src": "1273:37:1" }, "nodeType": "YulExpressionStatement", "src": "1273:37:1" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1251:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "1258:3:1", "type": "" } ], "src": "1198:118:1" }, { "body": { "nodeType": "YulBlock", "src": "1420:124:1", "statements": [ { "nodeType": "YulAssignment", "src": "1430:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1442:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1453:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1438:3:1" }, "nodeType": "YulFunctionCall", "src": "1438:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "1430:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "1510:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "1523:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1534:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1519:3:1" }, "nodeType": "YulFunctionCall", "src": "1519:17:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nodeType": "YulIdentifier", "src": "1466:43:1" }, "nodeType": "YulFunctionCall", "src": "1466:71:1" }, "nodeType": "YulExpressionStatement", "src": "1466:71:1" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "1392:9:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "1404:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "1415:4:1", "type": "" } ], "src": "1322:222:1" } ] }, "contents": "{\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n // bytes -> bytes\n function abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory_with_cleanup(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_bytes_calldata_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b506004361061002f5760003560e01c80638da5cb5b146100be57610030565b5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660003660405161007c92919061013f565b600060405180830381855af49150503d80600081146100b7576040519150601f19603f3d011682016040523d82523d6000602084013e6100bc565b606091505b005b6100c66100dc565b6040516100d39190610199565b60405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081905092915050565b82818337600083830152505050565b60006101268385610100565b935061013383858461010b565b82840190509392505050565b600061014c82848661011a565b91508190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061018382610158565b9050919050565b61019381610178565b82525050565b60006020820190506101ae600083018461018a565b9291505056fea2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xBE JUMPI PUSH2 0x30 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 CALLDATASIZE PUSH1 0x40 MLOAD PUSH2 0x7C SWAP3 SWAP2 SWAP1 PUSH2 0x13F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 GAS DELEGATECALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0xB7 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0xBC JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST STOP JUMPDEST PUSH2 0xC6 PUSH2 0xDC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD3 SWAP2 SWAP1 PUSH2 0x199 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x126 DUP4 DUP6 PUSH2 0x100 JUMP JUMPDEST SWAP4 POP PUSH2 0x133 DUP4 DUP6 DUP5 PUSH2 0x10B JUMP JUMPDEST DUP3 DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14C DUP3 DUP5 DUP7 PUSH2 0x11A JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x183 DUP3 PUSH2 0x158 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x193 DUP2 PUSH2 0x178 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA6 0x4E 0xC6 0x28 SGT 0xAF 0xE9 0xCB DUP7 PUSH11 0x7DACE124472C2540E63363 GASPRICE LOG2 0xD8 PUSH23 0x42DB322053AE564736F6C634300081200330000000000 ", "sourceMap": "217:311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:11;453:8;;;;;;;;;;;445:30;;476:8;;445:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;242:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::o;7:147:1:-;108:11;145:3;130:18;;7:147;;;;:::o;160:146::-;257:6;252:3;247;234:30;298:1;289:6;284:3;280:16;273:27;160:146;;;:::o;334:327::-;448:3;469:88;550:6;545:3;469:88;:::i;:::-;462:95;;567:56;616:6;611:3;604:5;567:56;:::i;:::-;648:6;643:3;639:16;632:23;;334:327;;;;;:::o;667:291::-;807:3;829:103;928:3;919:6;911;829:103;:::i;:::-;822:110;;949:3;942:10;;667:291;;;;;:::o;964:126::-;1001:7;1041:42;1034:5;1030:54;1019:65;;964:126;;;:::o;1096:96::-;1133:7;1162:24;1180:5;1162:24;:::i;:::-;1151:35;;1096:96;;;:::o;1198:118::-;1285:24;1303:5;1285:24;:::i;:::-;1280:3;1273:37;1198:118;;:::o;1322:222::-;1415:4;1453:2;1442:9;1438:18;1430:26;;1466:71;1534:1;1523:9;1519:17;1510:6;1466:71;:::i;:::-;1322:222;;;;:::o" }, "gasEstimates": { "creation": { "codeDepositCost": "98000", "executionCost": "infinite", "totalCost": "infinite" }, "external": { "": "infinite", "owner()": "2489" } }, "legacyAssembly": { ".code": [ { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 217, "end": 528, "name": "MSTORE", "source": 0 }, { "begin": 288, "end": 398, "name": "CALLVALUE", "source": 0 }, { "begin": 288, "end": 398, "name": "DUP1", "source": 0 }, { "begin": 288, "end": 398, "name": "ISZERO", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 288, "end": 398, "name": "JUMPI", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 288, "end": 398, "name": "DUP1", "source": 0 }, { "begin": 288, "end": 398, "name": "REVERT", "source": 0 }, { "begin": 288, "end": 398, "name": "tag", "source": 0, "value": "1" }, { "begin": 288, "end": 398, "name": "JUMPDEST", "source": 0 }, { "begin": 288, "end": 398, "name": "POP", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 288, "end": 398, "name": "MLOAD", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSHSIZE", "source": 0 }, { "begin": 288, "end": 398, "name": "CODESIZE", "source": 0 }, { "begin": 288, "end": 398, "name": "SUB", "source": 0 }, { "begin": 288, "end": 398, "name": "DUP1", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSHSIZE", "source": 0 }, { "begin": 288, "end": 398, "name": "DUP4", "source": 0 }, { "begin": 288, "end": 398, "name": "CODECOPY", "source": 0 }, { "begin": 288, "end": 398, "name": "DUP2", "source": 0 }, { "begin": 288, "end": 398, "name": "DUP2", "source": 0 }, { "begin": 288, "end": 398, "name": "ADD", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 288, "end": 398, "name": "MSTORE", "source": 0 }, { "begin": 288, "end": 398, "name": "DUP2", "source": 0 }, { "begin": 288, "end": 398, "name": "ADD", "source": 0 }, { "begin": 288, "end": 398, "name": "SWAP1", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 288, "end": 398, "name": "SWAP2", "source": 0 }, { "begin": 288, "end": 398, "name": "SWAP1", "source": 0 }, { "begin": 288, "end": 398, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 288, "end": 398, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 288, "end": 398, "name": "tag", "source": 0, "value": "2" }, { "begin": 288, "end": 398, "name": "JUMPDEST", "source": 0 }, { "begin": 352, "end": 368, "name": "DUP1", "source": 0 }, { "begin": 332, "end": 340, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 332, "end": 340, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 332, "end": 369, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 332, "end": 369, "name": "EXP", "source": 0 }, { "begin": 332, "end": 369, "name": "DUP2", "source": 0 }, { "begin": 332, "end": 369, "name": "SLOAD", "source": 0 }, { "begin": 332, "end": 369, "name": "DUP2", "source": 0 }, { "begin": 332, "end": 369, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 332, "end": 369, "name": "MUL", "source": 0 }, { "begin": 332, "end": 369, "name": "NOT", "source": 0 }, { "begin": 332, "end": 369, "name": "AND", "source": 0 }, { "begin": 332, "end": 369, "name": "SWAP1", "source": 0 }, { "begin": 332, "end": 369, "name": "DUP4", "source": 0 }, { "begin": 332, "end": 369, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 332, "end": 369, "name": "AND", "source": 0 }, { "begin": 332, "end": 369, "name": "MUL", "source": 0 }, { "begin": 332, "end": 369, "name": "OR", "source": 0 }, { "begin": 332, "end": 369, "name": "SWAP1", "source": 0 }, { "begin": 332, "end": 369, "name": "SSTORE", "source": 0 }, { "begin": 332, "end": 369, "name": "POP", "source": 0 }, { "begin": 383, "end": 393, "name": "CALLER", "source": 0 }, { "begin": 375, "end": 380, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 375, "end": 380, "name": "DUP1", "source": 0 }, { "begin": 375, "end": 393, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 375, "end": 393, "name": "EXP", "source": 0 }, { "begin": 375, "end": 393, "name": "DUP2", "source": 0 }, { "begin": 375, "end": 393, "name": "SLOAD", "source": 0 }, { "begin": 375, "end": 393, "name": "DUP2", "source": 0 }, { "begin": 375, "end": 393, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 375, "end": 393, "name": "MUL", "source": 0 }, { "begin": 375, "end": 393, "name": "NOT", "source": 0 }, { "begin": 375, "end": 393, "name": "AND", "source": 0 }, { "begin": 375, "end": 393, "name": "SWAP1", "source": 0 }, { "begin": 375, "end": 393, "name": "DUP4", "source": 0 }, { "begin": 375, "end": 393, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 375, "end": 393, "name": "AND", "source": 0 }, { "begin": 375, "end": 393, "name": "MUL", "source": 0 }, { "begin": 375, "end": 393, "name": "OR", "source": 0 }, { "begin": 375, "end": 393, "name": "SWAP1", "source": 0 }, { "begin": 375, "end": 393, "name": "SSTORE", "source": 0 }, { "begin": 375, "end": 393, "name": "POP", "source": 0 }, { "begin": 288, "end": 398, "name": "POP", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH [tag]", "source": 0, "value": "6" }, { "begin": 217, "end": 528, "name": "JUMP", "source": 0 }, { "begin": 88, "end": 205, "name": "tag", "source": 1, "value": "8" }, { "begin": 88, "end": 205, "name": "JUMPDEST", "source": 1 }, { "begin": 197, "end": 198, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 194, "end": 195, "name": "DUP1", "source": 1 }, { "begin": 187, "end": 199, "name": "REVERT", "source": 1 }, { "begin": 334, "end": 460, "name": "tag", "source": 1, "value": "10" }, { "begin": 334, "end": 460, "name": "JUMPDEST", "source": 1 }, { "begin": 371, "end": 378, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 411, "end": 453, "name": "PUSH", "source": 1, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 404, "end": 409, "name": "DUP3", "source": 1 }, { "begin": 400, "end": 454, "name": "AND", "source": 1 }, { "begin": 389, "end": 454, "name": "SWAP1", "source": 1 }, { "begin": 389, "end": 454, "name": "POP", "source": 1 }, { "begin": 334, "end": 460, "name": "SWAP2", "source": 1 }, { "begin": 334, "end": 460, "name": "SWAP1", "source": 1 }, { "begin": 334, "end": 460, "name": "POP", "source": 1 }, { "begin": 334, "end": 460, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 466, "end": 562, "name": "tag", "source": 1, "value": "11" }, { "begin": 466, "end": 562, "name": "JUMPDEST", "source": 1 }, { "begin": 503, "end": 510, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 532, "end": 556, "name": "PUSH [tag]", "source": 1, "value": "20" }, { "begin": 550, "end": 555, "name": "DUP3", "source": 1 }, { "begin": 532, "end": 556, "name": "PUSH [tag]", "source": 1, "value": "10" }, { "begin": 532, "end": 556, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 532, "end": 556, "name": "tag", "source": 1, "value": "20" }, { "begin": 532, "end": 556, "name": "JUMPDEST", "source": 1 }, { "begin": 521, "end": 556, "name": "SWAP1", "source": 1 }, { "begin": 521, "end": 556, "name": "POP", "source": 1 }, { "begin": 466, "end": 562, "name": "SWAP2", "source": 1 }, { "begin": 466, "end": 562, "name": "SWAP1", "source": 1 }, { "begin": 466, "end": 562, "name": "POP", "source": 1 }, { "begin": 466, "end": 562, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 568, "end": 690, "name": "tag", "source": 1, "value": "12" }, { "begin": 568, "end": 690, "name": "JUMPDEST", "source": 1 }, { "begin": 641, "end": 665, "name": "PUSH [tag]", "source": 1, "value": "22" }, { "begin": 659, "end": 664, "name": "DUP2", "source": 1 }, { "begin": 641, "end": 665, "name": "PUSH [tag]", "source": 1, "value": "11" }, { "begin": 641, "end": 665, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 641, "end": 665, "name": "tag", "source": 1, "value": "22" }, { "begin": 641, "end": 665, "name": "JUMPDEST", "source": 1 }, { "begin": 634, "end": 639, "name": "DUP2", "source": 1 }, { "begin": 631, "end": 666, "name": "EQ", "source": 1 }, { "begin": 621, "end": 684, "name": "PUSH [tag]", "source": 1, "value": "23" }, { "begin": 621, "end": 684, "name": "JUMPI", "source": 1 }, { "begin": 680, "end": 681, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 677, "end": 678, "name": "DUP1", "source": 1 }, { "begin": 670, "end": 682, "name": "REVERT", "source": 1 }, { "begin": 621, "end": 684, "name": "tag", "source": 1, "value": "23" }, { "begin": 621, "end": 684, "name": "JUMPDEST", "source": 1 }, { "begin": 568, "end": 690, "name": "POP", "source": 1 }, { "begin": 568, "end": 690, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 696, "end": 839, "name": "tag", "source": 1, "value": "13" }, { "begin": 696, "end": 839, "name": "JUMPDEST", "source": 1 }, { "begin": 753, "end": 758, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 784, "end": 790, "name": "DUP2", "source": 1 }, { "begin": 778, "end": 791, "name": "MLOAD", "source": 1 }, { "begin": 769, "end": 791, "name": "SWAP1", "source": 1 }, { "begin": 769, "end": 791, "name": "POP", "source": 1 }, { "begin": 800, "end": 833, "name": "PUSH [tag]", "source": 1, "value": "25" }, { "begin": 827, "end": 832, "name": "DUP2", "source": 1 }, { "begin": 800, "end": 833, "name": "PUSH [tag]", "source": 1, "value": "12" }, { "begin": 800, "end": 833, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 800, "end": 833, "name": "tag", "source": 1, "value": "25" }, { "begin": 800, "end": 833, "name": "JUMPDEST", "source": 1 }, { "begin": 696, "end": 839, "name": "SWAP3", "source": 1 }, { "begin": 696, "end": 839, "name": "SWAP2", "source": 1 }, { "begin": 696, "end": 839, "name": "POP", "source": 1 }, { "begin": 696, "end": 839, "name": "POP", "source": 1 }, { "begin": 696, "end": 839, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 845, "end": 1196, "name": "tag", "source": 1, "value": "3" }, { "begin": 845, "end": 1196, "name": "JUMPDEST", "source": 1 }, { "begin": 915, "end": 921, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 964, "end": 966, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 952, "end": 961, "name": "DUP3", "source": 1 }, { "begin": 943, "end": 950, "name": "DUP5", "source": 1 }, { "begin": 939, "end": 962, "name": "SUB", "source": 1 }, { "begin": 935, "end": 967, "name": "SLT", "source": 1 }, { "begin": 932, "end": 1051, "name": "ISZERO", "source": 1 }, { "begin": 932, "end": 1051, "name": "PUSH [tag]", "source": 1, "value": "27" }, { "begin": 932, "end": 1051, "name": "JUMPI", "source": 1 }, { "begin": 970, "end": 1049, "name": "PUSH [tag]", "source": 1, "value": "28" }, { "begin": 970, "end": 1049, "name": "PUSH [tag]", "source": 1, "value": "8" }, { "begin": 970, "end": 1049, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 970, "end": 1049, "name": "tag", "source": 1, "value": "28" }, { "begin": 970, "end": 1049, "name": "JUMPDEST", "source": 1 }, { "begin": 932, "end": 1051, "name": "tag", "source": 1, "value": "27" }, { "begin": 932, "end": 1051, "name": "JUMPDEST", "source": 1 }, { "begin": 1090, "end": 1091, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1115, "end": 1179, "name": "PUSH [tag]", "source": 1, "value": "29" }, { "begin": 1171, "end": 1178, "name": "DUP5", "source": 1 }, { "begin": 1162, "end": 1168, "name": "DUP3", "source": 1 }, { "begin": 1151, "end": 1160, "name": "DUP6", "source": 1 }, { "begin": 1147, "end": 1169, "name": "ADD", "source": 1 }, { "begin": 1115, "end": 1179, "name": "PUSH [tag]", "source": 1, "value": "13" }, { "begin": 1115, "end": 1179, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1115, "end": 1179, "name": "tag", "source": 1, "value": "29" }, { "begin": 1115, "end": 1179, "name": "JUMPDEST", "source": 1 }, { "begin": 1105, "end": 1179, "name": "SWAP2", "source": 1 }, { "begin": 1105, "end": 1179, "name": "POP", "source": 1 }, { "begin": 1061, "end": 1189, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "name": "SWAP3", "source": 1 }, { "begin": 845, "end": 1196, "name": "SWAP2", "source": 1 }, { "begin": 845, "end": 1196, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "name": "POP", "source": 1 }, { "begin": 845, "end": 1196, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 217, "end": 528, "name": "tag", "source": 0, "value": "6" }, { "begin": 217, "end": 528, "name": "JUMPDEST", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH #[$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 217, "end": 528, "name": "DUP1", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH [$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 217, "end": 528, "name": "CODECOPY", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 217, "end": 528, "name": "RETURN", "source": 0 } ], ".data": { "0": { ".auxdata": "a2646970667358221220a64ec62813afe9cb866a7dace124472c2540e633633aa2d876042db322053ae564736f6c63430008120033", ".code": [ { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 217, "end": 528, "name": "MSTORE", "source": 0 }, { "begin": 217, "end": 528, "name": "CALLVALUE", "source": 0 }, { "begin": 217, "end": 528, "name": "DUP1", "source": 0 }, { "begin": 217, "end": 528, "name": "ISZERO", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 217, "end": 528, "name": "JUMPI", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 217, "end": 528, "name": "DUP1", "source": 0 }, { "begin": 217, "end": 528, "name": "REVERT", "source": 0 }, { "begin": 217, "end": 528, "name": "tag", "source": 0, "value": "1" }, { "begin": 217, "end": 528, "name": "JUMPDEST", "source": 0 }, { "begin": 217, "end": 528, "name": "POP", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "4" }, { "begin": 217, "end": 528, "name": "CALLDATASIZE", "source": 0 }, { "begin": 217, "end": 528, "name": "LT", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 217, "end": 528, "name": "JUMPI", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 217, "end": 528, "name": "CALLDATALOAD", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "E0" }, { "begin": 217, "end": 528, "name": "SHR", "source": 0 }, { "begin": 217, "end": 528, "name": "DUP1", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH", "source": 0, "value": "8DA5CB5B" }, { "begin": 217, "end": 528, "name": "EQ", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH [tag]", "source": 0, "value": "4" }, { "begin": 217, "end": 528, "name": "JUMPI", "source": 0 }, { "begin": 217, "end": 528, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 217, "end": 528, "name": "JUMP", "source": 0 }, { "begin": 217, "end": 528, "name": "tag", "source": 0, "value": "2" }, { "begin": 217, "end": 528, "name": "JUMPDEST", "source": 0 }, { "begin": 217, "end": 528, "name": "tag", "source": 0, "value": "3" }, { "begin": 217, "end": 528, "name": "JUMPDEST", "source": 0 }, { "begin": 429, "end": 440, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 453, "end": 461, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 453, "end": 461, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 453, "end": 461, "name": "SWAP1", "source": 0 }, { "begin": 453, "end": 461, "name": "SLOAD", "source": 0 }, { "begin": 453, "end": 461, "name": "SWAP1", "source": 0 }, { "begin": 453, "end": 461, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 453, "end": 461, "name": "EXP", "source": 0 }, { "begin": 453, "end": 461, "name": "SWAP1", "source": 0 }, { "begin": 453, "end": 461, "name": "DIV", "source": 0 }, { "begin": 453, "end": 461, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 453, "end": 461, "name": "AND", "source": 0 }, { "begin": 445, "end": 475, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 445, "end": 475, "name": "AND", "source": 0 }, { "begin": 476, "end": 484, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 476, "end": 484, "name": "CALLDATASIZE", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 445, "end": 485, "name": "MLOAD", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH [tag]", "source": 0, "value": "7" }, { "begin": 445, "end": 485, "name": "SWAP3", "source": 0 }, { "begin": 445, "end": 485, "name": "SWAP2", "source": 0 }, { "begin": 445, "end": 485, "name": "SWAP1", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH [tag]", "source": 0, "value": "8" }, { "begin": 445, "end": 485, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 445, "end": 485, "name": "tag", "source": 0, "value": "7" }, { "begin": 445, "end": 485, "name": "JUMPDEST", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 445, "end": 485, "name": "MLOAD", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP1", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP4", "source": 0 }, { "begin": 445, "end": 485, "name": "SUB", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP2", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP6", "source": 0 }, { "begin": 445, "end": 485, "name": "GAS", "source": 0 }, { "begin": 445, "end": 485, "name": "DELEGATECALL", "source": 0 }, { "begin": 445, "end": 485, "name": "SWAP2", "source": 0 }, { "begin": 445, "end": 485, "name": "POP", "source": 0 }, { "begin": 445, "end": 485, "name": "POP", "source": 0 }, { "begin": 445, "end": 485, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP1", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 445, "end": 485, "name": "DUP2", "source": 0 }, { "begin": 445, "end": 485, "name": "EQ", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH [tag]", "source": 0, "value": "11" }, { "begin": 445, "end": 485, "name": "JUMPI", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 445, "end": 485, "name": "MLOAD", "source": 0 }, { "begin": 445, "end": 485, "name": "SWAP2", "source": 0 }, { "begin": 445, "end": 485, "name": "POP", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "1F" }, { "begin": 445, "end": 485, "name": "NOT", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "3F" }, { "begin": 445, "end": 485, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 445, "end": 485, "name": "ADD", "source": 0 }, { "begin": 445, "end": 485, "name": "AND", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP3", "source": 0 }, { "begin": 445, "end": 485, "name": "ADD", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 445, "end": 485, "name": "MSTORE", "source": 0 }, { "begin": 445, "end": 485, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 445, "end": 485, "name": "DUP3", "source": 0 }, { "begin": 445, "end": 485, "name": "MSTORE", "source": 0 }, { "begin": 445, "end": 485, "name": "RETURNDATASIZE", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 445, "end": 485, "name": "DUP5", "source": 0 }, { "begin": 445, "end": 485, "name": "ADD", "source": 0 }, { "begin": 445, "end": 485, "name": "RETURNDATACOPY", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH [tag]", "source": 0, "value": "10" }, { "begin": 445, "end": 485, "name": "JUMP", "source": 0 }, { "begin": 445, "end": 485, "name": "tag", "source": 0, "value": "11" }, { "begin": 445, "end": 485, "name": "JUMPDEST", "source": 0 }, { "begin": 445, "end": 485, "name": "PUSH", "source": 0, "value": "60" }, { "begin": 445, "end": 485, "name": "SWAP2", "source": 0 }, { "begin": 445, "end": 485, "name": "POP", "source": 0 }, { "begin": 445, "end": 485, "name": "tag", "source": 0, "value": "10" }, { "begin": 445, "end": 485, "name": "JUMPDEST", "source": 0 }, { "begin": 445, "end": 485, "name": "STOP", "source": 0 }, { "begin": 242, "end": 262, "name": "tag", "source": 0, "value": "4" }, { "begin": 242, "end": 262, "name": "JUMPDEST", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH [tag]", "source": 0, "value": "13" }, { "begin": 242, "end": 262, "name": "PUSH [tag]", "source": 0, "value": "14" }, { "begin": 242, "end": 262, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 242, "end": 262, "name": "tag", "source": 0, "value": "13" }, { "begin": 242, "end": 262, "name": "JUMPDEST", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 242, "end": 262, "name": "MLOAD", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH [tag]", "source": 0, "value": "15" }, { "begin": 242, "end": 262, "name": "SWAP2", "source": 0 }, { "begin": 242, "end": 262, "name": "SWAP1", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH [tag]", "source": 0, "value": "16" }, { "begin": 242, "end": 262, "jumpType": "[in]", "name": "JUMP", "source": 0 }, { "begin": 242, "end": 262, "name": "tag", "source": 0, "value": "15" }, { "begin": 242, "end": 262, "name": "JUMPDEST", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 242, "end": 262, "name": "MLOAD", "source": 0 }, { "begin": 242, "end": 262, "name": "DUP1", "source": 0 }, { "begin": 242, "end": 262, "name": "SWAP2", "source": 0 }, { "begin": 242, "end": 262, "name": "SUB", "source": 0 }, { "begin": 242, "end": 262, "name": "SWAP1", "source": 0 }, { "begin": 242, "end": 262, "name": "RETURN", "source": 0 }, { "begin": 242, "end": 262, "name": "tag", "source": 0, "value": "14" }, { "begin": 242, "end": 262, "name": "JUMPDEST", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 242, "end": 262, "name": "DUP1", "source": 0 }, { "begin": 242, "end": 262, "name": "SLOAD", "source": 0 }, { "begin": 242, "end": 262, "name": "SWAP1", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 242, "end": 262, "name": "EXP", "source": 0 }, { "begin": 242, "end": 262, "name": "SWAP1", "source": 0 }, { "begin": 242, "end": 262, "name": "DIV", "source": 0 }, { "begin": 242, "end": 262, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 242, "end": 262, "name": "AND", "source": 0 }, { "begin": 242, "end": 262, "name": "DUP2", "source": 0 }, { "begin": 242, "end": 262, "jumpType": "[out]", "name": "JUMP", "source": 0 }, { "begin": 7, "end": 154, "name": "tag", "source": 1, "value": "17" }, { "begin": 7, "end": 154, "name": "JUMPDEST", "source": 1 }, { "begin": 108, "end": 119, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 145, "end": 148, "name": "DUP2", "source": 1 }, { "begin": 130, "end": 148, "name": "SWAP1", "source": 1 }, { "begin": 130, "end": 148, "name": "POP", "source": 1 }, { "begin": 7, "end": 154, "name": "SWAP3", "source": 1 }, { "begin": 7, "end": 154, "name": "SWAP2", "source": 1 }, { "begin": 7, "end": 154, "name": "POP", "source": 1 }, { "begin": 7, "end": 154, "name": "POP", "source": 1 }, { "begin": 7, "end": 154, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 160, "end": 306, "name": "tag", "source": 1, "value": "18" }, { "begin": 160, "end": 306, "name": "JUMPDEST", "source": 1 }, { "begin": 257, "end": 263, "name": "DUP3", "source": 1 }, { "begin": 252, "end": 255, "name": "DUP2", "source": 1 }, { "begin": 247, "end": 250, "name": "DUP4", "source": 1 }, { "begin": 234, "end": 264, "name": "CALLDATACOPY", "source": 1 }, { "begin": 298, "end": 299, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 289, "end": 295, "name": "DUP4", "source": 1 }, { "begin": 284, "end": 287, "name": "DUP4", "source": 1 }, { "begin": 280, "end": 296, "name": "ADD", "source": 1 }, { "begin": 273, "end": 300, "name": "MSTORE", "source": 1 }, { "begin": 160, "end": 306, "name": "POP", "source": 1 }, { "begin": 160, "end": 306, "name": "POP", "source": 1 }, { "begin": 160, "end": 306, "name": "POP", "source": 1 }, { "begin": 160, "end": 306, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 334, "end": 661, "name": "tag", "source": 1, "value": "19" }, { "begin": 334, "end": 661, "name": "JUMPDEST", "source": 1 }, { "begin": 448, "end": 451, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 469, "end": 557, "name": "PUSH [tag]", "source": 1, "value": "27" }, { "begin": 550, "end": 556, "name": "DUP4", "source": 1 }, { "begin": 545, "end": 548, "name": "DUP6", "source": 1 }, { "begin": 469, "end": 557, "name": "PUSH [tag]", "source": 1, "value": "17" }, { "begin": 469, "end": 557, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 469, "end": 557, "name": "tag", "source": 1, "value": "27" }, { "begin": 469, "end": 557, "name": "JUMPDEST", "source": 1 }, { "begin": 462, "end": 557, "name": "SWAP4", "source": 1 }, { "begin": 462, "end": 557, "name": "POP", "source": 1 }, { "begin": 567, "end": 623, "name": "PUSH [tag]", "source": 1, "value": "28" }, { "begin": 616, "end": 622, "name": "DUP4", "source": 1 }, { "begin": 611, "end": 614, "name": "DUP6", "source": 1 }, { "begin": 604, "end": 609, "name": "DUP5", "source": 1 }, { "begin": 567, "end": 623, "name": "PUSH [tag]", "source": 1, "value": "18" }, { "begin": 567, "end": 623, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 567, "end": 623, "name": "tag", "source": 1, "value": "28" }, { "begin": 567, "end": 623, "name": "JUMPDEST", "source": 1 }, { "begin": 648, "end": 654, "name": "DUP3", "source": 1 }, { "begin": 643, "end": 646, "name": "DUP5", "source": 1 }, { "begin": 639, "end": 655, "name": "ADD", "source": 1 }, { "begin": 632, "end": 655, "name": "SWAP1", "source": 1 }, { "begin": 632, "end": 655, "name": "POP", "source": 1 }, { "begin": 334, "end": 661, "name": "SWAP4", "source": 1 }, { "begin": 334, "end": 661, "name": "SWAP3", "source": 1 }, { "begin": 334, "end": 661, "name": "POP", "source": 1 }, { "begin": 334, "end": 661, "name": "POP", "source": 1 }, { "begin": 334, "end": 661, "name": "POP", "source": 1 }, { "begin": 334, "end": 661, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 667, "end": 958, "name": "tag", "source": 1, "value": "8" }, { "begin": 667, "end": 958, "name": "JUMPDEST", "source": 1 }, { "begin": 807, "end": 810, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 829, "end": 932, "name": "PUSH [tag]", "source": 1, "value": "30" }, { "begin": 928, "end": 931, "name": "DUP3", "source": 1 }, { "begin": 919, "end": 925, "name": "DUP5", "source": 1 }, { "begin": 911, "end": 917, "name": "DUP7", "source": 1 }, { "begin": 829, "end": 932, "name": "PUSH [tag]", "source": 1, "value": "19" }, { "begin": 829, "end": 932, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 829, "end": 932, "name": "tag", "source": 1, "value": "30" }, { "begin": 829, "end": 932, "name": "JUMPDEST", "source": 1 }, { "begin": 822, "end": 932, "name": "SWAP2", "source": 1 }, { "begin": 822, "end": 932, "name": "POP", "source": 1 }, { "begin": 949, "end": 952, "name": "DUP2", "source": 1 }, { "begin": 942, "end": 952, "name": "SWAP1", "source": 1 }, { "begin": 942, "end": 952, "name": "POP", "source": 1 }, { "begin": 667, "end": 958, "name": "SWAP4", "source": 1 }, { "begin": 667, "end": 958, "name": "SWAP3", "source": 1 }, { "begin": 667, "end": 958, "name": "POP", "source": 1 }, { "begin": 667, "end": 958, "name": "POP", "source": 1 }, { "begin": 667, "end": 958, "name": "POP", "source": 1 }, { "begin": 667, "end": 958, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 964, "end": 1090, "name": "tag", "source": 1, "value": "20" }, { "begin": 964, "end": 1090, "name": "JUMPDEST", "source": 1 }, { "begin": 1001, "end": 1008, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1041, "end": 1083, "name": "PUSH", "source": 1, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 1034, "end": 1039, "name": "DUP3", "source": 1 }, { "begin": 1030, "end": 1084, "name": "AND", "source": 1 }, { "begin": 1019, "end": 1084, "name": "SWAP1", "source": 1 }, { "begin": 1019, "end": 1084, "name": "POP", "source": 1 }, { "begin": 964, "end": 1090, "name": "SWAP2", "source": 1 }, { "begin": 964, "end": 1090, "name": "SWAP1", "source": 1 }, { "begin": 964, "end": 1090, "name": "POP", "source": 1 }, { "begin": 964, "end": 1090, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1096, "end": 1192, "name": "tag", "source": 1, "value": "21" }, { "begin": 1096, "end": 1192, "name": "JUMPDEST", "source": 1 }, { "begin": 1133, "end": 1140, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1162, "end": 1186, "name": "PUSH [tag]", "source": 1, "value": "33" }, { "begin": 1180, "end": 1185, "name": "DUP3", "source": 1 }, { "begin": 1162, "end": 1186, "name": "PUSH [tag]", "source": 1, "value": "20" }, { "begin": 1162, "end": 1186, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1162, "end": 1186, "name": "tag", "source": 1, "value": "33" }, { "begin": 1162, "end": 1186, "name": "JUMPDEST", "source": 1 }, { "begin": 1151, "end": 1186, "name": "SWAP1", "source": 1 }, { "begin": 1151, "end": 1186, "name": "POP", "source": 1 }, { "begin": 1096, "end": 1192, "name": "SWAP2", "source": 1 }, { "begin": 1096, "end": 1192, "name": "SWAP1", "source": 1 }, { "begin": 1096, "end": 1192, "name": "POP", "source": 1 }, { "begin": 1096, "end": 1192, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1198, "end": 1316, "name": "tag", "source": 1, "value": "22" }, { "begin": 1198, "end": 1316, "name": "JUMPDEST", "source": 1 }, { "begin": 1285, "end": 1309, "name": "PUSH [tag]", "source": 1, "value": "35" }, { "begin": 1303, "end": 1308, "name": "DUP2", "source": 1 }, { "begin": 1285, "end": 1309, "name": "PUSH [tag]", "source": 1, "value": "21" }, { "begin": 1285, "end": 1309, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1285, "end": 1309, "name": "tag", "source": 1, "value": "35" }, { "begin": 1285, "end": 1309, "name": "JUMPDEST", "source": 1 }, { "begin": 1280, "end": 1283, "name": "DUP3", "source": 1 }, { "begin": 1273, "end": 1310, "name": "MSTORE", "source": 1 }, { "begin": 1198, "end": 1316, "name": "POP", "source": 1 }, { "begin": 1198, "end": 1316, "name": "POP", "source": 1 }, { "begin": 1198, "end": 1316, "jumpType": "[out]", "name": "JUMP", "source": 1 }, { "begin": 1322, "end": 1544, "name": "tag", "source": 1, "value": "16" }, { "begin": 1322, "end": 1544, "name": "JUMPDEST", "source": 1 }, { "begin": 1415, "end": 1419, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1453, "end": 1455, "name": "PUSH", "source": 1, "value": "20" }, { "begin": 1442, "end": 1451, "name": "DUP3", "source": 1 }, { "begin": 1438, "end": 1456, "name": "ADD", "source": 1 }, { "begin": 1430, "end": 1456, "name": "SWAP1", "source": 1 }, { "begin": 1430, "end": 1456, "name": "POP", "source": 1 }, { "begin": 1466, "end": 1537, "name": "PUSH [tag]", "source": 1, "value": "37" }, { "begin": 1534, "end": 1535, "name": "PUSH", "source": 1, "value": "0" }, { "begin": 1523, "end": 1532, "name": "DUP4", "source": 1 }, { "begin": 1519, "end": 1536, "name": "ADD", "source": 1 }, { "begin": 1510, "end": 1516, "name": "DUP5", "source": 1 }, { "begin": 1466, "end": 1537, "name": "PUSH [tag]", "source": 1, "value": "22" }, { "begin": 1466, "end": 1537, "jumpType": "[in]", "name": "JUMP", "source": 1 }, { "begin": 1466, "end": 1537, "name": "tag", "source": 1, "value": "37" }, { "begin": 1466, "end": 1537, "name": "JUMPDEST", "source": 1 }, { "begin": 1322, "end": 1544, "name": "SWAP3", "source": 1 }, { "begin": 1322, "end": 1544, "name": "SWAP2", "source": 1 }, { "begin": 1322, "end": 1544, "name": "POP", "source": 1 }, { "begin": 1322, "end": 1544, "name": "POP", "source": 1 }, { "begin": 1322, "end": 1544, "jumpType": "[out]", "name": "JUMP", "source": 1 } ] } }, "sourceList": [ "contracts/ethernaut/delegation.sol", "#utility.yul" ] }, "methodIdentifiers": { "owner()": "8da5cb5b" } }, "metadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegateAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ethernaut/delegation.sol\":\"Delegation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ethernaut/delegation.sol\":{\"keccak256\":\"0x43f9c25f4cad214f0730f685e35d8450575ed2037acad4a3e391e466063a7918\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://462e1967968e5f4e911875790251114f7b9fffdf89ace399cad458003f158eeb\",\"dweb:/ipfs/QmS2VqAtWjRhX5kyvLDSvffK9NmqyRgedH4SxHPAntV41N\"]}},\"version\":1}", "storageLayout": { "storage": [ { "astId": 25, "contract": "contracts/ethernaut/delegation.sol:Delegation", "label": "owner", "offset": 0, "slot": "0", "type": "t_address" }, { "astId": 28, "contract": "contracts/ethernaut/delegation.sol:Delegation", "label": "delegate", "offset": 0, "slot": "1", "type": "t_contract(Delegate)23" } ], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, "t_contract(Delegate)23": { "encoding": "inplace", "label": "contract Delegate", "numberOfBytes": "20" } } }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } } } }, "sources": { "contracts/ethernaut/delegation.sol": { "ast": { "absolutePath": "contracts/ethernaut/delegation.sol", "exportedSymbols": { "Delegate": [ 23 ], "Delegation": [ 66 ] }, "id": 67, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "32:23:0" }, { "abstract": false, "baseContracts": [], "canonicalName": "Delegate", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 23, "linearizedBaseContracts": [ 23 ], "name": "Delegate", "nameLocation": "66:8:0", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "8da5cb5b", "id": 3, "mutability": "mutable", "name": "owner", "nameLocation": "95:5:0", "nodeType": "VariableDeclaration", "scope": 23, "src": "80:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2, "name": "address", "nodeType": "ElementaryTypeName", "src": "80:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "public" }, { "body": { "id": 12, "nodeType": "Block", "src": "133:25:0", "statements": [ { "expression": { "id": 10, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 8, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "139:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 9, "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "147:6:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "139:14:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 11, "nodeType": "ExpressionStatement", "src": "139:14:0" } ] }, "id": 13, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 6, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 5, "mutability": "mutable", "name": "_owner", "nameLocation": "125:6:0", "nodeType": "VariableDeclaration", "scope": 13, "src": "117:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4, "name": "address", "nodeType": "ElementaryTypeName", "src": "117:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "116:16:0" }, "returnParameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], "src": "133:0:0" }, "scope": 23, "src": "105:53:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 21, "nodeType": "Block", "src": "184:29:0", "statements": [ { "expression": { "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 16, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "190:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 17, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "198:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 18, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "202:6:0", "memberName": "sender", "nodeType": "MemberAccess", "src": "198:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "190:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 20, "nodeType": "ExpressionStatement", "src": "190:18:0" } ] }, "functionSelector": "dd365b8b", "id": 22, "implemented": true, "kind": "function", "modifiers": [], "name": "pwn", "nameLocation": "171:3:0", "nodeType": "FunctionDefinition", "parameters": { "id": 14, "nodeType": "ParameterList", "parameters": [], "src": "174:2:0" }, "returnParameters": { "id": 15, "nodeType": "ParameterList", "parameters": [], "src": "184:0:0" }, "scope": 23, "src": "162:51:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 67, "src": "57:158:0", "usedErrors": [] }, { "abstract": false, "baseContracts": [], "canonicalName": "Delegation", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 66, "linearizedBaseContracts": [ 66 ], "name": "Delegation", "nameLocation": "226:10:0", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "8da5cb5b", "id": 25, "mutability": "mutable", "name": "owner", "nameLocation": "257:5:0", "nodeType": "VariableDeclaration", "scope": 66, "src": "242:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 24, "name": "address", "nodeType": "ElementaryTypeName", "src": "242:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "public" }, { "constant": false, "id": 28, "mutability": "mutable", "name": "delegate", "nameLocation": "275:8:0", "nodeType": "VariableDeclaration", "scope": 66, "src": "266:17:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" }, "typeName": { "id": 27, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 26, "name": "Delegate", "nameLocations": [ "266:8:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 23, "src": "266:8:0" }, "referencedDeclaration": 23, "src": "266:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" } }, "visibility": "internal" }, { "body": { "id": 44, "nodeType": "Block", "src": "326:72:0", "statements": [ { "expression": { "id": 37, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 33, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 28, "src": "332:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 35, "name": "_delegateAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, "src": "352:16:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 34, "name": "Delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, "src": "343:8:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Delegate_$23_$", "typeString": "type(contract Delegate)" } }, "id": 36, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "343:26:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" } }, "src": "332:37:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" } }, "id": 38, "nodeType": "ExpressionStatement", "src": "332:37:0" }, { "expression": { "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 39, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "375:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 40, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "383:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 41, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "387:6:0", "memberName": "sender", "nodeType": "MemberAccess", "src": "383:10:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "375:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 43, "nodeType": "ExpressionStatement", "src": "375:18:0" } ] }, "id": 45, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 31, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 30, "mutability": "mutable", "name": "_delegateAddress", "nameLocation": "308:16:0", "nodeType": "VariableDeclaration", "scope": 45, "src": "300:24:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 29, "name": "address", "nodeType": "ElementaryTypeName", "src": "300:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "299:26:0" }, "returnParameters": { "id": 32, "nodeType": "ParameterList", "parameters": [], "src": "326:0:0" }, "scope": 66, "src": "288:110:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 64, "nodeType": "Block", "src": "422:104:0", "statements": [ { "assignments": [ 49, null ], "declarations": [ { "constant": false, "id": 49, "mutability": "mutable", "name": "result", "nameLocation": "434:6:0", "nodeType": "VariableDeclaration", "scope": 64, "src": "429:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 48, "name": "bool", "nodeType": "ElementaryTypeName", "src": "429:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, null ], "id": 58, "initialValue": { "arguments": [ { "expression": { "id": 55, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "476:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 56, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "480:4:0", "memberName": "data", "nodeType": "MemberAccess", "src": "476:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } ], "expression": { "arguments": [ { "id": 52, "name": "delegate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 28, "src": "453:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Delegate_$23", "typeString": "contract Delegate" } ], "id": 51, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "445:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 50, "name": "address", "nodeType": "ElementaryTypeName", "src": "445:7:0", "typeDescriptions": {} } }, "id": 53, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "445:17:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 54, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "463:12:0", "memberName": "delegatecall", "nodeType": "MemberAccess", "src": "445:30:0", "typeDescriptions": { "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) returns (bool,bytes memory)" } }, "id": 57, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "445:40:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "tuple(bool,bytes memory)" } }, "nodeType": "VariableDeclarationStatement", "src": "428:57:0" }, { "condition": { "id": 59, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 49, "src": "495:6:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 63, "nodeType": "IfStatement", "src": "491:31:0", "trueBody": { "id": 62, "nodeType": "Block", "src": "503:19:0", "statements": [ { "expression": { "id": 60, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, "src": "511:4:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Delegation_$66", "typeString": "contract Delegation" } }, "id": 61, "nodeType": "ExpressionStatement", "src": "511:4:0" } ] } } ] }, "id": 65, "implemented": true, "kind": "fallback", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { "id": 46, "nodeType": "ParameterList", "parameters": [], "src": "410:2:0" }, "returnParameters": { "id": 47, "nodeType": "ParameterList", "parameters": [], "src": "422:0:0" }, "scope": 66, "src": "402:124:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], "scope": 67, "src": "217:311:0", "usedErrors": [] } ], "src": "32:496:0" }, "id": 0 } } } }