UNPKG

@gooddollar/goodcontracts

Version:
1,372 lines (1,371 loc) 92.5 kB
{ "contractName": "MinterRole", "abi": [ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "MinterRemoved", "type": "event" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" } ], "name": "addMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "renounceMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.5.0;\n\nimport \"../Roles.sol\";\n\ncontract MinterRole {\n using Roles for Roles.Role;\n\n event MinterAdded(address indexed account);\n event MinterRemoved(address indexed account);\n\n Roles.Role private _minters;\n\n constructor () internal {\n _addMinter(msg.sender);\n }\n\n modifier onlyMinter() {\n require(isMinter(msg.sender));\n _;\n }\n\n function isMinter(address account) public view returns (bool) {\n return _minters.has(account);\n }\n\n function addMinter(address account) public onlyMinter {\n _addMinter(account);\n }\n\n function renounceMinter() public {\n _removeMinter(msg.sender);\n }\n\n function _addMinter(address account) internal {\n _minters.add(account);\n emit MinterAdded(account);\n }\n\n function _removeMinter(address account) internal {\n _minters.remove(account);\n emit MinterRemoved(account);\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", "exportedSymbols": { "MinterRole": [ 15455 ] }, "id": 15456, "nodeType": "SourceUnit", "nodes": [ { "id": 15354, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:62" }, { "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", "file": "../Roles.sol", "id": 15355, "nodeType": "ImportDirective", "scope": 15456, "sourceUnit": 15353, "src": "25:22:62", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 15455, "linearizedBaseContracts": [ 15455 ], "name": "MinterRole", "nodeType": "ContractDefinition", "nodes": [ { "id": 15358, "libraryName": { "contractScope": null, "id": 15356, "name": "Roles", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 15352, "src": "81:5:62", "typeDescriptions": { "typeIdentifier": "t_contract$_Roles_$15352", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", "src": "75:27:62", "typeName": { "contractScope": null, "id": 15357, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 15265, "src": "91:10:62", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, "documentation": null, "id": 15362, "name": "MinterAdded", "nodeType": "EventDefinition", "parameters": { "id": 15361, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15360, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 15362, "src": "126:23:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15359, "name": "address", "nodeType": "ElementaryTypeName", "src": "126:7:62", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "125:25:62" }, "src": "108:43:62" }, { "anonymous": false, "documentation": null, "id": 15366, "name": "MinterRemoved", "nodeType": "EventDefinition", "parameters": { "id": 15365, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15364, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 15366, "src": "176:23:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15363, "name": "address", "nodeType": "ElementaryTypeName", "src": "176:7:62", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "175:25:62" }, "src": "156:45:62" }, { "constant": false, "id": 15368, "name": "_minters", "nodeType": "VariableDeclaration", "scope": 15455, "src": "207:27:62", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, "id": 15367, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 15265, "src": "207:10:62", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage_ptr", "typeString": "struct Roles.Role" } }, "value": null, "visibility": "private" }, { "body": { "id": 15376, "nodeType": "Block", "src": "265:39:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 15372, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16782, "src": "286:3:62", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 15373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "286:10:62", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 15371, "name": "_addMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15438, "src": "275:10:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 15374, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "275:22:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15375, "nodeType": "ExpressionStatement", "src": "275:22:62" } ] }, "documentation": null, "id": 15377, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 15369, "nodeType": "ParameterList", "parameters": [], "src": "253:2:62" }, "returnParameters": { "id": 15370, "nodeType": "ParameterList", "parameters": [], "src": "265:0:62" }, "scope": 15455, "src": "241:63:62", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 15387, "nodeType": "Block", "src": "332:57:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 15381, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16782, "src": "359:3:62", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 15382, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "359:10:62", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 15380, "name": "isMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15401, "src": "350:8:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 15383, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "350:20:62", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 15379, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 16785, 16786 ], "referencedDeclaration": 16785, "src": "342:7:62", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 15384, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "342:29:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15385, "nodeType": "ExpressionStatement", "src": "342:29:62" }, { "id": 15386, "nodeType": "PlaceholderStatement", "src": "381:1:62" } ] }, "documentation": null, "id": 15388, "name": "onlyMinter", "nodeType": "ModifierDefinition", "parameters": { "id": 15378, "nodeType": "ParameterList", "parameters": [], "src": "329:2:62" }, "src": "310:79:62", "visibility": "internal" }, { "body": { "id": 15400, "nodeType": "Block", "src": "457:45:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 15397, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15390, "src": "487:7:62", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 15395, "name": "_minters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15368, "src": "474:8:62", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 15396, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", "referencedDeclaration": 15351, "src": "474:12:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$15265_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$15265_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, "id": 15398, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "474:21:62", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 15394, "id": 15399, "nodeType": "Return", "src": "467:28:62" } ] }, "documentation": null, "id": 15401, "implemented": true, "kind": "function", "modifiers": [], "name": "isMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 15391, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15390, "name": "account", "nodeType": "VariableDeclaration", "scope": 15401, "src": "413:15:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15389, "name": "address", "nodeType": "ElementaryTypeName", "src": "413:7:62", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "412:17:62" }, "returnParameters": { "id": 15394, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15393, "name": "", "nodeType": "VariableDeclaration", "scope": 15401, "src": "451:4:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 15392, "name": "bool", "nodeType": "ElementaryTypeName", "src": "451:4:62", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "450:6:62" }, "scope": 15455, "src": "395:107:62", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 15412, "nodeType": "Block", "src": "562:36:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 15409, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15403, "src": "583:7:62", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 15408, "name": "_addMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15438, "src": "572:10:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 15410, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "572:19:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15411, "nodeType": "ExpressionStatement", "src": "572:19:62" } ] }, "documentation": null, "id": 15413, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 15406, "modifierName": { "argumentTypes": null, "id": 15405, "name": "onlyMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15388, "src": "551:10:62", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "551:10:62" } ], "name": "addMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 15404, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15403, "name": "account", "nodeType": "VariableDeclaration", "scope": 15413, "src": "527:15:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15402, "name": "address", "nodeType": "ElementaryTypeName", "src": "527:7:62", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "526:17:62" }, "returnParameters": { "id": 15407, "nodeType": "ParameterList", "parameters": [], "src": "562:0:62" }, "scope": 15455, "src": "508:90:62", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 15421, "nodeType": "Block", "src": "637:42:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 15417, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 16782, "src": "661:3:62", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 15418, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "661:10:62", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 15416, "name": "_removeMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15454, "src": "647:13:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 15419, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "647:25:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15420, "nodeType": "ExpressionStatement", "src": "647:25:62" } ] }, "documentation": null, "id": 15422, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 15414, "nodeType": "ParameterList", "parameters": [], "src": "627:2:62" }, "returnParameters": { "id": 15415, "nodeType": "ParameterList", "parameters": [], "src": "637:0:62" }, "scope": 15455, "src": "604:75:62", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 15437, "nodeType": "Block", "src": "731:73:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 15430, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15424, "src": "754:7:62", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 15427, "name": "_minters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15368, "src": "741:8:62", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 15429, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 15297, "src": "741:12:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$15265_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$15265_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 15431, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "741:21:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15432, "nodeType": "ExpressionStatement", "src": "741:21:62" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 15434, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15424, "src": "789:7:62", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 15433, "name": "MinterAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15362, "src": "777:11:62", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 15435, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "777:20:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15436, "nodeType": "EmitStatement", "src": "772:25:62" } ] }, "documentation": null, "id": 15438, "implemented": true, "kind": "function", "modifiers": [], "name": "_addMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 15425, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15424, "name": "account", "nodeType": "VariableDeclaration", "scope": 15438, "src": "705:15:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15423, "name": "address", "nodeType": "ElementaryTypeName", "src": "705:7:62", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "704:17:62" }, "returnParameters": { "id": 15426, "nodeType": "ParameterList", "parameters": [], "src": "731:0:62" }, "scope": 15455, "src": "685:119:62", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 15453, "nodeType": "Block", "src": "859:78:62", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 15446, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15440, "src": "885:7:62", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 15443, "name": "_minters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15368, "src": "869:8:62", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 15445, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", "referencedDeclaration": 15328, "src": "869:15:62", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$15265_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$15265_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 15447, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "869:24:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15448, "nodeType": "ExpressionStatement", "src": "869:24:62" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 15450, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15440, "src": "922:7:62", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 15449, "name": "MinterRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15366, "src": "908:13:62", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 15451, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "908:22:62", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 15452, "nodeType": "EmitStatement", "src": "903:27:62" } ] }, "documentation": null, "id": 15454, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 15441, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15440, "name": "account", "nodeType": "VariableDeclaration", "scope": 15454, "src": "833:15:62", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 15439, "name": "address", "nodeType": "ElementaryTypeName", "src": "833:7:62", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "832:17:62" }, "returnParameters": { "id": 15442, "nodeType": "ParameterList", "parameters": [], "src": "859:0:62" }, "scope": 15455, "src": "810:127:62", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 15456, "src": "49:890:62" } ], "src": "0:940:62" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", "exportedSymbols": { "MinterRole": [ 15455 ] }, "id": 15456, "nodeType": "SourceUnit", "nodes": [ { "id": 15354, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:62" }, { "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", "file": "../Roles.sol", "id": 15355, "nodeType": "ImportDirective", "scope": 15456, "sourceUnit": 15353, "src": "25:22:62", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 15455, "linearizedBaseContracts": [ 15455 ], "name": "MinterRole", "nodeType": "ContractDefinition", "nodes": [ { "id": 15358, "libraryName": { "contractScope": null, "id": 15356, "name": "Roles", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 15352, "src": "81:5:62", "typeDescriptions": { "typeIdentifier": "t_contract$_Roles_$15352", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", "src": "75:27:62", "typeName": { "contractScope": null, "id": 15357, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 15265, "src": "91:10:62", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$15265_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, "documentation": null, "id": 15362, "name": "MinterAdded", "nodeType": "EventDefinition", "parameters": { "id": 15361, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15360, "indexed": true,