Skip to content

Instantly share code, notes, and snippets.

@4xMafole
Created August 12, 2022 16:09
Show Gist options
  • Save 4xMafole/d814b9b45fa909d9c10f2e34ef3bf9ac to your computer and use it in GitHub Desktop.
Save 4xMafole/d814b9b45fa909d9c10f2e34ef3bf9ac 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.16+commit.07a7930e.js&optimize=false&runs=200&gist=
{
"id": "1f6d3c5857f7e5dc8cdff7c81d170db6",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.4.26",
"solcLongVersion": "0.4.26+commit.4563c3fc",
"input": {
"language": "Solidity",
"sources": {
"Course.sol": {
"content": "pragma solidity ^0.4.18;\r\n\r\ncontract Course {\r\n\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"Course.sol": {
"Course": {
"abi": [],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"Course.sol\":28:50 contract Course {\r... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x0\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"Course.sol\":28:50 contract Course {\r... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x0\n codecopy\n 0x0\n return\nstop\n\nsub_0: assembly {\n /* \"Course.sol\":28:50 contract Course {\r... */\n mstore(0x40, 0x80)\n 0x0\n dup1\n revert\n\n auxdata: 0xa165627a7a723058205a336d8e74382cf741a984b907d330c2c587570bb1bf1ad558f838a2dd1e97d60029\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058205a336d8e74382cf741a984b907d330c2c587570bb1bf1ad558f838a2dd1e97d60029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GAS CALLER PUSH14 0x8E74382CF741A984B907D330C2C5 DUP8 JUMPI SIGNEXTEND 0xb1 0xbf BYTE 0xd5 PC 0xf8 CODESIZE LOG2 0xdd 0x1e SWAP8 0xd6 STOP 0x29 ",
"sourceMap": "28:22:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28:22:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fd00a165627a7a723058205a336d8e74382cf741a984b907d330c2c587570bb1bf1ad558f838a2dd1e97d60029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GAS CALLER PUSH14 0x8E74382CF741A984B907D330C2C5 DUP8 JUMPI SIGNEXTEND 0xb1 0xbf BYTE 0xd5 PC 0xf8 CODESIZE LOG2 0xdd 0x1e SWAP8 0xd6 STOP 0x29 ",
"sourceMap": "28:22:0:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "10600",
"executionCost": "66",
"totalCost": "10666"
}
},
"legacyAssembly": {
".code": [
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "80"
},
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "40"
},
{
"begin": 28,
"end": 50,
"name": "MSTORE"
},
{
"begin": 28,
"end": 50,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 28,
"end": 50,
"name": "POP"
},
{
"begin": 28,
"end": 50,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 28,
"end": 50,
"name": "DUP1"
},
{
"begin": 28,
"end": 50,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "0"
},
{
"begin": 28,
"end": 50,
"name": "CODECOPY"
},
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "0"
},
{
"begin": 28,
"end": 50,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a165627a7a723058205a336d8e74382cf741a984b907d330c2c587570bb1bf1ad558f838a2dd1e97d60029",
".code": [
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "80"
},
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "40"
},
{
"begin": 28,
"end": 50,
"name": "MSTORE"
},
{
"begin": 28,
"end": 50,
"name": "PUSH",
"value": "0"
},
{
"begin": 28,
"end": 50,
"name": "DUP1"
},
{
"begin": 28,
"end": 50,
"name": "REVERT"
}
]
}
}
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.4.26+commit.4563c3fc\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"Course.sol\":\"Course\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Course.sol\":{\"keccak256\":\"0xa627830140767ee2660291234a0e2d719db2cf938b49c11c2fe703107068ce23\",\"urls\":[\"bzzr://d0d16c2656c559dba7dc370d6a456284be9c6cdc5e3360808098798ed886c9b0\"]}},\"version\":1}",
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"Course.sol": {
"ast": {
"absolutePath": "Course.sol",
"exportedSymbols": {
"Course": [
2
]
},
"id": 3,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.4",
".18"
],
"nodeType": "PragmaDirective",
"src": "0:24:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 2,
"linearizedBaseContracts": [
2
],
"name": "Course",
"nodeType": "ContractDefinition",
"nodes": [],
"scope": 3,
"src": "28:22:0"
}
],
"src": "0:50:0"
},
"id": 0
}
}
}
}
{
"id": "2eaa39cd8daa053cae5b74026141239f",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.16",
"solcLongVersion": "0.8.16+commit.07a7930e",
"input": {
"language": "Solidity",
"sources": {
"Counter.sol": {
"content": "//SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.0;\r\n\r\ncontract Counter {\r\n //Code goes here...\r\n uint count; //State variable\r\n\r\n constructor() public {\r\n count = 0;\r\n }\r\n \r\n function getCount() public view returns(uint) {\r\n //read function no paying gas\r\n return count;\r\n }\r\n\r\n function incrementCount() public {\r\n //write function pays gas\r\n count = count + 1;\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"Counter.sol": {
"Counter": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "incrementCount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"Counter.sol\":59:436 contract Counter {... */\n mstore(0x40, 0x80)\n /* \"Counter.sol\":144:193 constructor() public {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"Counter.sol\":184:185 0 */\n 0x00\n /* \"Counter.sol\":176:181 count */\n dup1\n /* \"Counter.sol\":176:185 count = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"Counter.sol\":59:436 contract Counter {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Counter.sol\":59:436 contract Counter {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xa87d942c\n eq\n tag_3\n jumpi\n dup1\n 0xe5071b8e\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Counter.sol\":205:321 function getCount() public view returns(uint) {... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Counter.sol\":329:433 function incrementCount() public {... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"Counter.sol\":205:321 function getCount() public view returns(uint) {... */\n tag_6:\n /* \"Counter.sol\":245:249 uint */\n 0x00\n /* \"Counter.sol\":308:313 count */\n dup1\n sload\n /* \"Counter.sol\":301:313 return count */\n swap1\n pop\n /* \"Counter.sol\":205:321 function getCount() public view returns(uint) {... */\n swap1\n jump\t// out\n /* \"Counter.sol\":329:433 function incrementCount() public {... */\n tag_10:\n /* \"Counter.sol\":424:425 1 */\n 0x01\n /* \"Counter.sol\":416:421 count */\n sload(0x00)\n /* \"Counter.sol\":416:425 count + 1 */\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n /* \"Counter.sol\":408:413 count */\n 0x00\n /* \"Counter.sol\":408:425 count = count + 1 */\n dup2\n swap1\n sstore\n pop\n /* \"Counter.sol\":329:433 function incrementCount() public {... */\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_15:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_16:\n /* \"#utility.yul\":177:201 */\n tag_21\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_15\n jump\t// in\n tag_21:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_8:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_23\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_16\n jump\t// in\n tag_23:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:622 */\n tag_17:\n /* \"#utility.yul\":490:567 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":487:488 */\n 0x00\n /* \"#utility.yul\":480:568 */\n mstore\n /* \"#utility.yul\":587:591 */\n 0x11\n /* \"#utility.yul\":584:585 */\n 0x04\n /* \"#utility.yul\":577:592 */\n mstore\n /* \"#utility.yul\":611:615 */\n 0x24\n /* \"#utility.yul\":608:609 */\n 0x00\n /* \"#utility.yul\":601:616 */\n revert\n /* \"#utility.yul\":628:819 */\n tag_14:\n /* \"#utility.yul\":668:671 */\n 0x00\n /* \"#utility.yul\":687:707 */\n tag_26\n /* \"#utility.yul\":705:706 */\n dup3\n /* \"#utility.yul\":687:707 */\n tag_15\n jump\t// in\n tag_26:\n /* \"#utility.yul\":682:707 */\n swap2\n pop\n /* \"#utility.yul\":721:741 */\n tag_27\n /* \"#utility.yul\":739:740 */\n dup4\n /* \"#utility.yul\":721:741 */\n tag_15\n jump\t// in\n tag_27:\n /* \"#utility.yul\":716:741 */\n swap3\n pop\n /* \"#utility.yul\":764:765 */\n dup3\n /* \"#utility.yul\":761:762 */\n dup3\n /* \"#utility.yul\":757:766 */\n add\n /* \"#utility.yul\":750:766 */\n swap1\n pop\n /* \"#utility.yul\":785:788 */\n dup1\n /* \"#utility.yul\":782:783 */\n dup3\n /* \"#utility.yul\":779:789 */\n gt\n /* \"#utility.yul\":776:812 */\n iszero\n tag_28\n jumpi\n /* \"#utility.yul\":792:810 */\n tag_29\n tag_17\n jump\t// in\n tag_29:\n /* \"#utility.yul\":776:812 */\n tag_28:\n /* \"#utility.yul\":628:819 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220fb353963975b1edb4aca1a4e279221b5fae8c5fd665b69e71220a082ad21c2f264736f6c63430008100033\n}\n",
"bytecode": {
"functionDebugData": {
"@_11": {
"entryPoint": null,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060008081905550610150806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a87d942c1461003b578063e5071b8e14610059575b600080fd5b610043610063565b604051610050919061009c565b60405180910390f35b61006161006c565b005b60008054905090565b600160005461007b91906100e6565b600081905550565b6000819050919050565b61009681610083565b82525050565b60006020820190506100b1600083018461008d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100f182610083565b91506100fc83610083565b9250828201905080821115610114576101136100b7565b5b9291505056fea2646970667358221220fb353963975b1edb4aca1a4e279221b5fae8c5fd665b69e71220a082ad21c2f264736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x150 DUP1 PUSH2 0x27 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA87D942C EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE5071B8E EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0xE6 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96 DUP2 PUSH2 0x83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF1 DUP3 PUSH2 0x83 JUMP JUMPDEST SWAP2 POP PUSH2 0xFC DUP4 PUSH2 0x83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x114 JUMPI PUSH2 0x113 PUSH2 0xB7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB CALLDATALOAD CODECOPY PUSH4 0x975B1EDB 0x4A 0xCA BYTE 0x4E 0x27 SWAP3 0x21 0xB5 STATICCALL 0xE8 0xC5 REVERT PUSH7 0x5B69E71220A082 0xAD 0x21 0xC2 CALLCODE PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER ",
"sourceMap": "59:377:0:-:0;;;144:49;;;;;;;;;;184:1;176:5;:9;;;;59:377;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getCount_19": {
"entryPoint": 99,
"id": 19,
"parameterSlots": 0,
"returnSlots": 1
},
"@incrementCount_29": {
"entryPoint": 108,
"id": 29,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 141,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 156,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 230,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 131,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 183,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:822:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "470:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "487:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "490:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "480:6:1"
},
"nodeType": "YulFunctionCall",
"src": "480:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "480:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "584:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "587:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "577:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "577:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "608:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "601:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "601:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "442:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "672:147:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "682:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "705:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "687:17:1"
},
"nodeType": "YulFunctionCall",
"src": "687:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "682:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "716:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "739:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "721:17:1"
},
"nodeType": "YulFunctionCall",
"src": "721:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "716:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "750:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "761:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "764:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "757:3:1"
},
"nodeType": "YulFunctionCall",
"src": "757:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "750:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "790:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "792:16:1"
},
"nodeType": "YulFunctionCall",
"src": "792:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "792:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "782:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "785:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "779:2:1"
},
"nodeType": "YulFunctionCall",
"src": "779:10:1"
},
"nodeType": "YulIf",
"src": "776:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "659:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "662:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "668:3:1",
"type": ""
}
],
"src": "628:191:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063a87d942c1461003b578063e5071b8e14610059575b600080fd5b610043610063565b604051610050919061009c565b60405180910390f35b61006161006c565b005b60008054905090565b600160005461007b91906100e6565b600081905550565b6000819050919050565b61009681610083565b82525050565b60006020820190506100b1600083018461008d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100f182610083565b91506100fc83610083565b9250828201905080821115610114576101136100b7565b5b9291505056fea2646970667358221220fb353963975b1edb4aca1a4e279221b5fae8c5fd665b69e71220a082ad21c2f264736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA87D942C EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE5071B8E EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0xE6 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96 DUP2 PUSH2 0x83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF1 DUP3 PUSH2 0x83 JUMP JUMPDEST SWAP2 POP PUSH2 0xFC DUP4 PUSH2 0x83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x114 JUMPI PUSH2 0x113 PUSH2 0xB7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB CALLDATALOAD CODECOPY PUSH4 0x975B1EDB 0x4A 0xCA BYTE 0x4E 0x27 SWAP3 0x21 0xB5 STATICCALL 0xE8 0xC5 REVERT PUSH7 0x5B69E71220A082 0xAD 0x21 0xC2 CALLCODE PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER ",
"sourceMap": "59:377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;205:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;329:104;;;:::i;:::-;;205:116;245:4;308:5;;301:12;;205:116;:::o;329:104::-;424:1;416:5;;:9;;;;:::i;:::-;408:5;:17;;;;329:104::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15;628:191;668:3;687:20;705:1;687:20;:::i;:::-;682:25;;721:20;739:1;721:20;:::i;:::-;716:25;;764:1;761;757:9;750:16;;785:3;782:1;779:10;776:36;;;792:18;;:::i;:::-;776:36;628:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "67200",
"executionCost": "5131",
"totalCost": "72331"
},
"external": {
"getCount()": "2415",
"incrementCount()": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 59,
"end": 436,
"name": "MSTORE",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "ISZERO",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 193,
"name": "JUMPI",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 193,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "REVERT",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 193,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 144,
"end": 193,
"name": "POP",
"source": 0
},
{
"begin": 184,
"end": 185,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 176,
"end": 181,
"name": "DUP1",
"source": 0
},
{
"begin": 176,
"end": 185,
"name": "DUP2",
"source": 0
},
{
"begin": 176,
"end": 185,
"name": "SWAP1",
"source": 0
},
{
"begin": 176,
"end": 185,
"name": "SSTORE",
"source": 0
},
{
"begin": 176,
"end": 185,
"name": "POP",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 59,
"end": 436,
"name": "DUP1",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 59,
"end": 436,
"name": "CODECOPY",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 59,
"end": 436,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220fb353963975b1edb4aca1a4e279221b5fae8c5fd665b69e71220a082ad21c2f264736f6c63430008100033",
".code": [
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 59,
"end": 436,
"name": "MSTORE",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "DUP1",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "ISZERO",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 59,
"end": 436,
"name": "JUMPI",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 59,
"end": 436,
"name": "DUP1",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "REVERT",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 59,
"end": 436,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "POP",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 59,
"end": 436,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "LT",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 59,
"end": 436,
"name": "JUMPI",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 59,
"end": 436,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 59,
"end": 436,
"name": "SHR",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "DUP1",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "A87D942C"
},
{
"begin": 59,
"end": 436,
"name": "EQ",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 59,
"end": 436,
"name": "JUMPI",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "DUP1",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "E5071B8E"
},
{
"begin": 59,
"end": 436,
"name": "EQ",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 59,
"end": 436,
"name": "JUMPI",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 59,
"end": 436,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 59,
"end": 436,
"name": "DUP1",
"source": 0
},
{
"begin": 59,
"end": 436,
"name": "REVERT",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 205,
"end": 321,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 205,
"end": 321,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 205,
"end": 321,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 205,
"end": 321,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 205,
"end": 321,
"name": "MLOAD",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 205,
"end": 321,
"name": "SWAP2",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "SWAP1",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 205,
"end": 321,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 205,
"end": 321,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 205,
"end": 321,
"name": "MLOAD",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "DUP1",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "SWAP2",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "SUB",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "SWAP1",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "RETURN",
"source": 0
},
{
"begin": 329,
"end": 433,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 329,
"end": 433,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 329,
"end": 433,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 329,
"end": 433,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 329,
"end": 433,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 329,
"end": 433,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 329,
"end": 433,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 329,
"end": 433,
"name": "STOP",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 205,
"end": 321,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 245,
"end": 249,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 308,
"end": 313,
"name": "DUP1",
"source": 0
},
{
"begin": 308,
"end": 313,
"name": "SLOAD",
"source": 0
},
{
"begin": 301,
"end": 313,
"name": "SWAP1",
"source": 0
},
{
"begin": 301,
"end": 313,
"name": "POP",
"source": 0
},
{
"begin": 205,
"end": 321,
"name": "SWAP1",
"source": 0
},
{
"begin": 205,
"end": 321,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 329,
"end": 433,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 329,
"end": 433,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 424,
"end": 425,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 416,
"end": 421,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 416,
"end": 421,
"name": "SLOAD",
"source": 0
},
{
"begin": 416,
"end": 425,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 416,
"end": 425,
"name": "SWAP2",
"source": 0
},
{
"begin": 416,
"end": 425,
"name": "SWAP1",
"source": 0
},
{
"begin": 416,
"end": 425,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 416,
"end": 425,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 416,
"end": 425,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 416,
"end": 425,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 408,
"end": 413,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 408,
"end": 425,
"name": "DUP2",
"source": 0
},
{
"begin": 408,
"end": 425,
"name": "SWAP1",
"source": 0
},
{
"begin": 408,
"end": 425,
"name": "SSTORE",
"source": 0
},
{
"begin": 408,
"end": 425,
"name": "POP",
"source": 0
},
{
"begin": 329,
"end": 433,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 84,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 7,
"end": 84,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 44,
"end": 51,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 73,
"end": 78,
"name": "DUP2",
"source": 1
},
{
"begin": 62,
"end": 78,
"name": "SWAP1",
"source": 1
},
{
"begin": 62,
"end": 78,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "SWAP1",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 84,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 90,
"end": 208,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "PUSH [tag]",
"source": 1,
"value": "21"
},
{
"begin": 195,
"end": 200,
"name": "DUP2",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 177,
"end": 201,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "tag",
"source": 1,
"value": "21"
},
{
"begin": 177,
"end": 201,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 172,
"end": 175,
"name": "DUP3",
"source": 1
},
{
"begin": 165,
"end": 202,
"name": "MSTORE",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "POP",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "POP",
"source": 1
},
{
"begin": 90,
"end": 208,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "tag",
"source": 1,
"value": "8"
},
{
"begin": 214,
"end": 436,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 307,
"end": 311,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 345,
"end": 347,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 334,
"end": 343,
"name": "DUP3",
"source": 1
},
{
"begin": 330,
"end": 348,
"name": "ADD",
"source": 1
},
{
"begin": 322,
"end": 348,
"name": "SWAP1",
"source": 1
},
{
"begin": 322,
"end": 348,
"name": "POP",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "PUSH [tag]",
"source": 1,
"value": "23"
},
{
"begin": 426,
"end": 427,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 415,
"end": 424,
"name": "DUP4",
"source": 1
},
{
"begin": 411,
"end": 428,
"name": "ADD",
"source": 1
},
{
"begin": 402,
"end": 408,
"name": "DUP5",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 358,
"end": 429,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "tag",
"source": 1,
"value": "23"
},
{
"begin": 358,
"end": 429,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "SWAP3",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "SWAP2",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 214,
"end": 436,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 442,
"end": 622,
"name": "tag",
"source": 1,
"value": "17"
},
{
"begin": 442,
"end": 622,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 490,
"end": 567,
"name": "PUSH",
"source": 1,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 487,
"end": 488,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 480,
"end": 568,
"name": "MSTORE",
"source": 1
},
{
"begin": 587,
"end": 591,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 584,
"end": 585,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 577,
"end": 592,
"name": "MSTORE",
"source": 1
},
{
"begin": 611,
"end": 615,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 608,
"end": 609,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 616,
"name": "REVERT",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 628,
"end": 819,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 668,
"end": 671,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 687,
"end": 707,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 705,
"end": 706,
"name": "DUP3",
"source": 1
},
{
"begin": 687,
"end": 707,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 687,
"end": 707,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 687,
"end": 707,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 687,
"end": 707,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 682,
"end": 707,
"name": "SWAP2",
"source": 1
},
{
"begin": 682,
"end": 707,
"name": "POP",
"source": 1
},
{
"begin": 721,
"end": 741,
"name": "PUSH [tag]",
"source": 1,
"value": "27"
},
{
"begin": 739,
"end": 740,
"name": "DUP4",
"source": 1
},
{
"begin": 721,
"end": 741,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 721,
"end": 741,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 721,
"end": 741,
"name": "tag",
"source": 1,
"value": "27"
},
{
"begin": 721,
"end": 741,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 716,
"end": 741,
"name": "SWAP3",
"source": 1
},
{
"begin": 716,
"end": 741,
"name": "POP",
"source": 1
},
{
"begin": 764,
"end": 765,
"name": "DUP3",
"source": 1
},
{
"begin": 761,
"end": 762,
"name": "DUP3",
"source": 1
},
{
"begin": 757,
"end": 766,
"name": "ADD",
"source": 1
},
{
"begin": 750,
"end": 766,
"name": "SWAP1",
"source": 1
},
{
"begin": 750,
"end": 766,
"name": "POP",
"source": 1
},
{
"begin": 785,
"end": 788,
"name": "DUP1",
"source": 1
},
{
"begin": 782,
"end": 783,
"name": "DUP3",
"source": 1
},
{
"begin": 779,
"end": 789,
"name": "GT",
"source": 1
},
{
"begin": 776,
"end": 812,
"name": "ISZERO",
"source": 1
},
{
"begin": 776,
"end": 812,
"name": "PUSH [tag]",
"source": 1,
"value": "28"
},
{
"begin": 776,
"end": 812,
"name": "JUMPI",
"source": 1
},
{
"begin": 792,
"end": 810,
"name": "PUSH [tag]",
"source": 1,
"value": "29"
},
{
"begin": 792,
"end": 810,
"name": "PUSH [tag]",
"source": 1,
"value": "17"
},
{
"begin": 792,
"end": 810,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 792,
"end": 810,
"name": "tag",
"source": 1,
"value": "29"
},
{
"begin": 792,
"end": 810,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 776,
"end": 812,
"name": "tag",
"source": 1,
"value": "28"
},
{
"begin": 776,
"end": 812,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "SWAP3",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "SWAP2",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "POP",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "POP",
"source": 1
},
{
"begin": 628,
"end": 819,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"Counter.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"getCount()": "a87d942c",
"incrementCount()": "e5071b8e"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incrementCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Counter.sol\":\"Counter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Counter.sol\":{\"keccak256\":\"0x19c904e19550a4f36594e562626617ff0e963ef826b8cf159954759319eac9d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba11eed215bd054c30e269890e615f0cf4b9aed2624c780171f08294fc53fb4b\",\"dweb:/ipfs/QmVo8SbjkByRvUGkVhoVVMEfpuNingTuoMYtnZ5kYoGdTH\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "Counter.sol:Counter",
"label": "count",
"offset": 0,
"slot": "0",
"type": "t_uint256"
}
],
"types": {
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"errors": [
{
"component": "general",
"errorCode": "2462",
"formattedMessage": "Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> Counter.sol:8:5:\n |\n8 | constructor() public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
"message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.",
"severity": "warning",
"sourceLocation": {
"end": 193,
"file": "Counter.sol",
"start": 144
},
"type": "Warning"
}
],
"sources": {
"Counter.sol": {
"ast": {
"absolutePath": "Counter.sol",
"exportedSymbols": {
"Counter": [
30
]
},
"id": 31,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "32:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Counter",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 30,
"linearizedBaseContracts": [
30
],
"name": "Counter",
"nameLocation": "68:7:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3,
"mutability": "mutable",
"name": "count",
"nameLocation": "113:5:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "108:10:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "108:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"body": {
"id": 10,
"nodeType": "Block",
"src": "165:28:0",
"statements": [
{
"expression": {
"id": 8,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 6,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "176:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "30",
"id": 7,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "184:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "176:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9,
"nodeType": "ExpressionStatement",
"src": "176:9:0"
}
]
},
"id": 11,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4,
"nodeType": "ParameterList",
"parameters": [],
"src": "155:2:0"
},
"returnParameters": {
"id": 5,
"nodeType": "ParameterList",
"parameters": [],
"src": "165:0:0"
},
"scope": 30,
"src": "144:49:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 18,
"nodeType": "Block",
"src": "251:70:0",
"statements": [
{
"expression": {
"id": 16,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "308:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 15,
"id": 17,
"nodeType": "Return",
"src": "301:12:0"
}
]
},
"functionSelector": "a87d942c",
"id": 19,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCount",
"nameLocation": "214:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 12,
"nodeType": "ParameterList",
"parameters": [],
"src": "222:2:0"
},
"returnParameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 14,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 19,
"src": "245:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 13,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "245:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "244:6:0"
},
"scope": 30,
"src": "205:116:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 28,
"nodeType": "Block",
"src": "362:71:0",
"statements": [
{
"expression": {
"id": 26,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 22,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "408:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 25,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 23,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "416:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"hexValue": "31",
"id": 24,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "424:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "416:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "408:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 27,
"nodeType": "ExpressionStatement",
"src": "408:17:0"
}
]
},
"functionSelector": "e5071b8e",
"id": 29,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "incrementCount",
"nameLocation": "338:14:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20,
"nodeType": "ParameterList",
"parameters": [],
"src": "352:2:0"
},
"returnParameters": {
"id": 21,
"nodeType": "ParameterList",
"parameters": [],
"src": "362:0:0"
},
"scope": 30,
"src": "329:104:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 31,
"src": "59:377:0",
"usedErrors": []
}
],
"src": "32:404:0"
},
"id": 0
}
}
}
}
{
"id": "9cfa87ea7cb1ba98604cd1dc251d4ef5",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.16",
"solcLongVersion": "0.8.16+commit.07a7930e",
"input": {
"language": "Solidity",
"sources": {
"Counter.sol": {
"content": "pragma solidity ^0.8.0;\r\n\r\ncontract Counter {\r\n //Code goes here...\r\n uint count; //State variable\r\n\r\n constructor() public {\r\n count = 0;\r\n }\r\n \r\n function getCount() public view returns(uint) {\r\n //read function no paying gas\r\n return count;\r\n }\r\n\r\n function incrementCount() public {\r\n //write function pays gas\r\n count = count + 1;\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"Counter.sol": {
"Counter": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "incrementCount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"Counter.sol\":27:404 contract Counter {... */\n mstore(0x40, 0x80)\n /* \"Counter.sol\":112:161 constructor() public {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"Counter.sol\":152:153 0 */\n 0x00\n /* \"Counter.sol\":144:149 count */\n dup1\n /* \"Counter.sol\":144:153 count = 0 */\n dup2\n swap1\n sstore\n pop\n /* \"Counter.sol\":27:404 contract Counter {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"Counter.sol\":27:404 contract Counter {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xa87d942c\n eq\n tag_3\n jumpi\n dup1\n 0xe5071b8e\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"Counter.sol\":173:289 function getCount() public view returns(uint) {... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"Counter.sol\":297:401 function incrementCount() public {... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"Counter.sol\":173:289 function getCount() public view returns(uint) {... */\n tag_6:\n /* \"Counter.sol\":213:217 uint */\n 0x00\n /* \"Counter.sol\":276:281 count */\n dup1\n sload\n /* \"Counter.sol\":269:281 return count */\n swap1\n pop\n /* \"Counter.sol\":173:289 function getCount() public view returns(uint) {... */\n swap1\n jump\t// out\n /* \"Counter.sol\":297:401 function incrementCount() public {... */\n tag_10:\n /* \"Counter.sol\":392:393 1 */\n 0x01\n /* \"Counter.sol\":384:389 count */\n sload(0x00)\n /* \"Counter.sol\":384:393 count + 1 */\n tag_13\n swap2\n swap1\n tag_14\n jump\t// in\n tag_13:\n /* \"Counter.sol\":376:381 count */\n 0x00\n /* \"Counter.sol\":376:393 count = count + 1 */\n dup2\n swap1\n sstore\n pop\n /* \"Counter.sol\":297:401 function incrementCount() public {... */\n jump\t// out\n /* \"#utility.yul\":7:84 */\n tag_15:\n /* \"#utility.yul\":44:51 */\n 0x00\n /* \"#utility.yul\":73:78 */\n dup2\n /* \"#utility.yul\":62:78 */\n swap1\n pop\n /* \"#utility.yul\":7:84 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":90:208 */\n tag_16:\n /* \"#utility.yul\":177:201 */\n tag_21\n /* \"#utility.yul\":195:200 */\n dup2\n /* \"#utility.yul\":177:201 */\n tag_15\n jump\t// in\n tag_21:\n /* \"#utility.yul\":172:175 */\n dup3\n /* \"#utility.yul\":165:202 */\n mstore\n /* \"#utility.yul\":90:208 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":214:436 */\n tag_8:\n /* \"#utility.yul\":307:311 */\n 0x00\n /* \"#utility.yul\":345:347 */\n 0x20\n /* \"#utility.yul\":334:343 */\n dup3\n /* \"#utility.yul\":330:348 */\n add\n /* \"#utility.yul\":322:348 */\n swap1\n pop\n /* \"#utility.yul\":358:429 */\n tag_23\n /* \"#utility.yul\":426:427 */\n 0x00\n /* \"#utility.yul\":415:424 */\n dup4\n /* \"#utility.yul\":411:428 */\n add\n /* \"#utility.yul\":402:408 */\n dup5\n /* \"#utility.yul\":358:429 */\n tag_16\n jump\t// in\n tag_23:\n /* \"#utility.yul\":214:436 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":442:622 */\n tag_17:\n /* \"#utility.yul\":490:567 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":487:488 */\n 0x00\n /* \"#utility.yul\":480:568 */\n mstore\n /* \"#utility.yul\":587:591 */\n 0x11\n /* \"#utility.yul\":584:585 */\n 0x04\n /* \"#utility.yul\":577:592 */\n mstore\n /* \"#utility.yul\":611:615 */\n 0x24\n /* \"#utility.yul\":608:609 */\n 0x00\n /* \"#utility.yul\":601:616 */\n revert\n /* \"#utility.yul\":628:819 */\n tag_14:\n /* \"#utility.yul\":668:671 */\n 0x00\n /* \"#utility.yul\":687:707 */\n tag_26\n /* \"#utility.yul\":705:706 */\n dup3\n /* \"#utility.yul\":687:707 */\n tag_15\n jump\t// in\n tag_26:\n /* \"#utility.yul\":682:707 */\n swap2\n pop\n /* \"#utility.yul\":721:741 */\n tag_27\n /* \"#utility.yul\":739:740 */\n dup4\n /* \"#utility.yul\":721:741 */\n tag_15\n jump\t// in\n tag_27:\n /* \"#utility.yul\":716:741 */\n swap3\n pop\n /* \"#utility.yul\":764:765 */\n dup3\n /* \"#utility.yul\":761:762 */\n dup3\n /* \"#utility.yul\":757:766 */\n add\n /* \"#utility.yul\":750:766 */\n swap1\n pop\n /* \"#utility.yul\":785:788 */\n dup1\n /* \"#utility.yul\":782:783 */\n dup3\n /* \"#utility.yul\":779:789 */\n gt\n /* \"#utility.yul\":776:812 */\n iszero\n tag_28\n jumpi\n /* \"#utility.yul\":792:810 */\n tag_29\n tag_17\n jump\t// in\n tag_29:\n /* \"#utility.yul\":776:812 */\n tag_28:\n /* \"#utility.yul\":628:819 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212204614a8d6b6e021c0bb53b3c0ccc47e59a21005fa8b6fa80cf18b02ad030c27a664736f6c63430008100033\n}\n",
"bytecode": {
"functionDebugData": {
"@_11": {
"entryPoint": null,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060008081905550610150806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a87d942c1461003b578063e5071b8e14610059575b600080fd5b610043610063565b604051610050919061009c565b60405180910390f35b61006161006c565b005b60008054905090565b600160005461007b91906100e6565b600081905550565b6000819050919050565b61009681610083565b82525050565b60006020820190506100b1600083018461008d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100f182610083565b91506100fc83610083565b9250828201905080821115610114576101136100b7565b5b9291505056fea26469706673582212204614a8d6b6e021c0bb53b3c0ccc47e59a21005fa8b6fa80cf18b02ad030c27a664736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x150 DUP1 PUSH2 0x27 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA87D942C EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE5071B8E EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0xE6 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96 DUP2 PUSH2 0x83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF1 DUP3 PUSH2 0x83 JUMP JUMPDEST SWAP2 POP PUSH2 0xFC DUP4 PUSH2 0x83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x114 JUMPI PUSH2 0x113 PUSH2 0xB7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID EQ 0xA8 0xD6 0xB6 0xE0 0x21 0xC0 0xBB MSTORE8 0xB3 0xC0 0xCC 0xC4 PUSH31 0x59A21005FA8B6FA80CF18B02AD030C27A664736F6C63430008100033000000 ",
"sourceMap": "27:377:0:-:0;;;112:49;;;;;;;;;;152:1;144:5;:9;;;;27:377;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getCount_19": {
"entryPoint": 99,
"id": 19,
"parameterSlots": 0,
"returnSlots": 1
},
"@incrementCount_29": {
"entryPoint": 108,
"id": 29,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 141,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 156,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 230,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 131,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 183,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:822:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "470:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "487:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "490:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "480:6:1"
},
"nodeType": "YulFunctionCall",
"src": "480:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "480:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "584:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "587:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "577:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "577:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "608:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "601:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "601:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "442:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "672:147:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "682:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "705:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "687:17:1"
},
"nodeType": "YulFunctionCall",
"src": "687:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "682:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "716:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "739:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "721:17:1"
},
"nodeType": "YulFunctionCall",
"src": "721:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "716:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "750:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "761:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "764:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "757:3:1"
},
"nodeType": "YulFunctionCall",
"src": "757:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "750:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "790:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "792:16:1"
},
"nodeType": "YulFunctionCall",
"src": "792:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "792:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "782:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "785:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "779:2:1"
},
"nodeType": "YulFunctionCall",
"src": "779:10:1"
},
"nodeType": "YulIf",
"src": "776:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "659:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "662:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "668:3:1",
"type": ""
}
],
"src": "628:191:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063a87d942c1461003b578063e5071b8e14610059575b600080fd5b610043610063565b604051610050919061009c565b60405180910390f35b61006161006c565b005b60008054905090565b600160005461007b91906100e6565b600081905550565b6000819050919050565b61009681610083565b82525050565b60006020820190506100b1600083018461008d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100f182610083565b91506100fc83610083565b9250828201905080821115610114576101136100b7565b5b9291505056fea26469706673582212204614a8d6b6e021c0bb53b3c0ccc47e59a21005fa8b6fa80cf18b02ad030c27a664736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA87D942C EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE5071B8E EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0xE6 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96 DUP2 PUSH2 0x83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF1 DUP3 PUSH2 0x83 JUMP JUMPDEST SWAP2 POP PUSH2 0xFC DUP4 PUSH2 0x83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x114 JUMPI PUSH2 0x113 PUSH2 0xB7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CHAINID EQ 0xA8 0xD6 0xB6 0xE0 0x21 0xC0 0xBB MSTORE8 0xB3 0xC0 0xCC 0xC4 PUSH31 0x59A21005FA8B6FA80CF18B02AD030C27A664736F6C63430008100033000000 ",
"sourceMap": "27:377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;297:104;;;:::i;:::-;;173:116;213:4;276:5;;269:12;;173:116;:::o;297:104::-;392:1;384:5;;:9;;;;:::i;:::-;376:5;:17;;;;297:104::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15;628:191;668:3;687:20;705:1;687:20;:::i;:::-;682:25;;721:20;739:1;721:20;:::i;:::-;716:25;;764:1;761;757:9;750:16;;785:3;782:1;779:10;776:36;;;792:18;;:::i;:::-;776:36;628:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "67200",
"executionCost": "5131",
"totalCost": "72331"
},
"external": {
"getCount()": "2415",
"incrementCount()": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 27,
"end": 404,
"name": "MSTORE",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "DUP1",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "ISZERO",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 112,
"end": 161,
"name": "JUMPI",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 112,
"end": 161,
"name": "DUP1",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "REVERT",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 112,
"end": 161,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 112,
"end": 161,
"name": "POP",
"source": 0
},
{
"begin": 152,
"end": 153,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 149,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 153,
"name": "DUP2",
"source": 0
},
{
"begin": 144,
"end": 153,
"name": "SWAP1",
"source": 0
},
{
"begin": 144,
"end": 153,
"name": "SSTORE",
"source": 0
},
{
"begin": 144,
"end": 153,
"name": "POP",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 27,
"end": 404,
"name": "DUP1",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 27,
"end": 404,
"name": "CODECOPY",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 27,
"end": 404,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a26469706673582212204614a8d6b6e021c0bb53b3c0ccc47e59a21005fa8b6fa80cf18b02ad030c27a664736f6c63430008100033",
".code": [
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 27,
"end": 404,
"name": "MSTORE",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "DUP1",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "ISZERO",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 27,
"end": 404,
"name": "JUMPI",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 27,
"end": 404,
"name": "DUP1",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "REVERT",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 27,
"end": 404,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "POP",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 27,
"end": 404,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "LT",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 27,
"end": 404,
"name": "JUMPI",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 27,
"end": 404,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 27,
"end": 404,
"name": "SHR",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "DUP1",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "A87D942C"
},
{
"begin": 27,
"end": 404,
"name": "EQ",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 27,
"end": 404,
"name": "JUMPI",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "DUP1",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "E5071B8E"
},
{
"begin": 27,
"end": 404,
"name": "EQ",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 27,
"end": 404,
"name": "JUMPI",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 27,
"end": 404,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 27,
"end": 404,
"name": "DUP1",
"source": 0
},
{
"begin": 27,
"end": 404,
"name": "REVERT",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 173,
"end": 289,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 173,
"end": 289,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 173,
"end": 289,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 173,
"end": 289,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 173,
"end": 289,
"name": "MLOAD",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 173,
"end": 289,
"name": "SWAP2",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 173,
"end": 289,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 173,
"end": 289,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 173,
"end": 289,
"name": "MLOAD",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "DUP1",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "SWAP2",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "SUB",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "RETURN",
"source": 0
},
{
"begin": 297,
"end": 401,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 297,
"end": 401,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 297,
"end": 401,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 297,
"end": 401,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 297,
"end": 401,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 297,
"end": 401,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 297,
"end": 401,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 297,
"end": 401,
"name": "STOP",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 173,
"end": 289,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 213,
"end": 217,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 276,
"end": 281,
"name": "DUP1",
"source": 0
},
{
"begin": 276,
"end": 281,
"name": "SLOAD",
"source": 0
},
{
"begin": 269,
"end": 281,
"name": "SWAP1",
"source": 0
},
{
"begin": 269,
"end": 281,
"name": "POP",
"source": 0
},
{
"begin": 173,
"end": 289,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 289,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 297,
"end": 401,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 297,
"end": 401,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 392,
"end": 393,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 384,
"end": 389,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 384,
"end": 389,
"name": "SLOAD",
"source": 0
},
{
"begin": 384,
"end": 393,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 384,
"end": 393,
"name": "SWAP2",
"source": 0
},
{
"begin": 384,
"end": 393,
"name": "SWAP1",
"source": 0
},
{
"begin": 384,
"end": 393,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 384,
"end": 393,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 384,
"end": 393,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 384,
"end": 393,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 376,
"end": 381,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 376,
"end": 393,
"name": "DUP2",
"source": 0
},
{
"begin": 376,
"end": 393,
"name": "SWAP1",
"source": 0
},
{
"begin": 376,
"end": 393,
"name": "SSTORE",
"source": 0
},
{
"begin": 376,
"end": 393,
"name": "POP",
"source": 0
},
{
"begin": 297,
"end": 401,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 84,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 7,
"end": 84,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 44,
"end": 51,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 73,
"end": 78,
"name": "DUP2",
"source": 1
},
{
"begin": 62,
"end": 78,
"name": "SWAP1",
"source": 1
},
{
"begin": 62,
"end": 78,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "SWAP1",
"source": 1
},
{
"begin": 7,
"end": 84,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 84,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 90,
"end": 208,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "PUSH [tag]",
"source": 1,
"value": "21"
},
{
"begin": 195,
"end": 200,
"name": "DUP2",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 177,
"end": 201,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 177,
"end": 201,
"name": "tag",
"source": 1,
"value": "21"
},
{
"begin": 177,
"end": 201,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 172,
"end": 175,
"name": "DUP3",
"source": 1
},
{
"begin": 165,
"end": 202,
"name": "MSTORE",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "POP",
"source": 1
},
{
"begin": 90,
"end": 208,
"name": "POP",
"source": 1
},
{
"begin": 90,
"end": 208,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "tag",
"source": 1,
"value": "8"
},
{
"begin": 214,
"end": 436,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 307,
"end": 311,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 345,
"end": 347,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 334,
"end": 343,
"name": "DUP3",
"source": 1
},
{
"begin": 330,
"end": 348,
"name": "ADD",
"source": 1
},
{
"begin": 322,
"end": 348,
"name": "SWAP1",
"source": 1
},
{
"begin": 322,
"end": 348,
"name": "POP",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "PUSH [tag]",
"source": 1,
"value": "23"
},
{
"begin": 426,
"end": 427,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 415,
"end": 424,
"name": "DUP4",
"source": 1
},
{
"begin": 411,
"end": 428,
"name": "ADD",
"source": 1
},
{
"begin": 402,
"end": 408,
"name": "DUP5",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 358,
"end": 429,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 358,
"end": 429,
"name": "tag",
"source": 1,
"value": "23"
},
{
"begin": 358,
"end": 429,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "SWAP3",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "SWAP2",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 214,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 214,
"end": 436,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 442,
"end": 622,
"name": "tag",
"source": 1,
"value": "17"
},
{
"begin": 442,
"end": 622,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 490,
"end": 567,
"name": "PUSH",
"source": 1,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 487,
"end": 488,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 480,
"end": 568,
"name": "MSTORE",
"source": 1
},
{
"begin": 587,
"end": 591,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 584,
"end": 585,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 577,
"end": 592,
"name": "MSTORE",
"source": 1
},
{
"begin": 611,
"end": 615,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 608,
"end": 609,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 616,
"name": "REVERT",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 628,
"end": 819,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 668,
"end": 671,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 687,
"end": 707,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 705,
"end": 706,
"name": "DUP3",
"source": 1
},
{
"begin": 687,
"end": 707,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 687,
"end": 707,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 687,
"end": 707,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 687,
"end": 707,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 682,
"end": 707,
"name": "SWAP2",
"source": 1
},
{
"begin": 682,
"end": 707,
"name": "POP",
"source": 1
},
{
"begin": 721,
"end": 741,
"name": "PUSH [tag]",
"source": 1,
"value": "27"
},
{
"begin": 739,
"end": 740,
"name": "DUP4",
"source": 1
},
{
"begin": 721,
"end": 741,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 721,
"end": 741,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 721,
"end": 741,
"name": "tag",
"source": 1,
"value": "27"
},
{
"begin": 721,
"end": 741,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 716,
"end": 741,
"name": "SWAP3",
"source": 1
},
{
"begin": 716,
"end": 741,
"name": "POP",
"source": 1
},
{
"begin": 764,
"end": 765,
"name": "DUP3",
"source": 1
},
{
"begin": 761,
"end": 762,
"name": "DUP3",
"source": 1
},
{
"begin": 757,
"end": 766,
"name": "ADD",
"source": 1
},
{
"begin": 750,
"end": 766,
"name": "SWAP1",
"source": 1
},
{
"begin": 750,
"end": 766,
"name": "POP",
"source": 1
},
{
"begin": 785,
"end": 788,
"name": "DUP1",
"source": 1
},
{
"begin": 782,
"end": 783,
"name": "DUP3",
"source": 1
},
{
"begin": 779,
"end": 789,
"name": "GT",
"source": 1
},
{
"begin": 776,
"end": 812,
"name": "ISZERO",
"source": 1
},
{
"begin": 776,
"end": 812,
"name": "PUSH [tag]",
"source": 1,
"value": "28"
},
{
"begin": 776,
"end": 812,
"name": "JUMPI",
"source": 1
},
{
"begin": 792,
"end": 810,
"name": "PUSH [tag]",
"source": 1,
"value": "29"
},
{
"begin": 792,
"end": 810,
"name": "PUSH [tag]",
"source": 1,
"value": "17"
},
{
"begin": 792,
"end": 810,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 792,
"end": 810,
"name": "tag",
"source": 1,
"value": "29"
},
{
"begin": 792,
"end": 810,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 776,
"end": 812,
"name": "tag",
"source": 1,
"value": "28"
},
{
"begin": 776,
"end": 812,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "SWAP3",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "SWAP2",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "POP",
"source": 1
},
{
"begin": 628,
"end": 819,
"name": "POP",
"source": 1
},
{
"begin": 628,
"end": 819,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"Counter.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"getCount()": "a87d942c",
"incrementCount()": "e5071b8e"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"incrementCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Counter.sol\":\"Counter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Counter.sol\":{\"keccak256\":\"0x4d443c3cbfaf3ae5130ac6ed6e9d9584ab07176767bfae98cb105fe5e42b9df5\",\"urls\":[\"bzz-raw://04cd40162c2f57827c9c3ce2c705796e44aa518aad655c88f102f0c2fc134cbe\",\"dweb:/ipfs/QmRVNCiHcN9P6Vj8z3sXbESA29tq2tPuwKFVWq6EPU1u3z\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "Counter.sol:Counter",
"label": "count",
"offset": 0,
"slot": "0",
"type": "t_uint256"
}
],
"types": {
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"errors": [
{
"component": "general",
"errorCode": "1878",
"formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> Counter.sol\n\n",
"message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.",
"severity": "warning",
"sourceLocation": {
"end": -1,
"file": "Counter.sol",
"start": -1
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "2462",
"formattedMessage": "Warning: Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.\n --> Counter.sol:7:5:\n |\n7 | constructor() public {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
"message": "Visibility for constructor is ignored. If you want the contract to be non-deployable, making it \"abstract\" is sufficient.",
"severity": "warning",
"sourceLocation": {
"end": 161,
"file": "Counter.sol",
"start": 112
},
"type": "Warning"
}
],
"sources": {
"Counter.sol": {
"ast": {
"absolutePath": "Counter.sol",
"exportedSymbols": {
"Counter": [
30
]
},
"id": 31,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Counter",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 30,
"linearizedBaseContracts": [
30
],
"name": "Counter",
"nameLocation": "36:7:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3,
"mutability": "mutable",
"name": "count",
"nameLocation": "81:5:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "76:10:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "76:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"body": {
"id": 10,
"nodeType": "Block",
"src": "133:28:0",
"statements": [
{
"expression": {
"id": 8,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 6,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "144:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "30",
"id": 7,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "152:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "144:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 9,
"nodeType": "ExpressionStatement",
"src": "144:9:0"
}
]
},
"id": 11,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4,
"nodeType": "ParameterList",
"parameters": [],
"src": "123:2:0"
},
"returnParameters": {
"id": 5,
"nodeType": "ParameterList",
"parameters": [],
"src": "133:0:0"
},
"scope": 30,
"src": "112:49:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 18,
"nodeType": "Block",
"src": "219:70:0",
"statements": [
{
"expression": {
"id": 16,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "276:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 15,
"id": 17,
"nodeType": "Return",
"src": "269:12:0"
}
]
},
"functionSelector": "a87d942c",
"id": 19,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getCount",
"nameLocation": "182:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 12,
"nodeType": "ParameterList",
"parameters": [],
"src": "190:2:0"
},
"returnParameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 14,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 19,
"src": "213:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 13,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "213:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "212:6:0"
},
"scope": 30,
"src": "173:116:0",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 28,
"nodeType": "Block",
"src": "330:71:0",
"statements": [
{
"expression": {
"id": 26,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 22,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "376:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 25,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 23,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "384:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"hexValue": "31",
"id": 24,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "392:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "384:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "376:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 27,
"nodeType": "ExpressionStatement",
"src": "376:17:0"
}
]
},
"functionSelector": "e5071b8e",
"id": 29,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "incrementCount",
"nameLocation": "306:14:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20,
"nodeType": "ParameterList",
"parameters": [],
"src": "320:2:0"
},
"returnParameters": {
"id": 21,
"nodeType": "ParameterList",
"parameters": [],
"src": "330:0:0"
},
"scope": 30,
"src": "297:104:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 31,
"src": "27:377:0",
"usedErrors": []
}
],
"src": "0:404:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_11": {
"entryPoint": null,
"id": 11,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060008081905550610150806100276000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a87d942c1461003b578063e5071b8e14610059575b600080fd5b610043610063565b604051610050919061009c565b60405180910390f35b61006161006c565b005b60008054905090565b600160005461007b91906100e6565b600081905550565b6000819050919050565b61009681610083565b82525050565b60006020820190506100b1600083018461008d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100f182610083565b91506100fc83610083565b9250828201905080821115610114576101136100b7565b5b9291505056fea2646970667358221220fb353963975b1edb4aca1a4e279221b5fae8c5fd665b69e71220a082ad21c2f264736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH2 0x150 DUP1 PUSH2 0x27 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA87D942C EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE5071B8E EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0xE6 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96 DUP2 PUSH2 0x83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF1 DUP3 PUSH2 0x83 JUMP JUMPDEST SWAP2 POP PUSH2 0xFC DUP4 PUSH2 0x83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x114 JUMPI PUSH2 0x113 PUSH2 0xB7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB CALLDATALOAD CODECOPY PUSH4 0x975B1EDB 0x4A 0xCA BYTE 0x4E 0x27 SWAP3 0x21 0xB5 STATICCALL 0xE8 0xC5 REVERT PUSH7 0x5B69E71220A082 0xAD 0x21 0xC2 CALLCODE PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER ",
"sourceMap": "59:377:0:-:0;;;144:49;;;;;;;;;;184:1;176:5;:9;;;;59:377;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@getCount_19": {
"entryPoint": 99,
"id": 19,
"parameterSlots": 0,
"returnSlots": 1
},
"@incrementCount_29": {
"entryPoint": 108,
"id": 29,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 141,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 156,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 230,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 131,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 183,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:822:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "62:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "34:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "44:7:1",
"type": ""
}
],
"src": "7:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "155:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "172:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "195:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "177:17:1"
},
"nodeType": "YulFunctionCall",
"src": "177:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "165:6:1"
},
"nodeType": "YulFunctionCall",
"src": "165:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "165:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "150:3:1",
"type": ""
}
],
"src": "90:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "312:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "322:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "334:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "345:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "330:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "322:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "402:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "415:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "411:3:1"
},
"nodeType": "YulFunctionCall",
"src": "411:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "358:43:1"
},
"nodeType": "YulFunctionCall",
"src": "358:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "358:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "284:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "296:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "307:4:1",
"type": ""
}
],
"src": "214:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "470:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "487:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "490:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "480:6:1"
},
"nodeType": "YulFunctionCall",
"src": "480:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "480:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "584:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "587:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "577:6:1"
},
"nodeType": "YulFunctionCall",
"src": "577:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "577:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "608:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "611:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "601:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "601:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "442:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "672:147:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "682:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "705:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "687:17:1"
},
"nodeType": "YulFunctionCall",
"src": "687:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "682:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "716:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "739:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "721:17:1"
},
"nodeType": "YulFunctionCall",
"src": "721:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "716:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "750:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "761:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "764:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "757:3:1"
},
"nodeType": "YulFunctionCall",
"src": "757:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "750:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "790:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "792:16:1"
},
"nodeType": "YulFunctionCall",
"src": "792:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "792:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "782:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "785:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "779:2:1"
},
"nodeType": "YulFunctionCall",
"src": "779:10:1"
},
"nodeType": "YulIf",
"src": "776:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "659:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "662:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "668:3:1",
"type": ""
}
],
"src": "628:191:1"
}
]
},
"contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c8063a87d942c1461003b578063e5071b8e14610059575b600080fd5b610043610063565b604051610050919061009c565b60405180910390f35b61006161006c565b005b60008054905090565b600160005461007b91906100e6565b600081905550565b6000819050919050565b61009681610083565b82525050565b60006020820190506100b1600083018461008d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100f182610083565b91506100fc83610083565b9250828201905080821115610114576101136100b7565b5b9291505056fea2646970667358221220fb353963975b1edb4aca1a4e279221b5fae8c5fd665b69e71220a082ad21c2f264736f6c63430008100033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA87D942C EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xE5071B8E EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x6C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SLOAD PUSH2 0x7B SWAP2 SWAP1 PUSH2 0xE6 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x96 DUP2 PUSH2 0x83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xB1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xF1 DUP3 PUSH2 0x83 JUMP JUMPDEST SWAP2 POP PUSH2 0xFC DUP4 PUSH2 0x83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x114 JUMPI PUSH2 0x113 PUSH2 0xB7 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB CALLDATALOAD CODECOPY PUSH4 0x975B1EDB 0x4A 0xCA BYTE 0x4E 0x27 SWAP3 0x21 0xB5 STATICCALL 0xE8 0xC5 REVERT PUSH7 0x5B69E71220A082 0xAD 0x21 0xC2 CALLCODE PUSH5 0x736F6C6343 STOP ADDMOD LT STOP CALLER ",
"sourceMap": "59:377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;205:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;329:104;;;:::i;:::-;;205:116;245:4;308:5;;301:12;;205:116;:::o;329:104::-;424:1;416:5;;:9;;;;:::i;:::-;408:5;:17;;;;329:104::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:180::-;490:77;487:1;480:88;587:4;584:1;577:15;611:4;608:1;601:15;628:191;668:3;687:20;705:1;687:20;:::i;:::-;682:25;;721:20;739:1;721:20;:::i;:::-;716:25;;764:1;761;757:9;750:16;;785:3;782:1;779:10;776:36;;;792:18;;:::i;:::-;776:36;628:191;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "67200",
"executionCost": "5131",
"totalCost": "72331"
},
"external": {
"getCount()": "2415",
"incrementCount()": "infinite"
}
},
"methodIdentifiers": {
"getCount()": "a87d942c",
"incrementCount()": "e5071b8e"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "incrementCount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "getCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "incrementCount",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"Counter.sol": "Counter"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"Counter.sol": {
"keccak256": "0x19c904e19550a4f36594e562626617ff0e963ef826b8cf159954759319eac9d1",
"license": "MIT",
"urls": [
"bzz-raw://ba11eed215bd054c30e269890e615f0cf4b9aed2624c780171f08294fc53fb4b",
"dweb:/ipfs/QmVo8SbjkByRvUGkVhoVVMEfpuNingTuoMYtnZ5kYoGdTH"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058205a336d8e74382cf741a984b907d330c2c587570bb1bf1ad558f838a2dd1e97d60029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GAS CALLER PUSH14 0x8E74382CF741A984B907D330C2C5 DUP8 JUMPI SIGNEXTEND 0xb1 0xbf BYTE 0xd5 PC 0xf8 CODESIZE LOG2 0xdd 0x1e SWAP8 0xd6 STOP 0x29 ",
"sourceMap": "28:22:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28:22:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fd00a165627a7a723058205a336d8e74382cf741a984b907d330c2c587570bb1bf1ad558f838a2dd1e97d60029",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 GAS CALLER PUSH14 0x8E74382CF741A984B907D330C2C5 DUP8 JUMPI SIGNEXTEND 0xb1 0xbf BYTE 0xd5 PC 0xf8 CODESIZE LOG2 0xdd 0x1e SWAP8 0xd6 STOP 0x29 ",
"sourceMap": "28:22:0:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "10600",
"executionCost": "66",
"totalCost": "10666"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.4.26+commit.4563c3fc"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"Course.sol": "Course"
},
"evmVersion": "byzantium",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"Course.sol": {
"keccak256": "0xa627830140767ee2660291234a0e2d719db2cf938b49c11c2fe703107068ce23",
"urls": [
"bzzr://d0d16c2656c559dba7dc370d6a456284be9c6cdc5e3360808098798ed886c9b0"
]
}
},
"version": 1
}
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Counter {
//Code goes here...
uint count; //State variable
constructor() public {
count = 0;
}
function getCount() public view returns(uint) {
//read function no paying gas
return count;
}
function incrementCount() public {
//write function pays gas
count = count + 1;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment