mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
105 lines
28 KiB
JSON
105 lines
28 KiB
JSON
{"contracts":{"a.sol":{"A":{"evm":{"bytecode":{"generatedSources":[],"object":"<BYTECODE REMOVED>"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3209:1","statements":[{"body":{"nodeType":"YulBlock","src":"126:521:1","statements":[{"nodeType":"YulAssignment","src":"136:90:1","value":{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"218:6:1"}],"functionName":{"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"161:56:1"},"nodeType":"YulFunctionCall","src":"161:64:1"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"145:15:1"},"nodeType":"YulFunctionCall","src":"145:81:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"136:5:1"}]},{"nodeType":"YulVariableDeclaration","src":"235:16:1","value":{"name":"array","nodeType":"YulIdentifier","src":"246:5:1"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"239:3:1","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"267:5:1"},{"name":"length","nodeType":"YulIdentifier","src":"274:6:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"260:6:1"},"nodeType":"YulFunctionCall","src":"260:21:1"},"nodeType":"YulExpressionStatement","src":"260:21:1"},{"nodeType":"YulAssignment","src":"282:23:1","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"293:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"300:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"289:3:1"},"nodeType":"YulFunctionCall","src":"289:16:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"282:3:1"}]},{"nodeType":"YulVariableDeclaration","src":"314:17:1","value":{"name":"offset","nodeType":"YulIdentifier","src":"325:6:1"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"318:3:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"380:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"389:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"392:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"382:6:1"},"nodeType":"YulFunctionCall","src":"382:12:1"},"nodeType":"YulExpressionStatement","src":"382:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"350:3:1"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"359:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"367:4:1","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"355:3:1"},"nodeType":"YulFunctionCall","src":"355:17:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"346:3:1"},"nodeType":"YulFunctionCall","src":"346:27:1"},{"name":"end","nodeType":"YulIdentifier","src":"375:3:1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"343:2:1"},"nodeType":"YulFunctionCall","src":"343:36:1"},"nodeType":"YulIf","src":"340:2:1"},{"body":{"nodeType":"YulBlock","src":"465:176:1","statements":[{"nodeType":"YulVariableDeclaration","src":"479:21:1","value":{"name":"src","nodeType":"YulIdentifier","src":"497:3:1"},"variables":[{"name":"elementPos","nodeType":"YulTypedName","src":"483:10:1","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"520:3:1"},{"arguments":[{"name":"elementPos","nodeType":"YulIdentifier","src":"546:10:1"},{"name":"end","nodeType":"YulIdentifier","src":"558:3:1"}],"functionName":{"name":"abi_decode_t_uint256","nodeType":"YulIdentifier","src":"525:20:1"},"nodeType":"YulFunctionCall","src":"525:37:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"513:6:1"},"nodeType":"YulFunctionCall","src":"513:50:1"},"nodeType":"YulExpressionStatement","src":"513:50:1"},{"nodeType":"YulAssignment","src":"576:21:1","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"587:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"592:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"583:3:1"},"nodeType":"YulFunctionCall","src":"583:14:1"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"576:3:1"}]},{"nodeType":"YulAssignment","src":"610:21:1","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"621:3:1"},{"kind":"number","nodeType":"YulLiteral","src":"626:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"617:3:1"},"nodeType":"YulFunctionCall","src":"617:14:1"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"610:3:1"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"427:1:1"},{"name":"length","nodeType":"YulIdentifier","src":"430:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"424:2:1"},"nodeType":"YulFunctionCall","src":"424:13:1"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"438:18:1","statements":[{"nodeType":"YulAssignment","src":"440:14:1","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"449:1:1"},{"kind":"number","nodeType":"YulLiteral","src":"452:1:1","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"445:3:1"},"nodeType":"YulFunctionCall","src":"445:9:1"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"440:1:1"}]}]},"pre":{"nodeType":"YulBlock","src":"409:14:1","statements":[{"nodeType":"YulVariableDeclaration","src":"411:10:1","value":{"kind":"number","nodeType":"YulLiteral","src":"420:1:1","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"415:1:1","type":""}]}]},"src":"405:236:1"}]},"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"96:6:1","type":""},{"name":"length","nodeType":"YulTypedName","src":"104:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"112:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"120:5:1","type":""}],"src":"24:623:1"},{"body":{"nodeType":"YulBlock","src":"747:226:1","statements":[{"body":{"nodeType":"YulBlock","src":"796:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"805:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"808:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"798:6:1"},"nodeType":"YulFunctionCall","src":"798:12:1"},"nodeType":"YulExpressionStatement","src":"798:12:1"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"775:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"783:4:1","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"771:3:1"},"nodeType":"YulFunctionCall","src":"771:17:1"},{"name":"end","nodeType":"YulIdentifier","src":"790:3:1"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"767:3:1"},"nodeType":"YulFunctionCall","src":"767:27:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"760:6:1"},"nodeType":"YulFunctionCall","src":"760:35:1"},"nodeType":"YulIf","src":"757:2:1"},{"nodeType":"YulVariableDeclaration","src":"821:34:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"848:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"835:12:1"},"nodeType":"YulFunctionCall","src":"835:20:1"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"825:6:1","type":""}]},{"nodeType":"YulAssignment","src":"864:103:1","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"940:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"948:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"936:3:1"},"nodeType":"YulFunctionCall","src":"936:17:1"},{"name":"length","nodeType":"YulIdentifier","src":"955:6:1"},{"name":"end","nodeType":"YulIdentifier","src":"963:3:1"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"873:62:1"},"nodeType":"YulFunctionCall","src":"873:94:1"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"864:5:1"}]}]},"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"725:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"733:3:1","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"741:5:1","type":""}],"src":"670:303:1"},{"body":{"nodeType":"YulBlock","src":"1031:87:1","statements":[{"nodeType":"YulAssignment","src":"1041:29:1","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1063:6:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1050:12:1"},"nodeType":"YulFunctionCall","src":"1050:20:1"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1041:5:1"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1106:5:1"}],"functionName":{"name":"validator_revert_t_uint256","nodeType":"YulIdentifier","src":"1079:26:1"},"nodeType":"YulFunctionCall","src":"1079:33:1"},"nodeType":"YulExpressionStatement","src":"1079:33:1"}]},"name":"abi_decode_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1009:6:1","type":""},{"name":"end","nodeType":"YulTypedName","src":"1017:3:1","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1025:5:1","type":""}],"src":"979:139:1"},{"body":{"nodeType":"YulBlock","src":"1215:314:1","statements":[{"body":{"nodeType":"YulBlock","src":"1261:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1270:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1273:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1263:6:1"},"nodeType":"YulFunctionCall","src":"1263:12:1"},"nodeType":"YulExpressionStatement","src":"1263:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1236:7:1"},{"name":"headStart","nodeType":"YulIdentifier","src":"1245:9:1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1232:3:1"},"nodeType":"YulFunctionCall","src":"1232:23:1"},{"kind":"number","nodeType":"YulLiteral","src":"1257:2:1","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1228:3:1"},"nodeType":"YulFunctionCall","src":"1228:32:1"},"nodeType":"YulIf","src":"1225:2:1"},{"nodeType":"YulBlock","src":"1287:235:1","statements":[{"nodeType":"YulVariableDeclaration","src":"1302:45:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1333:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1344:1:1","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1329:3:1"},"nodeType":"YulFunctionCall","src":"1329:17:1"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1316:12:1"},"nodeType":"YulFunctionCall","src":"1316:31:1"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1306:6:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"1394:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1403:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1406:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1396:6:1"},"nodeType":"YulFunctionCall","src":"1396:12:1"},"nodeType":"YulExpressionStatement","src":"1396:12:1"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1366:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"1374:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1363:2:1"},"nodeType":"YulFunctionCall","src":"1363:30:1"},"nodeType":"YulIf","src":"1360:2:1"},{"nodeType":"YulAssignment","src":"1424:88:1","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1484:9:1"},{"name":"offset","nodeType":"YulIdentifier","src":"1495:6:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1480:3:1"},"nodeType":"YulFunctionCall","src":"1480:22:1"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1504:7:1"}],"functionName":{"name":"abi_decode_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulIdentifier","src":"1434:45:1"},"nodeType":"YulFunctionCall","src":"1434:78:1"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1424:6:1"}]}]}]},"name":"abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1185:9:1","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1196:7:1","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1208:6:1","type":""}],"src":"1124:405:1"},{"body":{"nodeType":"YulBlock","src":"1600:53:1","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1617:3:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1640:5:1"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"1622:17:1"},"nodeType":"YulFunctionCall","src":"1622:24:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1610:6:1"},"nodeType":"YulFunctionCall","src":"1610:37:1"},"nodeType":"YulExpressionStatement","src":"1610:37:1"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1588:5:1","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1595:3:1","type":""}],"src":"1535:118:1"},{"body":{"nodeType":"YulBlock","src":"1757:124:1","statements":[{"nodeType":"YulAssignment","src":"1767:26:1","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1779:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1790:2:1","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1775:3:1"},"nodeType":"YulFunctionCall","src":"1775:18:1"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1767:4:1"}]},{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1847:6:1"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:1"},{"kind":"number","nodeType":"YulLiteral","src":"1871:1:1","type":"","value":"0"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1856:3:1"},"nodeType":"YulFunctionCall","src":"1856:17:1"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nodeType":"YulIdentifier","src":"1803:43:1"},"nodeType":"YulFunctionCall","src":"1803:71:1"},"nodeType":"YulExpressionStatement","src":"1803:71:1"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1729:9:1","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1741:6:1","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1752:4:1","type":""}],"src":"1659:222:1"},{"body":{"nodeType":"YulBlock","src":"1928:88:1","statements":[{"nodeType":"YulAssignment","src":"1938:30:1","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nodeType":"YulIdentifier","src":"1948:18:1"},"nodeType":"YulFunctionCall","src":"1948:20:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1938:6:1"}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1997:6:1"},{"name":"size","nodeType":"YulIdentifier","src":"2005:4:1"}],"functionName":{"name":"finalize_allocation","nodeType":"YulIdentifier","src":"1977:19:1"},"nodeType":"YulFunctionCall","src":"1977:33:1"},"nodeType":"YulExpressionStatement","src":"1977:33:1"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"1912:4:1","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"1921:6:1","type":""}],"src":"1887:129:1"},{"body":{"nodeType":"YulBlock","src":"2062:35:1","statements":[{"nodeType":"YulAssignment","src":"2072:19:1","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2088:2:1","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2082:5:1"},"nodeType":"YulFunctionCall","src":"2082:9:1"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2072:6:1"}]}]},"name":"allocate_unbounded","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"2055:6:1","type":""}],"src":"2022:75:1"},{"body":{"nodeType":"YulBlock","src":"2185:229:1","statements":[{"body":{"nodeType":"YulBlock","src":"2290:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2292:16:1"},"nodeType":"YulFunctionCall","src":"2292:18:1"},"nodeType":"YulExpressionStatement","src":"2292:18:1"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2262:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"2270:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2259:2:1"},"nodeType":"YulFunctionCall","src":"2259:30:1"},"nodeType":"YulIf","src":"2256:2:1"},{"nodeType":"YulAssignment","src":"2322:25:1","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2334:6:1"},{"kind":"number","nodeType":"YulLiteral","src":"2342:4:1","type":"","value":"0x20"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"2330:3:1"},"nodeType":"YulFunctionCall","src":"2330:17:1"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2322:4:1"}]},{"nodeType":"YulAssignment","src":"2384:23:1","value":{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2396:4:1"},{"kind":"number","nodeType":"YulLiteral","src":"2402:4:1","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2392:3:1"},"nodeType":"YulFunctionCall","src":"2392:15:1"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"2384:4:1"}]}]},"name":"array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"2169:6:1","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"2180:4:1","type":""}],"src":"2103:311:1"},{"body":{"nodeType":"YulBlock","src":"2465:32:1","statements":[{"nodeType":"YulAssignment","src":"2475:16:1","value":{"name":"value","nodeType":"YulIdentifier","src":"2486:5:1"},"variableNames":[{"name":"cleaned","nodeType":"YulIdentifier","src":"2475:7:1"}]}]},"name":"cleanup_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"2447:5:1","type":""}],"returnVariables":[{"name":"cleaned","nodeType":"YulTypedName","src":"2457:7:1","type":""}],"src":"2420:77:1"},{"body":{"nodeType":"YulBlock","src":"2546:238:1","statements":[{"nodeType":"YulVariableDeclaration","src":"2556:58:1","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"2578:6:1"},{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"2608:4:1"}],"functionName":{"name":"round_up_to_mul_of_32","nodeType":"YulIdentifier","src":"2586:21:1"},"nodeType":"YulFunctionCall","src":"2586:27:1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2574:3:1"},"nodeType":"YulFunctionCall","src":"2574:40:1"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"2560:10:1","type":""}]},{"body":{"nodeType":"YulBlock","src":"2725:22:1","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2727:16:1"},"nodeType":"YulFunctionCall","src":"2727:18:1"},"nodeType":"YulExpressionStatement","src":"2727:18:1"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2668:10:1"},{"kind":"number","nodeType":"YulLiteral","src":"2680:18:1","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2665:2:1"},"nodeType":"YulFunctionCall","src":"2665:34:1"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2704:10:1"},{"name":"memPtr","nodeType":"YulIdentifier","src":"2716:6:1"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2701:2:1"},"nodeType":"YulFunctionCall","src":"2701:22:1"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2662:2:1"},"nodeType":"YulFunctionCall","src":"2662:62:1"},"nodeType":"YulIf","src":"2659:2:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2763:2:1","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"2767:10:1"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2756:6:1"},"nodeType":"YulFunctionCall","src":"2756:22:1"},"nodeType":"YulExpressionStatement","src":"2756:22:1"}]},"name":"finalize_allocation","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nodeType":"YulTypedName","src":"2532:6:1","type":""},{"name":"size","nodeType":"YulTypedName","src":"2540:4:1","type":""}],"src":"2503:281:1"},{"body":{"nodeType":"YulBlock","src":"2818:152:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2835:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2838:77:1","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2828:6:1"},"nodeType":"YulFunctionCall","src":"2828:88:1"},"nodeType":"YulExpressionStatement","src":"2828:88:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2932:1:1","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2935:4:1","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2925:6:1"},"nodeType":"YulFunctionCall","src":"2925:15:1"},"nodeType":"YulExpressionStatement","src":"2925:15:1"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2956:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2959:4:1","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2949:6:1"},"nodeType":"YulFunctionCall","src":"2949:15:1"},"nodeType":"YulExpressionStatement","src":"2949:15:1"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"2790:180:1"},{"body":{"nodeType":"YulBlock","src":"3024:54:1","statements":[{"nodeType":"YulAssignment","src":"3034:38:1","value":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3052:5:1"},{"kind":"number","nodeType":"YulLiteral","src":"3059:2:1","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3048:3:1"},"nodeType":"YulFunctionCall","src":"3048:14:1"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3068:2:1","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3064:3:1"},"nodeType":"YulFunctionCall","src":"3064:7:1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3044:3:1"},"nodeType":"YulFunctionCall","src":"3044:28:1"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"3034:6:1"}]}]},"name":"round_up_to_mul_of_32","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3007:5:1","type":""}],"returnVariables":[{"name":"result","nodeType":"YulTypedName","src":"3017:6:1","type":""}],"src":"2976:102:1"},{"body":{"nodeType":"YulBlock","src":"3127:79:1","statements":[{"body":{"nodeType":"YulBlock","src":"3184:16:1","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3193:1:1","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3196:1:1","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3186:6:1"},"nodeType":"YulFunctionCall","src":"3186:12:1"},"nodeType":"YulExpressionStatement","src":"3186:12:1"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3150:5:1"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3175:5:1"}],"functionName":{"name":"cleanup_t_uint256","nodeType":"YulIdentifier","src":"3157:17:1"},"nodeType":"YulFunctionCall","src":"3157:24:1"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3147:2:1"},"nodeType":"YulFunctionCall","src":"3147:35:1"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3140:6:1"},"nodeType":"YulFunctionCall","src":"3140:43:1"},"nodeType":"YulIf","src":"3137:2:1"}]},"name":"validator_revert_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3120:5:1","type":""}],"src":"3084:122:1"}]},"contents":"{
|
|
|
|
// uint256[]
|
|
function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {
|
|
array := allocate_memory(array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length))
|
|
let dst := array
|
|
mstore(array, length) dst := add(array, 0x20)
|
|
let src := offset
|
|
if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }
|
|
for { let i := 0 } lt(i, length) { i := add(i, 1) }
|
|
{
|
|
let elementPos := src
|
|
mstore(dst, abi_decode_t_uint256(elementPos, end))
|
|
dst := add(dst, 0x20)
|
|
src := add(src, 0x20)
|
|
}
|
|
}
|
|
|
|
// uint256[]
|
|
function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array {
|
|
if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }
|
|
let length := calldataload(offset)
|
|
array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)
|
|
}
|
|
|
|
function abi_decode_t_uint256(offset, end) -> value {
|
|
value := calldataload(offset)
|
|
validator_revert_t_uint256(value)
|
|
}
|
|
|
|
function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0 {
|
|
if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }
|
|
|
|
{
|
|
|
|
let offset := calldataload(add(headStart, 0))
|
|
if gt(offset, 0xffffffffffffffff) { revert(0, 0) }
|
|
|
|
value0 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)
|
|
}
|
|
|
|
}
|
|
|
|
function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {
|
|
mstore(pos, cleanup_t_uint256(value))
|
|
}
|
|
|
|
function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {
|
|
tail := add(headStart, 32)
|
|
|
|
abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))
|
|
|
|
}
|
|
|
|
function allocate_memory(size) -> memPtr {
|
|
memPtr := allocate_unbounded()
|
|
finalize_allocation(memPtr, size)
|
|
}
|
|
|
|
function allocate_unbounded() -> memPtr {
|
|
memPtr := mload(64)
|
|
}
|
|
|
|
function array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr(length) -> size {
|
|
// Make sure we can allocate memory without overflow
|
|
if gt(length, 0xffffffffffffffff) { panic_error_0x41() }
|
|
|
|
size := mul(length, 0x20)
|
|
|
|
// add length slot
|
|
size := add(size, 0x20)
|
|
|
|
}
|
|
|
|
function cleanup_t_uint256(value) -> cleaned {
|
|
cleaned := value
|
|
}
|
|
|
|
function finalize_allocation(memPtr, size) {
|
|
let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))
|
|
// protect against overflow
|
|
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
|
|
mstore(64, newFreePtr)
|
|
}
|
|
|
|
function panic_error_0x41() {
|
|
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
|
mstore(4, 0x41)
|
|
revert(0, 0x24)
|
|
}
|
|
|
|
function round_up_to_mul_of_32(value) -> result {
|
|
result := and(add(value, 31), not(31))
|
|
}
|
|
|
|
function validator_revert_t_uint256(value) {
|
|
if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }
|
|
}
|
|
|
|
}
|
|
","id":1,"language":"Yul","name":"#utility.yul"}]}}}}},"errors":[{"component":"general","errorCode":"3420","formattedMessage":"Warning: Source file does not specify required compiler version!
|
|
--> a.sol
|
|
|
|
","message":"Source file does not specify required compiler version!","severity":"warning","sourceLocation":{"end":-1,"file":"a.sol","start":-1},"type":"Warning"}],"sources":{"a.sol":{"id":0}}}
|