@newos/upgrades
Version:
Core JavaScript library for the NewOS
1,366 lines (1,365 loc) • 61.5 kB
JSON
{
"fileName": "MultipleInheritanceInitializableMocks.sol",
"contractName": "SampleGramps",
"source": "pragma solidity ^0.5.0;\n\nimport '../Initializable.sol';\n\n// Sample contracts showing upgradeability with multiple inheritance.\n// Child contract inherits from Father and Mother contracts, and Father extends from Gramps.\n// \n// Human\n// / \\\n// | Gramps\n// | |\n// Mother Father\n// | |\n// -- Child --\n\n/**\n * Sample base intializable contract that is a human\n */\ncontract SampleHuman is Initializable {\n bool public isHuman;\n\n function initialize() initializer public {\n isHuman = true;\n }\n}\n\n/**\n * Sample base intializable contract that defines a field mother\n */\ncontract SampleMother is Initializable, SampleHuman {\n uint256 public mother;\n\n function initialize(uint256 value) initializer public {\n SampleHuman.initialize();\n mother = value;\n }\n}\n\n/**\n * Sample base intializable contract that defines a field gramps\n */\ncontract SampleGramps is Initializable, SampleHuman {\n uint256 public gramps;\n\n function initialize(uint256 value) initializer public {\n SampleHuman.initialize();\n gramps = value;\n }\n}\n\n/**\n * Sample base intializable contract that defines a field father and extends from gramps\n */\ncontract SampleFather is Initializable, SampleGramps {\n uint256 public father;\n\n function initialize(uint256 _gramps, uint256 _father) initializer public {\n SampleGramps.initialize(_gramps);\n father = _father;\n }\n}\n\n/**\n * Child extends from mother, father (gramps)\n */\ncontract SampleChild is Initializable, SampleMother, SampleFather {\n uint256 public child;\n\n function initialize(uint256 _mother, uint256 _gramps, uint256 _father, uint256 _child) initializer public {\n SampleMother.initialize(_mother);\n SampleFather.initialize(_gramps, _father);\n child = _child;\n }\n}\n",
"sourcePath": "contracts/mocks/MultipleInheritanceInitializableMocks.sol",
"sourceMap": "905:193:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;905:193:14;;;;;;;",
"deployedSourceMap": "905:193:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;905:193:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;470:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;494:66;;;:::i;:::-;;961:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;987:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;987:109:14;;;;;;;;;;;;;;;;;:::i;:::-;;470:19;;;;;;;;;;;;;:::o;494:66::-;1024:12:0;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;;;;;;1151:13;1129:35;;1174:14;1170:80;;;1213:4;1198:12;;:19;;;;;;;;;;;;;;;;;;1239:4;1225:11;;:18;;;;;;;;;;;;;;;;;;1170:80;551:4:14;541:7;;:14;;;;;;;;;;;;;;;;;;1268::0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;494:66:14;:::o;961:21::-;;;;:::o;987:109::-;1024:12:0;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1129:19;1152:12;;;;;;;;;;;1151:13;1129:35;;1174:14;1170:80;;;1213:4;1198:12;;:19;;;;;;;;;;;;;;;;;;1239:4;1225:11;;:18;;;;;;;;;;;;;;;;;;1170:80;1047:24:14;:22;:24::i;:::-;1086:5;1077:6;:14;;;;1268::0;1264:55;;;1307:5;1292:12;;:20;;;;;;;;;;;;;;;;;;1264:55;987:109:14;;:::o;1409:498:0:-;1456:4;1797:12;1820:4;1797:28;;1831:10;1876:4;1864:17;1858:23;;1901:1;1895:2;:7;1888:14;;;;1409:498;:::o",
"abi": [
{
"constant": true,
"inputs": [],
"name": "isHuman",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "gramps",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "value",
"type": "uint256"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"ast": {
"absolutePath": "contracts/mocks/MultipleInheritanceInitializableMocks.sol",
"exportedSymbols": {
"SampleChild": [
4112
],
"SampleFather": [
4072
],
"SampleGramps": [
4045
],
"SampleHuman": [
3997
],
"SampleMother": [
4021
]
},
"id": 4113,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3981,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:14"
},
{
"absolutePath": "contracts/Initializable.sol",
"file": "../Initializable.sol",
"id": 3982,
"nodeType": "ImportDirective",
"scope": 4113,
"sourceUnit": 69,
"src": "25:30:14",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3983,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 68,
"src": "452:13:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$68",
"typeString": "contract Initializable"
}
},
"id": 3984,
"nodeType": "InheritanceSpecifier",
"src": "452:13:14"
}
],
"contractDependencies": [
68
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that is a human",
"fullyImplemented": true,
"id": 3997,
"linearizedBaseContracts": [
3997,
68
],
"name": "SampleHuman",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3986,
"name": "isHuman",
"nodeType": "VariableDeclaration",
"scope": 3997,
"src": "470:19:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 3985,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "470:4:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 3995,
"nodeType": "Block",
"src": "535:25:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3993,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3991,
"name": "isHuman",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3986,
"src": "541:7:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3992,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "551:4:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "541:14:14",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 3994,
"nodeType": "ExpressionStatement",
"src": "541:14:14"
}
]
},
"documentation": null,
"id": 3996,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 3989,
"modifierName": {
"argumentTypes": null,
"id": 3988,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "516:11:14",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "516:11:14"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3987,
"nodeType": "ParameterList",
"parameters": [],
"src": "513:2:14"
},
"returnParameters": {
"id": 3990,
"nodeType": "ParameterList",
"parameters": [],
"src": "535:0:14"
},
"scope": 3997,
"src": "494:66:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 4113,
"src": "428:134:14"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3998,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 68,
"src": "662:13:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$68",
"typeString": "contract Initializable"
}
},
"id": 3999,
"nodeType": "InheritanceSpecifier",
"src": "662:13:14"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4000,
"name": "SampleHuman",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3997,
"src": "677:11:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleHuman_$3997",
"typeString": "contract SampleHuman"
}
},
"id": 4001,
"nodeType": "InheritanceSpecifier",
"src": "677:11:14"
}
],
"contractDependencies": [
68,
3997
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that defines a field mother",
"fullyImplemented": true,
"id": 4021,
"linearizedBaseContracts": [
4021,
3997,
68
],
"name": "SampleMother",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 4003,
"name": "mother",
"nodeType": "VariableDeclaration",
"scope": 4021,
"src": "693:21:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4002,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "693:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 4019,
"nodeType": "Block",
"src": "773:55:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4010,
"name": "SampleHuman",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3997,
"src": "779:11:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleHuman_$3997_$",
"typeString": "type(contract SampleHuman)"
}
},
"id": 4012,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 3996,
"src": "779:22:14",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 4013,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "779:24:14",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4014,
"nodeType": "ExpressionStatement",
"src": "779:24:14"
},
{
"expression": {
"argumentTypes": null,
"id": 4017,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4015,
"name": "mother",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4003,
"src": "809:6:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4016,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4005,
"src": "818:5:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "809:14:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4018,
"nodeType": "ExpressionStatement",
"src": "809:14:14"
}
]
},
"documentation": null,
"id": 4020,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 4008,
"modifierName": {
"argumentTypes": null,
"id": 4007,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "754:11:14",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "754:11:14"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4006,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4005,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 4020,
"src": "739:13:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4004,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "739:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "738:15:14"
},
"returnParameters": {
"id": 4009,
"nodeType": "ParameterList",
"parameters": [],
"src": "773:0:14"
},
"scope": 4021,
"src": "719:109:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 4113,
"src": "637:193:14"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4022,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 68,
"src": "930:13:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$68",
"typeString": "contract Initializable"
}
},
"id": 4023,
"nodeType": "InheritanceSpecifier",
"src": "930:13:14"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4024,
"name": "SampleHuman",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3997,
"src": "945:11:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleHuman_$3997",
"typeString": "contract SampleHuman"
}
},
"id": 4025,
"nodeType": "InheritanceSpecifier",
"src": "945:11:14"
}
],
"contractDependencies": [
68,
3997
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that defines a field gramps",
"fullyImplemented": true,
"id": 4045,
"linearizedBaseContracts": [
4045,
3997,
68
],
"name": "SampleGramps",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 4027,
"name": "gramps",
"nodeType": "VariableDeclaration",
"scope": 4045,
"src": "961:21:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4026,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "961:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 4043,
"nodeType": "Block",
"src": "1041:55:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 4034,
"name": "SampleHuman",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3997,
"src": "1047:11:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleHuman_$3997_$",
"typeString": "type(contract SampleHuman)"
}
},
"id": 4036,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 3996,
"src": "1047:22:14",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 4037,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1047:24:14",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4038,
"nodeType": "ExpressionStatement",
"src": "1047:24:14"
},
{
"expression": {
"argumentTypes": null,
"id": 4041,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4039,
"name": "gramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4027,
"src": "1077:6:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4040,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4029,
"src": "1086:5:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1077:14:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4042,
"nodeType": "ExpressionStatement",
"src": "1077:14:14"
}
]
},
"documentation": null,
"id": 4044,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 4032,
"modifierName": {
"argumentTypes": null,
"id": 4031,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "1022:11:14",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1022:11:14"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4029,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 4044,
"src": "1007:13:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4028,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1007:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1006:15:14"
},
"returnParameters": {
"id": 4033,
"nodeType": "ParameterList",
"parameters": [],
"src": "1041:0:14"
},
"scope": 4045,
"src": "987:109:14",
"stateMutability": "nonpayable",
"superFunction": 4020,
"visibility": "public"
}
],
"scope": 4113,
"src": "905:193:14"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4046,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 68,
"src": "1222:13:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$68",
"typeString": "contract Initializable"
}
},
"id": 4047,
"nodeType": "InheritanceSpecifier",
"src": "1222:13:14"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4048,
"name": "SampleGramps",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4045,
"src": "1237:12:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleGramps_$4045",
"typeString": "contract SampleGramps"
}
},
"id": 4049,
"nodeType": "InheritanceSpecifier",
"src": "1237:12:14"
}
],
"contractDependencies": [
68,
3997,
4045
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that defines a field father and extends from gramps",
"fullyImplemented": true,
"id": 4072,
"linearizedBaseContracts": [
4072,
4045,
3997,
68
],
"name": "SampleFather",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 4051,
"name": "father",
"nodeType": "VariableDeclaration",
"scope": 4072,
"src": "1254:21:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4050,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1254:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 4070,
"nodeType": "Block",
"src": "1353:65:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4063,
"name": "_gramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4053,
"src": "1383:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 4060,
"name": "SampleGramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4045,
"src": "1359:12:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleGramps_$4045_$",
"typeString": "type(contract SampleGramps)"
}
},
"id": 4062,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 4044,
"src": "1359:23:14",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 4064,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1359:32:14",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4065,
"nodeType": "ExpressionStatement",
"src": "1359:32:14"
},
{
"expression": {
"argumentTypes": null,
"id": 4068,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 4066,
"name": "father",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4051,
"src": "1397:6:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 4067,
"name": "_father",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4055,
"src": "1406:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1397:16:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 4069,
"nodeType": "ExpressionStatement",
"src": "1397:16:14"
}
]
},
"documentation": null,
"id": 4071,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 4058,
"modifierName": {
"argumentTypes": null,
"id": 4057,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 43,
"src": "1334:11:14",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1334:11:14"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4056,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4053,
"name": "_gramps",
"nodeType": "VariableDeclaration",
"scope": 4071,
"src": "1300:15:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4052,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1300:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 4055,
"name": "_father",
"nodeType": "VariableDeclaration",
"scope": 4071,
"src": "1317:15:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4054,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1317:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1299:34:14"
},
"returnParameters": {
"id": 4059,
"nodeType": "ParameterList",
"parameters": [],
"src": "1353:0:14"
},
"scope": 4072,
"src": "1280:138:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 4113,
"src": "1197:223:14"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4073,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 68,
"src": "1500:13:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$68",
"typeString": "contract Initializable"
}
},
"id": 4074,
"nodeType": "InheritanceSpecifier",
"src": "1500:13:14"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4075,
"name": "SampleMother",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4021,
"src": "1515:12:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleMother_$4021",
"typeString": "contract SampleMother"
}
},
"id": 4076,
"nodeType": "InheritanceSpecifier",
"src": "1515:12:14"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 4077,
"name": "SampleFather",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4072,
"src": "1529:12:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleFather_$4072",
"typeString": "contract SampleFather"
}
},
"id": 4078,
"nodeType": "InheritanceSpecifier",
"src": "1529:12:14"
}
],
"contractDependencies": [
68,
3997,
4021,
4045,
4072
],
"contractKind": "contract",
"documentation": "Child extends from mother, father (gramps)",
"fullyImplemented": true,
"id": 4112,
"linearizedBaseContracts": [
4112,
4072,
4045,
4021,
3997,
68
],
"name": "SampleChild",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 4080,
"name": "child",
"nodeType": "VariableDeclaration",
"scope": 4112,
"src": "1546:20:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4079,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1546:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 4110,
"nodeType": "Block",
"src": "1677:110:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4096,
"name": "_mother",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4082,
"src": "1707:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 4093,
"name": "SampleMother",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4021,
"src": "1683:12:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleMother_$4021_$",
"typeString": "type(contract SampleMother)"
}
},
"id": 4095,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 4020,
"src": "1683:23:14",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 4097,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1683:32:14",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4098,
"nodeType": "ExpressionStatement",
"src": "1683:32:14"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 4102,
"name": "_gramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4084,
"src": "1745:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 4103,
"name": "_father",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4086,
"src": "1754:7:14",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 4099,
"name": "SampleFather",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4072,
"src": "1721:12:14",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleFather_$4072_$",
"typeString": "type(contract SampleFather)"
}
},
"id": 4101,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 4071,
"src": "1721:23:14",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
"typeString": "function (uint256,uint256)"
}
},
"id": 4104,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1721:41:14",