Skip to content

Instantly share code, notes, and snippets.

@mverzilli
Last active August 25, 2022 15:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mverzilli/649ca2dad039452722a1020121ec5f2a to your computer and use it in GitHub Desktop.
Save mverzilli/649ca2dad039452722a1020121ec5f2a to your computer and use it in GitHub Desktop.
{
"id": "691396ad53d045b6e57dad2961f33377",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.2",
"solcLongVersion": "0.8.2+commit.661d1103",
"input": {
"language": "Solidity",
"sources": {
"contracts/WithImmAddr.sol": {
"content": "//SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\ncontract WithImmAddr {\n uint256 public immutable value;\n address public immutable deployer;\n\n constructor(uint256 initialValue, address initialDeployer) {\n value = initialValue;\n deployer = initialDeployer;\n }\n\n function greet() public returns(uint256) {\n return value;\n }\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"abi",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers"
],
"": [
"ast"
]
}
}
}
},
"output": {
"contracts": {
"contracts/WithImmAddr.sol": {
"WithImmAddr": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "initialValue",
"type": "uint256"
},
{
"internalType": "address",
"name": "initialDeployer",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "deployer",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "greet",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "value",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"evm": {
"bytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1321:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "70:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "80:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "89:5:1"
},
"nodeType": "YulFunctionCall",
"src": "89:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "80:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "138:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "111:26:1"
},
"nodeType": "YulFunctionCall",
"src": "111:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "111:33:1"
}
]
},
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "48:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "56:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "64:5:1",
"type": ""
}
],
"src": "7:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "219:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "229:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "244:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "238:5:1"
},
"nodeType": "YulFunctionCall",
"src": "238:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "229:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "287:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "260:26:1"
},
"nodeType": "YulFunctionCall",
"src": "260:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "260:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "197:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "205:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "213:5:1",
"type": ""
}
],
"src": "156:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "399:346:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "445:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "454:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "457:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "447:6:1"
},
"nodeType": "YulFunctionCall",
"src": "447:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "447:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "420:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "429:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "416:3:1"
},
"nodeType": "YulFunctionCall",
"src": "416:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "441:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "412:3:1"
},
"nodeType": "YulFunctionCall",
"src": "412:32:1"
},
"nodeType": "YulIf",
"src": "409:2:1"
},
{
"nodeType": "YulBlock",
"src": "471:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "486:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "500:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "490:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "515:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "561:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "572:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "557:3:1"
},
"nodeType": "YulFunctionCall",
"src": "557:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "581:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "525:31:1"
},
"nodeType": "YulFunctionCall",
"src": "525:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "515:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "609:129:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "624:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "638:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "628:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "654:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "700:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "711:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "696:3:1"
},
"nodeType": "YulFunctionCall",
"src": "696:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "720:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "664:31:1"
},
"nodeType": "YulFunctionCall",
"src": "664:64:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "654:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "361:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "372:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "384:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "392:6:1",
"type": ""
}
],
"src": "305:440:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "796:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "806:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "835:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "817:17:1"
},
"nodeType": "YulFunctionCall",
"src": "817:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "806:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "778:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "788:7:1",
"type": ""
}
],
"src": "751:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "898:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "908:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "923:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "930:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "919:3:1"
},
"nodeType": "YulFunctionCall",
"src": "919:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "908:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "880:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "890:7:1",
"type": ""
}
],
"src": "853:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1030:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1040:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1051:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1040:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1012:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1022:7:1",
"type": ""
}
],
"src": "985:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1111:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1168:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1177:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1180:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1170:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1170:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1170:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1134:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1159:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1141:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1141:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1131:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1131:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1124:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1124:43:1"
},
"nodeType": "YulIf",
"src": "1121:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1104:5:1",
"type": ""
}
],
"src": "1068:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1239:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1296:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1305:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1298:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1298:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1298:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1262:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1287:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1269:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1269:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1259:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1259:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1252:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1252:43:1"
},
"nodeType": "YulIf",
"src": "1249:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1232:5:1",
"type": ""
}
],
"src": "1196:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256t_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60c060405234801561001057600080fd5b5060405161034a38038061034a833981810160405281019061003291906100a2565b81608081815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250505050610148565b6000815190506100878161011a565b92915050565b60008151905061009c81610131565b92915050565b600080604083850312156100b557600080fd5b60006100c38582860161008d565b92505060206100d485828601610078565b9150509250929050565b60006100e9826100f0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b610123816100de565b811461012e57600080fd5b50565b61013a81610110565b811461014557600080fd5b50565b60805160a05160601c6101d6610174600039600060ee01526000818160a2015260c801526101d66000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633fa4f24514610046578063cfae321714610064578063d5f3948814610082575b600080fd5b61004e6100a0565b60405161005b9190610149565b60405180910390f35b61006c6100c4565b6040516100799190610149565b60405180910390f35b61008a6100ec565b604051610097919061012e565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b61011981610164565b82525050565b61012881610196565b82525050565b60006020820190506101436000830184610110565b92915050565b600060208201905061015e600083018461011f565b92915050565b600061016f82610176565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600081905091905056fea264697066735822122019e60a01cf6e44aa13e83192d297b8590fa9c9e29c913ce1414b4ded452ec4a064736f6c63430008020033",
"opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x34A CODESIZE SUB DUP1 PUSH2 0x34A DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xA2 JUMP JUMPDEST DUP2 PUSH1 0x80 DUP2 DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x60 SHL DUP2 MSTORE POP POP POP POP PUSH2 0x148 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x87 DUP2 PUSH2 0x11A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x9C DUP2 PUSH2 0x131 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xC3 DUP6 DUP3 DUP7 ADD PUSH2 0x8D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xD4 DUP6 DUP3 DUP7 ADD PUSH2 0x78 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 DUP3 PUSH2 0xF0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x123 DUP2 PUSH2 0xDE JUMP JUMPDEST DUP2 EQ PUSH2 0x12E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13A DUP2 PUSH2 0x110 JUMP JUMPDEST DUP2 EQ PUSH2 0x145 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH1 0x60 SHR PUSH2 0x1D6 PUSH2 0x174 PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH1 0xEE ADD MSTORE PUSH1 0x0 DUP2 DUP2 PUSH1 0xA2 ADD MSTORE PUSH1 0xC8 ADD MSTORE PUSH2 0x1D6 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xCFAE3217 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xD5F39488 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xC4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0xEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x119 DUP2 PUSH2 0x164 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x128 DUP2 PUSH2 0x196 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x143 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x110 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x11F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16F DUP3 PUSH2 0x176 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NOT 0xE6 EXP ADD 0xCF PUSH15 0x44AA13E83192D297B8590FA9C9E29C SWAP2 EXTCODECOPY 0xE1 COINBASE 0x4B 0x4D 0xED GASLIMIT 0x2E 0xC4 LOG0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ",
"sourceMap": "56:313:0:-:0;;;159:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;236:12;228:20;;;;;;269:15;258:26;;;;;;;;;;;;159:132;;56:313;;7:143:1;;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;70:80;;;;:::o;156:143::-;;244:6;238:13;229:22;;260:33;287:5;260:33;:::i;:::-;219:80;;;;:::o;305:440::-;;;441:2;429:9;420:7;416:23;412:32;409:2;;;457:1;454;447:12;409:2;500:1;525:64;581:7;572:6;561:9;557:22;525:64;:::i;:::-;515:74;;471:128;638:2;664:64;720:7;711:6;700:9;696:22;664:64;:::i;:::-;654:74;;609:129;399:346;;;;;:::o;751:96::-;;817:24;835:5;817:24;:::i;:::-;806:35;;796:51;;;:::o;853:126::-;;930:42;923:5;919:54;908:65;;898:81;;;:::o;985:77::-;;1051:5;1040:16;;1030:32;;;:::o;1068:122::-;1141:24;1159:5;1141:24;:::i;:::-;1134:5;1131:35;1121:2;;1180:1;1177;1170:12;1121:2;1111:79;:::o;1196:122::-;1269:24;1287:5;1269:24;:::i;:::-;1262:5;1259:35;1249:2;;1308:1;1305;1298:12;1249:2;1239:79;:::o;56:313:0:-;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1025:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "196:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "213:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "236:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "218:17:1"
},
"nodeType": "YulFunctionCall",
"src": "218:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "206:6:1"
},
"nodeType": "YulFunctionCall",
"src": "206:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "206:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "184:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "191:3:1",
"type": ""
}
],
"src": "131:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "353:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "363:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "375:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "386:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "371:3:1"
},
"nodeType": "YulFunctionCall",
"src": "371:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "363:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "443:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "456:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "467:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "452:3:1"
},
"nodeType": "YulFunctionCall",
"src": "452:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "399:43:1"
},
"nodeType": "YulFunctionCall",
"src": "399:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "399:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "325:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "337:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "348:4:1",
"type": ""
}
],
"src": "255:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "581:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "591:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "603:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "614:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "599:3:1"
},
"nodeType": "YulFunctionCall",
"src": "599:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "591:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "671:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "684:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "695:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "680:3:1"
},
"nodeType": "YulFunctionCall",
"src": "680:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "627:43:1"
},
"nodeType": "YulFunctionCall",
"src": "627:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "627:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "553:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "565:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "576:4:1",
"type": ""
}
],
"src": "483:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "756:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "766:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "795:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "777:17:1"
},
"nodeType": "YulFunctionCall",
"src": "777:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "766:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "738:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "748:7:1",
"type": ""
}
],
"src": "711:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "858:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "868:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "883:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "890:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "879:3:1"
},
"nodeType": "YulFunctionCall",
"src": "879:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "868:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "840:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "850:7:1",
"type": ""
}
],
"src": "813:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "990:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1000:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1011:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1000:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "972:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "982:7:1",
"type": ""
}
],
"src": "945:77:1"
}
]
},
"contents": "{\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_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 cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {
"3": [
{
"length": 32,
"start": 162
},
{
"length": 32,
"start": 200
}
],
"5": [
{
"length": 32,
"start": 238
}
]
},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633fa4f24514610046578063cfae321714610064578063d5f3948814610082575b600080fd5b61004e6100a0565b60405161005b9190610149565b60405180910390f35b61006c6100c4565b6040516100799190610149565b60405180910390f35b61008a6100ec565b604051610097919061012e565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b61011981610164565b82525050565b61012881610196565b82525050565b60006020820190506101436000830184610110565b92915050565b600060208201905061015e600083018461011f565b92915050565b600061016f82610176565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600081905091905056fea264697066735822122019e60a01cf6e44aa13e83192d297b8590fa9c9e29c913ce1414b4ded452ec4a064736f6c63430008020033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3FA4F245 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xCFAE3217 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xD5F39488 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xA0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xC4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x149 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x8A PUSH2 0xEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x0 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH2 0x119 DUP2 PUSH2 0x164 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x128 DUP2 PUSH2 0x196 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x143 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x110 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x15E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x11F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16F DUP3 PUSH2 0x176 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 NOT 0xE6 EXP ADD 0xCF PUSH15 0x44AA13E83192D297B8590FA9C9E29C SWAP2 EXTCODECOPY 0xE1 COINBASE 0x4B 0x4D 0xED GASLIMIT 0x2E 0xC4 LOG0 PUSH5 0x736F6C6343 STOP ADDMOD MUL STOP CALLER ",
"sourceMap": "56:313:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;83:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;297:70;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;119:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;83:30;;;:::o;297:70::-;329:7;355:5;348:12;;297:70;:::o;119:33::-;;;:::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;72:53;;:::o;131:118::-;218:24;236:5;218:24;:::i;:::-;213:3;206:37;196:53;;:::o;255:222::-;;386:2;375:9;371:18;363:26;;399:71;467:1;456:9;452:17;443:6;399:71;:::i;:::-;353:124;;;;:::o;483:222::-;;614:2;603:9;599:18;591:26;;627:71;695:1;684:9;680:17;671:6;627:71;:::i;:::-;581:124;;;;:::o;711:96::-;;777:24;795:5;777:24;:::i;:::-;766:35;;756:51;;;:::o;813:126::-;;890:42;883:5;879:54;868:65;;858:81;;;:::o;945:77::-;;1011:5;1000:16;;990:32;;;:::o"
},
"methodIdentifiers": {
"deployer()": "d5f39488",
"greet()": "cfae3217",
"value()": "3fa4f245"
}
}
}
}
},
"errors": [
{
"component": "general",
"errorCode": "2018",
"formattedMessage": "Warning: Function state mutability can be restricted to view\n --> contracts/WithImmAddr.sol:13:5:\n |\n13 | function greet() public returns(uint256) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
"message": "Function state mutability can be restricted to view",
"severity": "warning",
"sourceLocation": {
"end": 367,
"file": "contracts/WithImmAddr.sol",
"start": 297
},
"type": "Warning"
}
],
"sources": {
"contracts/WithImmAddr.sol": {
"ast": {
"absolutePath": "contracts/WithImmAddr.sol",
"exportedSymbols": {
"WithImmAddr": [
30
]
},
"id": 31,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "31:23:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 30,
"linearizedBaseContracts": [
30
],
"name": "WithImmAddr",
"nameLocation": "65:11:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "3fa4f245",
"id": 3,
"mutability": "immutable",
"name": "value",
"nameLocation": "108:5:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "83:30:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "83:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "d5f39488",
"id": 5,
"mutability": "immutable",
"name": "deployer",
"nameLocation": "144:8:0",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "119:33:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 4,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "119:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"body": {
"id": 20,
"nodeType": "Block",
"src": "218:73:0",
"statements": [
{
"expression": {
"id": 14,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 12,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "228:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 13,
"name": "initialValue",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "236:12:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "228:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 15,
"nodeType": "ExpressionStatement",
"src": "228:20:0"
},
{
"expression": {
"id": 18,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 16,
"name": "deployer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "258:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 17,
"name": "initialDeployer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 9,
"src": "269:15:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "258:26:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 19,
"nodeType": "ExpressionStatement",
"src": "258:26:0"
}
]
},
"id": 21,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 7,
"mutability": "mutable",
"name": "initialValue",
"nameLocation": "179:12:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "171:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "171:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 9,
"mutability": "mutable",
"name": "initialDeployer",
"nameLocation": "201:15:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "193:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "193:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "170:47:0"
},
"returnParameters": {
"id": 11,
"nodeType": "ParameterList",
"parameters": [],
"src": "218:0:0"
},
"scope": 30,
"src": "159:132:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 28,
"nodeType": "Block",
"src": "338:29:0",
"statements": [
{
"expression": {
"id": 26,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "355:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 25,
"id": 27,
"nodeType": "Return",
"src": "348:12:0"
}
]
},
"functionSelector": "cfae3217",
"id": 29,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "greet",
"nameLocation": "306:5:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 22,
"nodeType": "ParameterList",
"parameters": [],
"src": "311:2:0"
},
"returnParameters": {
"id": 25,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 24,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 29,
"src": "329:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 23,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "329:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "328:9:0"
},
"scope": 30,
"src": "297:70:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 31,
"src": "56:313:0"
}
],
"src": "31:339:0"
},
"id": 0
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment