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