@alice-network/zos-lib
Version:
JavaScript library for the ZeppelinOS smart contract platform
1,225 lines • 49.8 kB
JSON
{
"contractName": "InitializableMock",
"abi": [
{
"constant": true,
"inputs": [],
"name": "x",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "initializerRan",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "initialize",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "initializeNested",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_x",
"type": "uint256"
}
],
"name": "initializeWithX",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fail",
"outputs": [],
"payable": false,
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506105d3806100206000396000f300608060405260043610610077576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806218eaa81461007c5780630c55699c1461009c5780638129fc1c146100c7578063a9cc4718146100de578063c3b8ef2a146100f5578063cb3a528d14610124575b600080fd5b61009a6004803603810190808035906020019092919050505061013b565b005b3480156100a857600080fd5b506100b1610278565b6040518082815260200191505060405180910390f35b3480156100d357600080fd5b506100dc61027e565b005b3480156100ea57600080fd5b506100f36103ce565b005b34801561010157600080fd5b5061010a610446565b604051808215151515815260200191505060405180910390f35b34801561013057600080fd5b50610139610459565b005b60008060019054906101000a900460ff168061015b575061015a610596565b5b8061017257506000809054906101000a900460ff16155b151561020c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508160348190555080600060016101000a81548160ff0219169083151502179055505050565b60345481565b60008060019054906101000a900460ff168061029e575061029d610596565b5b806102b557506000809054906101000a900460ff16155b151561034f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506001603360006101000a81548160ff02191690831515021790555080600060016101000a81548160ff02191690831515021790555050565b60001515610444576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e697469616c697a61626c654d6f636b20666f72636564206661696c75726581525060200191505060405180910390fd5b565b603360009054906101000a900460ff1681565b60008060019054906101000a900460ff16806104795750610478610596565b5b8061049057506000809054906101000a900460ff16155b151561052a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555061057961027e565b80600060016101000a81548160ff02191690831515021790555050565b600080303b905060008114915050905600a165627a7a72305820c71cfecec928117710d7e082014746361809dc6533e629e3efe77c28b66eec3c0029",
"deployedBytecode": "0x608060405260043610610077576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806218eaa81461007c5780630c55699c1461009c5780638129fc1c146100c7578063a9cc4718146100de578063c3b8ef2a146100f5578063cb3a528d14610124575b600080fd5b61009a6004803603810190808035906020019092919050505061013b565b005b3480156100a857600080fd5b506100b1610278565b6040518082815260200191505060405180910390f35b3480156100d357600080fd5b506100dc61027e565b005b3480156100ea57600080fd5b506100f36103ce565b005b34801561010157600080fd5b5061010a610446565b604051808215151515815260200191505060405180910390f35b34801561013057600080fd5b50610139610459565b005b60008060019054906101000a900460ff168061015b575061015a610596565b5b8061017257506000809054906101000a900460ff16155b151561020c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508160348190555080600060016101000a81548160ff0219169083151502179055505050565b60345481565b60008060019054906101000a900460ff168061029e575061029d610596565b5b806102b557506000809054906101000a900460ff16155b151561034f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506001603360006101000a81548160ff02191690831515021790555080600060016101000a81548160ff02191690831515021790555050565b60001515610444576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f496e697469616c697a61626c654d6f636b20666f72636564206661696c75726581525060200191505060405180910390fd5b565b603360009054906101000a900460ff1681565b60008060019054906101000a900460ff16806104795750610478610596565b5b8061049057506000809054906101000a900460ff16155b151561052a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555061057961027e565b80600060016101000a81548160ff02191690831515021790555050565b600080303b905060008114915050905600a165627a7a72305820c71cfecec928117710d7e082014746361809dc6533e629e3efe77c28b66eec3c0029",
"sourceMap": "162:428:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;162:428:10;;;;;;;",
"deployedSourceMap": "162:428:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:81;;;;;;;;;;;;;;;;;;;;;;;;;;241:16;;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:16:10;;;;;;;;;;;;;;;;;;;;;;;262:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:73:10;;;;;;498:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:89:10;;;;;;211:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;211:26:10;;;;;;;;;;;;;;;;;;;;;;;;;;;339:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:70:10;;;;;;413:81;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;;;;;;;;;;;;;;;;;;487:2:10;483:1;:6;;;;1243:15:0;1228:12;;:30;;;;;;;;;;;;;;;;;;413:81:10;;:::o;241:16::-;;;;:::o;262:73::-;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;;;;;;;;;;;;;;;;;;326:4:10;309:14;;:21;;;;;;;;;;;;;;;;;;1243:15:0;1228:12;;:30;;;;;;;;;;;;;;;;;;262:73:10;:::o;498:89::-;540:5;532:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:89::o;211:26::-;;;;;;;;;;;;;:::o;339:70::-;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;;;;;;;;;;;;;;;;;;392:12:10;:10;:12::i;:::-;1243:15:0;1228:12;;:30;;;;;;;;;;;;;;;;;;339:70:10;:::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/**\n * @title InitializableMock\n * @dev This contract is a mock to test initializable functionality\n */\ncontract InitializableMock is Initializable {\n\n bool public initializerRan;\n uint256 public x;\n\n function initialize() public initializer {\n initializerRan = true;\n }\n\n function initializeNested() public initializer {\n initialize();\n }\n\n function initializeWithX(uint256 _x) public payable initializer {\n x = _x;\n }\n\n function fail() public pure {\n require(false, \"InitializableMock forced failure\");\n }\n\n}\n",
"sourcePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/InitializableMock.sol",
"ast": {
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/InitializableMock.sol",
"exportedSymbols": {
"InitializableMock": [
1580
]
},
"id": 1581,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1532,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/Initializable.sol",
"file": "../Initializable.sol",
"id": 1533,
"nodeType": "ImportDirective",
"scope": 1581,
"sourceUnit": 56,
"src": "26:30:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1534,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "192:13:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1535,
"nodeType": "InheritanceSpecifier",
"src": "192:13:10"
}
],
"contractDependencies": [
55
],
"contractKind": "contract",
"documentation": "@title InitializableMock\n@dev This contract is a mock to test initializable functionality",
"fullyImplemented": true,
"id": 1580,
"linearizedBaseContracts": [
1580,
55
],
"name": "InitializableMock",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1537,
"name": "initializerRan",
"nodeType": "VariableDeclaration",
"scope": 1580,
"src": "211:26:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1536,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "211:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 1539,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 1580,
"src": "241:16:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1538,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "241:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1548,
"nodeType": "Block",
"src": "303:32:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1546,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1544,
"name": "initializerRan",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1537,
"src": "309:14:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 1545,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "326:4:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "309:21:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 1547,
"nodeType": "ExpressionStatement",
"src": "309:21:10"
}
]
},
"documentation": null,
"id": 1549,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1542,
"modifierName": {
"argumentTypes": null,
"id": 1541,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "291:11:10",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "291:11:10"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1540,
"nodeType": "ParameterList",
"parameters": [],
"src": "281:2:10"
},
"payable": false,
"returnParameters": {
"id": 1543,
"nodeType": "ParameterList",
"parameters": [],
"src": "303:0:10"
},
"scope": 1580,
"src": "262:73:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1557,
"nodeType": "Block",
"src": "386:23:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 1554,
"name": "initialize",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1549,
"src": "392:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 1555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "392:12:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1556,
"nodeType": "ExpressionStatement",
"src": "392:12:10"
}
]
},
"documentation": null,
"id": 1558,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1552,
"modifierName": {
"argumentTypes": null,
"id": 1551,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "374:11:10",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "374:11:10"
}
],
"name": "initializeNested",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1550,
"nodeType": "ParameterList",
"parameters": [],
"src": "364:2:10"
},
"payable": false,
"returnParameters": {
"id": 1553,
"nodeType": "ParameterList",
"parameters": [],
"src": "386:0:10"
},
"scope": 1580,
"src": "339:70:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1569,
"nodeType": "Block",
"src": "477:17:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1565,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1539,
"src": "483:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1566,
"name": "_x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1560,
"src": "487:2:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "483:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1568,
"nodeType": "ExpressionStatement",
"src": "483:6:10"
}
]
},
"documentation": null,
"id": 1570,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1563,
"modifierName": {
"argumentTypes": null,
"id": 1562,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "465:11:10",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "465:11:10"
}
],
"name": "initializeWithX",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1561,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1560,
"name": "_x",
"nodeType": "VariableDeclaration",
"scope": 1570,
"src": "438:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1559,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "438:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "437:12:10"
},
"payable": true,
"returnParameters": {
"id": 1564,
"nodeType": "ParameterList",
"parameters": [],
"src": "477:0:10"
},
"scope": 1580,
"src": "413:81:10",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1578,
"nodeType": "Block",
"src": "526:61:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 1574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "540:5:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "496e697469616c697a61626c654d6f636b20666f72636564206661696c757265",
"id": 1575,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "547:34:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
"typeString": "literal_string \"InitializableMock forced failure\""
},
"value": "InitializableMock forced failure"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
"typeString": "literal_string \"InitializableMock forced failure\""
}
],
"id": 1573,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
3160,
3161
],
"referencedDeclaration": 3161,
"src": "532:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1576,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "532:50:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1577,
"nodeType": "ExpressionStatement",
"src": "532:50:10"
}
]
},
"documentation": null,
"id": 1579,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "fail",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1571,
"nodeType": "ParameterList",
"parameters": [],
"src": "511:2:10"
},
"payable": false,
"returnParameters": {
"id": 1572,
"nodeType": "ParameterList",
"parameters": [],
"src": "526:0:10"
},
"scope": 1580,
"src": "498:89:10",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1581,
"src": "162:428:10"
}
],
"src": "0:591:10"
},
"legacyAST": {
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/mocks/InitializableMock.sol",
"exportedSymbols": {
"InitializableMock": [
1580
]
},
"id": 1581,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1532,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"absolutePath": "/Users/yoonjae/WebstormProjects/zos/packages/lib/contracts/Initializable.sol",
"file": "../Initializable.sol",
"id": 1533,
"nodeType": "ImportDirective",
"scope": 1581,
"sourceUnit": 56,
"src": "26:30:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1534,
"name": "Initializable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 55,
"src": "192:13:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Initializable_$55",
"typeString": "contract Initializable"
}
},
"id": 1535,
"nodeType": "InheritanceSpecifier",
"src": "192:13:10"
}
],
"contractDependencies": [
55
],
"contractKind": "contract",
"documentation": "@title InitializableMock\n@dev This contract is a mock to test initializable functionality",
"fullyImplemented": true,
"id": 1580,
"linearizedBaseContracts": [
1580,
55
],
"name": "InitializableMock",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1537,
"name": "initializerRan",
"nodeType": "VariableDeclaration",
"scope": 1580,
"src": "211:26:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1536,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "211:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 1539,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 1580,
"src": "241:16:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1538,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "241:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 1548,
"nodeType": "Block",
"src": "303:32:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1546,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1544,
"name": "initializerRan",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1537,
"src": "309:14:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 1545,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "326:4:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "309:21:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 1547,
"nodeType": "ExpressionStatement",
"src": "309:21:10"
}
]
},
"documentation": null,
"id": 1549,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1542,
"modifierName": {
"argumentTypes": null,
"id": 1541,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "291:11:10",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "291:11:10"
}
],
"name": "initialize",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1540,
"nodeType": "ParameterList",
"parameters": [],
"src": "281:2:10"
},
"payable": false,
"returnParameters": {
"id": 1543,
"nodeType": "ParameterList",
"parameters": [],
"src": "303:0:10"
},
"scope": 1580,
"src": "262:73:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1557,
"nodeType": "Block",
"src": "386:23:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 1554,
"name": "initialize",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1549,
"src": "392:10:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 1555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "392:12:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1556,
"nodeType": "ExpressionStatement",
"src": "392:12:10"
}
]
},
"documentation": null,
"id": 1558,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1552,
"modifierName": {
"argumentTypes": null,
"id": 1551,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "374:11:10",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "374:11:10"
}
],
"name": "initializeNested",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1550,
"nodeType": "ParameterList",
"parameters": [],
"src": "364:2:10"
},
"payable": false,
"returnParameters": {
"id": 1553,
"nodeType": "ParameterList",
"parameters": [],
"src": "386:0:10"
},
"scope": 1580,
"src": "339:70:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1569,
"nodeType": "Block",
"src": "477:17:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1565,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1539,
"src": "483:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1566,
"name": "_x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1560,
"src": "487:2:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "483:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1568,
"nodeType": "ExpressionStatement",
"src": "483:6:10"
}
]
},
"documentation": null,
"id": 1570,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 1563,
"modifierName": {
"argumentTypes": null,
"id": 1562,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 36,
"src": "465:11:10",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "465:11:10"
}
],
"name": "initializeWithX",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1561,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1560,
"name": "_x",
"nodeType": "VariableDeclaration",
"scope": 1570,
"src": "438:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1559,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "438:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "437:12:10"
},
"payable": true,
"returnParameters": {
"id": 1564,
"nodeType": "ParameterList",
"parameters": [],
"src": "477:0:10"
},
"scope": 1580,
"src": "413:81:10",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1578,
"nodeType": "Block",
"src": "526:61:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66616c7365",
"id": 1574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "540:5:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "false"
},
{
"argumentTypes": null,
"hexValue": "496e697469616c697a61626c654d6f636b20666f72636564206661696c757265",
"id": 1575,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "547:34:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
"typeString": "literal_string \"InitializableMock forced failure\""
},
"value": "InitializableMock forced failure"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_70458f305ab12a5814a8a6125666b5faf9428e7481e52fe1e943f8addb4009b7",
"typeString": "literal_string \"InitializableMock forced failure\""
}
],
"id": 1573,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
3160,
3161
],
"referencedDeclaration": 3161,
"src": "532:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1576,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "532:50:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1577,
"nodeType": "ExpressionStatement",
"src": "532:50:10"
}
]
},
"documentation": null,
"id": 1579,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "fail",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1571,
"nodeType": "ParameterList",
"parameters": [],
"src": "511:2:10"
},
"payable": false,
"returnParameters": {
"id": 1572,
"nodeType": "ParameterList",
"parameters": [],
"src": "526:0:10"
},
"scope": 1580,
"src": "498:89:10",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1581,
"src": "162:428:10"
}
],
"src": "0:591:10"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.1",
"updatedAt": "2019-02-15T10:15:15.367Z"
}