@daostack/upgrades
Version:
Proxy upgadable contracts based on openzeppelin-sdk
1,423 lines (1,422 loc) • 49.2 kB
JSON
{
"fileName": "WithInitialize.sol",
"contractName": "DoesNotNeedAnInitialize",
"source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nimport \"../Initializable.sol\";\n\ncontract WithInitialize {\n uint public value;\n\n function initialize() public virtual {\n value = 42;\n }\n}\n\ncontract AnotherWithInitialize is Initializable {\n uint public anotherValue;\n\n function init() initializer public {\n anotherValue = 42;\n }\n}\n\ncontract WithoutInitialize {\n function say() public pure returns (string memory) {\n return \"WithoutInitialize\";\n }\n}\n\ncontract WithBaseUninitialized is WithInitialize, AnotherWithInitialize {\n uint public someValue;\n\n function initialize() public override {\n someValue = 42;\n }\n}\n\ncontract WithBaseInitialized is WithInitialize, AnotherWithInitialize {\n uint public someValue;\n\n function initialize() public override {\n WithInitialize.initialize();\n AnotherWithInitialize.init();\n someValue = 42;\n }\n}\n\ncontract WithSimpleBaseUninitialized is WithoutInitialize {\n uint public someValue;\n\n function initialize() public {\n someValue = 42;\n }\n}\n\ncontract ShouldHaveInitialize is WithInitialize, AnotherWithInitialize {\n uint public someValue;\n}\n\ncontract DoesNotNeedAnInitialize is WithInitialize, WithoutInitialize {\n uint public someValue;\n}\n\ncontract ExtendsFromShouldHaveInitialize is ShouldHaveInitialize {\n uint public someOtherValue;\n}\n",
"sourcePath": "contracts/mocks/WithInitialize.sol",
"sourceMap": "1122:98:24:-:0;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "1122:98:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;117:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1196:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;139:58;;;:::i;:::-;;380:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;117:17;;;;;;:::o;1196:21::-;;;;;;:::o;139:58::-;190:2;182:5;;:10;;;;;;;139:58;:::o;380:88::-;416:13;437:26;;;;;;;;;;;;;;;;;;;;;;;380:88;;:::o",
"abi": [
{
"inputs": [],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "say",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "someValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "value",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"ast": {
"absolutePath": "contracts/mocks/WithInitialize.sol",
"exportedSymbols": {
"AnotherWithInitialize": [
5042
],
"DoesNotNeedAnInitialize": [
5120
],
"ExtendsFromShouldHaveInitialize": [
5125
],
"ShouldHaveInitialize": [
5113
],
"WithBaseInitialized": [
5093
],
"WithBaseUninitialized": [
5067
],
"WithInitialize": [
5027
],
"WithSimpleBaseUninitialized": [
5106
],
"WithoutInitialize": [
5051
]
},
"id": 5126,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 5015,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:24"
},
{
"absolutePath": "contracts/Initializable.sol",
"file": "../Initializable.sol",
"id": 5016,
"nodeType": "ImportDirective",
"scope": 5126,
"sourceUnit": 75,
"src": "57:30:24",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5027,
"linearizedBaseContracts": [
5027
],
"name": "WithInitialize",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "3fa4f245",
"id": 5018,
"mutability": "mutable",
"name": "value",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5027,
"src": "117:17:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5017,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "117:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 5025,
"nodeType": "Block",
"src": "176:21:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 5023,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5021,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5018,
"src": "182:5:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3432",
"id": 5022,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "190:2:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_42_by_1",
"typeString": "int_const 42"
},
"value": "42"
},
"src": "182:10:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5024,
"nodeType": "ExpressionStatement",
"src": "182:10:24"
}
]
},
"documentation": null,
"functionSelector": "8129fc1c",
"id": 5026,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initialize",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5019,
"nodeType": "ParameterList",
"parameters": [],
"src": "158:2:24"
},
"returnParameters": {
"id": 5020,
"nodeType": "ParameterList",
"parameters": [],
"src": "176:0:24"
},
"scope": 5027,
"src": "139:58:24",
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
}
],
"scope": 5126,
"src": "89:110:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5028,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 74,
"src": "235:13:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$74",
"typeString": "contract Initializable"
}
},
"id": 5029,
"nodeType": "InheritanceSpecifier",
"src": "235:13:24"
}
],
"contractDependencies": [
74
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5042,
"linearizedBaseContracts": [
5042,
74
],
"name": "AnotherWithInitialize",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "68620bd0",
"id": 5031,
"mutability": "mutable",
"name": "anotherValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5042,
"src": "253:24:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5030,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "253:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 5040,
"nodeType": "Block",
"src": "317:28:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 5038,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5036,
"name": "anotherValue",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5031,
"src": "323:12:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3432",
"id": 5037,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "338:2:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_42_by_1",
"typeString": "int_const 42"
},
"value": "42"
},
"src": "323:17:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5039,
"nodeType": "ExpressionStatement",
"src": "323:17:24"
}
]
},
"documentation": null,
"functionSelector": "e1c7392a",
"id": 5041,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 5034,
"modifierName": {
"argumentTypes": null,
"id": 5033,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 47,
"src": "298:11:24",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "298:11:24"
}
],
"name": "init",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5032,
"nodeType": "ParameterList",
"parameters": [],
"src": "295:2:24"
},
"returnParameters": {
"id": 5035,
"nodeType": "ParameterList",
"parameters": [],
"src": "317:0:24"
},
"scope": 5042,
"src": "282:63:24",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 5126,
"src": "201:146:24"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5051,
"linearizedBaseContracts": [
5051
],
"name": "WithoutInitialize",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 5049,
"nodeType": "Block",
"src": "431:37:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "576974686f7574496e697469616c697a65",
"id": 5047,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "444:19:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_29904a0199e04a428d841982e15369f76a041f59a9487735d519e6dd6ca6c78c",
"typeString": "literal_string \"WithoutInitialize\""
},
"value": "WithoutInitialize"
},
"functionReturnParameters": 5046,
"id": 5048,
"nodeType": "Return",
"src": "437:26:24"
}
]
},
"documentation": null,
"functionSelector": "954ab4b2",
"id": 5050,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "say",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5043,
"nodeType": "ParameterList",
"parameters": [],
"src": "392:2:24"
},
"returnParameters": {
"id": 5046,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5045,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5050,
"src": "416:13:24",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 5044,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "416:6:24",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "415:15:24"
},
"scope": 5051,
"src": "380:88:24",
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
}
],
"scope": 5126,
"src": "349:121:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5052,
"name": "WithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5027,
"src": "506:14:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WithInitialize_$5027",
"typeString": "contract WithInitialize"
}
},
"id": 5053,
"nodeType": "InheritanceSpecifier",
"src": "506:14:24"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5054,
"name": "AnotherWithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5042,
"src": "522:21:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AnotherWithInitialize_$5042",
"typeString": "contract AnotherWithInitialize"
}
},
"id": 5055,
"nodeType": "InheritanceSpecifier",
"src": "522:21:24"
}
],
"contractDependencies": [
74,
5027,
5042
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5067,
"linearizedBaseContracts": [
5067,
5042,
74,
5027
],
"name": "WithBaseUninitialized",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "4a627e61",
"id": 5057,
"mutability": "mutable",
"name": "someValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5067,
"src": "548:21:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5056,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "548:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"baseFunctions": [
5026
],
"body": {
"id": 5065,
"nodeType": "Block",
"src": "612:25:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 5063,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5061,
"name": "someValue",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5057,
"src": "618:9:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3432",
"id": 5062,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "630:2:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_42_by_1",
"typeString": "int_const 42"
},
"value": "42"
},
"src": "618:14:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5064,
"nodeType": "ExpressionStatement",
"src": "618:14:24"
}
]
},
"documentation": null,
"functionSelector": "8129fc1c",
"id": 5066,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initialize",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 5059,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "603:8:24"
},
"parameters": {
"id": 5058,
"nodeType": "ParameterList",
"parameters": [],
"src": "593:2:24"
},
"returnParameters": {
"id": 5060,
"nodeType": "ParameterList",
"parameters": [],
"src": "612:0:24"
},
"scope": 5067,
"src": "574:63:24",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 5126,
"src": "472:167:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5068,
"name": "WithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5027,
"src": "673:14:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WithInitialize_$5027",
"typeString": "contract WithInitialize"
}
},
"id": 5069,
"nodeType": "InheritanceSpecifier",
"src": "673:14:24"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5070,
"name": "AnotherWithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5042,
"src": "689:21:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AnotherWithInitialize_$5042",
"typeString": "contract AnotherWithInitialize"
}
},
"id": 5071,
"nodeType": "InheritanceSpecifier",
"src": "689:21:24"
}
],
"contractDependencies": [
74,
5027,
5042
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5093,
"linearizedBaseContracts": [
5093,
5042,
74,
5027
],
"name": "WithBaseInitialized",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "4a627e61",
"id": 5073,
"mutability": "mutable",
"name": "someValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5093,
"src": "715:21:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5072,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "715:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"baseFunctions": [
5026
],
"body": {
"id": 5091,
"nodeType": "Block",
"src": "779:92:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 5077,
"name": "WithInitialize",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5027,
"src": "785:14:24",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_WithInitialize_$5027_$",
"typeString": "type(contract WithInitialize)"
}
},
"id": 5079,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 5026,
"src": "785:25:24",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 5080,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "785:27:24",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5081,
"nodeType": "ExpressionStatement",
"src": "785:27:24"
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 5082,
"name": "AnotherWithInitialize",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5042,
"src": "818:21:24",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_AnotherWithInitialize_$5042_$",
"typeString": "type(contract AnotherWithInitialize)"
}
},
"id": 5084,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "init",
"nodeType": "MemberAccess",
"referencedDeclaration": 5041,
"src": "818:26:24",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 5085,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "818:28:24",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5086,
"nodeType": "ExpressionStatement",
"src": "818:28:24"
},
{
"expression": {
"argumentTypes": null,
"id": 5089,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5087,
"name": "someValue",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5073,
"src": "852:9:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3432",
"id": 5088,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "864:2:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_42_by_1",
"typeString": "int_const 42"
},
"value": "42"
},
"src": "852:14:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5090,
"nodeType": "ExpressionStatement",
"src": "852:14:24"
}
]
},
"documentation": null,
"functionSelector": "8129fc1c",
"id": 5092,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initialize",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 5075,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "770:8:24"
},
"parameters": {
"id": 5074,
"nodeType": "ParameterList",
"parameters": [],
"src": "760:2:24"
},
"returnParameters": {
"id": 5076,
"nodeType": "ParameterList",
"parameters": [],
"src": "779:0:24"
},
"scope": 5093,
"src": "741:130:24",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 5126,
"src": "641:232:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5094,
"name": "WithoutInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5051,
"src": "915:17:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WithoutInitialize_$5051",
"typeString": "contract WithoutInitialize"
}
},
"id": 5095,
"nodeType": "InheritanceSpecifier",
"src": "915:17:24"
}
],
"contractDependencies": [
5051
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5106,
"linearizedBaseContracts": [
5106,
5051
],
"name": "WithSimpleBaseUninitialized",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "4a627e61",
"id": 5097,
"mutability": "mutable",
"name": "someValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5106,
"src": "937:21:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5096,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "937:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 5104,
"nodeType": "Block",
"src": "992:25:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 5102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 5100,
"name": "someValue",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5097,
"src": "998:9:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3432",
"id": 5101,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1010:2:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_42_by_1",
"typeString": "int_const 42"
},
"value": "42"
},
"src": "998:14:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 5103,
"nodeType": "ExpressionStatement",
"src": "998:14:24"
}
]
},
"documentation": null,
"functionSelector": "8129fc1c",
"id": 5105,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "initialize",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 5098,
"nodeType": "ParameterList",
"parameters": [],
"src": "982:2:24"
},
"returnParameters": {
"id": 5099,
"nodeType": "ParameterList",
"parameters": [],
"src": "992:0:24"
},
"scope": 5106,
"src": "963:54:24",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 5126,
"src": "875:144:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5107,
"name": "WithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5027,
"src": "1054:14:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WithInitialize_$5027",
"typeString": "contract WithInitialize"
}
},
"id": 5108,
"nodeType": "InheritanceSpecifier",
"src": "1054:14:24"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5109,
"name": "AnotherWithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5042,
"src": "1070:21:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AnotherWithInitialize_$5042",
"typeString": "contract AnotherWithInitialize"
}
},
"id": 5110,
"nodeType": "InheritanceSpecifier",
"src": "1070:21:24"
}
],
"contractDependencies": [
74,
5027,
5042
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5113,
"linearizedBaseContracts": [
5113,
5042,
74,
5027
],
"name": "ShouldHaveInitialize",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "4a627e61",
"id": 5112,
"mutability": "mutable",
"name": "someValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5113,
"src": "1096:21:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5111,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1096:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
}
],
"scope": 5126,
"src": "1021:99:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5114,
"name": "WithInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5027,
"src": "1158:14:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WithInitialize_$5027",
"typeString": "contract WithInitialize"
}
},
"id": 5115,
"nodeType": "InheritanceSpecifier",
"src": "1158:14:24"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5116,
"name": "WithoutInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5051,
"src": "1174:17:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_WithoutInitialize_$5051",
"typeString": "contract WithoutInitialize"
}
},
"id": 5117,
"nodeType": "InheritanceSpecifier",
"src": "1174:17:24"
}
],
"contractDependencies": [
5027,
5051
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5120,
"linearizedBaseContracts": [
5120,
5051,
5027
],
"name": "DoesNotNeedAnInitialize",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "4a627e61",
"id": 5119,
"mutability": "mutable",
"name": "someValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5120,
"src": "1196:21:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5118,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1196:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
}
],
"scope": 5126,
"src": "1122:98:24"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 5121,
"name": "ShouldHaveInitialize",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5113,
"src": "1266:20:24",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ShouldHaveInitialize_$5113",
"typeString": "contract ShouldHaveInitialize"
}
},
"id": 5122,
"nodeType": "InheritanceSpecifier",
"src": "1266:20:24"
}
],
"contractDependencies": [
74,
5027,
5042,
5113
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 5125,
"linearizedBaseContracts": [
5125,
5113,
5042,
74,
5027
],
"name": "ExtendsFromShouldHaveInitialize",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "df04ef0a",
"id": 5124,
"mutability": "mutable",
"name": "someOtherValue",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 5125,
"src": "1291:26:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5123,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1291:4:24",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
}
],
"scope": 5126,
"src": "1222:98:24"
}
],
"src": "0:1321:24"
},
"bytecode": "0x60806040523480156100115760006000fd5b50610017565b6101be806100266000396000f3fe60806040523480156100115760006000fd5b50600436106100515760003560e01c80633fa4f245146100575780634a627e61146100755780638129fc1c14610093578063954ab4b21461009d57610051565b60006000fd5b61005f610121565b6040518082815260200191505060405180910390f35b61007d61012a565b6040518082815260200191505060405180910390f35b61009b610133565b005b6100a5610143565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e65780820151818401525b6020810190506100ca565b50505050905090810190601f1680156101135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006000505481565b60016000505481565b602a60006000508190909055505b565b60606040518060400160405280601181526020017f576974686f7574496e697469616c697a650000000000000000000000000000008152602001509050610185565b9056fea26469706673582212200a84175bc16316705e3322f56faf66db5bd63d80bcdff2c014834a3b32c351d964736f6c634300060a0033",
"deployedBytecode": "0x60806040523480156100115760006000fd5b50600436106100515760003560e01c80633fa4f245146100575780634a627e61146100755780638129fc1c14610093578063954ab4b21461009d57610051565b60006000fd5b61005f610121565b6040518082815260200191505060405180910390f35b61007d61012a565b6040518082815260200191505060405180910390f35b61009b610133565b005b6100a5610143565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e65780820151818401525b6020810190506100ca565b50505050905090810190601f1680156101135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006000505481565b60016000505481565b602a60006000508190909055505b565b60606040518060400160405280601181526020017f576974686f7574496e697469616c697a650000000000000000000000000000008152602001509050610185565b9056fea26469706673582212200a84175bc16316705e3322f56faf66db5bd63d80bcdff2c014834a3b32c351d964736f6c634300060a0033",
"compiler": {
"name": "solc",
"version": "0.6.10+commit.00c0fcaf.Emscripten.clang",
"optimizer": {},
"evmVersion": "constantinople"
}
}