UNPKG

@daostack/upgrades

Version:
1,423 lines (1,422 loc) 49.2 kB
{ "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" } }