solidity/test/cmdlineTests/standard_optimizer_generatedSources/output.json
2023-05-26 12:35:31 +02:00

1748 lines
130 KiB
JSON

{
"contracts":
{
"a.sol":
{
"A":
{
"evm":
{
"bytecode":
{
"generatedSources": [],
"object": "<BYTECODE REMOVED>"
},
"deployedBytecode":
{
"generatedSources":
[
{
"ast":
{
"nativeSrc": "0:1445:1",
"nodeType": "YulBlock",
"src": "0:1445:1",
"statements":
[
{
"nativeSrc": "6:3:1",
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body":
{
"nativeSrc": "46:95:1",
"nodeType": "YulBlock",
"src": "46:95:1",
"statements":
[
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "63:1:1",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "70:3:1",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nativeSrc": "75:10:1",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName":
{
"name": "shl",
"nativeSrc": "66:3:1",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nativeSrc": "66:20:1",
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "56:6:1",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nativeSrc": "56:31:1",
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nativeSrc": "56:31:1",
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "103:1:1",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nativeSrc": "106:4:1",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x41"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "96:6:1",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nativeSrc": "96:15:1",
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nativeSrc": "96:15:1",
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "127:1:1",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "130:4:1",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName":
{
"name": "revert",
"nativeSrc": "120:6:1",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nativeSrc": "120:15:1",
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nativeSrc": "120:15:1",
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x41",
"nativeSrc": "14:127:1",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body":
{
"nativeSrc": "241:1020:1",
"nodeType": "YulBlock",
"src": "241:1020:1",
"statements":
[
{
"nativeSrc": "251:12:1",
"nodeType": "YulVariableDeclaration",
"src": "251:12:1",
"value":
{
"kind": "number",
"nativeSrc": "261:2:1",
"nodeType": "YulLiteral",
"src": "261:2:1",
"type": "",
"value": "32"
},
"variables":
[
{
"name": "_1",
"nativeSrc": "255:2:1",
"nodeType": "YulTypedName",
"src": "255:2:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "308:16:1",
"nodeType": "YulBlock",
"src": "308:16:1",
"statements":
[
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "317:1:1",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:1",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName":
{
"name": "revert",
"nativeSrc": "310:6:1",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"condition":
{
"arguments":
[
{
"arguments":
[
{
"name": "dataEnd",
"nativeSrc": "283:7:1",
"nodeType": "YulIdentifier",
"src": "283:7:1"
},
{
"name": "headStart",
"nativeSrc": "292:9:1",
"nodeType": "YulIdentifier",
"src": "292:9:1"
}
],
"functionName":
{
"name": "sub",
"nativeSrc": "279:3:1",
"nodeType": "YulIdentifier",
"src": "279:3:1"
},
"nativeSrc": "279:23:1",
"nodeType": "YulFunctionCall",
"src": "279:23:1"
},
{
"name": "_1",
"nativeSrc": "304:2:1",
"nodeType": "YulIdentifier",
"src": "304:2:1"
}
],
"functionName":
{
"name": "slt",
"nativeSrc": "275:3:1",
"nodeType": "YulIdentifier",
"src": "275:3:1"
},
"nativeSrc": "275:32:1",
"nodeType": "YulFunctionCall",
"src": "275:32:1"
},
"nativeSrc": "272:52:1",
"nodeType": "YulIf",
"src": "272:52:1"
},
{
"nativeSrc": "333:37:1",
"nodeType": "YulVariableDeclaration",
"src": "333:37:1",
"value":
{
"arguments":
[
{
"name": "headStart",
"nativeSrc": "360:9:1",
"nodeType": "YulIdentifier",
"src": "360:9:1"
}
],
"functionName":
{
"name": "calldataload",
"nativeSrc": "347:12:1",
"nodeType": "YulIdentifier",
"src": "347:12:1"
},
"nativeSrc": "347:23:1",
"nodeType": "YulFunctionCall",
"src": "347:23:1"
},
"variables":
[
{
"name": "offset",
"nativeSrc": "337:6:1",
"nodeType": "YulTypedName",
"src": "337:6:1",
"type": ""
}
]
},
{
"nativeSrc": "379:28:1",
"nodeType": "YulVariableDeclaration",
"src": "379:28:1",
"value":
{
"kind": "number",
"nativeSrc": "389:18:1",
"nodeType": "YulLiteral",
"src": "389:18:1",
"type": "",
"value": "0xffffffffffffffff"
},
"variables":
[
{
"name": "_2",
"nativeSrc": "383:2:1",
"nodeType": "YulTypedName",
"src": "383:2:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "434:16:1",
"nodeType": "YulBlock",
"src": "434:16:1",
"statements":
[
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "443:1:1",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "446:1:1",
"nodeType": "YulLiteral",
"src": "446:1:1",
"type": "",
"value": "0"
}
],
"functionName":
{
"name": "revert",
"nativeSrc": "436:6:1",
"nodeType": "YulIdentifier",
"src": "436:6:1"
},
"nativeSrc": "436:12:1",
"nodeType": "YulFunctionCall",
"src": "436:12:1"
},
"nativeSrc": "436:12:1",
"nodeType": "YulExpressionStatement",
"src": "436:12:1"
}
]
},
"condition":
{
"arguments":
[
{
"name": "offset",
"nativeSrc": "422:6:1",
"nodeType": "YulIdentifier",
"src": "422:6:1"
},
{
"name": "_2",
"nativeSrc": "430:2:1",
"nodeType": "YulIdentifier",
"src": "430:2:1"
}
],
"functionName":
{
"name": "gt",
"nativeSrc": "419:2:1",
"nodeType": "YulIdentifier",
"src": "419:2:1"
},
"nativeSrc": "419:14:1",
"nodeType": "YulFunctionCall",
"src": "419:14:1"
},
"nativeSrc": "416:34:1",
"nodeType": "YulIf",
"src": "416:34:1"
},
{
"nativeSrc": "459:32:1",
"nodeType": "YulVariableDeclaration",
"src": "459:32:1",
"value":
{
"arguments":
[
{
"name": "headStart",
"nativeSrc": "473:9:1",
"nodeType": "YulIdentifier",
"src": "473:9:1"
},
{
"name": "offset",
"nativeSrc": "484:6:1",
"nodeType": "YulIdentifier",
"src": "484:6:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "469:3:1",
"nodeType": "YulIdentifier",
"src": "469:3:1"
},
"nativeSrc": "469:22:1",
"nodeType": "YulFunctionCall",
"src": "469:22:1"
},
"variables":
[
{
"name": "_3",
"nativeSrc": "463:2:1",
"nodeType": "YulTypedName",
"src": "463:2:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "539:16:1",
"nodeType": "YulBlock",
"src": "539:16:1",
"statements":
[
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "548:1:1",
"nodeType": "YulLiteral",
"src": "548:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "551:1:1",
"nodeType": "YulLiteral",
"src": "551:1:1",
"type": "",
"value": "0"
}
],
"functionName":
{
"name": "revert",
"nativeSrc": "541:6:1",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nativeSrc": "541:12:1",
"nodeType": "YulFunctionCall",
"src": "541:12:1"
},
"nativeSrc": "541:12:1",
"nodeType": "YulExpressionStatement",
"src": "541:12:1"
}
]
},
"condition":
{
"arguments":
[
{
"arguments":
[
{
"arguments":
[
{
"name": "_3",
"nativeSrc": "518:2:1",
"nodeType": "YulIdentifier",
"src": "518:2:1"
},
{
"kind": "number",
"nativeSrc": "522:4:1",
"nodeType": "YulLiteral",
"src": "522:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "514:3:1",
"nodeType": "YulIdentifier",
"src": "514:3:1"
},
"nativeSrc": "514:13:1",
"nodeType": "YulFunctionCall",
"src": "514:13:1"
},
{
"name": "dataEnd",
"nativeSrc": "529:7:1",
"nodeType": "YulIdentifier",
"src": "529:7:1"
}
],
"functionName":
{
"name": "slt",
"nativeSrc": "510:3:1",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nativeSrc": "510:27:1",
"nodeType": "YulFunctionCall",
"src": "510:27:1"
}
],
"functionName":
{
"name": "iszero",
"nativeSrc": "503:6:1",
"nodeType": "YulIdentifier",
"src": "503:6:1"
},
"nativeSrc": "503:35:1",
"nodeType": "YulFunctionCall",
"src": "503:35:1"
},
"nativeSrc": "500:55:1",
"nodeType": "YulIf",
"src": "500:55:1"
},
{
"nativeSrc": "564:26:1",
"nodeType": "YulVariableDeclaration",
"src": "564:26:1",
"value":
{
"arguments":
[
{
"name": "_3",
"nativeSrc": "587:2:1",
"nodeType": "YulIdentifier",
"src": "587:2:1"
}
],
"functionName":
{
"name": "calldataload",
"nativeSrc": "574:12:1",
"nodeType": "YulIdentifier",
"src": "574:12:1"
},
"nativeSrc": "574:16:1",
"nodeType": "YulFunctionCall",
"src": "574:16:1"
},
"variables":
[
{
"name": "_4",
"nativeSrc": "568:2:1",
"nodeType": "YulTypedName",
"src": "568:2:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "613:22:1",
"nodeType": "YulBlock",
"src": "613:22:1",
"statements":
[
{
"expression":
{
"arguments": [],
"functionName":
{
"name": "panic_error_0x41",
"nativeSrc": "615:16:1",
"nodeType": "YulIdentifier",
"src": "615:16:1"
},
"nativeSrc": "615:18:1",
"nodeType": "YulFunctionCall",
"src": "615:18:1"
},
"nativeSrc": "615:18:1",
"nodeType": "YulExpressionStatement",
"src": "615:18:1"
}
]
},
"condition":
{
"arguments":
[
{
"name": "_4",
"nativeSrc": "605:2:1",
"nodeType": "YulIdentifier",
"src": "605:2:1"
},
{
"name": "_2",
"nativeSrc": "609:2:1",
"nodeType": "YulIdentifier",
"src": "609:2:1"
}
],
"functionName":
{
"name": "gt",
"nativeSrc": "602:2:1",
"nodeType": "YulIdentifier",
"src": "602:2:1"
},
"nativeSrc": "602:10:1",
"nodeType": "YulFunctionCall",
"src": "602:10:1"
},
"nativeSrc": "599:36:1",
"nodeType": "YulIf",
"src": "599:36:1"
},
{
"nativeSrc": "644:20:1",
"nodeType": "YulVariableDeclaration",
"src": "644:20:1",
"value":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "658:1:1",
"nodeType": "YulLiteral",
"src": "658:1:1",
"type": "",
"value": "5"
},
{
"name": "_4",
"nativeSrc": "661:2:1",
"nodeType": "YulIdentifier",
"src": "661:2:1"
}
],
"functionName":
{
"name": "shl",
"nativeSrc": "654:3:1",
"nodeType": "YulIdentifier",
"src": "654:3:1"
},
"nativeSrc": "654:10:1",
"nodeType": "YulFunctionCall",
"src": "654:10:1"
},
"variables":
[
{
"name": "_5",
"nativeSrc": "648:2:1",
"nodeType": "YulTypedName",
"src": "648:2:1",
"type": ""
}
]
},
{
"nativeSrc": "673:23:1",
"nodeType": "YulVariableDeclaration",
"src": "673:23:1",
"value":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "693:2:1",
"nodeType": "YulLiteral",
"src": "693:2:1",
"type": "",
"value": "64"
}
],
"functionName":
{
"name": "mload",
"nativeSrc": "687:5:1",
"nodeType": "YulIdentifier",
"src": "687:5:1"
},
"nativeSrc": "687:9:1",
"nodeType": "YulFunctionCall",
"src": "687:9:1"
},
"variables":
[
{
"name": "memPtr",
"nativeSrc": "677:6:1",
"nodeType": "YulTypedName",
"src": "677:6:1",
"type": ""
}
]
},
{
"nativeSrc": "705:56:1",
"nodeType": "YulVariableDeclaration",
"src": "705:56:1",
"value":
{
"arguments":
[
{
"name": "memPtr",
"nativeSrc": "727:6:1",
"nodeType": "YulIdentifier",
"src": "727:6:1"
},
{
"arguments":
[
{
"arguments":
[
{
"name": "_5",
"nativeSrc": "743:2:1",
"nodeType": "YulIdentifier",
"src": "743:2:1"
},
{
"kind": "number",
"nativeSrc": "747:2:1",
"nodeType": "YulLiteral",
"src": "747:2:1",
"type": "",
"value": "63"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "739:3:1",
"nodeType": "YulIdentifier",
"src": "739:3:1"
},
"nativeSrc": "739:11:1",
"nodeType": "YulFunctionCall",
"src": "739:11:1"
},
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "756:2:1",
"nodeType": "YulLiteral",
"src": "756:2:1",
"type": "",
"value": "31"
}
],
"functionName":
{
"name": "not",
"nativeSrc": "752:3:1",
"nodeType": "YulIdentifier",
"src": "752:3:1"
},
"nativeSrc": "752:7:1",
"nodeType": "YulFunctionCall",
"src": "752:7:1"
}
],
"functionName":
{
"name": "and",
"nativeSrc": "735:3:1",
"nodeType": "YulIdentifier",
"src": "735:3:1"
},
"nativeSrc": "735:25:1",
"nodeType": "YulFunctionCall",
"src": "735:25:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "723:3:1",
"nodeType": "YulIdentifier",
"src": "723:3:1"
},
"nativeSrc": "723:38:1",
"nodeType": "YulFunctionCall",
"src": "723:38:1"
},
"variables":
[
{
"name": "newFreePtr",
"nativeSrc": "709:10:1",
"nodeType": "YulTypedName",
"src": "709:10:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "820:22:1",
"nodeType": "YulBlock",
"src": "820:22:1",
"statements":
[
{
"expression":
{
"arguments": [],
"functionName":
{
"name": "panic_error_0x41",
"nativeSrc": "822:16:1",
"nodeType": "YulIdentifier",
"src": "822:16:1"
},
"nativeSrc": "822:18:1",
"nodeType": "YulFunctionCall",
"src": "822:18:1"
},
"nativeSrc": "822:18:1",
"nodeType": "YulExpressionStatement",
"src": "822:18:1"
}
]
},
"condition":
{
"arguments":
[
{
"arguments":
[
{
"name": "newFreePtr",
"nativeSrc": "779:10:1",
"nodeType": "YulIdentifier",
"src": "779:10:1"
},
{
"name": "_2",
"nativeSrc": "791:2:1",
"nodeType": "YulIdentifier",
"src": "791:2:1"
}
],
"functionName":
{
"name": "gt",
"nativeSrc": "776:2:1",
"nodeType": "YulIdentifier",
"src": "776:2:1"
},
"nativeSrc": "776:18:1",
"nodeType": "YulFunctionCall",
"src": "776:18:1"
},
{
"arguments":
[
{
"name": "newFreePtr",
"nativeSrc": "799:10:1",
"nodeType": "YulIdentifier",
"src": "799:10:1"
},
{
"name": "memPtr",
"nativeSrc": "811:6:1",
"nodeType": "YulIdentifier",
"src": "811:6:1"
}
],
"functionName":
{
"name": "lt",
"nativeSrc": "796:2:1",
"nodeType": "YulIdentifier",
"src": "796:2:1"
},
"nativeSrc": "796:22:1",
"nodeType": "YulFunctionCall",
"src": "796:22:1"
}
],
"functionName":
{
"name": "or",
"nativeSrc": "773:2:1",
"nodeType": "YulIdentifier",
"src": "773:2:1"
},
"nativeSrc": "773:46:1",
"nodeType": "YulFunctionCall",
"src": "773:46:1"
},
"nativeSrc": "770:72:1",
"nodeType": "YulIf",
"src": "770:72:1"
},
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "858:2:1",
"nodeType": "YulLiteral",
"src": "858:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nativeSrc": "862:10:1",
"nodeType": "YulIdentifier",
"src": "862:10:1"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "851:6:1",
"nodeType": "YulIdentifier",
"src": "851:6:1"
},
"nativeSrc": "851:22:1",
"nodeType": "YulFunctionCall",
"src": "851:22:1"
},
"nativeSrc": "851:22:1",
"nodeType": "YulExpressionStatement",
"src": "851:22:1"
},
{
"nativeSrc": "882:17:1",
"nodeType": "YulVariableDeclaration",
"src": "882:17:1",
"value":
{
"name": "memPtr",
"nativeSrc": "893:6:1",
"nodeType": "YulIdentifier",
"src": "893:6:1"
},
"variables":
[
{
"name": "dst",
"nativeSrc": "886:3:1",
"nodeType": "YulTypedName",
"src": "886:3:1",
"type": ""
}
]
},
{
"expression":
{
"arguments":
[
{
"name": "memPtr",
"nativeSrc": "915:6:1",
"nodeType": "YulIdentifier",
"src": "915:6:1"
},
{
"name": "_4",
"nativeSrc": "923:2:1",
"nodeType": "YulIdentifier",
"src": "923:2:1"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "908:6:1",
"nodeType": "YulIdentifier",
"src": "908:6:1"
},
"nativeSrc": "908:18:1",
"nodeType": "YulFunctionCall",
"src": "908:18:1"
},
"nativeSrc": "908:18:1",
"nodeType": "YulExpressionStatement",
"src": "908:18:1"
},
{
"nativeSrc": "935:22:1",
"nodeType": "YulAssignment",
"src": "935:22:1",
"value":
{
"arguments":
[
{
"name": "memPtr",
"nativeSrc": "946:6:1",
"nodeType": "YulIdentifier",
"src": "946:6:1"
},
{
"name": "_1",
"nativeSrc": "954:2:1",
"nodeType": "YulIdentifier",
"src": "954:2:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "942:3:1",
"nodeType": "YulIdentifier",
"src": "942:3:1"
},
"nativeSrc": "942:15:1",
"nodeType": "YulFunctionCall",
"src": "942:15:1"
},
"variableNames":
[
{
"name": "dst",
"nativeSrc": "935:3:1",
"nodeType": "YulIdentifier",
"src": "935:3:1"
}
]
},
{
"nativeSrc": "966:34:1",
"nodeType": "YulVariableDeclaration",
"src": "966:34:1",
"value":
{
"arguments":
[
{
"arguments":
[
{
"name": "_3",
"nativeSrc": "988:2:1",
"nodeType": "YulIdentifier",
"src": "988:2:1"
},
{
"name": "_5",
"nativeSrc": "992:2:1",
"nodeType": "YulIdentifier",
"src": "992:2:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "984:3:1",
"nodeType": "YulIdentifier",
"src": "984:3:1"
},
"nativeSrc": "984:11:1",
"nodeType": "YulFunctionCall",
"src": "984:11:1"
},
{
"name": "_1",
"nativeSrc": "997:2:1",
"nodeType": "YulIdentifier",
"src": "997:2:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "980:3:1",
"nodeType": "YulIdentifier",
"src": "980:3:1"
},
"nativeSrc": "980:20:1",
"nodeType": "YulFunctionCall",
"src": "980:20:1"
},
"variables":
[
{
"name": "srcEnd",
"nativeSrc": "970:6:1",
"nodeType": "YulTypedName",
"src": "970:6:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "1032:16:1",
"nodeType": "YulBlock",
"src": "1032:16:1",
"statements":
[
{
"expression":
{
"arguments":
[
{
"kind": "number",
"nativeSrc": "1041:1:1",
"nodeType": "YulLiteral",
"src": "1041:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "1044:1:1",
"nodeType": "YulLiteral",
"src": "1044:1:1",
"type": "",
"value": "0"
}
],
"functionName":
{
"name": "revert",
"nativeSrc": "1034:6:1",
"nodeType": "YulIdentifier",
"src": "1034:6:1"
},
"nativeSrc": "1034:12:1",
"nodeType": "YulFunctionCall",
"src": "1034:12:1"
},
"nativeSrc": "1034:12:1",
"nodeType": "YulExpressionStatement",
"src": "1034:12:1"
}
]
},
"condition":
{
"arguments":
[
{
"name": "srcEnd",
"nativeSrc": "1015:6:1",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
},
{
"name": "dataEnd",
"nativeSrc": "1023:7:1",
"nodeType": "YulIdentifier",
"src": "1023:7:1"
}
],
"functionName":
{
"name": "gt",
"nativeSrc": "1012:2:1",
"nodeType": "YulIdentifier",
"src": "1012:2:1"
},
"nativeSrc": "1012:19:1",
"nodeType": "YulFunctionCall",
"src": "1012:19:1"
},
"nativeSrc": "1009:39:1",
"nodeType": "YulIf",
"src": "1009:39:1"
},
{
"nativeSrc": "1057:22:1",
"nodeType": "YulVariableDeclaration",
"src": "1057:22:1",
"value":
{
"arguments":
[
{
"name": "_3",
"nativeSrc": "1072:2:1",
"nodeType": "YulIdentifier",
"src": "1072:2:1"
},
{
"name": "_1",
"nativeSrc": "1076:2:1",
"nodeType": "YulIdentifier",
"src": "1076:2:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "1068:3:1",
"nodeType": "YulIdentifier",
"src": "1068:3:1"
},
"nativeSrc": "1068:11:1",
"nodeType": "YulFunctionCall",
"src": "1068:11:1"
},
"variables":
[
{
"name": "src",
"nativeSrc": "1061:3:1",
"nodeType": "YulTypedName",
"src": "1061:3:1",
"type": ""
}
]
},
{
"body":
{
"nativeSrc": "1144:86:1",
"nodeType": "YulBlock",
"src": "1144:86:1",
"statements":
[
{
"expression":
{
"arguments":
[
{
"name": "dst",
"nativeSrc": "1165:3:1",
"nodeType": "YulIdentifier",
"src": "1165:3:1"
},
{
"arguments":
[
{
"name": "src",
"nativeSrc": "1183:3:1",
"nodeType": "YulIdentifier",
"src": "1183:3:1"
}
],
"functionName":
{
"name": "calldataload",
"nativeSrc": "1170:12:1",
"nodeType": "YulIdentifier",
"src": "1170:12:1"
},
"nativeSrc": "1170:17:1",
"nodeType": "YulFunctionCall",
"src": "1170:17:1"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "1158:6:1",
"nodeType": "YulIdentifier",
"src": "1158:6:1"
},
"nativeSrc": "1158:30:1",
"nodeType": "YulFunctionCall",
"src": "1158:30:1"
},
"nativeSrc": "1158:30:1",
"nodeType": "YulExpressionStatement",
"src": "1158:30:1"
},
{
"nativeSrc": "1201:19:1",
"nodeType": "YulAssignment",
"src": "1201:19:1",
"value":
{
"arguments":
[
{
"name": "dst",
"nativeSrc": "1212:3:1",
"nodeType": "YulIdentifier",
"src": "1212:3:1"
},
{
"name": "_1",
"nativeSrc": "1217:2:1",
"nodeType": "YulIdentifier",
"src": "1217:2:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "1208:3:1",
"nodeType": "YulIdentifier",
"src": "1208:3:1"
},
"nativeSrc": "1208:12:1",
"nodeType": "YulFunctionCall",
"src": "1208:12:1"
},
"variableNames":
[
{
"name": "dst",
"nativeSrc": "1201:3:1",
"nodeType": "YulIdentifier",
"src": "1201:3:1"
}
]
}
]
},
"condition":
{
"arguments":
[
{
"name": "src",
"nativeSrc": "1099:3:1",
"nodeType": "YulIdentifier",
"src": "1099:3:1"
},
{
"name": "srcEnd",
"nativeSrc": "1104:6:1",
"nodeType": "YulIdentifier",
"src": "1104:6:1"
}
],
"functionName":
{
"name": "lt",
"nativeSrc": "1096:2:1",
"nodeType": "YulIdentifier",
"src": "1096:2:1"
},
"nativeSrc": "1096:15:1",
"nodeType": "YulFunctionCall",
"src": "1096:15:1"
},
"nativeSrc": "1088:142:1",
"nodeType": "YulForLoop",
"post":
{
"nativeSrc": "1112:23:1",
"nodeType": "YulBlock",
"src": "1112:23:1",
"statements":
[
{
"nativeSrc": "1114:19:1",
"nodeType": "YulAssignment",
"src": "1114:19:1",
"value":
{
"arguments":
[
{
"name": "src",
"nativeSrc": "1125:3:1",
"nodeType": "YulIdentifier",
"src": "1125:3:1"
},
{
"name": "_1",
"nativeSrc": "1130:2:1",
"nodeType": "YulIdentifier",
"src": "1130:2:1"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "1121:3:1",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
"nativeSrc": "1121:12:1",
"nodeType": "YulFunctionCall",
"src": "1121:12:1"
},
"variableNames":
[
{
"name": "src",
"nativeSrc": "1114:3:1",
"nodeType": "YulIdentifier",
"src": "1114:3:1"
}
]
}
]
},
"pre":
{
"nativeSrc": "1092:3:1",
"nodeType": "YulBlock",
"src": "1092:3:1",
"statements": []
},
"src": "1088:142:1"
},
{
"nativeSrc": "1239:16:1",
"nodeType": "YulAssignment",
"src": "1239:16:1",
"value":
{
"name": "memPtr",
"nativeSrc": "1249:6:1",
"nodeType": "YulIdentifier",
"src": "1249:6:1"
},
"variableNames":
[
{
"name": "value0",
"nativeSrc": "1239:6:1",
"nodeType": "YulIdentifier",
"src": "1239:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr",
"nativeSrc": "146:1115:1",
"nodeType": "YulFunctionDefinition",
"parameters":
[
{
"name": "headStart",
"nativeSrc": "207:9:1",
"nodeType": "YulTypedName",
"src": "207:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "218:7:1",
"nodeType": "YulTypedName",
"src": "218:7:1",
"type": ""
}
],
"returnVariables":
[
{
"name": "value0",
"nativeSrc": "230:6:1",
"nodeType": "YulTypedName",
"src": "230:6:1",
"type": ""
}
],
"src": "146:1115:1"
},
{
"body":
{
"nativeSrc": "1367:76:1",
"nodeType": "YulBlock",
"src": "1367:76:1",
"statements":
[
{
"nativeSrc": "1377:26:1",
"nodeType": "YulAssignment",
"src": "1377:26:1",
"value":
{
"arguments":
[
{
"name": "headStart",
"nativeSrc": "1389:9:1",
"nodeType": "YulIdentifier",
"src": "1389:9:1"
},
{
"kind": "number",
"nativeSrc": "1400:2:1",
"nodeType": "YulLiteral",
"src": "1400:2:1",
"type": "",
"value": "32"
}
],
"functionName":
{
"name": "add",
"nativeSrc": "1385:3:1",
"nodeType": "YulIdentifier",
"src": "1385:3:1"
},
"nativeSrc": "1385:18:1",
"nodeType": "YulFunctionCall",
"src": "1385:18:1"
},
"variableNames":
[
{
"name": "tail",
"nativeSrc": "1377:4:1",
"nodeType": "YulIdentifier",
"src": "1377:4:1"
}
]
},
{
"expression":
{
"arguments":
[
{
"name": "headStart",
"nativeSrc": "1419:9:1",
"nodeType": "YulIdentifier",
"src": "1419:9:1"
},
{
"name": "value0",
"nativeSrc": "1430:6:1",
"nodeType": "YulIdentifier",
"src": "1430:6:1"
}
],
"functionName":
{
"name": "mstore",
"nativeSrc": "1412:6:1",
"nodeType": "YulIdentifier",
"src": "1412:6:1"
},
"nativeSrc": "1412:25:1",
"nodeType": "YulFunctionCall",
"src": "1412:25:1"
},
"nativeSrc": "1412:25:1",
"nodeType": "YulExpressionStatement",
"src": "1412:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nativeSrc": "1266:177:1",
"nodeType": "YulFunctionDefinition",
"parameters":
[
{
"name": "headStart",
"nativeSrc": "1336:9:1",
"nodeType": "YulTypedName",
"src": "1336:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1347:6:1",
"nodeType": "YulTypedName",
"src": "1347:6:1",
"type": ""
}
],
"returnVariables":
[
{
"name": "tail",
"nativeSrc": "1358:4:1",
"nodeType": "YulTypedName",
"src": "1358:4:1",
"type": ""
}
],
"src": "1266:177:1"
}
]
},
"contents": "{
{ }
function panic_error_0x41()
{
mstore(0, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(0, 0x24)
}
function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0
{
let _1 := 32
if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }
let offset := calldataload(headStart)
let _2 := 0xffffffffffffffff
if gt(offset, _2) { revert(0, 0) }
let _3 := add(headStart, offset)
if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }
let _4 := calldataload(_3)
if gt(_4, _2) { panic_error_0x41() }
let _5 := shl(5, _4)
let memPtr := mload(64)
let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))
if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }
mstore(64, newFreePtr)
let dst := memPtr
mstore(memPtr, _4)
dst := add(memPtr, _1)
let srcEnd := add(add(_3, _5), _1)
if gt(srcEnd, dataEnd) { revert(0, 0) }
let src := add(_3, _1)
for { } lt(src, srcEnd) { src := add(src, _1) }
{
mstore(dst, calldataload(src))
dst := add(dst, _1)
}
value0 := memPtr
}
function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail
{
tail := add(headStart, 32)
mstore(headStart, value0)
}
}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
]
}
}
}
}
},
"sources":
{
"a.sol":
{
"id": 0
}
}
}