{ "contractName": "Owned", "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_prevOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "OwnerUpdate", "type": "event" }, { "inputs": [], "name": "newOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Provides support and utilities for contract ownership\",\"events\":{\"OwnerUpdate(address,address)\":{\"details\":\"triggered when the owner is updated\",\"params\":{\"_newOwner\":\"new owner\",\"_prevOwner\":\"previous owner\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"used by a new owner to accept an ownership transfer\"},\"constructor\":{\"details\":\"initializes a new Owned instance\"},\"transferOwnership(address)\":{\"details\":\"allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner\",\"params\":{\"_newOwner\":\"new contract owner\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol\":\"Owned\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol\":{\"keccak256\":\"0x6ef69d9dcc80a8a36d5eb37783375cd5e4831c6d20c723fa6f6b6a06c0aeb53d\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://5a5d087e2c5b47739615ef22e1f29749de44b43c9a37cfae32b3dfc498a258c4\",\"dweb:/ipfs/Qmd1mXKEQbmBxqHk326LGVzNoayXsam8gZNecknnYpBnyh\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IOwned.sol\":{\"keccak256\":\"0xc60a9d197abc28c1906ed4d18b59caa0242db754a0e1f67af6e6277593530dae\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://a8c6f3e6525a81a5165ccbf04f73f6c389c14b74135d11a7b5f70b1c9bdac75c\",\"dweb:/ipfs/QmaPu4Z7yUPc9sMADmoTZVY6AnyDSYHtNNCx3mm4VkJwhP\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561028b806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806379ba5097146100515780638da5cb5b1461005b578063d4ee1d901461007f578063f2fde38b14610087575b600080fd5b6100596100ad565b005b610063610164565b604080516001600160a01b039092168252519081900360200190f35b610063610173565b6100596004803603602081101561009d57600080fd5b50356001600160a01b0316610182565b6001546001600160a01b03163314610100576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6001546001600160a01b031681565b61018a610200565b6000546001600160a01b03828116911614156101de576040805162461bcd60e51b815260206004820152600e60248201526d22a9292fa9a0a6a2afa7aba722a960911b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610253576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b56fea2646970667358221220521452bed7ced4c169f956cdad6e781be48d8a9dafb057e42b768da09fda7b5764736f6c634300060c0033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806379ba5097146100515780638da5cb5b1461005b578063d4ee1d901461007f578063f2fde38b14610087575b600080fd5b6100596100ad565b005b610063610164565b604080516001600160a01b039092168252519081900360200190f35b610063610173565b6100596004803603602081101561009d57600080fd5b50356001600160a01b0316610182565b6001546001600160a01b03163314610100576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6001546001600160a01b031681565b61018a610200565b6000546001600160a01b03828116911614156101de576040805162461bcd60e51b815260206004820152600e60248201526d22a9292fa9a0a6a2afa7aba722a960911b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610253576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b56fea2646970667358221220521452bed7ced4c169f956cdad6e781be48d8a9dafb057e42b768da09fda7b5764736f6c634300060c0033", "immutableReferences": {}, "sourceMap": "187:1455:57:-:0;;;587:58;;;;;;;;;-1:-1:-1;619:5:57;:18;;-1:-1:-1;;;;;;619:18:57;627:10;619:18;;;187:1455;;;;;;", "deployedSourceMap": "187:1455:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1422:217;;;:::i;:::-;;219:29;;;:::i;:::-;;;;-1:-1:-1;;;;;219:29:57;;;;;;;;;;;;;;255:23;;;:::i;1164:167::-;;;;;;;;;;;;;;;;-1:-1:-1;1164:167:57;-1:-1:-1;;;;;1164:167:57;;:::i;1422:217::-;1498:8;;-1:-1:-1;;;;;1498:8:57;1484:10;:22;1476:52;;;;;-1:-1:-1;;;1476:52:57;;;;;;;;;;;;-1:-1:-1;;;1476:52:57;;;;;;;;;;;;;;;1563:8;;;1556:5;;1544:28;;-1:-1:-1;;;;;1563:8:57;;;;1556:5;;;;1544:28;;;1591:8;;;;1583:16;;-1:-1:-1;;;;;;1583:16:57;;;-1:-1:-1;;;;;1591:8:57;;1583:16;;;;1610:21;;;1422:217::o;219:29::-;;;-1:-1:-1;;;;;219:29:57;;:::o;255:23::-;;;-1:-1:-1;;;;;255:23:57;;:::o;1164:167::-;726:12;:10;:12::i;:::-;1268:5:::1;::::0;-1:-1:-1;;;;;1255:18:57;;::::1;1268:5:::0;::::1;1255:18;;1247:45;;;::::0;;-1:-1:-1;;;1247:45:57;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1247:45:57;;;;;;;;;;;;;::::1;;1303:8;:20:::0;;-1:-1:-1;;;;;;1303:20:57::1;-1:-1:-1::0;;;;;1303:20:57;;;::::1;::::0;;;::::1;::::0;;1164:167::o;813:104::-;882:5;;-1:-1:-1;;;;;882:5:57;868:10;:19;860:49;;;;;-1:-1:-1;;;860:49:57;;;;;;;;;;;;-1:-1:-1;;;860:49:57;;;;;;;;;;;;;;;813:104::o", "source": "// SPDX-License-Identifier: SEE LICENSE IN LICENSE\r\npragma solidity 0.6.12;\r\nimport \"./interfaces/IOwned.sol\";\r\n\r\n/**\r\n * @dev Provides support and utilities for contract ownership\r\n*/\r\ncontract Owned is IOwned {\r\n address public override owner;\r\n address public newOwner;\r\n\r\n /**\r\n * @dev triggered when the owner is updated\r\n *\r\n * @param _prevOwner previous owner\r\n * @param _newOwner new owner\r\n */\r\n event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner);\r\n\r\n /**\r\n * @dev initializes a new Owned instance\r\n */\r\n constructor() public {\r\n owner = msg.sender;\r\n }\r\n\r\n // allows execution by the owner only\r\n modifier ownerOnly {\r\n _ownerOnly();\r\n _;\r\n }\r\n\r\n // error message binary size optimization\r\n function _ownerOnly() internal view {\r\n require(msg.sender == owner, \"ERR_ACCESS_DENIED\");\r\n }\r\n\r\n /**\r\n * @dev allows transferring the contract ownership\r\n * the new owner still needs to accept the transfer\r\n * can only be called by the contract owner\r\n *\r\n * @param _newOwner new contract owner\r\n */\r\n function transferOwnership(address _newOwner) public override ownerOnly {\r\n require(_newOwner != owner, \"ERR_SAME_OWNER\");\r\n newOwner = _newOwner;\r\n }\r\n\r\n /**\r\n * @dev used by a new owner to accept an ownership transfer\r\n */\r\n function acceptOwnership() override public {\r\n require(msg.sender == newOwner, \"ERR_ACCESS_DENIED\");\r\n emit OwnerUpdate(owner, newOwner);\r\n owner = newOwner;\r\n newOwner = address(0);\r\n }\r\n}\r\n", "sourcePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol", "ast": { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol", "exportedSymbols": { "Owned": [ 21818 ] }, "id": 21819, "license": "SEE LICENSE IN LICENSE", "nodeType": "SourceUnit", "nodes": [ { "id": 21721, "literals": [ "solidity", "0.6", ".12" ], "nodeType": "PragmaDirective", "src": "52:23:57" }, { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IOwned.sol", "file": "./interfaces/IOwned.sol", "id": 21722, "nodeType": "ImportDirective", "scope": 21819, "sourceUnit": 22848, "src": "77:33:57", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 21724, "name": "IOwned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 22847, "src": "205:6:57", "typeDescriptions": { "typeIdentifier": "t_contract$_IOwned_$22847", "typeString": "contract IOwned" } }, "id": 21725, "nodeType": "InheritanceSpecifier", "src": "205:6:57" } ], "contractDependencies": [ 22847 ], "contractKind": "contract", "documentation": { "id": 21723, "nodeType": "StructuredDocumentation", "src": "114:71:57", "text": " @dev Provides support and utilities for contract ownership" }, "fullyImplemented": true, "id": 21818, "linearizedBaseContracts": [ 21818, 22847 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "baseFunctions": [ 22838 ], "constant": false, "functionSelector": "8da5cb5b", "id": 21728, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": { "id": 21727, "nodeType": "OverrideSpecifier", "overrides": [], "src": "234:8:57" }, "scope": 21818, "src": "219:29:57", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21726, "name": "address", "nodeType": "ElementaryTypeName", "src": "219:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "d4ee1d90", "id": 21730, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21818, "src": "255:23:57", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21729, "name": "address", "nodeType": "ElementaryTypeName", "src": "255:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": { "id": 21731, "nodeType": "StructuredDocumentation", "src": "287:149:57", "text": " @dev triggered when the owner is updated\n @param _prevOwner previous owner\n @param _newOwner new owner" }, "id": 21737, "name": "OwnerUpdate", "nodeType": "EventDefinition", "parameters": { "id": 21736, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21733, "indexed": true, "mutability": "mutable", "name": "_prevOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21737, "src": "460:26:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21732, "name": "address", "nodeType": "ElementaryTypeName", "src": "460:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21735, "indexed": true, "mutability": "mutable", "name": "_newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21737, "src": "488:25:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21734, "name": "address", "nodeType": "ElementaryTypeName", "src": "488:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "459:55:57" }, "src": "442:73:57" }, { "body": { "id": 21746, "nodeType": "Block", "src": "608:37:57", "statements": [ { "expression": { "argumentTypes": null, "id": 21744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21741, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "619:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 21742, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "627:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 21743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "627:10:57", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "619:18:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21745, "nodeType": "ExpressionStatement", "src": "619:18:57" } ] }, "documentation": { "id": 21738, "nodeType": "StructuredDocumentation", "src": "523:58:57", "text": " @dev initializes a new Owned instance" }, "id": 21747, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 21739, "nodeType": "ParameterList", "parameters": [], "src": "598:2:57" }, "returnParameters": { "id": 21740, "nodeType": "ParameterList", "parameters": [], "src": "608:0:57" }, "scope": 21818, "src": "587:58:57", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 21753, "nodeType": "Block", "src": "715:43:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 21749, "name": "_ownerOnly", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21766, "src": "726:10:57", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, "id": 21750, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "726:12:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21751, "nodeType": "ExpressionStatement", "src": "726:12:57" }, { "id": 21752, "nodeType": "PlaceholderStatement", "src": "749:1:57" } ] }, "documentation": null, "id": 21754, "name": "ownerOnly", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 21748, "nodeType": "ParameterList", "parameters": [], "src": "715:0:57" }, "src": "696:62:57", "virtual": false, "visibility": "internal" }, { "body": { "id": 21765, "nodeType": "Block", "src": "849:68:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 21758, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "868:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 21759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "868:10:57", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 21760, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "882:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "868:19:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f4143434553535f44454e494544", "id": 21762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "889:19:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" }, "value": "ERR_ACCESS_DENIED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" } ], "id": 21757, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "860:7:57", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "860:49:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21764, "nodeType": "ExpressionStatement", "src": "860:49:57" } ] }, "documentation": null, "id": 21766, "implemented": true, "kind": "function", "modifiers": [], "name": "_ownerOnly", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 21755, "nodeType": "ParameterList", "parameters": [], "src": "832:2:57" }, "returnParameters": { "id": 21756, "nodeType": "ParameterList", "parameters": [], "src": "849:0:57" }, "scope": 21818, "src": "813:104:57", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ 22843 ], "body": { "id": 21786, "nodeType": "Block", "src": "1236:95:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21776, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21769, "src": "1255:9:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 21777, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "1268:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1255:18:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f53414d455f4f574e4552", "id": 21779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1275:16:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", "typeString": "literal_string \"ERR_SAME_OWNER\"" }, "value": "ERR_SAME_OWNER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", "typeString": "literal_string \"ERR_SAME_OWNER\"" } ], "id": 21775, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1247:7:57", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21780, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1247:45:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21781, "nodeType": "ExpressionStatement", "src": "1247:45:57" }, { "expression": { "argumentTypes": null, "id": 21784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21782, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1303:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 21783, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21769, "src": "1314:9:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1303:20:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21785, "nodeType": "ExpressionStatement", "src": "1303:20:57" } ] }, "documentation": { "id": 21767, "nodeType": "StructuredDocumentation", "src": "925:233:57", "text": " @dev allows transferring the contract ownership\n the new owner still needs to accept the transfer\n can only be called by the contract owner\n @param _newOwner new contract owner" }, "functionSelector": "f2fde38b", "id": 21787, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 21773, "modifierName": { "argumentTypes": null, "id": 21772, "name": "ownerOnly", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21754, "src": "1226:9:57", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1226:9:57" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "overrides": { "id": 21771, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1217:8:57" }, "parameters": { "id": 21770, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21769, "mutability": "mutable", "name": "_newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21787, "src": "1191:17:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21768, "name": "address", "nodeType": "ElementaryTypeName", "src": "1191:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1190:19:57" }, "returnParameters": { "id": 21774, "nodeType": "ParameterList", "parameters": [], "src": "1236:0:57" }, "scope": 21818, "src": "1164:167:57", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ 22846 ], "body": { "id": 21816, "nodeType": "Block", "src": "1465:174:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 21793, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1484:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 21794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1484:10:57", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 21795, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1498:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1484:22:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f4143434553535f44454e494544", "id": 21797, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1508:19:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" }, "value": "ERR_ACCESS_DENIED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" } ], "id": 21792, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1476:7:57", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1476:52:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21799, "nodeType": "ExpressionStatement", "src": "1476:52:57" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21801, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "1556:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21802, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1563:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 21800, "name": "OwnerUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21737, "src": "1544:11:57", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 21803, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1544:28:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21804, "nodeType": "EmitStatement", "src": "1539:33:57" }, { "expression": { "argumentTypes": null, "id": 21807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21805, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "1583:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 21806, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1591:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1583:16:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21808, "nodeType": "ExpressionStatement", "src": "1583:16:57" }, { "expression": { "argumentTypes": null, "id": 21814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21809, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1610:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 21812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1629:1:57", "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": 21811, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1621:7:57", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 21810, "name": "address", "nodeType": "ElementaryTypeName", "src": "1621:7:57", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 21813, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1621:10:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1610:21:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21815, "nodeType": "ExpressionStatement", "src": "1610:21:57" } ] }, "documentation": { "id": 21788, "nodeType": "StructuredDocumentation", "src": "1339:77:57", "text": " @dev used by a new owner to accept an ownership transfer" }, "functionSelector": "79ba5097", "id": 21817, "implemented": true, "kind": "function", "modifiers": [], "name": "acceptOwnership", "nodeType": "FunctionDefinition", "overrides": { "id": 21790, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1449:8:57" }, "parameters": { "id": 21789, "nodeType": "ParameterList", "parameters": [], "src": "1446:2:57" }, "returnParameters": { "id": 21791, "nodeType": "ParameterList", "parameters": [], "src": "1465:0:57" }, "scope": 21818, "src": "1422:217:57", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 21819, "src": "187:1455:57" } ], "src": "52:1592:57" }, "legacyAST": { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol", "exportedSymbols": { "Owned": [ 21818 ] }, "id": 21819, "license": "SEE LICENSE IN LICENSE", "nodeType": "SourceUnit", "nodes": [ { "id": 21721, "literals": [ "solidity", "0.6", ".12" ], "nodeType": "PragmaDirective", "src": "52:23:57" }, { "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IOwned.sol", "file": "./interfaces/IOwned.sol", "id": 21722, "nodeType": "ImportDirective", "scope": 21819, "sourceUnit": 22848, "src": "77:33:57", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 21724, "name": "IOwned", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 22847, "src": "205:6:57", "typeDescriptions": { "typeIdentifier": "t_contract$_IOwned_$22847", "typeString": "contract IOwned" } }, "id": 21725, "nodeType": "InheritanceSpecifier", "src": "205:6:57" } ], "contractDependencies": [ 22847 ], "contractKind": "contract", "documentation": { "id": 21723, "nodeType": "StructuredDocumentation", "src": "114:71:57", "text": " @dev Provides support and utilities for contract ownership" }, "fullyImplemented": true, "id": 21818, "linearizedBaseContracts": [ 21818, 22847 ], "name": "Owned", "nodeType": "ContractDefinition", "nodes": [ { "baseFunctions": [ 22838 ], "constant": false, "functionSelector": "8da5cb5b", "id": 21728, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": { "id": 21727, "nodeType": "OverrideSpecifier", "overrides": [], "src": "234:8:57" }, "scope": 21818, "src": "219:29:57", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21726, "name": "address", "nodeType": "ElementaryTypeName", "src": "219:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "d4ee1d90", "id": 21730, "mutability": "mutable", "name": "newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21818, "src": "255:23:57", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21729, "name": "address", "nodeType": "ElementaryTypeName", "src": "255:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "anonymous": false, "documentation": { "id": 21731, "nodeType": "StructuredDocumentation", "src": "287:149:57", "text": " @dev triggered when the owner is updated\n @param _prevOwner previous owner\n @param _newOwner new owner" }, "id": 21737, "name": "OwnerUpdate", "nodeType": "EventDefinition", "parameters": { "id": 21736, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21733, "indexed": true, "mutability": "mutable", "name": "_prevOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21737, "src": "460:26:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21732, "name": "address", "nodeType": "ElementaryTypeName", "src": "460:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 21735, "indexed": true, "mutability": "mutable", "name": "_newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21737, "src": "488:25:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21734, "name": "address", "nodeType": "ElementaryTypeName", "src": "488:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "459:55:57" }, "src": "442:73:57" }, { "body": { "id": 21746, "nodeType": "Block", "src": "608:37:57", "statements": [ { "expression": { "argumentTypes": null, "id": 21744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21741, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "619:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 21742, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "627:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 21743, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "627:10:57", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "619:18:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21745, "nodeType": "ExpressionStatement", "src": "619:18:57" } ] }, "documentation": { "id": 21738, "nodeType": "StructuredDocumentation", "src": "523:58:57", "text": " @dev initializes a new Owned instance" }, "id": 21747, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 21739, "nodeType": "ParameterList", "parameters": [], "src": "598:2:57" }, "returnParameters": { "id": 21740, "nodeType": "ParameterList", "parameters": [], "src": "608:0:57" }, "scope": 21818, "src": "587:58:57", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 21753, "nodeType": "Block", "src": "715:43:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 21749, "name": "_ownerOnly", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21766, "src": "726:10:57", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$__$", "typeString": "function () view" } }, "id": 21750, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "726:12:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21751, "nodeType": "ExpressionStatement", "src": "726:12:57" }, { "id": 21752, "nodeType": "PlaceholderStatement", "src": "749:1:57" } ] }, "documentation": null, "id": 21754, "name": "ownerOnly", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 21748, "nodeType": "ParameterList", "parameters": [], "src": "715:0:57" }, "src": "696:62:57", "virtual": false, "visibility": "internal" }, { "body": { "id": 21765, "nodeType": "Block", "src": "849:68:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21761, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 21758, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "868:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 21759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "868:10:57", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 21760, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "882:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "868:19:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f4143434553535f44454e494544", "id": 21762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "889:19:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" }, "value": "ERR_ACCESS_DENIED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" } ], "id": 21757, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "860:7:57", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "860:49:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21764, "nodeType": "ExpressionStatement", "src": "860:49:57" } ] }, "documentation": null, "id": 21766, "implemented": true, "kind": "function", "modifiers": [], "name": "_ownerOnly", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 21755, "nodeType": "ParameterList", "parameters": [], "src": "832:2:57" }, "returnParameters": { "id": 21756, "nodeType": "ParameterList", "parameters": [], "src": "849:0:57" }, "scope": 21818, "src": "813:104:57", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "baseFunctions": [ 22843 ], "body": { "id": 21786, "nodeType": "Block", "src": "1236:95:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 21776, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21769, "src": "1255:9:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "id": 21777, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "1268:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1255:18:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f53414d455f4f574e4552", "id": 21779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1275:16:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", "typeString": "literal_string \"ERR_SAME_OWNER\"" }, "value": "ERR_SAME_OWNER" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_3fd4538e1d572c08b9fe188370db4ccb2fa173c576dfdb888a76c86a53b83133", "typeString": "literal_string \"ERR_SAME_OWNER\"" } ], "id": 21775, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1247:7:57", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21780, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1247:45:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21781, "nodeType": "ExpressionStatement", "src": "1247:45:57" }, { "expression": { "argumentTypes": null, "id": 21784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21782, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1303:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 21783, "name": "_newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21769, "src": "1314:9:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1303:20:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21785, "nodeType": "ExpressionStatement", "src": "1303:20:57" } ] }, "documentation": { "id": 21767, "nodeType": "StructuredDocumentation", "src": "925:233:57", "text": " @dev allows transferring the contract ownership\n the new owner still needs to accept the transfer\n can only be called by the contract owner\n @param _newOwner new contract owner" }, "functionSelector": "f2fde38b", "id": 21787, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 21773, "modifierName": { "argumentTypes": null, "id": 21772, "name": "ownerOnly", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21754, "src": "1226:9:57", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "1226:9:57" } ], "name": "transferOwnership", "nodeType": "FunctionDefinition", "overrides": { "id": 21771, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1217:8:57" }, "parameters": { "id": 21770, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 21769, "mutability": "mutable", "name": "_newOwner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 21787, "src": "1191:17:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 21768, "name": "address", "nodeType": "ElementaryTypeName", "src": "1191:7:57", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "1190:19:57" }, "returnParameters": { "id": 21774, "nodeType": "ParameterList", "parameters": [], "src": "1236:0:57" }, "scope": 21818, "src": "1164:167:57", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ 22846 ], "body": { "id": 21816, "nodeType": "Block", "src": "1465:174:57", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 21796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 21793, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "1484:3:57", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 21794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1484:10:57", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 21795, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1498:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1484:22:57", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552525f4143434553535f44454e494544", "id": 21797, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1508:19:57", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" }, "value": "ERR_ACCESS_DENIED" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_f5894269650d3e1726ed81a4f48c5b62c7dd6fa025b89d639952a7012960d666", "typeString": "literal_string \"ERR_ACCESS_DENIED\"" } ], "id": 21792, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1476:7:57", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 21798, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1476:52:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21799, "nodeType": "ExpressionStatement", "src": "1476:52:57" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 21801, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "1556:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 21802, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1563:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 21800, "name": "OwnerUpdate", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21737, "src": "1544:11:57", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address)" } }, "id": 21803, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1544:28:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 21804, "nodeType": "EmitStatement", "src": "1539:33:57" }, { "expression": { "argumentTypes": null, "id": 21807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21805, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21728, "src": "1583:5:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 21806, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1591:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "1583:16:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21808, "nodeType": "ExpressionStatement", "src": "1583:16:57" }, { "expression": { "argumentTypes": null, "id": 21814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 21809, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21730, "src": "1610:8:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 21812, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1629:1:57", "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": 21811, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1621:7:57", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 21810, "name": "address", "nodeType": "ElementaryTypeName", "src": "1621:7:57", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 21813, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1621:10:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "1610:21:57", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21815, "nodeType": "ExpressionStatement", "src": "1610:21:57" } ] }, "documentation": { "id": 21788, "nodeType": "StructuredDocumentation", "src": "1339:77:57", "text": " @dev used by a new owner to accept an ownership transfer" }, "functionSelector": "79ba5097", "id": 21817, "implemented": true, "kind": "function", "modifiers": [], "name": "acceptOwnership", "nodeType": "FunctionDefinition", "overrides": { "id": 21790, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1449:8:57" }, "parameters": { "id": 21789, "nodeType": "ParameterList", "parameters": [], "src": "1446:2:57" }, "returnParameters": { "id": 21791, "nodeType": "ParameterList", "parameters": [], "src": "1465:0:57" }, "scope": 21818, "src": "1422:217:57", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 21819, "src": "187:1455:57" } ], "src": "52:1592:57" }, "compiler": { "name": "solc", "version": "0.6.12+commit.27d51765.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.2.3", "updatedAt": "2020-10-20T08:24:47.841Z", "devdoc": { "details": "Provides support and utilities for contract ownership", "events": { "OwnerUpdate(address,address)": { "details": "triggered when the owner is updated", "params": { "_newOwner": "new owner", "_prevOwner": "previous owner" } } }, "kind": "dev", "methods": { "acceptOwnership()": { "details": "used by a new owner to accept an ownership transfer" }, "constructor": { "details": "initializes a new Owned instance" }, "transferOwnership(address)": { "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner", "params": { "_newOwner": "new contract owner" } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }