Created
February 22, 2022 09:05
-
-
Save cxkoda/bc58fb11eb62980796163efaa1ea3255 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=true&runs=200&gist=
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| REMIX EXAMPLE PROJECT | |
| Remix example project is present when Remix loads for the very first time or there are no files existing in the File Explorer. | |
| It contains 3 directories: | |
| 1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name. | |
| 2. 'scripts': Holds two scripts to deploy a contract. It is explained below. | |
| 3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity. | |
| SCRIPTS | |
| The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract. | |
| For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required). | |
| Scripts have full access to the web3.js and ethers.js libraries. | |
| To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled. | |
| Output from script will appear in remix terminal. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_53": { | |
| "entryPoint": null, | |
| "id": 53, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_tuple_t_addresst_uint256_fromMemory": { | |
| "entryPoint": 352, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 2 | |
| }, | |
| "increment_t_uint256": { | |
| "entryPoint": 410, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "panic_error_0x32": { | |
| "entryPoint": 451, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x41": { | |
| "entryPoint": 473, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:868:2", | |
| "statements": [ | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "6:3:2", | |
| "statements": [] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "112:253:2", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "158:16:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "167:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "170:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "160:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "160:12:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "160:12:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "133:7:2" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "142:9:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "129:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "129:23:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "154:2:2", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "125:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "125:32:2" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "122:52:2" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "183:29:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "202:9:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "196:5:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "196:16:2" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "187:5:2", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "275:16:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "284:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "287:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "277:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "277:12:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "277:12:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "234:5:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "245:5:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:3:2", | |
| "type": "", | |
| "value": "160" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "265:1:2", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "256:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "256:11:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "269:1:2", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "252:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "252:19:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "241:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "241:31:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:2:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:42:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "224:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "224:50:2" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "221:70:2" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "300:15:2", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "310:5:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "300:6:2" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "324:35:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "344:9:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "355:2:2", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "340:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "340:18:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "334:5:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "334:25:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nodeType": "YulIdentifier", | |
| "src": "324:6:2" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_addresst_uint256_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "70:9:2", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "81:7:2", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "93:6:2", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulTypedName", | |
| "src": "101:6:2", | |
| "type": "" | |
| } | |
| ], | |
| "src": "14:351:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "417:185:2", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "456:111:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "477:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "484:3:2", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "489:10:2", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "480:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "480:20:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "470:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "470:31:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "470:31:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "521:1:2", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "524:4:2", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "514:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "514:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "514:15:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "549:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "552:4:2", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "542:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "542:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "542:15:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "433:5:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "444:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nodeType": "YulIdentifier", | |
| "src": "440:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "440:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "430:2:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "430:17:2" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "427:140:2" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "576:20:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "587:5:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "594:1:2", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "583:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "583:13:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "ret", | |
| "nodeType": "YulIdentifier", | |
| "src": "576:3:2" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "increment_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "399:5:2", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "ret", | |
| "nodeType": "YulTypedName", | |
| "src": "409:3:2", | |
| "type": "" | |
| } | |
| ], | |
| "src": "370:232:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "639:95:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "656:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "663:3:2", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "668:10:2", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "659:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "659:20:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "649:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "649:31:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "649:31:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "696:1:2", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "699:4:2", | |
| "type": "", | |
| "value": "0x32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "689:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "689:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "689:15:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "720:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "723:4:2", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "713:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "713:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "713:15:2" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x32", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "607:127:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "771:95:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "788:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "795:3:2", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "800:10:2", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "791:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "791:20:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "781:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "781:31:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "781:31:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "828:1:2", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "831:4:2", | |
| "type": "", | |
| "value": "0x41" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "821:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "821:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "821:15:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "852:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "855:4:2", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "845:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "845:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "845:15:2" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "739:127:2" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n { }\n function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n value1 := mload(add(headStart, 32))\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}", | |
| "id": 2, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b5060405161073d38038061073d83398101604081905261002f91610160565b806001600160401b03811115610047576100476101d9565b604051908082528060200260200182016040528015610070578160200160208202803683370190505b508051610085916000916020909101906100e6565b5060005b818110156100de5782600082815481106100a5576100a56101c3565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556100d78161019a565b9050610089565b5050506101ef565b82805482825590600052602060002090810192821561013b579160200282015b8281111561013b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610106565b5061014792915061014b565b5090565b5b80821115610147576000815560010161014c565b6000806040838503121561017357600080fd5b82516001600160a01b038116811461018a57600080fd5b6020939093015192949293505050565b60006000198214156101bc57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61053f806101fe6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631532363d146100515780633e23ee431461005b57806367feb927146100635780637220fbc11461006b575b600080fd5b610059610073565b005b6100596101c9565b610059610278565b6100596102b4565b6040518060400160405280600d81526020016c636f707941646472657373657360981b81525060005a6000549091508067ffffffffffffffff8111156100bb576100bb6104f3565b6040519080825280602002602001820160405280156100e4578160200160208202803683370190505b5080516100f9916001916020909101906103be565b5060005b8181101561017d5760008181548110610118576101186104dd565b600091825260209091200154600180546001600160a01b039092169183908110610144576101446104dd565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055610176816104ac565b90506100fd565b50505a61018a9082610495565b90507f8238a41a9a778e1687ca89168dbb4ec6472d747184eec9d94bbf4993c336521f82826040516101bd929190610438565b60405180910390a15050565b6040518060400160405280600b81526020016a63616c6c4164647265737360a81b81525060005a90506001600081548110610206576102066104dd565b600091825260209091200154604051636057361d60e01b8152600a60048201526001600160a01b0390911690636057361d90602401600060405180830381600087803b15801561025557600080fd5b505af1158015610269573d6000803e3d6000fd5b505050505a61018a9082610495565b6040518060400160405280600a81526020016918d85b1b13d89a9958dd60b21b81525060005a90506002600081548110610206576102066104dd565b6040518060400160405280600d81526020016c6372656174654f626a6563747360981b81525060005a6000549091508067ffffffffffffffff8111156102fc576102fc6104f3565b604051908082528060200260200182016040528015610325578160200160208202803683370190505b50805161033a916002916020909101906103be565b5060005b8181101561017d5760008181548110610359576103596104dd565b600091825260209091200154600280546001600160a01b039092169183908110610385576103856104dd565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556103b7816104ac565b905061033e565b828054828255906000526020600020908101928215610413579160200282015b8281111561041357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906103de565b5061041f929150610423565b5090565b5b8082111561041f5760008155600101610424565b604081526000835180604084015260005b818110156104665760208187018101516060868401015201610449565b81811115610478576000606083860101525b50602083019390935250601f91909101601f191601606001919050565b6000828210156104a7576104a76104c7565b500390565b60006000198214156104c0576104c06104c7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220480d90f4771a7e1ccc312f55f77cf9ed269020a6785f95a0d45d3fbcf07d7f0664736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x73D CODESIZE SUB DUP1 PUSH2 0x73D DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x160 JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x47 JUMPI PUSH2 0x47 PUSH2 0x1D9 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x70 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x85 SWAP2 PUSH1 0x0 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0xE6 JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xDE JUMPI DUP3 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0xA5 JUMPI PUSH2 0xA5 PUSH2 0x1C3 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xD7 DUP2 PUSH2 0x19A JUMP JUMPDEST SWAP1 POP PUSH2 0x89 JUMP JUMPDEST POP POP POP PUSH2 0x1EF JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x13B JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x13B JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x106 JUMP JUMPDEST POP PUSH2 0x147 SWAP3 SWAP2 POP PUSH2 0x14B JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x147 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x14C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x18A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD MLOAD SWAP3 SWAP5 SWAP3 SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x1BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x53F DUP1 PUSH2 0x1FE PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1532363D EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x3E23EE43 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x67FEB927 EQ PUSH2 0x63 JUMPI DUP1 PUSH4 0x7220FBC1 EQ PUSH2 0x6B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x73 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x59 PUSH2 0x1C9 JUMP JUMPDEST PUSH2 0x59 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x59 PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x636F7079416464726573736573 PUSH1 0x98 SHL DUP2 MSTORE POP PUSH1 0x0 GAS PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBB JUMPI PUSH2 0xBB PUSH2 0x4F3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE4 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xF9 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3BE JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x118 JUMPI PUSH2 0x118 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP4 SWAP1 DUP2 LT PUSH2 0x144 JUMPI PUSH2 0x144 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x176 DUP2 PUSH2 0x4AC JUMP JUMPDEST SWAP1 POP PUSH2 0xFD JUMP JUMPDEST POP POP GAS PUSH2 0x18A SWAP1 DUP3 PUSH2 0x495 JUMP JUMPDEST SWAP1 POP PUSH32 0x8238A41A9A778E1687CA89168DBB4EC6472D747184EEC9D94BBF4993C336521F DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP3 SWAP2 SWAP1 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH11 0x63616C6C41646472657373 PUSH1 0xA8 SHL DUP2 MSTORE POP PUSH1 0x0 GAS SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x206 JUMPI PUSH2 0x206 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x6057361D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0xA PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6057361D SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x269 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP GAS PUSH2 0x18A SWAP1 DUP3 PUSH2 0x495 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x18D85B1B13D89A9958DD PUSH1 0xB2 SHL DUP2 MSTORE POP PUSH1 0x0 GAS SWAP1 POP PUSH1 0x2 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x206 JUMPI PUSH2 0x206 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x6372656174654F626A65637473 PUSH1 0x98 SHL DUP2 MSTORE POP PUSH1 0x0 GAS PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FC JUMPI PUSH2 0x2FC PUSH2 0x4F3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x325 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x33A SWAP2 PUSH1 0x2 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3BE JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x359 JUMPI PUSH2 0x359 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP4 SWAP1 DUP2 LT PUSH2 0x385 JUMPI PUSH2 0x385 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B7 DUP2 PUSH2 0x4AC JUMP JUMPDEST SWAP1 POP PUSH2 0x33E JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x413 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x413 JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3DE JUMP JUMPDEST POP PUSH2 0x41F SWAP3 SWAP2 POP PUSH2 0x423 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x41F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x424 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD DUP1 PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x466 JUMPI PUSH1 0x20 DUP2 DUP8 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x449 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x478 JUMPI PUSH1 0x0 PUSH1 0x60 DUP4 DUP7 ADD ADD MSTORE JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE POP PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD PUSH1 0x60 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH2 0x4C7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4C0 JUMPI PUSH2 0x4C0 PUSH2 0x4C7 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BASEFEE 0xD SWAP1 DELEGATECALL PUSH24 0x1A7E1CCC312F55F77CF9ED269020A6785F95A0D45D3FBCF0 PUSH30 0x7F0664736F6C634300080700330000000000000000000000000000000000 ", | |
| "sourceMap": "95:1290:0:-:0;;;331:181;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;407:3;-1:-1:-1;;;;;393:18:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;393:18:0;-1:-1:-1;377:34:0;;;;:13;;:34;;;;;;:::i;:::-;;425:8;421:85;444:3;438;:9;421:85;;;491:4;470:13;484:3;470:18;;;;;;;;:::i;:::-;;;;;;;;;;:25;;-1:-1:-1;;;;;;470:25:0;-1:-1:-1;;;;;470:25:0;;;;;;;;;;449:5;;;:::i;:::-;;;421:85;;;;331:181;;95:1290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;95:1290:0;-1:-1:-1;;;;;95:1290:0;;;;;;;;;;;-1:-1:-1;95:1290:0;;;;;;;-1:-1:-1;95:1290:0;;;-1:-1:-1;95:1290:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:351:2;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;196:16;;-1:-1:-1;;;;;241:31:2;;231:42;;221:70;;287:1;284;277:12;221:70;355:2;340:18;;;;334:25;310:5;;334:25;;-1:-1:-1;;;14:351:2:o;370:232::-;409:3;-1:-1:-1;;430:17:2;;427:140;;;489:10;484:3;480:20;477:1;470:31;524:4;521:1;514:15;552:4;549:1;542:15;427:140;-1:-1:-1;594:1:2;583:13;;370:232::o;607:127::-;668:10;663:3;659:20;656:1;649:31;699:4;696:1;689:15;723:4;720:1;713:15;739:127;800:10;795:3;791:20;788:1;781:31;831:4;828:1;821:15;855:4;852:1;845:15;739:127;95:1290:0;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@callAddress_173": { | |
| "entryPoint": 457, | |
| "id": 173, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@callObject_187": { | |
| "entryPoint": 632, | |
| "id": 187, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@copyAddresses_114": { | |
| "entryPoint": 115, | |
| "id": 114, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "@createObjects_157": { | |
| "entryPoint": 692, | |
| "id": 157, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_tuple_t_rational_10_by_1__to_t_uint256__fromStack_reversed": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed": { | |
| "entryPoint": 1080, | |
| "id": null, | |
| "parameterSlots": 3, | |
| "returnSlots": 1 | |
| }, | |
| "checked_sub_t_uint256": { | |
| "entryPoint": 1173, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "increment_t_uint256": { | |
| "entryPoint": 1196, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "panic_error_0x11": { | |
| "entryPoint": 1223, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x32": { | |
| "entryPoint": 1245, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "panic_error_0x41": { | |
| "entryPoint": 1267, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:1526:2", | |
| "statements": [ | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "6:3:2", | |
| "statements": [] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "124:76:2", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "134:26:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "146:9:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "157:2:2", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "142:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "142:18:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "134:4:2" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "176:9:2" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "187:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "169:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "169:25:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "169:25:2" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_rational_10_by_1__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "93:9:2", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "104:6:2", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "115:4:2", | |
| "type": "" | |
| } | |
| ], | |
| "src": "14:186:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "354:504:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "371:9:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "382:2:2", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "364:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "364:21:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "364:21:2" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "394:27:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "414:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "408:5:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "408:13:2" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "398:6:2", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "441:9:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "452:2:2", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "437:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "437:18:2" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "457:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "430:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "430:34:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "430:34:2" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "473:10:2", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "482:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulTypedName", | |
| "src": "477:1:2", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "544:92:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "573:9:2" | |
| }, | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "584:1:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "569:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "569:17:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "588:2:2", | |
| "type": "", | |
| "value": "96" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "565:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "565:26:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "607:6:2" | |
| }, | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "615:1:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "603:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "603:14:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "619:4:2", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "599:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "599:25:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "593:5:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "593:32:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "558:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "558:68:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "558:68:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "503:1:2" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "506:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "500:2:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "500:13:2" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "514:21:2", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "516:17:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "525:1:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "528:4:2", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "521:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "521:12:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "516:1:2" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "496:3:2", | |
| "statements": [] | |
| }, | |
| "src": "492:144:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "670:66:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "699:9:2" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "710:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "695:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "695:22:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "719:2:2", | |
| "type": "", | |
| "value": "96" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "691:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "691:31:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "724:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "684:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "684:42:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "684:42:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "651:1:2" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "654:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "648:2:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "648:13:2" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "645:91:2" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "745:62:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "761:9:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "780:6:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "788:2:2", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "776:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "776:15:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "797:2:2", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nodeType": "YulIdentifier", | |
| "src": "793:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "793:7:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "772:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "772:29:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "757:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "757:45:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "804:2:2", | |
| "type": "", | |
| "value": "96" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "753:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "753:54:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "745:4:2" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "827:9:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "838:4:2", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "823:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "823:20:2" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulIdentifier", | |
| "src": "845:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "816:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "816:36:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "816:36:2" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "315:9:2", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulTypedName", | |
| "src": "326:6:2", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "334:6:2", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "345:4:2", | |
| "type": "" | |
| } | |
| ], | |
| "src": "205:653:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "912:76:2", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "934:22:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "936:16:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "936:18:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "936:18:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "928:1:2" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "931:1:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "925:2:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "925:8:2" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "922:34:2" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "965:17:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "977:1:2" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "980:1:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "973:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "973:9:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulIdentifier", | |
| "src": "965:4:2" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_sub_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "894:1:2", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "897:1:2", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulTypedName", | |
| "src": "903:4:2", | |
| "type": "" | |
| } | |
| ], | |
| "src": "863:125:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1040:88:2", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1071:22:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "1073:16:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1073:18:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1073:18:2" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1056:5:2" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1067:1:2", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nodeType": "YulIdentifier", | |
| "src": "1063:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1063:6:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "1053:2:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1053:17:2" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1050:43:2" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1102:20:2", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1113:5:2" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1120:1:2", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1109:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1109:13:2" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "ret", | |
| "nodeType": "YulIdentifier", | |
| "src": "1102:3:2" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "increment_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1022:5:2", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "ret", | |
| "nodeType": "YulTypedName", | |
| "src": "1032:3:2", | |
| "type": "" | |
| } | |
| ], | |
| "src": "993:135:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1165:95:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1182:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1189:3:2", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1194:10:2", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "1185:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1185:20:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1175:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1175:31:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1175:31:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1222:1:2", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1225:4:2", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1215:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1215:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1215:15:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1246:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1249:4:2", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1239:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1239:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1239:15:2" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1133:127:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1297:95:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1314:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1321:3:2", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1326:10:2", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "1317:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1317:20:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1307:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1307:31:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1307:31:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1354:1:2", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1357:4:2", | |
| "type": "", | |
| "value": "0x32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1347:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1347:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1347:15:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1378:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1381:4:2", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1371:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1371:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1371:15:2" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x32", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1265:127:2" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1429:95:2", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1446:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1453:3:2", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1458:10:2", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nodeType": "YulIdentifier", | |
| "src": "1449:3:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1449:20:2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1439:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1439:31:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1439:31:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1486:1:2", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1489:4:2", | |
| "type": "", | |
| "value": "0x41" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1479:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1479:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1479:15:2" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1510:1:2", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1513:4:2", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1503:6:2" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1503:15:2" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1503:15:2" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1397:127:2" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n { }\n function abi_encode_tuple_t_rational_10_by_1__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n let length := mload(value0)\n mstore(add(headStart, 64), length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n mstore(add(add(headStart, i), 96), mload(add(add(value0, i), 0x20)))\n }\n if gt(i, length)\n {\n mstore(add(add(headStart, length), 96), 0)\n }\n tail := add(add(headStart, and(add(length, 31), not(31))), 96)\n mstore(add(headStart, 0x20), value1)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n}", | |
| "id": 2, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80631532363d146100515780633e23ee431461005b57806367feb927146100635780637220fbc11461006b575b600080fd5b610059610073565b005b6100596101c9565b610059610278565b6100596102b4565b6040518060400160405280600d81526020016c636f707941646472657373657360981b81525060005a6000549091508067ffffffffffffffff8111156100bb576100bb6104f3565b6040519080825280602002602001820160405280156100e4578160200160208202803683370190505b5080516100f9916001916020909101906103be565b5060005b8181101561017d5760008181548110610118576101186104dd565b600091825260209091200154600180546001600160a01b039092169183908110610144576101446104dd565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055610176816104ac565b90506100fd565b50505a61018a9082610495565b90507f8238a41a9a778e1687ca89168dbb4ec6472d747184eec9d94bbf4993c336521f82826040516101bd929190610438565b60405180910390a15050565b6040518060400160405280600b81526020016a63616c6c4164647265737360a81b81525060005a90506001600081548110610206576102066104dd565b600091825260209091200154604051636057361d60e01b8152600a60048201526001600160a01b0390911690636057361d90602401600060405180830381600087803b15801561025557600080fd5b505af1158015610269573d6000803e3d6000fd5b505050505a61018a9082610495565b6040518060400160405280600a81526020016918d85b1b13d89a9958dd60b21b81525060005a90506002600081548110610206576102066104dd565b6040518060400160405280600d81526020016c6372656174654f626a6563747360981b81525060005a6000549091508067ffffffffffffffff8111156102fc576102fc6104f3565b604051908082528060200260200182016040528015610325578160200160208202803683370190505b50805161033a916002916020909101906103be565b5060005b8181101561017d5760008181548110610359576103596104dd565b600091825260209091200154600280546001600160a01b039092169183908110610385576103856104dd565b600091825260209091200180546001600160a01b0319166001600160a01b03929092169190911790556103b7816104ac565b905061033e565b828054828255906000526020600020908101928215610413579160200282015b8281111561041357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906103de565b5061041f929150610423565b5090565b5b8082111561041f5760008155600101610424565b604081526000835180604084015260005b818110156104665760208187018101516060868401015201610449565b81811115610478576000606083860101525b50602083019390935250601f91909101601f191601606001919050565b6000828210156104a7576104a76104c7565b500390565b60006000198214156104c0576104c06104c7565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220480d90f4771a7e1ccc312f55f77cf9ed269020a6785f95a0d45d3fbcf07d7f0664736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1532363D EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x3E23EE43 EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x67FEB927 EQ PUSH2 0x63 JUMPI DUP1 PUSH4 0x7220FBC1 EQ PUSH2 0x6B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0x73 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x59 PUSH2 0x1C9 JUMP JUMPDEST PUSH2 0x59 PUSH2 0x278 JUMP JUMPDEST PUSH2 0x59 PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x636F7079416464726573736573 PUSH1 0x98 SHL DUP2 MSTORE POP PUSH1 0x0 GAS PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBB JUMPI PUSH2 0xBB PUSH2 0x4F3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xE4 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0xF9 SWAP2 PUSH1 0x1 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3BE JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x118 JUMPI PUSH2 0x118 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP4 SWAP1 DUP2 LT PUSH2 0x144 JUMPI PUSH2 0x144 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x176 DUP2 PUSH2 0x4AC JUMP JUMPDEST SWAP1 POP PUSH2 0xFD JUMP JUMPDEST POP POP GAS PUSH2 0x18A SWAP1 DUP3 PUSH2 0x495 JUMP JUMPDEST SWAP1 POP PUSH32 0x8238A41A9A778E1687CA89168DBB4EC6472D747184EEC9D94BBF4993C336521F DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1BD SWAP3 SWAP2 SWAP1 PUSH2 0x438 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xB DUP2 MSTORE PUSH1 0x20 ADD PUSH11 0x63616C6C41646472657373 PUSH1 0xA8 SHL DUP2 MSTORE POP PUSH1 0x0 GAS SWAP1 POP PUSH1 0x1 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x206 JUMPI PUSH2 0x206 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x6057361D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0xA PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x6057361D SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x255 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x269 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP GAS PUSH2 0x18A SWAP1 DUP3 PUSH2 0x495 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH10 0x18D85B1B13D89A9958DD PUSH1 0xB2 SHL DUP2 MSTORE POP PUSH1 0x0 GAS SWAP1 POP PUSH1 0x2 PUSH1 0x0 DUP2 SLOAD DUP2 LT PUSH2 0x206 JUMPI PUSH2 0x206 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD PUSH13 0x6372656174654F626A65637473 PUSH1 0x98 SHL DUP2 MSTORE POP PUSH1 0x0 GAS PUSH1 0x0 SLOAD SWAP1 SWAP2 POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2FC JUMPI PUSH2 0x2FC PUSH2 0x4F3 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x325 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD PUSH2 0x33A SWAP2 PUSH1 0x2 SWAP2 PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3BE JUMP JUMPDEST POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x17D JUMPI PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x359 JUMPI PUSH2 0x359 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x2 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 DUP4 SWAP1 DUP2 LT PUSH2 0x385 JUMPI PUSH2 0x385 PUSH2 0x4DD JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x3B7 DUP2 PUSH2 0x4AC JUMP JUMPDEST SWAP1 POP PUSH2 0x33E JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x413 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x413 JUMPI DUP3 MLOAD DUP3 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND OR DUP3 SSTORE PUSH1 0x20 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3DE JUMP JUMPDEST POP PUSH2 0x41F SWAP3 SWAP2 POP PUSH2 0x423 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x41F JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x424 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD DUP1 PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x466 JUMPI PUSH1 0x20 DUP2 DUP8 ADD DUP2 ADD MLOAD PUSH1 0x60 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x449 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x478 JUMPI PUSH1 0x0 PUSH1 0x60 DUP4 DUP7 ADD ADD MSTORE JUMPDEST POP PUSH1 0x20 DUP4 ADD SWAP4 SWAP1 SWAP4 MSTORE POP PUSH1 0x1F SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F NOT AND ADD PUSH1 0x60 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0x4A7 JUMPI PUSH2 0x4A7 PUSH2 0x4C7 JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x4C0 JUMPI PUSH2 0x4C0 PUSH2 0x4C7 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BASEFEE 0xD SWAP1 DELEGATECALL PUSH24 0x1A7E1CCC312F55F77CF9ED269020A6785F95A0D45D3FBCF0 PUSH30 0x7F0664736F6C634300080700330000000000000000000000000000000000 ", | |
| "sourceMap": "95:1290:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;669:249;;;:::i;:::-;;1186:102;;;:::i;1294:88::-;;;:::i;924:255::-;;;:::i;669:249::-;519:144;;;;;;;;;;;;;-1:-1:-1;;;519:144:0;;;564:8;575:9;736:8:::1;747:20:::0;564;;-1:-1:-1;747:20:0;789:18:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;789:18:0::1;-1:-1:-1::0;777:30:0;;::::1;::::0;:9:::1;::::0;:30:::1;::::0;;::::1;::::0;::::1;:::i;:::-;;821:8;817:95;840:3;834;:9;817:95;;;883:13;897:3;883:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;866:14;;-1:-1:-1;;;;;883:18:0;;::::1;::::0;876:3;;866:14;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:35:::0;;-1:-1:-1;;;;;;866:35:0::1;-1:-1:-1::0;;;;;866:35:0;;;::::1;::::0;;;::::1;::::0;;845:5:::1;::::0;::::1;:::i;:::-;;;817:95;;;;726:192;612:9:::0;605:16;;;;:::i;:::-;;;636:20;646:4;652:3;636:20;;;;;;;:::i;:::-;;;;;;;;554:109;669:249;:::o;1186:102::-;519:144;;;;;;;;;;;;;-1:-1:-1;;;519:144:0;;;564:8;575:9;564:20;;1258:9:::1;1268:1;1258:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;1250:31:::1;::::0;-1:-1:-1;;;1250:31:0;;1278:2:::1;1250:31;::::0;::::1;169:25:2::0;-1:-1:-1;;;;;1258:12:0;;::::1;::::0;1250:27:::1;::::0;142:18:2;;1250:31:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;612:9:::0;605:16;;;;:::i;1294:88::-;519:144;;;;;;;;;;;;;-1:-1:-1;;;519:144:0;;;564:8;575:9;564:20;;1355:7:::1;1363:1;1355:10;;;;;;;;:::i;924:255::-:0;519:144;;;;;;;;;;;;;-1:-1:-1;;;519:144:0;;;564:8;575:9;992:8:::1;1003:20:::0;564;;-1:-1:-1;1003:20:0;1043:18:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;1043:18:0::1;-1:-1:-1::0;1033:28:0;;::::1;::::0;:7:::1;::::0;:28:::1;::::0;;::::1;::::0;::::1;:::i;:::-;;1075:8;1071:102;1094:3;1088;:9;1071:102;;;1143:13;1157:3;1143:18;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;1120:7:::1;:12:::0;;-1:-1:-1;;;;;1143:18:0;;::::1;::::0;1128:3;;1120:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:42:::0;;-1:-1:-1;;;;;;1120:42:0::1;-1:-1:-1::0;;;;;1120:42:0;;;::::1;::::0;;;::::1;::::0;;1099:5:::1;::::0;::::1;:::i;:::-;;;1071:102;;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;205:653:2;382:2;371:9;364:21;345:4;414:6;408:13;457:6;452:2;441:9;437:18;430:34;482:1;492:144;506:6;503:1;500:13;492:144;;;619:4;603:14;;;599:25;;593:32;588:2;569:17;;;565:26;558:68;521:12;492:144;;;654:6;651:1;648:13;645:91;;;724:1;719:2;710:6;699:9;695:22;691:31;684:42;645:91;-1:-1:-1;838:4:2;823:20;;816:36;;;;-1:-1:-1;797:2:2;776:15;;;;-1:-1:-1;;772:29:2;757:45;804:2;753:54;;205:653;-1:-1:-1;205:653:2:o;863:125::-;903:4;931:1;928;925:8;922:34;;;936:18;;:::i;:::-;-1:-1:-1;973:9:2;;863:125::o;993:135::-;1032:3;-1:-1:-1;;1053:17:2;;1050:43;;;1073:18;;:::i;:::-;-1:-1:-1;1120:1:2;1109:13;;993:135::o;1133:127::-;1194:10;1189:3;1185:20;1182:1;1175:31;1225:4;1222:1;1215:15;1249:4;1246:1;1239:15;1265:127;1326:10;1321:3;1317:20;1314:1;1307:31;1357:4;1354:1;1347:15;1381:4;1378:1;1371:15;1397:127;1458:10;1453:3;1449:20;1446:1;1439:31;1489:4;1486:1;1479:15;1513:4;1510:1;1503:15" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "268600", | |
| "executionCost": "infinite", | |
| "totalCost": "infinite" | |
| }, | |
| "external": { | |
| "callAddress()": "infinite", | |
| "callObject()": "infinite", | |
| "copyAddresses()": "infinite", | |
| "createObjects()": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "callAddress()": "3e23ee43", | |
| "callObject()": "67feb927", | |
| "copyAddresses()": "1532363d", | |
| "createObjects()": "7220fbc1" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "addr", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "num", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "string", | |
| "name": "desc", | |
| "type": "string" | |
| }, | |
| { | |
| "indexed": false, | |
| "internalType": "uint256", | |
| "name": "gasUsed", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "Benchmark", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "callAddress", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "callObject", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "copyAddresses", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "createObjects", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "addr", | |
| "type": "address" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "num", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": false, | |
| "internalType": "string", | |
| "name": "desc", | |
| "type": "string" | |
| }, | |
| { | |
| "indexed": false, | |
| "internalType": "uint256", | |
| "name": "gasUsed", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "Benchmark", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "callAddress", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "callObject", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "copyAddresses", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "createObjects", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": { | |
| "constructor": { | |
| "details": "Set contract deployer as owner" | |
| } | |
| }, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/Caller.sol": "Caller" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": true, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/Caller.sol": { | |
| "keccak256": "0xa802e5f0a5091d7147f5ccc9664f63deb5fe4d6a19888609ccf866b9fc87e3e3", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://fdb74918f2037866d2bba52546a80a30f7ec6df5407a524e293665cd8af9a7bf", | |
| "dweb:/ipfs/QmT5mgcwvPpEecB3cHWtDkkXkVuX9QVmiFsvxRvAFiDxzF" | |
| ] | |
| }, | |
| "contracts/Storage.sol": { | |
| "keccak256": "0xb6ee9d528b336942dd70d3b41e2811be10a473776352009fd73f85604f5ed206", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://fe52c6e3c04ba5d83ede6cc1a43c45fa43caa435b207f64707afb17d3af1bcf1", | |
| "dweb:/ipfs/QmawU3NM1WNWkBauRudYCiFvuFE1tTLHB98akyBvb9UWwA" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_40": { | |
| "entryPoint": null, | |
| "id": 40, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3610356806100db6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b604051610050919061025d565b60405180910390f35b610073600480360381019061006e91906101fe565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012390610278565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000813590506101f881610309565b92915050565b600060208284031215610214576102136102db565b5b6000610222848285016101e9565b91505092915050565b610234816102a9565b82525050565b6000610247601383610298565b9150610252826102e0565b602082019050919050565b6000602082019050610272600083018461022b565b92915050565b600060208201905081810360008301526102918161023a565b9050919050565b600082825260208201905092915050565b60006102b4826102bb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b610312816102a9565b811461031d57600080fd5b5056fea26469706673582212208f65d9c920a5e7c951f66594688d8b1bb886420d647e05d3e5c9ec7eeab019cd64736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH2 0x356 DUP1 PUSH2 0xDB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x278 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F8 DUP2 PUSH2 0x309 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x214 JUMPI PUSH2 0x213 PUSH2 0x2DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x222 DUP5 DUP3 DUP6 ADD PUSH2 0x1E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x234 DUP2 PUSH2 0x2A9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 PUSH1 0x13 DUP4 PUSH2 0x298 JUMP JUMPDEST SWAP2 POP PUSH2 0x252 DUP3 PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x272 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x291 DUP2 PUSH2 0x23A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B4 DUP3 PUSH2 0x2BB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x312 DUP2 PUSH2 0x2A9 JUMP JUMPDEST DUP2 EQ PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 PUSH6 0xD9C920A5E7C9 MLOAD 0xF6 PUSH6 0x94688D8B1BB8 DUP7 TIMESTAMP 0xD PUSH5 0x7E05D3E5C9 0xEC PUSH31 0xEAB019CD64736F6C6343000807003300000000000000000000000000000000 ", | |
| "sourceMap": "121:1361:0:-:0;;;923:170;;;;;;;;;;955:10;947:5;;:18;;;;;;;;;;;;;;;;;;1080:5;;;;;;;;;;1059:27;;1076:1;1059:27;;;;;;;;;;;;121:1361;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@changeOwner_58": { | |
| "entryPoint": 158, | |
| "id": 58, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "@getOwner_67": { | |
| "entryPoint": 117, | |
| "id": 67, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_t_address": { | |
| "entryPoint": 489, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_address": { | |
| "entryPoint": 510, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_address_to_t_address_fromStack": { | |
| "entryPoint": 555, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 570, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { | |
| "entryPoint": 605, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed": { | |
| "entryPoint": 632, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { | |
| "entryPoint": 664, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_address": { | |
| "entryPoint": 681, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint160": { | |
| "entryPoint": 699, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 731, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d": { | |
| "entryPoint": 736, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "validator_revert_t_address": { | |
| "entryPoint": 777, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:2672:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "59:87:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "69:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "91:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "78:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "78:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "69:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "134:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "107:26:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "107:33:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "107:33:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "37:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "45:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "53:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:139:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "218:263:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "264:83:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulIdentifier", | |
| "src": "266:77:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "266:79:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "266:79:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "248:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "235:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "235:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "228:119:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "357:117:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "372:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "386:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "376:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "401:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "436:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "447:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "432:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "432:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "456:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "411:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "411:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "401:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "188:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "199:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "211:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "152:329:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "552:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "569:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "592:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "574:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "574:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "562:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "562:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "562:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "540:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "547:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "487:118:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "757:220:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "767:74:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "833:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "838:2:1", | |
| "type": "", | |
| "value": "19" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "774:58:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "774:67:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "767:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "939:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d", | |
| "nodeType": "YulIdentifier", | |
| "src": "850:88:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "850:93:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "850:93:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "952:19:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "963:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "968:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "959:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "959:12:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "952:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "745:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "753:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "611:366:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1081:124:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1091:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1103:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1114:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1099:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1099:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1091:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "1171:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1184:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1195:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1180:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1180:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_address_to_t_address_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1127:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1127:71:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1127:71:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1053:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "1065:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "1076:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "983:222:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1382:248:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1392:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1404:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1415:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1400:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1400:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1392:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1439:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1450:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1435:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1435:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1458:4:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1464:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "1454:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1454:20:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1428:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1428:47:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1428:47:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1484:139:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1618:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1492:124:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1492:131:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1484:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1362:9:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "1377:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1211:419:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1676:35:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1686:19:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1702:2:1", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "1696:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1696:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1686:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "1669:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1636:75:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1813:73:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1830:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1835:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1823:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1823:19:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1823:19:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1851:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1870:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1875:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1866:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1866:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1851:11:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1785:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1790:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1801:11:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1717:169:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1937:51:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1947:35:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1976:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint160", | |
| "nodeType": "YulIdentifier", | |
| "src": "1958:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1958:24:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "1947:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1919:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "1929:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1892:96:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2039:81:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2049:65:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2064:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2071:42:1", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "2060:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2060:54:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "2049:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint160", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "2021:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "2031:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1994:126:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2215:28:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2232:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2235:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "2225:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2225:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2225:12:1" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "2126:117:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2338:28:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2355:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2358:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "2348:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2348:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2348:12:1" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "2249:117:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2478:63:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2500:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2508:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2496:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2496:14:1" | |
| }, | |
| { | |
| "hexValue": "43616c6c6572206973206e6f74206f776e6572", | |
| "kind": "string", | |
| "nodeType": "YulLiteral", | |
| "src": "2512:21:1", | |
| "type": "", | |
| "value": "Caller is not owner" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "2489:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2489:45:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2489:45:1" | |
| } | |
| ] | |
| }, | |
| "name": "store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "2470:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2372:169:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2590:79:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2647:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2656:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2659:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "2649:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2649:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2649:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2613:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "2638:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_address", | |
| "nodeType": "YulIdentifier", | |
| "src": "2620:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2620:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "2610:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2610:35:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "2603:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2603:43:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2600:63:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_address", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "2583:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2547:122:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function store_literal_in_memory_2d10247a65709fdb3c0696b0ed760a0c246e12f8c496efb56291dd2fe3b0275d(memPtr) {\n\n mstore(add(memPtr, 0), \"Caller is not owner\")\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063893d20e81461003b578063a6f9dae114610059575b600080fd5b610043610075565b604051610050919061025d565b60405180910390f35b610073600480360381019061006e91906101fe565b61009e565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461012c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161012390610278565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73560405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000813590506101f881610309565b92915050565b600060208284031215610214576102136102db565b5b6000610222848285016101e9565b91505092915050565b610234816102a9565b82525050565b6000610247601383610298565b9150610252826102e0565b602082019050919050565b6000602082019050610272600083018461022b565b92915050565b600060208201905081810360008301526102918161023a565b9050919050565b600082825260208201905092915050565b60006102b4826102bb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b7f43616c6c6572206973206e6f74206f776e657200000000000000000000000000600082015250565b610312816102a9565b811461031d57600080fd5b5056fea26469706673582212208f65d9c920a5e7c951f66594688d8b1bb886420d647e05d3e5c9ec7eeab019cd64736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA6F9DAE1 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x25D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x1FE JUMP JUMPDEST PUSH2 0x9E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x12C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x123 SWAP1 PUSH2 0x278 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x342827C97908E5E2F71151C08502A66D44B6F758E3AC2F1DE95F02EB95F0A735 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F8 DUP2 PUSH2 0x309 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x214 JUMPI PUSH2 0x213 PUSH2 0x2DB JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x222 DUP5 DUP3 DUP6 ADD PUSH2 0x1E9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x234 DUP2 PUSH2 0x2A9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x247 PUSH1 0x13 DUP4 PUSH2 0x298 JUMP JUMPDEST SWAP2 POP PUSH2 0x252 DUP3 PUSH2 0x2E0 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x272 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x291 DUP2 PUSH2 0x23A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2B4 DUP3 PUSH2 0x2BB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x43616C6C6572206973206E6F74206F776E657200000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x312 DUP2 PUSH2 0x2A9 JUMP JUMPDEST DUP2 EQ PUSH2 0x31D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP16 PUSH6 0xD9C920A5E7C9 MLOAD 0xF6 PUSH6 0x94688D8B1BB8 DUP7 TIMESTAMP 0xD PUSH5 0x7E05D3E5C9 0xEC PUSH31 0xEAB019CD64736F6C6343000807003300000000000000000000000000000000 ", | |
| "sourceMap": "121:1361:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1399:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1184:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1399:81;1442:7;1468:5;;;;;;;;;;;1461:12;;1399:81;:::o;1184:127::-;807:5;;;;;;;;;;793:19;;:10;:19;;;785:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;1269:8:::1;1253:25;;1262:5;::::0;::::1;;;;;;;;1253:25;;;;;;;;;;;;1296:8;1288:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;1184:127:::0;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:366::-;753:3;774:67;838:2;833:3;774:67;:::i;:::-;767:74;;850:93;939:3;850:93;:::i;:::-;968:2;963:3;959:12;952:19;;611:366;;;:::o;983:222::-;1076:4;1114:2;1103:9;1099:18;1091:26;;1127:71;1195:1;1184:9;1180:17;1171:6;1127:71;:::i;:::-;983:222;;;;:::o;1211:419::-;1377:4;1415:2;1404:9;1400:18;1392:26;;1464:9;1458:4;1454:20;1450:1;1439:9;1435:17;1428:47;1492:131;1618:4;1492:131;:::i;:::-;1484:139;;1211:419;;;:::o;1717:169::-;1801:11;1835:6;1830:3;1823:19;1875:4;1870:3;1866:14;1851:29;;1717:169;;;;:::o;1892:96::-;1929:7;1958:24;1976:5;1958:24;:::i;:::-;1947:35;;1892:96;;;:::o;1994:126::-;2031:7;2071:42;2064:5;2060:54;2049:65;;1994:126;;;:::o;2249:117::-;2358:1;2355;2348:12;2372:169;2512:21;2508:1;2500:6;2496:14;2489:45;2372:169;:::o;2547:122::-;2620:24;2638:5;2620:24;:::i;:::-;2613:5;2610:35;2600:63;;2659:1;2656;2649:12;2600:63;2547:122;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "170800", | |
| "executionCost": "28158", | |
| "totalCost": "198958" | |
| }, | |
| "external": { | |
| "changeOwner(address)": "30567", | |
| "getOwner()": "2500" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "changeOwner(address)": "a6f9dae1", | |
| "getOwner()": "893d20e8" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "oldOwner", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "OwnerSet", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "changeOwner", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "getOwner", | |
| "outputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "", | |
| "type": "address" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "oldOwner", | |
| "type": "address" | |
| }, | |
| { | |
| "indexed": true, | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "OwnerSet", | |
| "type": "event" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "newOwner", | |
| "type": "address" | |
| } | |
| ], | |
| "name": "changeOwner", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "getOwner", | |
| "outputs": [ | |
| { | |
| "internalType": "address", | |
| "name": "", | |
| "type": "address" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "Set & change owner", | |
| "kind": "dev", | |
| "methods": { | |
| "changeOwner(address)": { | |
| "details": "Change owner", | |
| "params": { | |
| "newOwner": "address of new owner" | |
| } | |
| }, | |
| "constructor": { | |
| "details": "Set contract deployer as owner" | |
| }, | |
| "getOwner()": { | |
| "details": "Return owner address ", | |
| "returns": { | |
| "_0": "address of owner" | |
| } | |
| } | |
| }, | |
| "title": "Owner", | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/2_Owner.sol": "Owner" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/2_Owner.sol": { | |
| "keccak256": "0x1e624ada939528fff73575187024d951aa6d33d4cbaad97ecf1f3e2a7d717583", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://e3f3c6ab93acd1a8bd389f852149d59b6d713efc51458ff95bba42c3329fb0d1", | |
| "dweb:/ipfs/QmP7NEPrSbYRM4DzpJ31YUC2KNXUX4USuQk3jMNRUdzVyV" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": {}, | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50610150806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735822122092b81a2a06b9c9d931a45721cec0113291c28cf4b3eff2e06cd075d3a59db31b64736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x150 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xB8 BYTE 0x2A MOD 0xB9 0xC9 0xD9 BALANCE LOG4 JUMPI 0x21 0xCE 0xC0 GT ORIGIN SWAP2 0xC2 DUP13 DELEGATECALL 0xB3 0xEF CALLCODE 0xE0 PUSH13 0xD075D3A59DB31B64736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@retrieve_24": { | |
| "entryPoint": 117, | |
| "id": 24, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "@store_15": { | |
| "entryPoint": 126, | |
| "id": 15, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_t_uint256": { | |
| "entryPoint": 136, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_decode_tuple_t_uint256": { | |
| "entryPoint": 157, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_t_uint256_to_t_uint256_fromStack": { | |
| "entryPoint": 202, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { | |
| "entryPoint": 217, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "allocate_unbounded": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "cleanup_t_uint256": { | |
| "entryPoint": 244, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 1 | |
| }, | |
| "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { | |
| "entryPoint": 254, | |
| "id": null, | |
| "parameterSlots": 0, | |
| "returnSlots": 0 | |
| }, | |
| "validator_revert_t_uint256": { | |
| "entryPoint": 259, | |
| "id": null, | |
| "parameterSlots": 1, | |
| "returnSlots": 0 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:1374:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "59:87:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "69:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "91:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "78:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "78:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "69:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "134:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "107:26:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "107:33:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "107:33:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "37:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "45:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "53:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:139:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "218:263:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "264:83:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulIdentifier", | |
| "src": "266:77:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "266:79:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "266:79:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "248:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "235:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "235:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "228:119:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "357:117:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "372:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "386:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "376:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "401:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "436:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "447:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "432:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "432:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "456:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "411:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "411:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "401:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "188:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "199:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "211:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "152:329:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "552:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "569:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "592:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "574:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "574:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "562:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "562:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "562:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "540:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "547:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "487:118:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "709:124:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "719:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "731:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "742:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "727:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "727:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "719:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "799:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "812:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "823:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "808:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "808:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "755:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "755:71:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "755:71:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "681:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "693:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "704:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "611:222:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "879:35:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "889:19:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "905:2:1", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "899:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "899:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "889:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "allocate_unbounded", | |
| "nodeType": "YulFunctionDefinition", | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "872:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "839:75:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "965:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "975:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "986:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "975:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "947:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "957:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "920:77:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1092:28:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1109:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1112:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1102:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1102:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1102:12:1" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1003:117:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1215:28:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1232:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1235:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1225:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1225:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1225:12:1" | |
| } | |
| ] | |
| }, | |
| "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1126:117:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1292:79:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1349:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1358:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1361:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1351:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1351:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1351:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1315:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1340:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1322:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1322:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "1312:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1312:35:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "1305:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1305:43:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1302:63:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1285:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1249:122:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea264697066735822122092b81a2a06b9c9d931a45721cec0113291c28cf4b3eff2e06cd075d3a59db31b64736f6c63430008070033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2E64CEC1 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0x6057361D EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xD9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0x9D JUMP JUMPDEST PUSH2 0x7E JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x97 DUP2 PUSH2 0x103 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB3 JUMPI PUSH2 0xB2 PUSH2 0xFE JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC1 DUP5 DUP3 DUP6 ADD PUSH2 0x88 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD3 DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xEE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10C DUP2 PUSH2 0xF4 JUMP JUMPDEST DUP2 EQ PUSH2 0x117 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 0xB8 BYTE 0x2A MOD 0xB9 0xC9 0xD9 BALANCE LOG4 JUMPI 0x21 0xCE 0xC0 GT ORIGIN SWAP2 0xC2 DUP13 DELEGATECALL 0xB3 0xEF CALLCODE 0xE0 PUSH13 0xD075D3A59DB31B64736F6C6343 STOP ADDMOD SMOD STOP CALLER ", | |
| "sourceMap": "141:356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;416:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;271:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;416:79;457:7;482:6;;475:13;;416:79;:::o;271:64::-;325:3;316:6;:12;;;;271:64;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:119;;;266:79;;:::i;:::-;228:119;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;152:329;;;;:::o;487:118::-;574:24;592:5;574:24;:::i;:::-;569:3;562:37;487:118;;:::o;611:222::-;704:4;742:2;731:9;727:18;719:26;;755:71;823:1;812:9;808:17;799:6;755:71;:::i;:::-;611:222;;;;:::o;920:77::-;957:7;986:5;975:16;;920:77;;;:::o;1126:117::-;1235:1;1232;1225:12;1249:122;1322:24;1340:5;1322:24;:::i;:::-;1315:5;1312:35;1302:63;;1361:1;1358;1351:12;1302:63;1249:122;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "67200", | |
| "executionCost": "117", | |
| "totalCost": "67317" | |
| }, | |
| "external": { | |
| "retrieve()": "2415", | |
| "store(uint256)": "22520" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "retrieve()": "2e64cec1", | |
| "store(uint256)": "6057361d" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "retrieve", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "num", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "store", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.7+commit.e28d00a7" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "retrieve", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "num", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "store", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "details": "Store & retrieve value in a variable", | |
| "kind": "dev", | |
| "methods": { | |
| "retrieve()": { | |
| "details": "Return value ", | |
| "returns": { | |
| "_0": "value of 'number'" | |
| } | |
| }, | |
| "store(uint256)": { | |
| "details": "Store value in variable", | |
| "params": { | |
| "num": "value to store" | |
| } | |
| } | |
| }, | |
| "title": "Storage", | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/Storage.sol": "Storage" | |
| }, | |
| "evmVersion": "london", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/Storage.sol": { | |
| "keccak256": "0xb6ee9d528b336942dd70d3b41e2811be10a473776352009fd73f85604f5ed206", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://fe52c6e3c04ba5d83ede6cc1a43c45fa43caa435b207f64707afb17d3af1bcf1", | |
| "dweb:/ipfs/QmawU3NM1WNWkBauRudYCiFvuFE1tTLHB98akyBvb9UWwA" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity >=0.7.0 <0.9.0; | |
| import "./Storage.sol"; | |
| contract Caller { | |
| address [] private addressesBase; | |
| address [] private addresses; | |
| Storage [] private objects; | |
| event Benchmark(string desc, uint gasUsed); | |
| /** | |
| * @dev Set contract deployer as owner | |
| */ | |
| constructor(address addr, uint num) { | |
| addressesBase = new address[](num); | |
| for(uint idx =0; idx < num; ++idx) { | |
| addressesBase[idx] = addr; | |
| } | |
| } | |
| modifier bench(string memory desc) { | |
| uint gas = gasleft(); | |
| _; | |
| gas -= gasleft(); | |
| emit Benchmark(desc, gas); | |
| } | |
| function copyAddresses() external bench("copyAddresses") { | |
| uint num = addressesBase.length; | |
| addresses = new address[](num); | |
| for(uint idx =0; idx < num; ++idx) { | |
| addresses[idx] = addressesBase[idx]; | |
| } | |
| } | |
| function createObjects() external bench("createObjects") { | |
| uint num = addressesBase.length; | |
| objects = new Storage[](num); | |
| for(uint idx =0; idx < num; ++idx) { | |
| objects[idx] = Storage(addressesBase[idx]); | |
| } | |
| } | |
| function callAddress() external bench("callAddress") { | |
| Storage(addresses[0]).store(10); | |
| } | |
| function callObject() external bench("callObject") { | |
| objects[0].store(10); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity >=0.7.0 <0.9.0; | |
| /** | |
| * @title Storage | |
| * @dev Store & retrieve value in a variable | |
| */ | |
| contract Storage { | |
| uint256 number; | |
| /** | |
| * @dev Store value in variable | |
| * @param num value to store | |
| */ | |
| function store(uint256 num) public { | |
| number = num; | |
| } | |
| /** | |
| * @dev Return value | |
| * @return value of 'number' | |
| */ | |
| function retrieve() public view returns (uint256){ | |
| return number; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Right click on the script name and hit "Run" to execute | |
| (async () => { | |
| try { | |
| console.log('Running deployWithEthers script...') | |
| const contractName = 'Storage' // Change this for other contract | |
| const constructorArgs = [] // Put constructor args (if any) here for your contract | |
| const deploy = async (contractName, constructorArgs) => { | |
| // Note that the script needs the ABI which is generated from the compilation artifact. | |
| // Make sure contract is compiled and artifacts are generated | |
| const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path | |
| const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath)) | |
| // 'web3Provider' is a remix global variable object | |
| const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner() | |
| let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer); | |
| let contract = await factory.deploy(...constructorArgs); | |
| await contract.deployed() | |
| console.log('Deployed ' + contractName + ' to ' + contract.address); | |
| return contract | |
| } | |
| const storage = await deploy('Storage', []) | |
| const caller = await deploy('Caller', [storage.address, 10]) | |
| await caller.on('Benchmark', (desc, gas) => console.log(desc + ": " + gas.toNumber().toString())); | |
| await caller.copyAddresses() | |
| await caller.createObjects() | |
| await caller.callAddress() | |
| await caller.callObject() | |
| } catch (e) { | |
| console.log(e.message) | |
| } | |
| })() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment