@alice-network/zos-lib
Version:
JavaScript library for the ZeppelinOS smart contract platform
1,270 lines • 116 kB
JSON
{
"contractName": "SampleMother",
"abi": [
{
"constant": true,
"inputs": [],
"name": "isHuman",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "mother",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "value",
"type": "uint256"
}
],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506103f0806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634a6c9db6146100675780638129fc1c14610096578063ed7dfee3146100ad578063fe4b84df146100d8575b600080fd5b34801561007357600080fd5b5061007c610105565b604051808215151515815260200191505060405180910390f35b3480156100a257600080fd5b506100ab610118565b005b3480156100b957600080fd5b506100c2610268565b6040518082815260200191505060405180910390f35b3480156100e457600080fd5b506101036004803603810190808035906020019092919050505061026e565b005b603360009054906101000a900460ff1681565b60008060019054906101000a900460ff168061013857506101376103b3565b5b8061014f57506000809054906101000a900460ff16155b15156101e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506001603360006101000a81548160ff02191690831515021790555080600060016101000a81548160ff02191690831515021790555050565b60345481565b60008060019054906101000a900460ff168061028e575061028d6103b3565b5b806102a557506000809054906101000a900460ff16155b151561033f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555061038e610118565b8160348190555080600060016101000a81548160ff0219169083151502179055505050565b600080303b905060008114915050905600a165627a7a72305820415bf4186fff180150b8ed5488d2bb82b606a0e6be94638c94811026675ac8b80029",
"deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634a6c9db6146100675780638129fc1c14610096578063ed7dfee3146100ad578063fe4b84df146100d8575b600080fd5b34801561007357600080fd5b5061007c610105565b604051808215151515815260200191505060405180910390f35b3480156100a257600080fd5b506100ab610118565b005b3480156100b957600080fd5b506100c2610268565b6040518082815260200191505060405180910390f35b3480156100e457600080fd5b506101036004803603810190808035906020019092919050505061026e565b005b603360009054906101000a900460ff1681565b60008060019054906101000a900460ff168061013857506101376103b3565b5b8061014f57506000809054906101000a900460ff16155b15156101e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506001603360006101000a81548160ff02191690831515021790555080600060016101000a81548160ff02191690831515021790555050565b60345481565b60008060019054906101000a900460ff168061028e575061028d6103b3565b5b806102a557506000809054906101000a900460ff16155b151561033f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555061038e610118565b8160348190555080600060016101000a81548160ff0219169083151502179055505050565b600080303b905060008114915050905600a165627a7a72305820415bf4186fff180150b8ed5488d2bb82b606a0e6be94638c94811026675ac8b80029",
"sourceMap": "638:193:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;638:193:12;;;;;;;",
"deployedSourceMap": "638:193:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;471:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;471:19:12;;;;;;;;;;;;;;;;;;;;;;;;;;;495:66;;8:9:-1;5:2;;;30:1;27;20:12;5:2;495:66:12;;;;;;694:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;694:21:12;;;;;;;;;;;;;;;;;;;;;;;720:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:109:12;;;;;;;;;;;;;;;;;;;;;;;;;;471:19;;;;;;;;;;;;;:::o;495:66::-;1129:20:0;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;552:4:12;542:7;;:14;;;;;;;;;;;;;;;;;;1243:15:0;1228:12;;:30;;;;;;;;;;;;;;;;;;495:66:12;:::o;694:21::-;;;;:::o;720:109::-;1129:20:0;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;780:24:12;:22;:24::i;:::-;819:5;810:6;:14;;;;1243:15:0;1228:12;;:30;;;;;;;;;;;;;;;;;;720:109:12;;:::o;1349:467:0:-;1396:4;1737:10;1782:7;1770:20;1764:26;;1810:1;1804:2;:7;1797:14;;1349:467;;:::o",
"source": "pragma solidity ^0.4.24;\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": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/MultipleInheritanceInitializableMocks.sol",
"ast": {
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/MultipleInheritanceInitializableMocks.sol",
"exportedSymbols": {
"SampleChild": [
1849
],
"SampleFather": [
1809
],
"SampleGramps": [
1782
],
"SampleHuman": [
1734
],
"SampleMother": [
1758
]
},
"id": 1850,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1718,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:12"
},
{
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/Initializable.sol",
"file": "../Initializable.sol",
"id": 1719,
"nodeType": "ImportDirective",
"scope": 1850,
"sourceUnit": 56,
"src": "26:30:12",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1720,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "453:13:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1721,
"nodeType": "InheritanceSpecifier",
"src": "453:13:12"
}
],
"contractDependencies": [
55
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that is a human",
"fullyImplemented": true,
"id": 1734,
"linearizedBaseContracts": [
1734,
55
],
"name": "SampleHuman",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1723,
"name": "isHuman",
"nodeType": "VariableDeclaration",
"scope": 1734,
"src": "471:19:12",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1722,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "471:4:12",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1732,
"nodeType": "Block",
"src": "536:25:12",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1730,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1728,
"name": "isHuman",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1723,
"src": "542:7:12",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 1729,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "552:4:12",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "542:14:12",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 1731,
"nodeType": "ExpressionStatement",
"src": "542:14:12"
}
]
},
"documentation": null,
"id": 1733,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1726,
"modifierName": {
"argumentTypes": null,
"id": 1725,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "517:11:12",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "517:11:12"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1724,
"nodeType": "ParameterList",
"parameters": [],
"src": "514:2:12"
},
"payable": false,
"returnParameters": {
"id": 1727,
"nodeType": "ParameterList",
"parameters": [],
"src": "536:0:12"
},
"scope": 1734,
"src": "495:66:12",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1850,
"src": "429:134:12"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1735,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "663:13:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1736,
"nodeType": "InheritanceSpecifier",
"src": "663:13:12"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1737,
"name": "SampleHuman",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1734,
"src": "678:11:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleHuman_$1734",
"typeString": "contract SampleHuman"
}
},
"id": 1738,
"nodeType": "InheritanceSpecifier",
"src": "678:11:12"
}
],
"contractDependencies": [
55,
1734
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that defines a field mother",
"fullyImplemented": true,
"id": 1758,
"linearizedBaseContracts": [
1758,
1734,
55
],
"name": "SampleMother",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1740,
"name": "mother",
"nodeType": "VariableDeclaration",
"scope": 1758,
"src": "694:21:12",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1739,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "694:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1756,
"nodeType": "Block",
"src": "774:55:12",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 1747,
"name": "SampleHuman",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1734,
"src": "780:11:12",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleHuman_$1734_$",
"typeString": "type(contract SampleHuman)"
}
},
"id": 1749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 1733,
"src": "780:22:12",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 1750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "780:24:12",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1751,
"nodeType": "ExpressionStatement",
"src": "780:24:12"
},
{
"expression": {
"argumentTypes": null,
"id": 1754,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1752,
"name": "mother",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1740,
"src": "810:6:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1753,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1742,
"src": "819:5:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "810:14:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1755,
"nodeType": "ExpressionStatement",
"src": "810:14:12"
}
]
},
"documentation": null,
"id": 1757,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1745,
"modifierName": {
"argumentTypes": null,
"id": 1744,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "755:11:12",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "755:11:12"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1743,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1742,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 1757,
"src": "740:13:12",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1741,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "740:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "739:15:12"
},
"payable": false,
"returnParameters": {
"id": 1746,
"nodeType": "ParameterList",
"parameters": [],
"src": "774:0:12"
},
"scope": 1758,
"src": "720:109:12",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1850,
"src": "638:193:12"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1759,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "931:13:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1760,
"nodeType": "InheritanceSpecifier",
"src": "931:13:12"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1761,
"name": "SampleHuman",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1734,
"src": "946:11:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleHuman_$1734",
"typeString": "contract SampleHuman"
}
},
"id": 1762,
"nodeType": "InheritanceSpecifier",
"src": "946:11:12"
}
],
"contractDependencies": [
55,
1734
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that defines a field gramps",
"fullyImplemented": true,
"id": 1782,
"linearizedBaseContracts": [
1782,
1734,
55
],
"name": "SampleGramps",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1764,
"name": "gramps",
"nodeType": "VariableDeclaration",
"scope": 1782,
"src": "962:21:12",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1763,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "962:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1780,
"nodeType": "Block",
"src": "1042:55:12",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 1771,
"name": "SampleHuman",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1734,
"src": "1048:11:12",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleHuman_$1734_$",
"typeString": "type(contract SampleHuman)"
}
},
"id": 1773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 1733,
"src": "1048:22:12",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 1774,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1048:24:12",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1775,
"nodeType": "ExpressionStatement",
"src": "1048:24:12"
},
{
"expression": {
"argumentTypes": null,
"id": 1778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1776,
"name": "gramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1764,
"src": "1078:6:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1777,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1766,
"src": "1087:5:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1078:14:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1779,
"nodeType": "ExpressionStatement",
"src": "1078:14:12"
}
]
},
"documentation": null,
"id": 1781,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1769,
"modifierName": {
"argumentTypes": null,
"id": 1768,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "1023:11:12",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1023:11:12"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1767,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1766,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 1781,
"src": "1008:13:12",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1765,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1008:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1007:15:12"
},
"payable": false,
"returnParameters": {
"id": 1770,
"nodeType": "ParameterList",
"parameters": [],
"src": "1042:0:12"
},
"scope": 1782,
"src": "988:109:12",
"stateMutability": "nonpayable",
"superFunction": 1757,
"visibility": "public"
}
],
"scope": 1850,
"src": "906:193:12"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1783,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "1223:13:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1784,
"nodeType": "InheritanceSpecifier",
"src": "1223:13:12"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1785,
"name": "SampleGramps",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1782,
"src": "1238:12:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleGramps_$1782",
"typeString": "contract SampleGramps"
}
},
"id": 1786,
"nodeType": "InheritanceSpecifier",
"src": "1238:12:12"
}
],
"contractDependencies": [
55,
1734,
1782
],
"contractKind": "contract",
"documentation": "Sample base intializable contract that defines a field father and extends from gramps",
"fullyImplemented": true,
"id": 1809,
"linearizedBaseContracts": [
1809,
1782,
1734,
55
],
"name": "SampleFather",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1788,
"name": "father",
"nodeType": "VariableDeclaration",
"scope": 1809,
"src": "1255:21:12",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1787,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1255:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1807,
"nodeType": "Block",
"src": "1354:65:12",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1800,
"name": "_gramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1790,
"src": "1384:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1797,
"name": "SampleGramps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1782,
"src": "1360:12:12",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleGramps_$1782_$",
"typeString": "type(contract SampleGramps)"
}
},
"id": 1799,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
"referencedDeclaration": 1781,
"src": "1360:23:12",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 1801,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1360:32:12",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1802,
"nodeType": "ExpressionStatement",
"src": "1360:32:12"
},
{
"expression": {
"argumentTypes": null,
"id": 1805,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1803,
"name": "father",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1788,
"src": "1398:6:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1804,
"name": "_father",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1792,
"src": "1407:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1398:16:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1806,
"nodeType": "ExpressionStatement",
"src": "1398:16:12"
}
]
},
"documentation": null,
"id": 1808,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1795,
"modifierName": {
"argumentTypes": null,
"id": 1794,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "1335:11:12",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "1335:11:12"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1793,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1790,
"name": "_gramps",
"nodeType": "VariableDeclaration",
"scope": 1808,
"src": "1301:15:12",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1789,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1301:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1792,
"name": "_father",
"nodeType": "VariableDeclaration",
"scope": 1808,
"src": "1318:15:12",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1791,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1318:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1300:34:12"
},
"payable": false,
"returnParameters": {
"id": 1796,
"nodeType": "ParameterList",
"parameters": [],
"src": "1354:0:12"
},
"scope": 1809,
"src": "1281:138:12",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1850,
"src": "1198:223:12"
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1810,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "1501:13:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1811,
"nodeType": "InheritanceSpecifier",
"src": "1501:13:12"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1812,
"name": "SampleMother",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1758,
"src": "1516:12:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleMother_$1758",
"typeString": "contract SampleMother"
}
},
"id": 1813,
"nodeType": "InheritanceSpecifier",
"src": "1516:12:12"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1814,
"name": "SampleFather",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1809,
"src": "1530:12:12",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SampleFather_$1809",
"typeString": "contract SampleFather"
}
},
"id": 1815,
"nodeType": "InheritanceSpecifier",
"src": "1530:12:12"
}
],
"contractDependencies": [
55,
1734,
1758,
1782,
1809
],
"contractKind": "contract",
"documentation": "Child extends from mother, father (gramps)",
"fullyImplemented": true,
"id": 1849,
"linearizedBaseContracts": [
1849,
1809,
1782,
1758,
1734,
55
],
"name": "SampleChild",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1817,
"name": "child",
"nodeType": "VariableDeclaration",
"scope": 1849,
"src": "1547:20:12",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1816,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1547:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1847,
"nodeType": "Block",
"src": "1678:110:12",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1833,
"name": "_mother",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1819,
"src": "1708:7:12",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1830,
"name": "SampleMother",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1758,
"src": "1684:12:12",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SampleMother_$1758_$",
"typeString": "type(contract SampleMother)"
}
},
"id": 1832,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initializ