{ "contractName": "Ownable", "abi": [ { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102858061005e6000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638da5cb5b14610051578063f2fde38b146100a6575b600080fd5b341561005c57600080fd5b6100646100df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100b157600080fd5b6100dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610104565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561015f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561019b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058200440ea366fa87502384c14a802d99831982da4d9fd647db05c08eb719b69c8c40029", "deployedBytecode": "0x60606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638da5cb5b14610051578063f2fde38b146100a6575b600080fd5b341561005c57600080fd5b6100646100df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156100b157600080fd5b6100dd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610104565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561015f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561019b57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058200440ea366fa87502384c14a802d99831982da4d9fd647db05c08eb719b69c8c40029", "sourceMap": "217:786:1:-;;;469:55;;;;;;;;509:10;501:5;;:18;;;;;;;;;;;;;;;;;;217:786;;;;;;", "deployedSourceMap": "217:786:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;832:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:20;;;;;;;;;;;;;:::o;832:169::-;653:5;;;;;;;;;;;639:19;;:10;:19;;;631:28;;;;;;;;928:1;908:22;;:8;:22;;;;900:31;;;;;;;;965:8;937:37;;958:5;;;;;;;;;;;937:37;;;;;;;;;;;;988:8;980:5;;:16;;;;;;;;;;;;;;;;;;832:169;:::o", "source": "pragma solidity ^0.4.18;\n\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n address public owner;\n\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n function Ownable() public {\n owner = msg.sender;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param newOwner The address to transfer ownership to.\n */\n function transferOwnership(address newOwner) public onlyOwner {\n require(newOwner != address(0));\n OwnershipTransferred(owner, newOwner);\n owner = newOwner;\n }\n}", "sourcePath": "/Users/ted/Github/Team-H/Lesson-7/assignment/contracts/Ownable.sol", "ast": { "absolutePath": "/Users/ted/Github/Team-H/Lesson-7/assignment/contracts/Ownable.sol", "exportedSymbols": { "Ownable": [ 112 ] }, "id": 113, "nodeType": "SourceUnit", "nodes": [ { "id": 58, "literals": [ "solidity", "^", "0.4", ".18" ], "nodeType": "PragmaDirective", "src": "0:24:1" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, "id": 112, "linearizedBaseContracts": [ 112 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 60, "name": "owner", "nodeType": "VariableDeclaration", "scope": 112, "src": "238:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 59, "name": "address", "nodeType": "ElementaryTypeName", "src": "238:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "id": 66, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 65, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 62, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", "scope": 66, "src": "291:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 61, "name": "address", "nodeType": "ElementaryTypeName", "src": "291:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 64, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 66, "src": "322:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 63, "name": "address", "nodeType": "ElementaryTypeName", "src": "322:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "290:57:1" }, "src": "264:84:1" }, { "body": { "id": 74, "nodeType": "Block", "src": "495:29:1", "statements": [ { "expression": { "argumentTypes": null, "id": 72, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 69, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "501:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 70, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 820, "src": "509:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 71, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "509:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "501:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 73, "nodeType": "ExpressionStatement", "src": "501:18:1" } ] }, "id": 75, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "Ownable", "nodeType": "FunctionDefinition", "parameters": { "id": 67, "nodeType": "ParameterList", "parameters": [], "src": "485:2:1" }, "payable": false, "returnParameters": { "id": 68, "nodeType": "ParameterList", "parameters": [], "src": "495:0:1" }, "scope": 112, "src": "469:55:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 85, "nodeType": "Block", "src": "625:46:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 81, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 78, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 820, "src": "639:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 79, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "639:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 80, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "653:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "639:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 77, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 823, "src": "631:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 82, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "631:28:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 83, "nodeType": "ExpressionStatement", "src": "631:28:1" }, { "id": 84, "nodeType": "PlaceholderStatement", "src": "665:1:1" } ] }, "id": 86, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 76, "nodeType": "ParameterList", "parameters": [], "src": "622:2:1" }, "src": "604:67:1", "visibility": "internal" }, { "body": { "id": 110, "nodeType": "Block", "src": "894:107:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 94, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, "src": "908:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 96, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "928:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 95, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "920:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 97, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "920:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "908:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 93, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 823, "src": "900:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 99, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "900:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 100, "nodeType": "ExpressionStatement", "src": "900:31:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 102, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "958:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 103, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, "src": "965:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 101, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 66, "src": "937:20:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 104, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "937:37:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 105, "nodeType": "ExpressionStatement", "src": "937:37:1" }, { "expression": { "argumentTypes": null, "id": 108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 106, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "980:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 107, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, "src": "988:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "980:16:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 109, "nodeType": "ExpressionStatement", "src": "980:16:1" } ] }, "id": 111, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 91, "modifierName": { "argumentTypes": null, "id": 90, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, "src": "884:9:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "884:9:1" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 89, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 88, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 111, "src": "859:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 87, "name": "address", "nodeType": "ElementaryTypeName", "src": "859:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "858:18:1" }, "payable": false, "returnParameters": { "id": 92, "nodeType": "ParameterList", "parameters": [], "src": "894:0:1" }, "scope": 112, "src": "832:169:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 113, "src": "217:786:1" } ], "src": "0:1003:1" }, "legacyAST": { "absolutePath": "/Users/ted/Github/Team-H/Lesson-7/assignment/contracts/Ownable.sol", "exportedSymbols": { "Ownable": [ 112 ] }, "id": 113, "nodeType": "SourceUnit", "nodes": [ { "id": 58, "literals": [ "solidity", "^", "0.4", ".18" ], "nodeType": "PragmaDirective", "src": "0:24:1" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", "fullyImplemented": true, "id": 112, "linearizedBaseContracts": [ 112 ], "name": "Ownable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 60, "name": "owner", "nodeType": "VariableDeclaration", "scope": 112, "src": "238:20:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 59, "name": "address", "nodeType": "ElementaryTypeName", "src": "238:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "id": 66, "name": "OwnershipTransferred", "nodeType": "EventDefinition", "parameters": { "id": 65, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 62, "indexed": true, "name": "previousOwner", "nodeType": "VariableDeclaration", "scope": 66, "src": "291:29:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 61, "name": "address", "nodeType": "ElementaryTypeName", "src": "291:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 64, "indexed": true, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 66, "src": "322:24:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 63, "name": "address", "nodeType": "ElementaryTypeName", "src": "322:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "290:57:1" }, "src": "264:84:1" }, { "body": { "id": 74, "nodeType": "Block", "src": "495:29:1", "statements": [ { "expression": { "argumentTypes": null, "id": 72, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 69, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "501:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 70, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 820, "src": "509:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 71, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "509:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "501:18:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 73, "nodeType": "ExpressionStatement", "src": "501:18:1" } ] }, "id": 75, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], "name": "Ownable", "nodeType": "FunctionDefinition", "parameters": { "id": 67, "nodeType": "ParameterList", "parameters": [], "src": "485:2:1" }, "payable": false, "returnParameters": { "id": 68, "nodeType": "ParameterList", "parameters": [], "src": "495:0:1" }, "scope": 112, "src": "469:55:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 85, "nodeType": "Block", "src": "625:46:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 81, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 78, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 820, "src": "639:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 79, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "639:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 80, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "653:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "639:19:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 77, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 823, "src": "631:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 82, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "631:28:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 83, "nodeType": "ExpressionStatement", "src": "631:28:1" }, { "id": 84, "nodeType": "PlaceholderStatement", "src": "665:1:1" } ] }, "id": 86, "name": "onlyOwner", "nodeType": "ModifierDefinition", "parameters": { "id": 76, "nodeType": "ParameterList", "parameters": [], "src": "622:2:1" }, "src": "604:67:1", "visibility": "internal" }, { "body": { "id": 110, "nodeType": "Block", "src": "894:107:1", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 98, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 94, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, "src": "908:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 96, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "928:1:1", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 95, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "920:7:1", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, "id": 97, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "920:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "908:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 93, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 823, "src": "900:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 99, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "900:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 100, "nodeType": "ExpressionStatement", "src": "900:31:1" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 102, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "958:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 103, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, "src": "965:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 101, "name": "OwnershipTransferred", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 66, "src": "937:20:1", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 104, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "937:37:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 105, "nodeType": "ExpressionStatement", "src": "937:37:1" }, { "expression": { "argumentTypes": null, "id": 108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 106, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 60, "src": "980:5:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 107, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, "src": "988:8:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "980:16:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 109, "nodeType": "ExpressionStatement", "src": "980:16:1" } ] }, "id": 111, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": [], "id": 91, "modifierName": { "argumentTypes": null, "id": 90, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, "src": "884:9:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "884:9:1" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "parameters": { "id": 89, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 88, "name": "newOwner", "nodeType": "VariableDeclaration", "scope": 111, "src": "859:16:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 87, "name": "address", "nodeType": "ElementaryTypeName", "src": "859:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "858:18:1" }, "payable": false, "returnParameters": { "id": 92, "nodeType": "ParameterList", "parameters": [], "src": "894:0:1" }, "scope": 112, "src": "832:169:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 113, "src": "217:786:1" } ], "src": "0:1003:1" }, "compiler": { "name": "solc", "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", "updatedAt": "2018-04-02T07:08:50.938Z" }