Created
December 10, 2025 20:19
-
-
Save Dustin4444/5867ed024ef1f74ee1582e2a6b2a2d2f 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.32-nightly.2025.12.9+commit.786b7402.js&optimize=undefined&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
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity >=0.4.22 <0.9.0; | |
| library TestsAccounts { | |
| function getAccount(uint index) pure public returns (address) { | |
| return address(0); | |
| } | |
| } |
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.4.22 <0.9.0; | |
| library Assert { | |
| event AssertionEvent( | |
| bool passed, | |
| string message, | |
| string methodName | |
| ); | |
| event AssertionEventUint( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| uint256 returned, | |
| uint256 expected | |
| ); | |
| event AssertionEventInt( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| int256 returned, | |
| int256 expected | |
| ); | |
| event AssertionEventBool( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| bool returned, | |
| bool expected | |
| ); | |
| event AssertionEventAddress( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| address returned, | |
| address expected | |
| ); | |
| event AssertionEventBytes32( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| bytes32 returned, | |
| bytes32 expected | |
| ); | |
| event AssertionEventString( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| string returned, | |
| string expected | |
| ); | |
| event AssertionEventUintInt( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| uint256 returned, | |
| int256 expected | |
| ); | |
| event AssertionEventIntUint( | |
| bool passed, | |
| string message, | |
| string methodName, | |
| int256 returned, | |
| uint256 expected | |
| ); | |
| function ok(bool a, string memory message) public returns (bool result) { | |
| result = a; | |
| emit AssertionEvent(result, message, "ok"); | |
| } | |
| function equal(uint256 a, uint256 b, string memory message) public returns (bool result) { | |
| result = (a == b); | |
| emit AssertionEventUint(result, message, "equal", a, b); | |
| } | |
| function equal(int256 a, int256 b, string memory message) public returns (bool result) { | |
| result = (a == b); | |
| emit AssertionEventInt(result, message, "equal", a, b); | |
| } | |
| function equal(bool a, bool b, string memory message) public returns (bool result) { | |
| result = (a == b); | |
| emit AssertionEventBool(result, message, "equal", a, b); | |
| } | |
| // TODO: only for certain versions of solc | |
| //function equal(fixed a, fixed b, string message) public returns (bool result) { | |
| // result = (a == b); | |
| // emit AssertionEvent(result, message); | |
| //} | |
| // TODO: only for certain versions of solc | |
| //function equal(ufixed a, ufixed b, string message) public returns (bool result) { | |
| // result = (a == b); | |
| // emit AssertionEvent(result, message); | |
| //} | |
| function equal(address a, address b, string memory message) public returns (bool result) { | |
| result = (a == b); | |
| emit AssertionEventAddress(result, message, "equal", a, b); | |
| } | |
| function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) { | |
| result = (a == b); | |
| emit AssertionEventBytes32(result, message, "equal", a, b); | |
| } | |
| function equal(string memory a, string memory b, string memory message) public returns (bool result) { | |
| result = (keccak256(abi.encodePacked(a)) == keccak256(abi.encodePacked(b))); | |
| emit AssertionEventString(result, message, "equal", a, b); | |
| } | |
| function notEqual(uint256 a, uint256 b, string memory message) public returns (bool result) { | |
| result = (a != b); | |
| emit AssertionEventUint(result, message, "notEqual", a, b); | |
| } | |
| function notEqual(int256 a, int256 b, string memory message) public returns (bool result) { | |
| result = (a != b); | |
| emit AssertionEventInt(result, message, "notEqual", a, b); | |
| } | |
| function notEqual(bool a, bool b, string memory message) public returns (bool result) { | |
| result = (a != b); | |
| emit AssertionEventBool(result, message, "notEqual", a, b); | |
| } | |
| // TODO: only for certain versions of solc | |
| //function notEqual(fixed a, fixed b, string message) public returns (bool result) { | |
| // result = (a != b); | |
| // emit AssertionEvent(result, message); | |
| //} | |
| // TODO: only for certain versions of solc | |
| //function notEqual(ufixed a, ufixed b, string message) public returns (bool result) { | |
| // result = (a != b); | |
| // emit AssertionEvent(result, message); | |
| //} | |
| function notEqual(address a, address b, string memory message) public returns (bool result) { | |
| result = (a != b); | |
| emit AssertionEventAddress(result, message, "notEqual", a, b); | |
| } | |
| function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) { | |
| result = (a != b); | |
| emit AssertionEventBytes32(result, message, "notEqual", a, b); | |
| } | |
| function notEqual(string memory a, string memory b, string memory message) public returns (bool result) { | |
| result = (keccak256(abi.encodePacked(a)) != keccak256(abi.encodePacked(b))); | |
| emit AssertionEventString(result, message, "notEqual", a, b); | |
| } | |
| /*----------------- Greater than --------------------*/ | |
| function greaterThan(uint256 a, uint256 b, string memory message) public returns (bool result) { | |
| result = (a > b); | |
| emit AssertionEventUint(result, message, "greaterThan", a, b); | |
| } | |
| function greaterThan(int256 a, int256 b, string memory message) public returns (bool result) { | |
| result = (a > b); | |
| emit AssertionEventInt(result, message, "greaterThan", a, b); | |
| } | |
| // TODO: safely compare between uint and int | |
| function greaterThan(uint256 a, int256 b, string memory message) public returns (bool result) { | |
| if(b < int(0)) { | |
| // int is negative uint "a" always greater | |
| result = true; | |
| } else { | |
| result = (a > uint(b)); | |
| } | |
| emit AssertionEventUintInt(result, message, "greaterThan", a, b); | |
| } | |
| function greaterThan(int256 a, uint256 b, string memory message) public returns (bool result) { | |
| if(a < int(0)) { | |
| // int is negative uint "b" always greater | |
| result = false; | |
| } else { | |
| result = (uint(a) > b); | |
| } | |
| emit AssertionEventIntUint(result, message, "greaterThan", a, b); | |
| } | |
| /*----------------- Lesser than --------------------*/ | |
| function lesserThan(uint256 a, uint256 b, string memory message) public returns (bool result) { | |
| result = (a < b); | |
| emit AssertionEventUint(result, message, "lesserThan", a, b); | |
| } | |
| function lesserThan(int256 a, int256 b, string memory message) public returns (bool result) { | |
| result = (a < b); | |
| emit AssertionEventInt(result, message, "lesserThan", a, b); | |
| } | |
| // TODO: safely compare between uint and int | |
| function lesserThan(uint256 a, int256 b, string memory message) public returns (bool result) { | |
| if(b < int(0)) { | |
| // int is negative int "b" always lesser | |
| result = false; | |
| } else { | |
| result = (a < uint(b)); | |
| } | |
| emit AssertionEventUintInt(result, message, "lesserThan", a, b); | |
| } | |
| function lesserThan(int256 a, uint256 b, string memory message) public returns (bool result) { | |
| if(a < int(0)) { | |
| // int is negative int "a" always lesser | |
| result = true; | |
| } else { | |
| result = (uint(a) < b); | |
| } | |
| emit AssertionEventIntUint(result, message, "lesserThan", a, b); | |
| } | |
| } |
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
| [core] | |
| repositoryformatversion = 0 | |
| filemode = false | |
| bare = false | |
| logallrefupdates = true | |
| symlinks = false | |
| ignorecase = true |
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
| ref: refs/heads/main |
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
| { | |
| "id": "331bd09348f944abccb1ed6e431341ee", | |
| "_format": "hh-sol-build-info-1", | |
| "solcVersion": "0.8.32-nightly.2025.12.9", | |
| "solcLongVersion": "0.8.32-nightly.2025.12.9+commit.786b7402", | |
| "input": { | |
| "language": "Solidity", | |
| "settings": { | |
| "optimizer": { | |
| "enabled": true, | |
| "runs": 200 | |
| }, | |
| "outputSelection": { | |
| "*": { | |
| "": [ | |
| "ast" | |
| ], | |
| "*": [ | |
| "abi", | |
| "metadata", | |
| "devdoc", | |
| "userdoc", | |
| "storageLayout", | |
| "evm.legacyAssembly", | |
| "evm.bytecode", | |
| "evm.deployedBytecode", | |
| "evm.methodIdentifiers", | |
| "evm.gasEstimates", | |
| "evm.assembly" | |
| ] | |
| } | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contract-8045265fb6.sol": { | |
| "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.8.0;\n\ncontract Overflow {\n uint immutable x;\n uint immutable y;\n\n function add(uint x_, uint y_) internal pure returns (uint) {\n return x_ + y_;\n }\n\n constructor(uint x_, uint y_) {\n (x, y) = (x_, y_);\n }\n\n function stateAdd() public view returns (uint) {\n return add(x, y);\n }\n}" | |
| } | |
| } | |
| }, | |
| "output": { | |
| "contracts": { | |
| "contract-8045265fb6.sol": { | |
| "Overflow": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x_", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "y_", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "stateAdd", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "evm": { | |
| "assembly": " /* \"contract-8045265fb6.sol\":62:380 contract Overflow {... */\n mstore(0x40, 0xc0)\n /* \"contract-8045265fb6.sol\":228:292 constructor(uint x_, uint y_) {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n revert(0x00, 0x00)\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n add\n 0x40\n dup2\n swap1\n mstore\n tag_2\n swap2\n tag_3\n jump\t// in\ntag_2:\n /* \"contract-8045265fb6.sol\":268:285 (x, y) = (x_, y_) */\n 0xa0\n mstore\n 0x80\n mstore\n /* \"contract-8045265fb6.sol\":62:380 contract Overflow {... */\n jump(tag_7)\n /* \"#utility.yul\":14:357 */\ntag_3:\n /* \"#utility.yul\":93:99 */\n 0x00\n /* \"#utility.yul\":101:107 */\n 0x00\n /* \"#utility.yul\":154:156 */\n 0x40\n /* \"#utility.yul\":142:151 */\n dup4\n /* \"#utility.yul\":133:140 */\n dup6\n /* \"#utility.yul\":129:152 */\n sub\n /* \"#utility.yul\":125:157 */\n slt\n /* \"#utility.yul\":122:174 */\n iszero\n tag_9\n jumpi\n /* \"#utility.yul\":170:171 */\n 0x00\n /* \"#utility.yul\":167:168 */\n 0x00\n /* \"#utility.yul\":160:172 */\n revert\n /* \"#utility.yul\":122:174 */\ntag_9:\n pop\n pop\n /* \"#utility.yul\":215:231 */\n dup1\n mload\n /* \"#utility.yul\":321:323 */\n 0x20\n /* \"#utility.yul\":306:324 */\n swap1\n swap2\n add\n /* \"#utility.yul\":300:325 */\n mload\n /* \"#utility.yul\":215:231 */\n swap1\n swap3\n /* \"#utility.yul\":300:325 */\n swap1\n swap2\n pop\n /* \"#utility.yul\":14:357 */\n jump\t// out\ntag_7:\n /* \"contract-8045265fb6.sol\":62:380 contract Overflow {... */\n mload(0x80)\n mload(0xa0)\n codecopy(0x00, dataOffset(sub_0), dataSize(sub_0))\n 0x00\n assignImmutable(\"0xceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1\")\n 0x00\n assignImmutable(\"0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de\")\n return(0x00, dataSize(sub_0))\nstop\n\nsub_0: assembly {\n /* \"contract-8045265fb6.sol\":62:380 contract Overflow {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n revert(0x00, 0x00)\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xe1a62055\n eq\n tag_3\n jumpi\n tag_2:\n revert(0x00, 0x00)\n /* \"contract-8045265fb6.sol\":298:378 function stateAdd() public view returns (uint) {... */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n mload(0x40)\n /* \"#utility.yul\":160:185 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":148:150 */\n 0x20\n /* \"#utility.yul\":133:151 */\n add\n /* \"contract-8045265fb6.sol\":298:378 function stateAdd() public view returns (uint) {... */\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_5:\n /* \"contract-8045265fb6.sol\":339:343 uint */\n 0x00\n /* \"contract-8045265fb6.sol\":362:371 add(x, y) */\n tag_9\n /* \"contract-8045265fb6.sol\":366:367 x */\n immutable(\"0x2a80e1ef1d7842f27f2e6be0972bb708b9a135c38860dbe73c27c3486c34f4de\")\n /* \"contract-8045265fb6.sol\":369:370 y */\n immutable(\"0xceebf77a833b30520287ddd9478ff51abbdffa30aa90a8d655dba0e8a79ce0c1\")\n /* \"contract-8045265fb6.sol\":362:365 add */\n tag_10\n /* \"contract-8045265fb6.sol\":362:371 add(x, y) */\n jump\t// in\n tag_9:\n /* \"contract-8045265fb6.sol\":355:371 return add(x, y) */\n swap1\n pop\n /* \"contract-8045265fb6.sol\":298:378 function stateAdd() public view returns (uint) {... */\n swap1\n jump\t// out\n /* \"contract-8045265fb6.sol\":131:222 function add(uint x_, uint y_) internal pure returns (uint) {... */\n tag_10:\n /* \"contract-8045265fb6.sol\":185:189 uint */\n 0x00\n /* \"contract-8045265fb6.sol\":208:215 x_ + y_ */\n tag_12\n /* \"contract-8045265fb6.sol\":213:215 y_ */\n dup3\n /* \"contract-8045265fb6.sol\":208:210 x_ */\n dup5\n /* \"contract-8045265fb6.sol\":208:215 x_ + y_ */\n tag_13\n jump\t// in\n tag_12:\n /* \"contract-8045265fb6.sol\":201:215 return x_ + y_ */\n swap1\n pop\n /* \"contract-8045265fb6.sol\":131:222 function add(uint x_, uint y_) internal pure returns (uint) {... */\n tag_11:\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":196:418 */\n tag_13:\n /* \"#utility.yul\":261:270 */\n dup1\n dup3\n add\n /* \"#utility.yul\":282:292 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":279:412 */\n iszero\n tag_11\n jumpi\n /* \"#utility.yul\":334:344 */\n 0x4e487b71\n /* \"#utility.yul\":329:332 */\n 0xe0\n /* \"#utility.yul\":325:345 */\n shl\n /* \"#utility.yul\":322:323 */\n 0x00\n /* \"#utility.yul\":315:346 */\n mstore\n /* \"#utility.yul\":369:373 */\n 0x11\n /* \"#utility.yul\":366:367 */\n 0x04\n /* \"#utility.yul\":359:374 */\n mstore\n /* \"#utility.yul\":397:401 */\n 0x24\n /* \"#utility.yul\":394:395 */\n 0x00\n /* \"#utility.yul\":387:402 */\n revert\n\n auxdata: 0xa2646970667358221220f7aa26544fbc5643566be1919a3a599b5fbbfcdfaff1a9700956b44c303eda8064736f6c637828302e382e33322d6e696768746c792e323032352e31322e392b636f6d6d69742e37383662373430320059\n}\n", | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_35": { | |
| "entryPoint": null, | |
| "id": 35, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_tuple_t_uint256t_uint256_fromMemory": { | |
| "entryPoint": 53, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 2 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nativeSrc": "0:359:1", | |
| "nodeType": "YulBlock", | |
| "src": "0:359:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "6:3:1", | |
| "nodeType": "YulBlock", | |
| "src": "6:3:1", | |
| "statements": [] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "112:245:1", | |
| "nodeType": "YulBlock", | |
| "src": "112:245:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "158:16:1", | |
| "nodeType": "YulBlock", | |
| "src": "158:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "167:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "167:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "170:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "170:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "160:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "160:6:1" | |
| }, | |
| "nativeSrc": "160:12:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "160:12:1" | |
| }, | |
| "nativeSrc": "160:12:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "160:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "133:7:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "133:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "142:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "142:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nativeSrc": "129:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "129:3:1" | |
| }, | |
| "nativeSrc": "129:23:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "129:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "154:2:1", | |
| "nodeType": "YulLiteral", | |
| "src": "154:2:1", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nativeSrc": "125:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "125:3:1" | |
| }, | |
| "nativeSrc": "125:32:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "125:32:1" | |
| }, | |
| "nativeSrc": "122:52:1", | |
| "nodeType": "YulIf", | |
| "src": "122:52:1" | |
| }, | |
| { | |
| "nativeSrc": "183:14:1", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "183:14:1", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "196:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "196:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "187:5:1", | |
| "nodeType": "YulTypedName", | |
| "src": "187:5:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "206:25:1", | |
| "nodeType": "YulAssignment", | |
| "src": "206:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "221:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "221:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "215:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "215:5:1" | |
| }, | |
| "nativeSrc": "215:16:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "215:16:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "206:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "206:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "240:15:1", | |
| "nodeType": "YulAssignment", | |
| "src": "240:15:1", | |
| "value": { | |
| "name": "value", | |
| "nativeSrc": "250:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "250:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "240:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "240:6:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "264:16:1", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "264:16:1", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "279:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "279:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "value_1", | |
| "nativeSrc": "268:7:1", | |
| "nodeType": "YulTypedName", | |
| "src": "268:7:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "289:36:1", | |
| "nodeType": "YulAssignment", | |
| "src": "289:36:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "310:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "310:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "321:2:1", | |
| "nodeType": "YulLiteral", | |
| "src": "321:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "306:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "306:3:1" | |
| }, | |
| "nativeSrc": "306:18:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "306:18:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "300:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "300:5:1" | |
| }, | |
| "nativeSrc": "300:25:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "300:25:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value_1", | |
| "nativeSrc": "289:7:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "289:7:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "334:17:1", | |
| "nodeType": "YulAssignment", | |
| "src": "334:17:1", | |
| "value": { | |
| "name": "value_1", | |
| "nativeSrc": "344:7:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "344:7:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nativeSrc": "334:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "334:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", | |
| "nativeSrc": "14:343:1", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "70:9:1", | |
| "nodeType": "YulTypedName", | |
| "src": "70:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "81:7:1", | |
| "nodeType": "YulTypedName", | |
| "src": "81:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "93:6:1", | |
| "nodeType": "YulTypedName", | |
| "src": "93:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nativeSrc": "101:6:1", | |
| "nodeType": "YulTypedName", | |
| "src": "101:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "14:343:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n { }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := mload(add(headStart, 32))\n value1 := value_1\n }\n}", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "linkReferences": {}, | |
| "object": "60c0604052348015600e575f5ffd5b50604051610191380380610191833981016040819052602b916035565b60a0526080526056565b5f5f604083850312156045575f5ffd5b505080516020909101519092909150565b60805160a05161011c6100755f395f606801525f6047015261011c5ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063e1a6205514602a575b5f5ffd5b60306042565b60405190815260200160405180910390f35b5f608b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006090565b905090565b5f6099828460a2565b90505b92915050565b80820180821115609c57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f7aa26544fbc5643566be1919a3a599b5fbbfcdfaff1a9700956b44c303eda8064736f6c637828302e382e33322d6e696768746c792e323032352e31322e392b636f6d6d69742e37383662373430320059", | |
| "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x191 CODESIZE SUB DUP1 PUSH2 0x191 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2B SWAP2 PUSH1 0x35 JUMP JUMPDEST PUSH1 0xA0 MSTORE PUSH1 0x80 MSTORE PUSH1 0x56 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x45 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x11C PUSH2 0x75 PUSH0 CODECOPY PUSH0 PUSH1 0x68 ADD MSTORE PUSH0 PUSH1 0x47 ADD MSTORE PUSH2 0x11C PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE1A62055 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x42 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH1 0x8B PUSH32 0x0 PUSH32 0x0 PUSH1 0x90 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x99 DUP3 DUP5 PUSH1 0xA2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH1 0x9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xAA 0x26 SLOAD 0x4F 0xBC JUMP NUMBER JUMP PUSH12 0xE1919A3A599B5FBBFCDFAFF1 0xA9 PUSH17 0x956B44C303EDA8064736F6C637828302E CODESIZE 0x2E CALLER ORIGIN 0x2D PUSH15 0x696768746C792E323032352E31322E CODECOPY 0x2B PUSH4 0x6F6D6D69 PUSH21 0x2E3738366237343032005900000000000000000000 ", | |
| "sourceMap": "62:318:0:-:0;;;228:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;268:17;;;;62:318;;14:343:1;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;-1:-1:-1;;215:16:1;;321:2;306:18;;;300:25;215:16;;300:25;;-1:-1:-1;14:343:1:o;:::-;62:318:0;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@add_19": { | |
| "entryPoint": 144, | |
| "id": 19, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "@stateAdd_46": { | |
| "entryPoint": 66, | |
| "id": 46, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "checked_add_t_uint256": { | |
| "entryPoint": 162, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nativeSrc": "0:420:1", | |
| "nodeType": "YulBlock", | |
| "src": "0:420:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "6:3:1", | |
| "nodeType": "YulBlock", | |
| "src": "6:3:1", | |
| "statements": [] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "115:76:1", | |
| "nodeType": "YulBlock", | |
| "src": "115:76:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "125:26:1", | |
| "nodeType": "YulAssignment", | |
| "src": "125:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "137:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "137:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "148:2:1", | |
| "nodeType": "YulLiteral", | |
| "src": "148:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "133:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "133:3:1" | |
| }, | |
| "nativeSrc": "133:18:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "133:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "125:4:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "125:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "167:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "167:9:1" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "178:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "178:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "160:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "160:6:1" | |
| }, | |
| "nativeSrc": "160:25:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "160:25:1" | |
| }, | |
| "nativeSrc": "160:25:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "160:25:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nativeSrc": "14:177:1", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "84:9:1", | |
| "nodeType": "YulTypedName", | |
| "src": "84:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "95:6:1", | |
| "nodeType": "YulTypedName", | |
| "src": "95:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "106:4:1", | |
| "nodeType": "YulTypedName", | |
| "src": "106:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "14:177:1" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "244:174:1", | |
| "nodeType": "YulBlock", | |
| "src": "244:174:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "254:16:1", | |
| "nodeType": "YulAssignment", | |
| "src": "254:16:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nativeSrc": "265:1:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "265:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nativeSrc": "268:1:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "268:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "261:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "261:3:1" | |
| }, | |
| "nativeSrc": "261:9:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "261:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "sum", | |
| "nativeSrc": "254:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "254:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "301:111:1", | |
| "nodeType": "YulBlock", | |
| "src": "301:111:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "322:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "322:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "329:3:1", | |
| "nodeType": "YulLiteral", | |
| "src": "329:3:1", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "334:10:1", | |
| "nodeType": "YulLiteral", | |
| "src": "334:10:1", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nativeSrc": "325:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "325:3:1" | |
| }, | |
| "nativeSrc": "325:20:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "325:20:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "315:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "315:6:1" | |
| }, | |
| "nativeSrc": "315:31:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "315:31:1" | |
| }, | |
| "nativeSrc": "315:31:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "315:31:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "366:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "366:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "369:4:1", | |
| "nodeType": "YulLiteral", | |
| "src": "369:4:1", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "359:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "359:6:1" | |
| }, | |
| "nativeSrc": "359:15:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "359:15:1" | |
| }, | |
| "nativeSrc": "359:15:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "359:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "394:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "394:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "397:4:1", | |
| "nodeType": "YulLiteral", | |
| "src": "397:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "387:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "387:6:1" | |
| }, | |
| "nativeSrc": "387:15:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "387:15:1" | |
| }, | |
| "nativeSrc": "387:15:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "387:15:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nativeSrc": "285:1:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "285:1:1" | |
| }, | |
| { | |
| "name": "sum", | |
| "nativeSrc": "288:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "288:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "282:2:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "282:2:1" | |
| }, | |
| "nativeSrc": "282:10:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "282:10:1" | |
| }, | |
| "nativeSrc": "279:133:1", | |
| "nodeType": "YulIf", | |
| "src": "279:133:1" | |
| } | |
| ] | |
| }, | |
| "name": "checked_add_t_uint256", | |
| "nativeSrc": "196:222:1", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nativeSrc": "227:1:1", | |
| "nodeType": "YulTypedName", | |
| "src": "227:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nativeSrc": "230:1:1", | |
| "nodeType": "YulTypedName", | |
| "src": "230:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "sum", | |
| "nativeSrc": "236:3:1", | |
| "nodeType": "YulTypedName", | |
| "src": "236:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "196:222:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n}", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": { | |
| "3": [ | |
| { | |
| "length": 32, | |
| "start": 71 | |
| } | |
| ], | |
| "5": [ | |
| { | |
| "length": 32, | |
| "start": 104 | |
| } | |
| ] | |
| }, | |
| "linkReferences": {}, | |
| "object": "6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063e1a6205514602a575b5f5ffd5b60306042565b60405190815260200160405180910390f35b5f608b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006090565b905090565b5f6099828460a2565b90505b92915050565b80820180821115609c57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f7aa26544fbc5643566be1919a3a599b5fbbfcdfaff1a9700956b44c303eda8064736f6c637828302e382e33322d6e696768746c792e323032352e31322e392b636f6d6d69742e37383662373430320059", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE1A62055 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x42 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH1 0x8B PUSH32 0x0 PUSH32 0x0 PUSH1 0x90 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x99 DUP3 DUP5 PUSH1 0xA2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH1 0x9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xAA 0x26 SLOAD 0x4F 0xBC JUMP NUMBER JUMP PUSH12 0xE1919A3A599B5FBBFCDFAFF1 0xA9 PUSH17 0x956B44C303EDA8064736F6C637828302E CODESIZE 0x2E CALLER ORIGIN 0x2D PUSH15 0x696768746C792E323032352E31322E CODECOPY 0x2B PUSH4 0x6F6D6D69 PUSH21 0x2E3738366237343032005900000000000000000000 ", | |
| "sourceMap": "62:318:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;298:80;;;:::i;:::-;;;160:25:1;;;148:2;133:18;298:80:0;;;;;;;;339:4;362:9;366:1;369;362:3;:9::i;:::-;355:16;;298:80;:::o;131:91::-;185:4;208:7;213:2;208;:7;:::i;:::-;201:14;;131:91;;;;;:::o;196:222:1:-;261:9;;;282:10;;;279:133;;;334:10;329:3;325:20;322:1;315:31;369:4;366:1;359:15;397:4;394:1;387:15" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "56800", | |
| "executionCost": "infinite", | |
| "totalCost": "infinite" | |
| }, | |
| "external": { | |
| "stateAdd()": "infinite" | |
| }, | |
| "internal": { | |
| "add(uint256,uint256)": "infinite" | |
| } | |
| }, | |
| "legacyAssembly": { | |
| ".code": [ | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "C0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "CALLVALUE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "ISZERO", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "JUMPI", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "REVERT", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "MLOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSHSIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "CODESIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "SUB", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSHSIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "DUP4", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "CODECOPY", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "DUP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "ADD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "DUP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "2" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "SWAP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "3" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "2" | |
| }, | |
| { | |
| "begin": 228, | |
| "end": 292, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 268, | |
| "end": 285, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "A0" | |
| }, | |
| { | |
| "begin": 268, | |
| "end": 285, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 268, | |
| "end": 285, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 268, | |
| "end": 285, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "7" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 14, | |
| "end": 357, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "3" | |
| }, | |
| { | |
| "begin": 14, | |
| "end": 357, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 93, | |
| "end": 99, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 101, | |
| "end": 107, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 154, | |
| "end": 156, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 142, | |
| "end": 151, | |
| "name": "DUP4", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 133, | |
| "end": 140, | |
| "name": "DUP6", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 129, | |
| "end": 152, | |
| "name": "SUB", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 125, | |
| "end": 157, | |
| "name": "SLT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 122, | |
| "end": 174, | |
| "name": "ISZERO", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 122, | |
| "end": 174, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 122, | |
| "end": 174, | |
| "name": "JUMPI", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 170, | |
| "end": 171, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 167, | |
| "end": 168, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 160, | |
| "end": 172, | |
| "name": "REVERT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 122, | |
| "end": 174, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 122, | |
| "end": 174, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": -1, | |
| "end": -1, | |
| "name": "POP", | |
| "source": -1 | |
| }, | |
| { | |
| "begin": -1, | |
| "end": -1, | |
| "name": "POP", | |
| "source": -1 | |
| }, | |
| { | |
| "begin": 215, | |
| "end": 231, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 215, | |
| "end": 231, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 321, | |
| "end": 323, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 306, | |
| "end": 324, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 306, | |
| "end": 324, | |
| "name": "SWAP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 306, | |
| "end": 324, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 300, | |
| "end": 325, | |
| "name": "MLOAD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 215, | |
| "end": 231, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 215, | |
| "end": 231, | |
| "name": "SWAP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 300, | |
| "end": 325, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 300, | |
| "end": 325, | |
| "name": "SWAP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": -1, | |
| "end": -1, | |
| "name": "POP", | |
| "source": -1 | |
| }, | |
| { | |
| "begin": 14, | |
| "end": 357, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 14, | |
| "end": 357, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "7" | |
| }, | |
| { | |
| "begin": 14, | |
| "end": 357, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "MLOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "A0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "MLOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH #[$]", | |
| "source": 0, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH [$]", | |
| "source": 0, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "CODECOPY", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "ASSIGNIMMUTABLE", | |
| "source": 0, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "ASSIGNIMMUTABLE", | |
| "source": 0, | |
| "value": "3" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH #[$]", | |
| "source": 0, | |
| "value": "0000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "RETURN", | |
| "source": 0 | |
| } | |
| ], | |
| ".data": { | |
| "0": { | |
| ".auxdata": "a2646970667358221220f7aa26544fbc5643566be1919a3a599b5fbbfcdfaff1a9700956b44c303eda8064736f6c637828302e382e33322d6e696768746c792e323032352e31322e392b636f6d6d69742e37383662373430320059", | |
| ".code": [ | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "80" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "MSTORE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "CALLVALUE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "ISZERO", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "JUMPI", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "REVERT", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "1" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "CALLDATASIZE", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "LT", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "2" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "JUMPI", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "CALLDATALOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "E0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "SHR", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "E1A62055" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "EQ", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "3" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "JUMPI", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "2" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 62, | |
| "end": 380, | |
| "name": "REVERT", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "3" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "MLOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 160, | |
| "end": 185, | |
| "name": "SWAP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 160, | |
| "end": 185, | |
| "name": "DUP2", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 160, | |
| "end": 185, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 148, | |
| "end": 150, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "20" | |
| }, | |
| { | |
| "begin": 133, | |
| "end": 151, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "40" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "MLOAD", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "DUP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "SWAP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "SUB", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "RETURN", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 339, | |
| "end": 343, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 362, | |
| "end": 371, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 366, | |
| "end": 367, | |
| "name": "PUSHIMMUTABLE", | |
| "source": 0, | |
| "value": "3" | |
| }, | |
| { | |
| "begin": 369, | |
| "end": 370, | |
| "name": "PUSHIMMUTABLE", | |
| "source": 0, | |
| "value": "5" | |
| }, | |
| { | |
| "begin": 362, | |
| "end": 365, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "10" | |
| }, | |
| { | |
| "begin": 362, | |
| "end": 371, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 362, | |
| "end": 371, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "9" | |
| }, | |
| { | |
| "begin": 362, | |
| "end": 371, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 355, | |
| "end": 371, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 355, | |
| "end": 371, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 298, | |
| "end": 378, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "10" | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 185, | |
| "end": 189, | |
| "name": "PUSH", | |
| "source": 0, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 208, | |
| "end": 215, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "12" | |
| }, | |
| { | |
| "begin": 213, | |
| "end": 215, | |
| "name": "DUP3", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 208, | |
| "end": 210, | |
| "name": "DUP5", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 208, | |
| "end": 215, | |
| "name": "PUSH [tag]", | |
| "source": 0, | |
| "value": "13" | |
| }, | |
| { | |
| "begin": 208, | |
| "end": 215, | |
| "jumpType": "[in]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 208, | |
| "end": 215, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "12" | |
| }, | |
| { | |
| "begin": 208, | |
| "end": 215, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 201, | |
| "end": 215, | |
| "name": "SWAP1", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 201, | |
| "end": 215, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "tag", | |
| "source": 0, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "JUMPDEST", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "SWAP3", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "SWAP2", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "name": "POP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 131, | |
| "end": 222, | |
| "jumpType": "[out]", | |
| "name": "JUMP", | |
| "source": 0 | |
| }, | |
| { | |
| "begin": 196, | |
| "end": 418, | |
| "name": "tag", | |
| "source": 1, | |
| "value": "13" | |
| }, | |
| { | |
| "begin": 196, | |
| "end": 418, | |
| "name": "JUMPDEST", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 261, | |
| "end": 270, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 261, | |
| "end": 270, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 261, | |
| "end": 270, | |
| "name": "ADD", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 282, | |
| "end": 292, | |
| "name": "DUP1", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 282, | |
| "end": 292, | |
| "name": "DUP3", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 282, | |
| "end": 292, | |
| "name": "GT", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 279, | |
| "end": 412, | |
| "name": "ISZERO", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 279, | |
| "end": 412, | |
| "name": "PUSH [tag]", | |
| "source": 1, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 279, | |
| "end": 412, | |
| "name": "JUMPI", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 334, | |
| "end": 344, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4E487B71" | |
| }, | |
| { | |
| "begin": 329, | |
| "end": 332, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "E0" | |
| }, | |
| { | |
| "begin": 325, | |
| "end": 345, | |
| "name": "SHL", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 322, | |
| "end": 323, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 315, | |
| "end": 346, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 369, | |
| "end": 373, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "11" | |
| }, | |
| { | |
| "begin": 366, | |
| "end": 367, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "4" | |
| }, | |
| { | |
| "begin": 359, | |
| "end": 374, | |
| "name": "MSTORE", | |
| "source": 1 | |
| }, | |
| { | |
| "begin": 397, | |
| "end": 401, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "24" | |
| }, | |
| { | |
| "begin": 394, | |
| "end": 395, | |
| "name": "PUSH", | |
| "source": 1, | |
| "value": "0" | |
| }, | |
| { | |
| "begin": 387, | |
| "end": 402, | |
| "name": "REVERT", | |
| "source": 1 | |
| } | |
| ] | |
| } | |
| }, | |
| "sourceList": [ | |
| "contract-8045265fb6.sol", | |
| "#utility.yul" | |
| ] | |
| }, | |
| "methodIdentifiers": { | |
| "stateAdd()": "e1a62055" | |
| } | |
| }, | |
| "metadata": "{\"compiler\":{\"version\":\"0.8.32-nightly.2025.12.9+commit.786b7402\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"stateAdd\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contract-8045265fb6.sol\":\"Overflow\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contract-8045265fb6.sol\":{\"keccak256\":\"0x11e69885c91bdd4d788bf4514e1eb524147cf8384761bbfa31d100653cf4a12e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1e765fc1319f0203cb8019c4f59b89a08bc56b5f4684223e1ab8b1933870b21d\",\"dweb:/ipfs/QmYVs6LakQepQBfUpe8bPhqkRps83bFhDN5pr2EepstkZQ\"]}},\"version\":1}", | |
| "storageLayout": { | |
| "storage": [], | |
| "types": null | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| } | |
| } | |
| }, | |
| "errors": [ | |
| { | |
| "component": "general", | |
| "errorCode": "3805", | |
| "formattedMessage": "Warning: This is a pre-release compiler version, please do not use it in production.\n\n", | |
| "message": "This is a pre-release compiler version, please do not use it in production.", | |
| "severity": "warning", | |
| "type": "Warning" | |
| } | |
| ], | |
| "sources": { | |
| "contract-8045265fb6.sol": { | |
| "ast": { | |
| "absolutePath": "contract-8045265fb6.sol", | |
| "exportedSymbols": { | |
| "Overflow": [ | |
| 47 | |
| ] | |
| }, | |
| "id": 48, | |
| "license": "GPL-3.0", | |
| "nodeType": "SourceUnit", | |
| "nodes": [ | |
| { | |
| "id": 1, | |
| "literals": [ | |
| "solidity", | |
| ">=", | |
| "0.8", | |
| ".0" | |
| ], | |
| "nodeType": "PragmaDirective", | |
| "src": "36:24:0" | |
| }, | |
| { | |
| "abstract": false, | |
| "baseContracts": [], | |
| "canonicalName": "Overflow", | |
| "contractDependencies": [], | |
| "contractKind": "contract", | |
| "fullyImplemented": true, | |
| "id": 47, | |
| "linearizedBaseContracts": [ | |
| 47 | |
| ], | |
| "name": "Overflow", | |
| "nameLocation": "71:8:0", | |
| "nodeType": "ContractDefinition", | |
| "nodes": [ | |
| { | |
| "constant": false, | |
| "id": 3, | |
| "mutability": "immutable", | |
| "name": "x", | |
| "nameLocation": "101:1:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 47, | |
| "src": "86:16:0", | |
| "stateVariable": true, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 2, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "86:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 5, | |
| "mutability": "immutable", | |
| "name": "y", | |
| "nameLocation": "123:1:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 47, | |
| "src": "108:16:0", | |
| "stateVariable": true, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 4, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "108:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 18, | |
| "nodeType": "Block", | |
| "src": "191:31:0", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "commonType": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "id": 16, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftExpression": { | |
| "id": 14, | |
| "name": "x_", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 7, | |
| "src": "208:2:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "nodeType": "BinaryOperation", | |
| "operator": "+", | |
| "rightExpression": { | |
| "id": 15, | |
| "name": "y_", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 9, | |
| "src": "213:2:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "src": "208:7:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "functionReturnParameters": 13, | |
| "id": 17, | |
| "nodeType": "Return", | |
| "src": "201:14:0" | |
| } | |
| ] | |
| }, | |
| "id": 19, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "add", | |
| "nameLocation": "140:3:0", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 10, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 7, | |
| "mutability": "mutable", | |
| "name": "x_", | |
| "nameLocation": "149:2:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 19, | |
| "src": "144:7:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 6, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "144:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 9, | |
| "mutability": "mutable", | |
| "name": "y_", | |
| "nameLocation": "158:2:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 19, | |
| "src": "153:7:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 8, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "153:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "143:18:0" | |
| }, | |
| "returnParameters": { | |
| "id": 13, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 12, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 19, | |
| "src": "185:4:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 11, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "185:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "184:6:0" | |
| }, | |
| "scope": 47, | |
| "src": "131:91:0", | |
| "stateMutability": "pure", | |
| "virtual": false, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "body": { | |
| "id": 34, | |
| "nodeType": "Block", | |
| "src": "258:34:0", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "id": 32, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "leftHandSide": { | |
| "components": [ | |
| { | |
| "id": 26, | |
| "name": "x", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 3, | |
| "src": "269:1:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| { | |
| "id": 27, | |
| "name": "y", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 5, | |
| "src": "272:1:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| } | |
| ], | |
| "id": 28, | |
| "isConstant": false, | |
| "isInlineArray": false, | |
| "isLValue": true, | |
| "isPure": false, | |
| "lValueRequested": true, | |
| "nodeType": "TupleExpression", | |
| "src": "268:6:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", | |
| "typeString": "tuple(uint256,uint256)" | |
| } | |
| }, | |
| "nodeType": "Assignment", | |
| "operator": "=", | |
| "rightHandSide": { | |
| "components": [ | |
| { | |
| "id": 29, | |
| "name": "x_", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 21, | |
| "src": "278:2:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| { | |
| "id": 30, | |
| "name": "y_", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 23, | |
| "src": "282:2:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| } | |
| ], | |
| "id": 31, | |
| "isConstant": false, | |
| "isInlineArray": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "lValueRequested": false, | |
| "nodeType": "TupleExpression", | |
| "src": "277:8:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", | |
| "typeString": "tuple(uint256,uint256)" | |
| } | |
| }, | |
| "src": "268:17:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_tuple$__$", | |
| "typeString": "tuple()" | |
| } | |
| }, | |
| "id": 33, | |
| "nodeType": "ExpressionStatement", | |
| "src": "268:17:0" | |
| } | |
| ] | |
| }, | |
| "id": 35, | |
| "implemented": true, | |
| "kind": "constructor", | |
| "modifiers": [], | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 24, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 21, | |
| "mutability": "mutable", | |
| "name": "x_", | |
| "nameLocation": "245:2:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 35, | |
| "src": "240:7:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 20, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "240:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| }, | |
| { | |
| "constant": false, | |
| "id": 23, | |
| "mutability": "mutable", | |
| "name": "y_", | |
| "nameLocation": "254:2:0", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 35, | |
| "src": "249:7:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 22, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "249:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "239:18:0" | |
| }, | |
| "returnParameters": { | |
| "id": 25, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "258:0:0" | |
| }, | |
| "scope": 47, | |
| "src": "228:64:0", | |
| "stateMutability": "nonpayable", | |
| "virtual": false, | |
| "visibility": "public" | |
| }, | |
| { | |
| "body": { | |
| "id": 45, | |
| "nodeType": "Block", | |
| "src": "345:33:0", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "id": 41, | |
| "name": "x", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 3, | |
| "src": "366:1:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| { | |
| "id": 42, | |
| "name": "y", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 5, | |
| "src": "369:1:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "argumentTypes": [ | |
| { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| ], | |
| "id": 40, | |
| "name": "add", | |
| "nodeType": "Identifier", | |
| "overloadedDeclarations": [], | |
| "referencedDeclaration": 19, | |
| "src": "362:3:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", | |
| "typeString": "function (uint256,uint256) pure returns (uint256)" | |
| } | |
| }, | |
| "id": 43, | |
| "isConstant": false, | |
| "isLValue": false, | |
| "isPure": false, | |
| "kind": "functionCall", | |
| "lValueRequested": false, | |
| "nameLocations": [], | |
| "names": [], | |
| "nodeType": "FunctionCall", | |
| "src": "362:9:0", | |
| "tryCall": false, | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "functionReturnParameters": 39, | |
| "id": 44, | |
| "nodeType": "Return", | |
| "src": "355:16:0" | |
| } | |
| ] | |
| }, | |
| "functionSelector": "e1a62055", | |
| "id": 46, | |
| "implemented": true, | |
| "kind": "function", | |
| "modifiers": [], | |
| "name": "stateAdd", | |
| "nameLocation": "307:8:0", | |
| "nodeType": "FunctionDefinition", | |
| "parameters": { | |
| "id": 36, | |
| "nodeType": "ParameterList", | |
| "parameters": [], | |
| "src": "315:2:0" | |
| }, | |
| "returnParameters": { | |
| "id": 39, | |
| "nodeType": "ParameterList", | |
| "parameters": [ | |
| { | |
| "constant": false, | |
| "id": 38, | |
| "mutability": "mutable", | |
| "name": "", | |
| "nameLocation": "-1:-1:-1", | |
| "nodeType": "VariableDeclaration", | |
| "scope": 46, | |
| "src": "339:4:0", | |
| "stateVariable": false, | |
| "storageLocation": "default", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| }, | |
| "typeName": { | |
| "id": 37, | |
| "name": "uint", | |
| "nodeType": "ElementaryTypeName", | |
| "src": "339:4:0", | |
| "typeDescriptions": { | |
| "typeIdentifier": "t_uint256", | |
| "typeString": "uint256" | |
| } | |
| }, | |
| "visibility": "internal" | |
| } | |
| ], | |
| "src": "338:6:0" | |
| }, | |
| "scope": 47, | |
| "src": "298:80:0", | |
| "stateMutability": "view", | |
| "virtual": false, | |
| "visibility": "public" | |
| } | |
| ], | |
| "scope": 48, | |
| "src": "62:318:0", | |
| "usedErrors": [], | |
| "usedEvents": [] | |
| } | |
| ], | |
| "src": "36:344:0" | |
| }, | |
| "id": 0 | |
| } | |
| } | |
| } | |
| } |
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 | |
| }, | |
| "sepolia:11155111": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "functionDebugData": { | |
| "@_35": { | |
| "entryPoint": null, | |
| "id": 35, | |
| "parameterSlots": 2, | |
| "returnSlots": 0 | |
| }, | |
| "abi_decode_tuple_t_uint256t_uint256_fromMemory": { | |
| "entryPoint": 53, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 2 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nativeSrc": "0:359:1", | |
| "nodeType": "YulBlock", | |
| "src": "0:359:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "6:3:1", | |
| "nodeType": "YulBlock", | |
| "src": "6:3:1", | |
| "statements": [] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "112:245:1", | |
| "nodeType": "YulBlock", | |
| "src": "112:245:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nativeSrc": "158:16:1", | |
| "nodeType": "YulBlock", | |
| "src": "158:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "167:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "167:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "170:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "170:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "160:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "160:6:1" | |
| }, | |
| "nativeSrc": "160:12:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "160:12:1" | |
| }, | |
| "nativeSrc": "160:12:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "160:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "133:7:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "133:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "142:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "142:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nativeSrc": "129:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "129:3:1" | |
| }, | |
| "nativeSrc": "129:23:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "129:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "154:2:1", | |
| "nodeType": "YulLiteral", | |
| "src": "154:2:1", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nativeSrc": "125:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "125:3:1" | |
| }, | |
| "nativeSrc": "125:32:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "125:32:1" | |
| }, | |
| "nativeSrc": "122:52:1", | |
| "nodeType": "YulIf", | |
| "src": "122:52:1" | |
| }, | |
| { | |
| "nativeSrc": "183:14:1", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "183:14:1", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "196:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "196:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "187:5:1", | |
| "nodeType": "YulTypedName", | |
| "src": "187:5:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "206:25:1", | |
| "nodeType": "YulAssignment", | |
| "src": "206:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "221:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "221:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "215:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "215:5:1" | |
| }, | |
| "nativeSrc": "215:16:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "215:16:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nativeSrc": "206:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "206:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "240:15:1", | |
| "nodeType": "YulAssignment", | |
| "src": "240:15:1", | |
| "value": { | |
| "name": "value", | |
| "nativeSrc": "250:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "250:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "240:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "240:6:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "264:16:1", | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "264:16:1", | |
| "value": { | |
| "kind": "number", | |
| "nativeSrc": "279:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "279:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "value_1", | |
| "nativeSrc": "268:7:1", | |
| "nodeType": "YulTypedName", | |
| "src": "268:7:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "289:36:1", | |
| "nodeType": "YulAssignment", | |
| "src": "289:36:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "310:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "310:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "321:2:1", | |
| "nodeType": "YulLiteral", | |
| "src": "321:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "306:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "306:3:1" | |
| }, | |
| "nativeSrc": "306:18:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "306:18:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nativeSrc": "300:5:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "300:5:1" | |
| }, | |
| "nativeSrc": "300:25:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "300:25:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value_1", | |
| "nativeSrc": "289:7:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "289:7:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nativeSrc": "334:17:1", | |
| "nodeType": "YulAssignment", | |
| "src": "334:17:1", | |
| "value": { | |
| "name": "value_1", | |
| "nativeSrc": "344:7:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "344:7:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nativeSrc": "334:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "334:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory", | |
| "nativeSrc": "14:343:1", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "70:9:1", | |
| "nodeType": "YulTypedName", | |
| "src": "70:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nativeSrc": "81:7:1", | |
| "nodeType": "YulTypedName", | |
| "src": "81:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nativeSrc": "93:6:1", | |
| "nodeType": "YulTypedName", | |
| "src": "93:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nativeSrc": "101:6:1", | |
| "nodeType": "YulTypedName", | |
| "src": "101:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "14:343:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n { }\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := mload(add(headStart, 32))\n value1 := value_1\n }\n}", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "linkReferences": {}, | |
| "object": "60c0604052348015600e575f5ffd5b50604051610191380380610191833981016040819052602b916035565b60a0526080526056565b5f5f604083850312156045575f5ffd5b505080516020909101519092909150565b60805160a05161011c6100755f395f606801525f6047015261011c5ff3fe6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063e1a6205514602a575b5f5ffd5b60306042565b60405190815260200160405180910390f35b5f608b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006090565b905090565b5f6099828460a2565b90505b92915050565b80820180821115609c57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f7aa26544fbc5643566be1919a3a599b5fbbfcdfaff1a9700956b44c303eda8064736f6c637828302e382e33322d6e696768746c792e323032352e31322e392b636f6d6d69742e37383662373430320059", | |
| "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x191 CODESIZE SUB DUP1 PUSH2 0x191 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH1 0x2B SWAP2 PUSH1 0x35 JUMP JUMPDEST PUSH1 0xA0 MSTORE PUSH1 0x80 MSTORE PUSH1 0x56 JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH1 0x45 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP POP DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD SWAP1 SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x11C PUSH2 0x75 PUSH0 CODECOPY PUSH0 PUSH1 0x68 ADD MSTORE PUSH0 PUSH1 0x47 ADD MSTORE PUSH2 0x11C PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE1A62055 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x42 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH1 0x8B PUSH32 0x0 PUSH32 0x0 PUSH1 0x90 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x99 DUP3 DUP5 PUSH1 0xA2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH1 0x9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xAA 0x26 SLOAD 0x4F 0xBC JUMP NUMBER JUMP PUSH12 0xE1919A3A599B5FBBFCDFAFF1 0xA9 PUSH17 0x956B44C303EDA8064736F6C637828302E CODESIZE 0x2E CALLER ORIGIN 0x2D PUSH15 0x696768746C792E323032352E31322E CODECOPY 0x2B PUSH4 0x6F6D6D69 PUSH21 0x2E3738366237343032005900000000000000000000 ", | |
| "sourceMap": "62:318:0:-:0;;;228:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;268:17;;;;62:318;;14:343:1;93:6;101;154:2;142:9;133:7;129:23;125:32;122:52;;;170:1;167;160:12;122:52;-1:-1:-1;;215:16:1;;321:2;306:18;;;300:25;215:16;;300:25;;-1:-1:-1;14:343:1:o;:::-;62:318:0;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "functionDebugData": { | |
| "@add_19": { | |
| "entryPoint": 144, | |
| "id": 19, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "@stateAdd_46": { | |
| "entryPoint": 66, | |
| "id": 46, | |
| "parameterSlots": 0, | |
| "returnSlots": 1 | |
| }, | |
| "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { | |
| "entryPoint": null, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| }, | |
| "checked_add_t_uint256": { | |
| "entryPoint": 162, | |
| "id": null, | |
| "parameterSlots": 2, | |
| "returnSlots": 1 | |
| } | |
| }, | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nativeSrc": "0:420:1", | |
| "nodeType": "YulBlock", | |
| "src": "0:420:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "6:3:1", | |
| "nodeType": "YulBlock", | |
| "src": "6:3:1", | |
| "statements": [] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "115:76:1", | |
| "nodeType": "YulBlock", | |
| "src": "115:76:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "125:26:1", | |
| "nodeType": "YulAssignment", | |
| "src": "125:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "137:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "137:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "148:2:1", | |
| "nodeType": "YulLiteral", | |
| "src": "148:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "133:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "133:3:1" | |
| }, | |
| "nativeSrc": "133:18:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "133:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "125:4:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "125:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "167:9:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "167:9:1" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "178:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "178:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "160:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "160:6:1" | |
| }, | |
| "nativeSrc": "160:25:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "160:25:1" | |
| }, | |
| "nativeSrc": "160:25:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "160:25:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nativeSrc": "14:177:1", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nativeSrc": "84:9:1", | |
| "nodeType": "YulTypedName", | |
| "src": "84:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nativeSrc": "95:6:1", | |
| "nodeType": "YulTypedName", | |
| "src": "95:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nativeSrc": "106:4:1", | |
| "nodeType": "YulTypedName", | |
| "src": "106:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "14:177:1" | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "244:174:1", | |
| "nodeType": "YulBlock", | |
| "src": "244:174:1", | |
| "statements": [ | |
| { | |
| "nativeSrc": "254:16:1", | |
| "nodeType": "YulAssignment", | |
| "src": "254:16:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nativeSrc": "265:1:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "265:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nativeSrc": "268:1:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "268:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nativeSrc": "261:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "261:3:1" | |
| }, | |
| "nativeSrc": "261:9:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "261:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "sum", | |
| "nativeSrc": "254:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "254:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nativeSrc": "301:111:1", | |
| "nodeType": "YulBlock", | |
| "src": "301:111:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "322:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "322:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "329:3:1", | |
| "nodeType": "YulLiteral", | |
| "src": "329:3:1", | |
| "type": "", | |
| "value": "224" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "334:10:1", | |
| "nodeType": "YulLiteral", | |
| "src": "334:10:1", | |
| "type": "", | |
| "value": "0x4e487b71" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shl", | |
| "nativeSrc": "325:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "325:3:1" | |
| }, | |
| "nativeSrc": "325:20:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "325:20:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "315:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "315:6:1" | |
| }, | |
| "nativeSrc": "315:31:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "315:31:1" | |
| }, | |
| "nativeSrc": "315:31:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "315:31:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "366:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "366:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "369:4:1", | |
| "nodeType": "YulLiteral", | |
| "src": "369:4:1", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nativeSrc": "359:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "359:6:1" | |
| }, | |
| "nativeSrc": "359:15:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "359:15:1" | |
| }, | |
| "nativeSrc": "359:15:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "359:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nativeSrc": "394:1:1", | |
| "nodeType": "YulLiteral", | |
| "src": "394:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nativeSrc": "397:4:1", | |
| "nodeType": "YulLiteral", | |
| "src": "397:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nativeSrc": "387:6:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "387:6:1" | |
| }, | |
| "nativeSrc": "387:15:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "387:15:1" | |
| }, | |
| "nativeSrc": "387:15:1", | |
| "nodeType": "YulExpressionStatement", | |
| "src": "387:15:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nativeSrc": "285:1:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "285:1:1" | |
| }, | |
| { | |
| "name": "sum", | |
| "nativeSrc": "288:3:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "288:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nativeSrc": "282:2:1", | |
| "nodeType": "YulIdentifier", | |
| "src": "282:2:1" | |
| }, | |
| "nativeSrc": "282:10:1", | |
| "nodeType": "YulFunctionCall", | |
| "src": "282:10:1" | |
| }, | |
| "nativeSrc": "279:133:1", | |
| "nodeType": "YulIf", | |
| "src": "279:133:1" | |
| } | |
| ] | |
| }, | |
| "name": "checked_add_t_uint256", | |
| "nativeSrc": "196:222:1", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nativeSrc": "227:1:1", | |
| "nodeType": "YulTypedName", | |
| "src": "227:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nativeSrc": "230:1:1", | |
| "nodeType": "YulTypedName", | |
| "src": "230:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "sum", | |
| "nativeSrc": "236:3:1", | |
| "nodeType": "YulTypedName", | |
| "src": "236:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "196:222:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n { }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n}", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": { | |
| "3": [ | |
| { | |
| "length": 32, | |
| "start": 71 | |
| } | |
| ], | |
| "5": [ | |
| { | |
| "length": 32, | |
| "start": 104 | |
| } | |
| ] | |
| }, | |
| "linkReferences": {}, | |
| "object": "6080604052348015600e575f5ffd5b50600436106026575f3560e01c8063e1a6205514602a575b5f5ffd5b60306042565b60405190815260200160405180910390f35b5f608b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006090565b905090565b5f6099828460a2565b90505b92915050565b80820180821115609c57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220f7aa26544fbc5643566be1919a3a599b5fbbfcdfaff1a9700956b44c303eda8064736f6c637828302e382e33322d6e696768746c792e323032352e31322e392b636f6d6d69742e37383662373430320059", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x26 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xE1A62055 EQ PUSH1 0x2A JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH1 0x30 PUSH1 0x42 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH1 0x8B PUSH32 0x0 PUSH32 0x0 PUSH1 0x90 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH1 0x99 DUP3 DUP5 PUSH1 0xA2 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH1 0x9C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xAA 0x26 SLOAD 0x4F 0xBC JUMP NUMBER JUMP PUSH12 0xE1919A3A599B5FBBFCDFAFF1 0xA9 PUSH17 0x956B44C303EDA8064736F6C637828302E CODESIZE 0x2E CALLER ORIGIN 0x2D PUSH15 0x696768746C792E323032352E31322E CODECOPY 0x2B PUSH4 0x6F6D6D69 PUSH21 0x2E3738366237343032005900000000000000000000 ", | |
| "sourceMap": "62:318:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;298:80;;;:::i;:::-;;;160:25:1;;;148:2;133:18;298:80:0;;;;;;;;339:4;362:9;366:1;369;362:3;:9::i;:::-;355:16;;298:80;:::o;131:91::-;185:4;208:7;213:2;208;:7;:::i;:::-;201:14;;131:91;;;;;:::o;196:222:1:-;261:9;;;282:10;;;279:133;;;334:10;329:3;325:20;322:1;315:31;369:4;366:1;359:15;397:4;394:1;387:15" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "56800", | |
| "executionCost": "infinite", | |
| "totalCost": "infinite" | |
| }, | |
| "external": { | |
| "stateAdd()": "infinite" | |
| }, | |
| "internal": { | |
| "add(uint256,uint256)": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "stateAdd()": "e1a62055" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x_", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "y_", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "stateAdd", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "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.32-nightly.2025.12.9+commit.786b7402" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x_", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "y_", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "stateAdd", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contract-8045265fb6.sol": "Overflow" | |
| }, | |
| "evmVersion": "osaka", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": true, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contract-8045265fb6.sol": { | |
| "keccak256": "0x11e69885c91bdd4d788bf4514e1eb524147cf8384761bbfa31d100653cf4a12e", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://1e765fc1319f0203cb8019c4f59b89a08bc56b5f4684223e1ab8b1933870b21d", | |
| "dweb:/ipfs/QmYVs6LakQepQBfUpe8bPhqkRps83bFhDN5pr2EepstkZQ" | |
| ] | |
| } | |
| }, | |
| "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.8.0; | |
| contract Overflow { | |
| uint immutable x; | |
| uint immutable y; | |
| function add(uint x_, uint y_) internal pure returns (uint) { | |
| return x_ + y_; | |
| } | |
| constructor(uint x_, uint y_) { | |
| (x, y) = (x_, y_); | |
| } | |
| function stateAdd() public view returns (uint) { | |
| return add(x, y); | |
| } | |
| } |
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
| { | |
| "solidity-compiler": { | |
| "language": "Solidity", | |
| "settings": { | |
| "optimizer": { | |
| "enabled": true, | |
| "runs": 200 | |
| }, | |
| "outputSelection": { | |
| "*": { | |
| "": [ | |
| "ast" | |
| ], | |
| "*": [ | |
| "abi", | |
| "metadata", | |
| "devdoc", | |
| "userdoc", | |
| "storageLayout", | |
| "evm.legacyAssembly", | |
| "evm.bytecode", | |
| "evm.deployedBytecode", | |
| "evm.methodIdentifiers", | |
| "evm.gasEstimates", | |
| "evm.assembly" | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment