{ "contracts": { "a.sol": { "A": { "evm": { "bytecode": { "generatedSources": [], "object": "" }, "deployedBytecode": { "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:3989: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": "423:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "440:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "443:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "433:6:1" }, "nodeType": "YulFunctionCall", "src": "433:12:1" }, "nodeType": "YulExpressionStatement", "src": "433:12:1" } ] }, "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulFunctionDefinition", "src": "334:117:1" }, { "body": { "nodeType": "YulBlock", "src": "505:54:1", "statements": [ { "nodeType": "YulAssignment", "src": "515:38:1", "value": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "533:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "540:2:1", "type": "", "value": "31" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "529:3:1" }, "nodeType": "YulFunctionCall", "src": "529:14:1" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "549:2:1", "type": "", "value": "31" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", "src": "545:3:1" }, "nodeType": "YulFunctionCall", "src": "545:7:1" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "525:3:1" }, "nodeType": "YulFunctionCall", "src": "525:28:1" }, "variableNames": [ { "name": "result", "nodeType": "YulIdentifier", "src": "515:6:1" } ] } ] }, "name": "round_up_to_mul_of_32", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "488:5:1", "type": "" } ], "returnVariables": [ { "name": "result", "nodeType": "YulTypedName", "src": "498:6:1", "type": "" } ], "src": "457:102:1" }, { "body": { "nodeType": "YulBlock", "src": "593:152:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "610:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "613:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "603:6:1" }, "nodeType": "YulFunctionCall", "src": "603:88:1" }, "nodeType": "YulExpressionStatement", "src": "603:88:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "707:1:1", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "710:4:1", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "700:6:1" }, "nodeType": "YulFunctionCall", "src": "700:15:1" }, "nodeType": "YulExpressionStatement", "src": "700:15:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "731:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "734:4:1", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "724:6:1" }, "nodeType": "YulFunctionCall", "src": "724:15:1" }, "nodeType": "YulExpressionStatement", "src": "724:15:1" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "565:180:1" }, { "body": { "nodeType": "YulBlock", "src": "794:238:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "804:58:1", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "826:6:1" }, { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "856:4:1" } ], "functionName": { "name": "round_up_to_mul_of_32", "nodeType": "YulIdentifier", "src": "834:21:1" }, "nodeType": "YulFunctionCall", "src": "834:27:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "822:3:1" }, "nodeType": "YulFunctionCall", "src": "822:40:1" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", "src": "808:10:1", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "973:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "975:16:1" }, "nodeType": "YulFunctionCall", "src": "975:18:1" }, "nodeType": "YulExpressionStatement", "src": "975:18:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "916:10:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "928:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "913:2:1" }, "nodeType": "YulFunctionCall", "src": "913:34:1" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "952:10:1" }, { "name": "memPtr", "nodeType": "YulIdentifier", "src": "964:6:1" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "949:2:1" }, "nodeType": "YulFunctionCall", "src": "949:22:1" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", "src": "910:2:1" }, "nodeType": "YulFunctionCall", "src": "910:62:1" }, "nodeType": "YulIf", "src": "907:88:1" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1011:2:1", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", "src": "1015:10:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "1004:6:1" }, "nodeType": "YulFunctionCall", "src": "1004:22:1" }, "nodeType": "YulExpressionStatement", "src": "1004:22:1" } ] }, "name": "finalize_allocation", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "780:6:1", "type": "" }, { "name": "size", "nodeType": "YulTypedName", "src": "788:4:1", "type": "" } ], "src": "751:281:1" }, { "body": { "nodeType": "YulBlock", "src": "1079:88:1", "statements": [ { "nodeType": "YulAssignment", "src": "1089:30:1", "value": { "arguments": [], "functionName": { "name": "allocate_unbounded", "nodeType": "YulIdentifier", "src": "1099:18:1" }, "nodeType": "YulFunctionCall", "src": "1099:20:1" }, "variableNames": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "1089:6:1" } ] }, { "expression": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", "src": "1148:6:1" }, { "name": "size", "nodeType": "YulIdentifier", "src": "1156:4:1" } ], "functionName": { "name": "finalize_allocation", "nodeType": "YulIdentifier", "src": "1128:19:1" }, "nodeType": "YulFunctionCall", "src": "1128:33:1" }, "nodeType": "YulExpressionStatement", "src": "1128:33:1" } ] }, "name": "allocate_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", "nodeType": "YulTypedName", "src": "1063:4:1", "type": "" } ], "returnVariables": [ { "name": "memPtr", "nodeType": "YulTypedName", "src": "1072:6:1", "type": "" } ], "src": "1038:129:1" }, { "body": { "nodeType": "YulBlock", "src": "1255:229:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1360:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nodeType": "YulIdentifier", "src": "1362:16:1" }, "nodeType": "YulFunctionCall", "src": "1362:18:1" }, "nodeType": "YulExpressionStatement", "src": "1362:18:1" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "1332:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1340:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "1329:2:1" }, "nodeType": "YulFunctionCall", "src": "1329:30:1" }, "nodeType": "YulIf", "src": "1326:56:1" }, { "nodeType": "YulAssignment", "src": "1392:25:1", "value": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "1404:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1412:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", "src": "1400:3:1" }, "nodeType": "YulFunctionCall", "src": "1400:17:1" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "1392:4:1" } ] }, { "nodeType": "YulAssignment", "src": "1454:23:1", "value": { "arguments": [ { "name": "size", "nodeType": "YulIdentifier", "src": "1466:4:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1472:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1462:3:1" }, "nodeType": "YulFunctionCall", "src": "1462:15:1" }, "variableNames": [ { "name": "size", "nodeType": "YulIdentifier", "src": "1454:4:1" } ] } ] }, "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nodeType": "YulTypedName", "src": "1239:6:1", "type": "" } ], "returnVariables": [ { "name": "size", "nodeType": "YulTypedName", "src": "1250:4:1", "type": "" } ], "src": "1173:311:1" }, { "body": { "nodeType": "YulBlock", "src": "1579:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1596:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1599:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1589:6:1" }, "nodeType": "YulFunctionCall", "src": "1589:12:1" }, "nodeType": "YulExpressionStatement", "src": "1589:12:1" } ] }, "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "nodeType": "YulFunctionDefinition", "src": "1490:117:1" }, { "body": { "nodeType": "YulBlock", "src": "1658:32:1", "statements": [ { "nodeType": "YulAssignment", "src": "1668:16:1", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "1679:5:1" }, "variableNames": [ { "name": "cleaned", "nodeType": "YulIdentifier", "src": "1668:7:1" } ] } ] }, "name": "cleanup_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1640:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nodeType": "YulTypedName", "src": "1650:7:1", "type": "" } ], "src": "1613:77:1" }, { "body": { "nodeType": "YulBlock", "src": "1739:79:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1796:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1805:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1808:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1798:6:1" }, "nodeType": "YulFunctionCall", "src": "1798:12:1" }, "nodeType": "YulExpressionStatement", "src": "1798:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1762:5:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1787:5:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "1769:17:1" }, "nodeType": "YulFunctionCall", "src": "1769:24:1" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "1759:2:1" }, "nodeType": "YulFunctionCall", "src": "1759:35:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "1752:6:1" }, "nodeType": "YulFunctionCall", "src": "1752:43:1" }, "nodeType": "YulIf", "src": "1749:63:1" } ] }, "name": "validator_revert_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "1732:5:1", "type": "" } ], "src": "1696:122:1" }, { "body": { "nodeType": "YulBlock", "src": "1876:87:1", "statements": [ { "nodeType": "YulAssignment", "src": "1886:29:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1908:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1895:12:1" }, "nodeType": "YulFunctionCall", "src": "1895:20:1" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1886:5:1" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "1951:5:1" } ], "functionName": { "name": "validator_revert_t_uint256", "nodeType": "YulIdentifier", "src": "1924:26:1" }, "nodeType": "YulFunctionCall", "src": "1924:33:1" }, "nodeType": "YulExpressionStatement", "src": "1924:33:1" } ] }, "name": "abi_decode_t_uint256", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "1854:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "1862:3:1", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "1870:5:1", "type": "" } ], "src": "1824:139:1" }, { "body": { "nodeType": "YulBlock", "src": "2088:608:1", "statements": [ { "nodeType": "YulAssignment", "src": "2098:90:1", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2180:6:1" } ], "functionName": { "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulIdentifier", "src": "2123:56:1" }, "nodeType": "YulFunctionCall", "src": "2123:64:1" } ], "functionName": { "name": "allocate_memory", "nodeType": "YulIdentifier", "src": "2107:15:1" }, "nodeType": "YulFunctionCall", "src": "2107:81:1" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "2098:5:1" } ] }, { "nodeType": "YulVariableDeclaration", "src": "2197:16:1", "value": { "name": "array", "nodeType": "YulIdentifier", "src": "2208:5:1" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "2201:3:1", "type": "" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "2230:5:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "2237:6:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2223:6:1" }, "nodeType": "YulFunctionCall", "src": "2223:21:1" }, "nodeType": "YulExpressionStatement", "src": "2223:21:1" }, { "nodeType": "YulAssignment", "src": "2253:23:1", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "2264:5:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2271:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2260:3:1" }, "nodeType": "YulFunctionCall", "src": "2260:16:1" }, "variableNames": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2253:3:1" } ] }, { "nodeType": "YulVariableDeclaration", "src": "2286:44:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "2304:6:1" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "2316:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2324:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", "src": "2312:3:1" }, "nodeType": "YulFunctionCall", "src": "2312:17:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2300:3:1" }, "nodeType": "YulFunctionCall", "src": "2300:30:1" }, "variables": [ { "name": "srcEnd", "nodeType": "YulTypedName", "src": "2290:6:1", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "2358:103:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", "nodeType": "YulIdentifier", "src": "2372:77:1" }, "nodeType": "YulFunctionCall", "src": "2372:79:1" }, "nodeType": "YulExpressionStatement", "src": "2372:79:1" } ] }, "condition": { "arguments": [ { "name": "srcEnd", "nodeType": "YulIdentifier", "src": "2345:6:1" }, { "name": "end", "nodeType": "YulIdentifier", "src": "2353:3:1" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "2342:2:1" }, "nodeType": "YulFunctionCall", "src": "2342:15:1" }, "nodeType": "YulIf", "src": "2339:122:1" }, { "body": { "nodeType": "YulBlock", "src": "2546:144:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2561:21:1", "value": { "name": "src", "nodeType": "YulIdentifier", "src": "2579:3:1" }, "variables": [ { "name": "elementPos", "nodeType": "YulTypedName", "src": "2565:10:1", "type": "" } ] }, { "expression": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2603:3:1" }, { "arguments": [ { "name": "elementPos", "nodeType": "YulIdentifier", "src": "2629:10:1" }, { "name": "end", "nodeType": "YulIdentifier", "src": "2641:3:1" } ], "functionName": { "name": "abi_decode_t_uint256", "nodeType": "YulIdentifier", "src": "2608:20:1" }, "nodeType": "YulFunctionCall", "src": "2608:37:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "2596:6:1" }, "nodeType": "YulFunctionCall", "src": "2596:50:1" }, "nodeType": "YulExpressionStatement", "src": "2596:50:1" }, { "nodeType": "YulAssignment", "src": "2659:21:1", "value": { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2670:3:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2675:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2666:3:1" }, "nodeType": "YulFunctionCall", "src": "2666:14:1" }, "variableNames": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "2659:3:1" } ] } ] }, "condition": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "2499:3:1" }, { "name": "srcEnd", "nodeType": "YulIdentifier", "src": "2504:6:1" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "2496:2:1" }, "nodeType": "YulFunctionCall", "src": "2496:15:1" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "2512:25:1", "statements": [ { "nodeType": "YulAssignment", "src": "2514:21:1", "value": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "2525:3:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2530:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2521:3:1" }, "nodeType": "YulFunctionCall", "src": "2521:14:1" }, "variableNames": [ { "name": "src", "nodeType": "YulIdentifier", "src": "2514:3:1" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "2474:21:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "2476:17:1", "value": { "name": "offset", "nodeType": "YulIdentifier", "src": "2487:6:1" }, "variables": [ { "name": "src", "nodeType": "YulTypedName", "src": "2480:3:1", "type": "" } ] } ] }, "src": "2470:220:1" } ] }, "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "2058:6:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "2066:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "2074:3:1", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "2082:5:1", "type": "" } ], "src": "1986:710:1" }, { "body": { "nodeType": "YulBlock", "src": "2796:293:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "2845:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nodeType": "YulIdentifier", "src": "2847:77:1" }, "nodeType": "YulFunctionCall", "src": "2847:79:1" }, "nodeType": "YulExpressionStatement", "src": "2847:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "2824:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "2832:4:1", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "2820:3:1" }, "nodeType": "YulFunctionCall", "src": "2820:17:1" }, { "name": "end", "nodeType": "YulIdentifier", "src": "2839:3:1" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "2816:3:1" }, "nodeType": "YulFunctionCall", "src": "2816:27:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "2809:6:1" }, "nodeType": "YulFunctionCall", "src": "2809:35:1" }, "nodeType": "YulIf", "src": "2806:122:1" }, { "nodeType": "YulVariableDeclaration", "src": "2937:34:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "2964:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "2951:12:1" }, "nodeType": "YulFunctionCall", "src": "2951:20:1" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "2941:6:1", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "2980:103:1", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "3056:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3064:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3052:3:1" }, "nodeType": "YulFunctionCall", "src": "3052:17:1" }, { "name": "length", "nodeType": "YulIdentifier", "src": "3071:6:1" }, { "name": "end", "nodeType": "YulIdentifier", "src": "3079:3:1" } ], "functionName": { "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulIdentifier", "src": "2989:62:1" }, "nodeType": "YulFunctionCall", "src": "2989:94:1" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "2980:5:1" } ] } ] }, "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "2774:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "2782:3:1", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "2790:5:1", "type": "" } ], "src": "2719:370:1" }, { "body": { "nodeType": "YulBlock", "src": "3186:448:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "3232:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nodeType": "YulIdentifier", "src": "3234:77:1" }, "nodeType": "YulFunctionCall", "src": "3234:79:1" }, "nodeType": "YulExpressionStatement", "src": "3234:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "3207:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "3216:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "3203:3:1" }, "nodeType": "YulFunctionCall", "src": "3203:23:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3228:2:1", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "3199:3:1" }, "nodeType": "YulFunctionCall", "src": "3199:32:1" }, "nodeType": "YulIf", "src": "3196:119:1" }, { "nodeType": "YulBlock", "src": "3325:302:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "3340:45:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3371:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3382:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3367:3:1" }, "nodeType": "YulFunctionCall", "src": "3367:17:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "3354:12:1" }, "nodeType": "YulFunctionCall", "src": "3354:31:1" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "3344:6:1", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "3432:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nodeType": "YulIdentifier", "src": "3434:77:1" }, "nodeType": "YulFunctionCall", "src": "3434:79:1" }, "nodeType": "YulExpressionStatement", "src": "3434:79:1" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "3404:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3412:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "3401:2:1" }, "nodeType": "YulFunctionCall", "src": "3401:30:1" }, "nodeType": "YulIf", "src": "3398:117:1" }, { "nodeType": "YulAssignment", "src": "3529:88:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3589:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "3600:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3585:3:1" }, "nodeType": "YulFunctionCall", "src": "3585:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "3609:7:1" } ], "functionName": { "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulIdentifier", "src": "3539:45:1" }, "nodeType": "YulFunctionCall", "src": "3539:78:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3529:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3156:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "3167:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "3179:6:1", "type": "" } ], "src": "3095:539:1" }, { "body": { "nodeType": "YulBlock", "src": "3705:53:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", "src": "3722:3:1" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "3745:5:1" } ], "functionName": { "name": "cleanup_t_uint256", "nodeType": "YulIdentifier", "src": "3727:17:1" }, "nodeType": "YulFunctionCall", "src": "3727:24:1" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "3715:6:1" }, "nodeType": "YulFunctionCall", "src": "3715:37:1" }, "nodeType": "YulExpressionStatement", "src": "3715:37:1" } ] }, "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nodeType": "YulTypedName", "src": "3693:5:1", "type": "" }, { "name": "pos", "nodeType": "YulTypedName", "src": "3700:3:1", "type": "" } ], "src": "3640:118:1" }, { "body": { "nodeType": "YulBlock", "src": "3862:124:1", "statements": [ { "nodeType": "YulAssignment", "src": "3872:26:1", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3884:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3895:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3880:3:1" }, "nodeType": "YulFunctionCall", "src": "3880:18:1" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "3872:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "3952:6:1" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "3965:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "3976:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "3961:3:1" }, "nodeType": "YulFunctionCall", "src": "3961:17:1" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", "nodeType": "YulIdentifier", "src": "3908:43:1" }, "nodeType": "YulFunctionCall", "src": "3908:71:1" }, "nodeType": "YulExpressionStatement", "src": "3908:71:1" } ] }, "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "3834:9:1", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", "src": "3846:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "3857:4:1", "type": "" } ], "src": "3764:222:1" } ] }, "contents": "{ function allocate_unbounded() -> memPtr { memPtr := mload(64) } function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() { revert(0, 0) } function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() { revert(0, 0) } function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() { revert(0, 0) } function round_up_to_mul_of_32(value) -> result { result := and(add(value, 31), not(31)) } function panic_error_0x41() { mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856) mstore(4, 0x41) revert(0, 0x24) } 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 allocate_memory(size) -> memPtr { memPtr := allocate_unbounded() finalize_allocation(memPtr, size) } 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 revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() { revert(0, 0) } function cleanup_t_uint256(value) -> cleaned { cleaned := value } function validator_revert_t_uint256(value) { if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) } } function abi_decode_t_uint256(offset, end) -> value { value := calldataload(offset) validator_revert_t_uint256(value) } // 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 srcEnd := add(offset, mul(length, 0x20)) if gt(srcEnd, end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() } for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) } { let elementPos := src mstore(dst, abi_decode_t_uint256(elementPos, end)) dst := add(dst, 0x20) } } // uint256[] function abi_decode_t_array$_t_uint256_$dyn_memory_ptr(offset, end) -> array { if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() } let length := calldataload(offset) array := abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end) } function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0 { if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() } { let offset := calldataload(add(headStart, 0)) if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() } 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)) } } ", "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 } } }