UNPKG

@gooddollar/goodcontracts

Version:
1,301 lines 94.8 kB
{ "contractName": "MinterRole", "abi": [ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "MinterRemoved", "type": "event" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "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": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"MinterRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isMinter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/access/roles/MinterRole.sol\":\"MinterRole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0x659ba0f9a3392cd50a8a5fafaf5dfd8c6a0878f6a4613bceff4e90dceddcd865\",\"urls\":[\"bzz-raw://4ca6617349a9b36fd82e9442a8e445ce9021a174e4399d1457ddc894ee3f5df3\",\"dweb:/ipfs/QmcmyB4cNazZ1sw963Afaijt67M9bDgwmGXCgQajGTD4tm\"]},\"openzeppelin-solidity/contracts/access/roles/MinterRole.sol\":{\"keccak256\":\"0x3199053db04cdae6c9b4380921a4a4ee720b568d6a9660883b29d25fbec31bc0\",\"urls\":[\"bzz-raw://1b0ff368e21d6007c06e4cfb286fe59d7d7d3ec06283300c9be2153ba11fa93a\",\"dweb:/ipfs/QmRPq2wZM4RAcbj31dP34GCr1CSy2qy3JqfXEkdVie4HLT\"]}},\"version\":1}", "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": [ 20844 ] }, "id": 20845, "nodeType": "SourceUnit", "nodes": [ { "id": 20743, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:71" }, { "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol", "file": "../Roles.sol", "id": 20744, "nodeType": "ImportDirective", "scope": 20845, "sourceUnit": 20742, "src": "25:22:71", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 20844, "linearizedBaseContracts": [ 20844 ], "name": "MinterRole", "nodeType": "ContractDefinition", "nodes": [ { "id": 20747, "libraryName": { "contractScope": null, "id": 20745, "name": "Roles", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 20741, "src": "81:5:71", "typeDescriptions": { "typeIdentifier": "t_contract$_Roles_$20741", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", "src": "75:27:71", "typeName": { "contractScope": null, "id": 20746, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 20654, "src": "91:10:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$20654_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, "documentation": null, "id": 20751, "name": "MinterAdded", "nodeType": "EventDefinition", "parameters": { "id": 20750, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20749, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 20751, "src": "126:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 20748, "name": "address", "nodeType": "ElementaryTypeName", "src": "126:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "125:25:71" }, "src": "108:43:71" }, { "anonymous": false, "documentation": null, "id": 20755, "name": "MinterRemoved", "nodeType": "EventDefinition", "parameters": { "id": 20754, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20753, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 20755, "src": "176:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 20752, "name": "address", "nodeType": "ElementaryTypeName", "src": "176:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "175:25:71" }, "src": "156:45:71" }, { "constant": false, "id": 20757, "name": "_minters", "nodeType": "VariableDeclaration", "scope": 20844, "src": "207:27:71", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$20654_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, "id": 20756, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 20654, "src": "207:10:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$20654_storage_ptr", "typeString": "struct Roles.Role" } }, "value": null, "visibility": "private" }, { "body": { "id": 20765, "nodeType": "Block", "src": "265:39:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 20761, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22171, "src": "286:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 20762, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "286:10:71", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 20760, "name": "_addMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20827, "src": "275:10:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 20763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "275:22:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20764, "nodeType": "ExpressionStatement", "src": "275:22:71" } ] }, "documentation": null, "id": 20766, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 20758, "nodeType": "ParameterList", "parameters": [], "src": "253:2:71" }, "returnParameters": { "id": 20759, "nodeType": "ParameterList", "parameters": [], "src": "265:0:71" }, "scope": 20844, "src": "241:63:71", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 20776, "nodeType": "Block", "src": "332:57:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 20770, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22171, "src": "359:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 20771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "359:10:71", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 20769, "name": "isMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20790, "src": "350:8:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 20772, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "350:20:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 20768, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 22174, 22175 ], "referencedDeclaration": 22174, "src": "342:7:71", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 20773, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "342:29:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20774, "nodeType": "ExpressionStatement", "src": "342:29:71" }, { "id": 20775, "nodeType": "PlaceholderStatement", "src": "381:1:71" } ] }, "documentation": null, "id": 20777, "name": "onlyMinter", "nodeType": "ModifierDefinition", "parameters": { "id": 20767, "nodeType": "ParameterList", "parameters": [], "src": "329:2:71" }, "src": "310:79:71", "visibility": "internal" }, { "body": { "id": 20789, "nodeType": "Block", "src": "457:45:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 20786, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20779, "src": "487:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 20784, "name": "_minters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20757, "src": "474:8:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$20654_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 20785, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", "referencedDeclaration": 20740, "src": "474:12:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$20654_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$20654_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, "id": 20787, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "474:21:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 20783, "id": 20788, "nodeType": "Return", "src": "467:28:71" } ] }, "documentation": null, "id": 20790, "implemented": true, "kind": "function", "modifiers": [], "name": "isMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 20780, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20779, "name": "account", "nodeType": "VariableDeclaration", "scope": 20790, "src": "413:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 20778, "name": "address", "nodeType": "ElementaryTypeName", "src": "413:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "412:17:71" }, "returnParameters": { "id": 20783, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20782, "name": "", "nodeType": "VariableDeclaration", "scope": 20790, "src": "451:4:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 20781, "name": "bool", "nodeType": "ElementaryTypeName", "src": "451:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "450:6:71" }, "scope": 20844, "src": "395:107:71", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 20801, "nodeType": "Block", "src": "562:36:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 20798, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20792, "src": "583:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 20797, "name": "_addMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20827, "src": "572:10:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 20799, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "572:19:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20800, "nodeType": "ExpressionStatement", "src": "572:19:71" } ] }, "documentation": null, "id": 20802, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 20795, "modifierName": { "argumentTypes": null, "id": 20794, "name": "onlyMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20777, "src": "551:10:71", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "551:10:71" } ], "name": "addMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 20793, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20792, "name": "account", "nodeType": "VariableDeclaration", "scope": 20802, "src": "527:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 20791, "name": "address", "nodeType": "ElementaryTypeName", "src": "527:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "526:17:71" }, "returnParameters": { "id": 20796, "nodeType": "ParameterList", "parameters": [], "src": "562:0:71" }, "scope": 20844, "src": "508:90:71", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 20810, "nodeType": "Block", "src": "637:42:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 20806, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 22171, "src": "661:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 20807, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "661:10:71", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 20805, "name": "_removeMinter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20843, "src": "647:13:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 20808, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "647:25:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20809, "nodeType": "ExpressionStatement", "src": "647:25:71" } ] }, "documentation": null, "id": 20811, "implemented": true, "kind": "function", "modifiers": [], "name": "renounceMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 20803, "nodeType": "ParameterList", "parameters": [], "src": "627:2:71" }, "returnParameters": { "id": 20804, "nodeType": "ParameterList", "parameters": [], "src": "637:0:71" }, "scope": 20844, "src": "604:75:71", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 20826, "nodeType": "Block", "src": "731:73:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 20819, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20813, "src": "754:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 20816, "name": "_minters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20757, "src": "741:8:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$20654_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 20818, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 20686, "src": "741:12:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$20654_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$20654_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 20820, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "741:21:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20821, "nodeType": "ExpressionStatement", "src": "741:21:71" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 20823, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20813, "src": "789:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 20822, "name": "MinterAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20751, "src": "777:11:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 20824, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "777:20:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20825, "nodeType": "EmitStatement", "src": "772:25:71" } ] }, "documentation": null, "id": 20827, "implemented": true, "kind": "function", "modifiers": [], "name": "_addMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 20814, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20813, "name": "account", "nodeType": "VariableDeclaration", "scope": 20827, "src": "705:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 20812, "name": "address", "nodeType": "ElementaryTypeName", "src": "705:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "704:17:71" }, "returnParameters": { "id": 20815, "nodeType": "ParameterList", "parameters": [], "src": "731:0:71" }, "scope": 20844, "src": "685:119:71", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 20842, "nodeType": "Block", "src": "859:78:71", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 20835, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20829, "src": "885:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 20832, "name": "_minters", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20757, "src": "869:8:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$20654_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 20834, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", "referencedDeclaration": 20717, "src": "869:15:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$20654_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$20654_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 20836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "869:24:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20837, "nodeType": "ExpressionStatement", "src": "869:24:71" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 20839, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20829, "src": "922:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 20838, "name": "MinterRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20755, "src": "908:13:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 20840, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "908:22:71", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 20841, "nodeType": "EmitStatement", "src": "903:27:71" } ] }, "documentation": null, "id": 20843, "implemented": true, "kind": "function", "modifiers": [], "name": "_removeMinter", "nodeType": "FunctionDefinition", "parameters": { "id": 20830, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 20829, "name": "account", "nodeType": "VariableDeclaration", "scope": 20843, "src": "833:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 20828, "name": "address", "nodeType": "ElementaryTypeName", "src": "833:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "832:17:71" }, "returnParameters": { "id": 20831, "nodeType": "ParameterList", "parameters": [], "src": "859:0:71" }, "scope": 20844, "src": "810:127:71", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 20845, "src": "49:890:71" } ], "src": "0:940:71" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/access/roles/MinterRole.sol", "exportedSymbols": { "MinterRole": [ 20844 ] }, "id": 20845, "nodeType": "SourceUnit", "nodes": [ { "id": 20743, "liter