{ "contracts": { "combined_json_generated_sources/input.sol:C": { "generated-sources": [], "generated-sources-runtime": [ { "ast": { "nodeType": "YulBlock", "src": "0:825:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "114:277:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "163:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "172:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "175:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "165:6:1" }, "nodeType": "YulFunctionCall", "src": "165:12:1" }, "nodeType": "YulExpressionStatement", "src": "165:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "142:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "150:4:1", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "138:3:1" }, "nodeType": "YulFunctionCall", "src": "138:17:1" }, { "name": "end", "nodeType": "YulIdentifier", "src": "157:3:1" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "134:3:1" }, "nodeType": "YulFunctionCall", "src": "134:27:1" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "127:6:1" }, "nodeType": "YulFunctionCall", "src": "127:35:1" }, "nodeType": "YulIf", "src": "124:2:1" }, { "nodeType": "YulAssignment", "src": "188:30:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "211:6:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "198:12:1" }, "nodeType": "YulFunctionCall", "src": "198:20:1" }, "variableNames": [ { "name": "length", "nodeType": "YulIdentifier", "src": "188:6:1" } ] }, { "body": { "nodeType": "YulBlock", "src": "261:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "270:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "273:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "263:6:1" }, "nodeType": "YulFunctionCall", "src": "263:12:1" }, "nodeType": "YulExpressionStatement", "src": "263:12:1" } ] }, "condition": { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "233:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "241:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "230:2:1" }, "nodeType": "YulFunctionCall", "src": "230:30:1" }, "nodeType": "YulIf", "src": "227:2:1" }, { "nodeType": "YulAssignment", "src": "286:29:1", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "302:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "310:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "298:3:1" }, "nodeType": "YulFunctionCall", "src": "298:17:1" }, "variableNames": [ { "name": "arrayPos", "nodeType": "YulIdentifier", "src": "286:8:1" } ] }, { "body": { "nodeType": "YulBlock", "src": "369:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "378:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "381:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "371:6:1" }, "nodeType": "YulFunctionCall", "src": "371:12:1" }, "nodeType": "YulExpressionStatement", "src": "371:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "arrayPos", "nodeType": "YulIdentifier", "src": "334:8:1" }, { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "348:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "356:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", "src": "344:3:1" }, "nodeType": "YulFunctionCall", "src": "344:17:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "330:3:1" }, "nodeType": "YulFunctionCall", "src": "330:32:1" }, { "name": "end", "nodeType": "YulIdentifier", "src": "364:3:1" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "327:2:1" }, "nodeType": "YulFunctionCall", "src": "327:41:1" }, "nodeType": "YulIf", "src": "324:2:1" } ] }, "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "81:6:1", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "89:3:1", "type": "" } ], "returnVariables": [ { "name": "arrayPos", "nodeType": "YulTypedName", "src": "97:8:1", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "107:6:1", "type": "" } ], "src": "24:367:1" }, { "body": { "nodeType": "YulBlock", "src": "498:324:1", "statements": [ { "body": { "nodeType": "YulBlock", "src": "544:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "553:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "556:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "546:6:1" }, "nodeType": "YulFunctionCall", "src": "546:12:1" }, "nodeType": "YulExpressionStatement", "src": "546:12:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "519:7:1" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "528:9:1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "515:3:1" }, "nodeType": "YulFunctionCall", "src": "515:23:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "540:2:1", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "511:3:1" }, "nodeType": "YulFunctionCall", "src": "511:32:1" }, "nodeType": "YulIf", "src": "508:2:1" }, { "nodeType": "YulBlock", "src": "570:245:1", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "585:45:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "616:9:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "627:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "612:3:1" }, "nodeType": "YulFunctionCall", "src": "612:17:1" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "599:12:1" }, "nodeType": "YulFunctionCall", "src": "599:31:1" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "589:6:1", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "677:16:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "686:1:1", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "689:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "679:6:1" }, "nodeType": "YulFunctionCall", "src": "679:12:1" }, "nodeType": "YulExpressionStatement", "src": "679:12:1" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "649:6:1" }, { "kind": "number", "nodeType": "YulLiteral", "src": "657:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "646:2:1" }, "nodeType": "YulFunctionCall", "src": "646:30:1" }, "nodeType": "YulIf", "src": "643:2:1" }, { "nodeType": "YulAssignment", "src": "707:98:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "777:9:1" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "788:6:1" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "773:3:1" }, "nodeType": "YulFunctionCall", "src": "773:22:1" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "797:7:1" } ], "functionName": { "name": "abi_decode_t_array$_t_uint256_$dyn_calldata_ptr", "nodeType": "YulIdentifier", "src": "725:47:1" }, "nodeType": "YulFunctionCall", "src": "725:80:1" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "707:6:1" }, { "name": "value1", "nodeType": "YulIdentifier", "src": "715:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "460:9:1", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "471:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "483:6:1", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "491:6:1", "type": "" } ], "src": "397:425:1" } ] }, "contents": "{\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert(0, 0) }\n }\n\n function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0, value1 := abi_decode_t_array$_t_uint256_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ] } }, "version": "" }