UNPKG

@kollateral/kollateral-contracts

Version:

1,269 lines 100 kB
{ "contractName": "PauserRole", "abi": [ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "PauserAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "PauserRemoved", "type": "event" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isPauser", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "addPauser", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "renouncePauser", "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\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/roles/PauserRole.sol\":\"PauserRole\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"@openzeppelin/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzz-raw://00a788c4631466c220b385bdd100c571d24b2deccd657615cfbcef6cadf669a4\",\"dweb:/ipfs/QmTEwDbjJNxmMNCDMqtuou3dyM8Wtp8Q9NFvn7SAVM7Jf3\"]},\"@openzeppelin/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xd1b5c934bab36d753c22987ad98c7614cb50ebf641371a83c96f8138619d7c30\",\"urls\":[\"bzz-raw://69c4bb822caae3d1bfd38e81f03b6d618d4d83cbb8e9f8236d28e1c4fe1d0d81\",\"dweb:/ipfs/QmWamstbFhdySmocF2TSKYVLLZF24JG4aXMvHiRdWKv3RA\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.5.0;\n\nimport \"../../GSN/Context.sol\";\nimport \"../Roles.sol\";\n\ncontract PauserRole is Context {\n using Roles for Roles.Role;\n\n event PauserAdded(address indexed account);\n event PauserRemoved(address indexed account);\n\n Roles.Role private _pausers;\n\n constructor () internal {\n _addPauser(_msgSender());\n }\n\n modifier onlyPauser() {\n require(isPauser(_msgSender()), \"PauserRole: caller does not have the Pauser role\");\n _;\n }\n\n function isPauser(address account) public view returns (bool) {\n return _pausers.has(account);\n }\n\n function addPauser(address account) public onlyPauser {\n _addPauser(account);\n }\n\n function renouncePauser() public {\n _removePauser(_msgSender());\n }\n\n function _addPauser(address account) internal {\n _pausers.add(account);\n emit PauserAdded(account);\n }\n\n function _removePauser(address account) internal {\n _pausers.remove(account);\n emit PauserRemoved(account);\n }\n}\n", "sourcePath": "@openzeppelin/contracts/access/roles/PauserRole.sol", "ast": { "absolutePath": "@openzeppelin/contracts/access/roles/PauserRole.sol", "exportedSymbols": { "PauserRole": [ 2628 ] }, "id": 2629, "nodeType": "SourceUnit", "nodes": [ { "id": 2523, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:15" }, { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "file": "../../GSN/Context.sol", "id": 2524, "nodeType": "ImportDirective", "scope": 2629, "sourceUnit": 2441, "src": "25:31:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/access/Roles.sol", "file": "../Roles.sol", "id": 2525, "nodeType": "ImportDirective", "scope": 2629, "sourceUnit": 2522, "src": "57:22:15", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 2526, "name": "Context", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2440, "src": "104:7:15", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$2440", "typeString": "contract Context" } }, "id": 2527, "nodeType": "InheritanceSpecifier", "src": "104:7:15" } ], "contractDependencies": [ 2440 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 2628, "linearizedBaseContracts": [ 2628, 2440 ], "name": "PauserRole", "nodeType": "ContractDefinition", "nodes": [ { "id": 2530, "libraryName": { "contractScope": null, "id": 2528, "name": "Roles", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2521, "src": "124:5:15", "typeDescriptions": { "typeIdentifier": "t_contract$_Roles_$2521", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", "src": "118:27:15", "typeName": { "contractScope": null, "id": 2529, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2447, "src": "134:10:15", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$2447_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, "documentation": null, "id": 2534, "name": "PauserAdded", "nodeType": "EventDefinition", "parameters": { "id": 2533, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2532, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 2534, "src": "169:23:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2531, "name": "address", "nodeType": "ElementaryTypeName", "src": "169:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "168:25:15" }, "src": "151:43:15" }, { "anonymous": false, "documentation": null, "id": 2538, "name": "PauserRemoved", "nodeType": "EventDefinition", "parameters": { "id": 2537, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2536, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 2538, "src": "219:23:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2535, "name": "address", "nodeType": "ElementaryTypeName", "src": "219:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "218:25:15" }, "src": "199:45:15" }, { "constant": false, "id": 2540, "name": "_pausers", "nodeType": "VariableDeclaration", "scope": 2628, "src": "250:27:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$2447_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, "id": 2539, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2447, "src": "250:10:15", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$2447_storage_ptr", "typeString": "struct Roles.Role" } }, "value": null, "visibility": "private" }, { "body": { "id": 2548, "nodeType": "Block", "src": "308:41:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 2544, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2428, "src": "329:10:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 2545, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "329:12:15", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 2543, "name": "_addPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2611, "src": "318:10:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2546, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "318:24:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2547, "nodeType": "ExpressionStatement", "src": "318:24:15" } ] }, "documentation": null, "id": 2549, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 2541, "nodeType": "ParameterList", "parameters": [], "src": "296:2:15" }, "returnParameters": { "id": 2542, "nodeType": "ParameterList", "parameters": [], "src": "308:0:15" }, "scope": 2628, "src": "284:65:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 2560, "nodeType": "Block", "src": "377:111:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 2553, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2428, "src": "404:10:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 2554, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "404:12:15", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 2552, "name": "isPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2574, "src": "395:8:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 2555, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "395:22:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c65", "id": 2556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "419:50:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1f95198cb5985a7636f9555f0b7f8fbd672d4e7c4afcc5669e5aa965835c68a7", "typeString": "literal_string \"PauserRole: caller does not have the Pauser role\"" }, "value": "PauserRole: caller does not have the Pauser role" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1f95198cb5985a7636f9555f0b7f8fbd672d4e7c4afcc5669e5aa965835c68a7", "typeString": "literal_string \"PauserRole: caller does not have the Pauser role\"" } ], "id": 2551, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 3599, 3600 ], "referencedDeclaration": 3600, "src": "387:7:15", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2557, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "387:83:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2558, "nodeType": "ExpressionStatement", "src": "387:83:15" }, { "id": 2559, "nodeType": "PlaceholderStatement", "src": "480:1:15" } ] }, "documentation": null, "id": 2561, "name": "onlyPauser", "nodeType": "ModifierDefinition", "parameters": { "id": 2550, "nodeType": "ParameterList", "parameters": [], "src": "374:2:15" }, "src": "355:133:15", "visibility": "internal" }, { "body": { "id": 2573, "nodeType": "Block", "src": "556:45:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2570, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2563, "src": "586:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 2568, "name": "_pausers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2540, "src": "573:8:15", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$2447_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 2569, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", "referencedDeclaration": 2520, "src": "573:12:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$2447_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$2447_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "573:21:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 2567, "id": 2572, "nodeType": "Return", "src": "566:28:15" } ] }, "documentation": null, "id": 2574, "implemented": true, "kind": "function", "modifiers": [], "name": "isPauser", "nodeType": "FunctionDefinition", "parameters": { "id": 2564, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2563, "name": "account", "nodeType": "VariableDeclaration", "scope": 2574, "src": "512:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2562, "name": "address", "nodeType": "ElementaryTypeName", "src": "512:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "511:17:15" }, "returnParameters": { "id": 2567, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2566, "name": "", "nodeType": "VariableDeclaration", "scope": 2574, "src": "550:4:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2565, "name": "bool", "nodeType": "ElementaryTypeName", "src": "550:4:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "549:6:15" }, "scope": 2628, "src": "494:107:15", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 2585, "nodeType": "Block", "src": "661:36:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2582, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2576, "src": "682:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2581, "name": "_addPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2611, "src": "671:10:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2583, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "671:19:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2584, "nodeType": "ExpressionStatement", "src": "671:19:15" } ] }, "documentation": null, "id": 2586, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 2579, "modifierName": { "argumentTypes": null, "id": 2578, "name": "onlyPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2561, "src": "650:10:15", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "650:10:15" } ], "name": "addPauser", "nodeType": "FunctionDefinition", "parameters": { "id": 2577, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2576, "name": "account", "nodeType": "VariableDeclaration", "scope": 2586, "src": "626:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2575, "name": "address", "nodeType": "ElementaryTypeName", "src": "626:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "625:17:15" }, "returnParameters": { "id": 2580, "nodeType": "ParameterList", "parameters": [], "src": "661:0:15" }, "scope": 2628, "src": "607:90:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2594, "nodeType": "Block", "src": "736:44:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "id": 2590, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2428, "src": "760:10:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", "typeString": "function () view returns (address payable)" } }, "id": 2591, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "760:12:15", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 2589, "name": "_removePauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2627, "src": "746:13:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "746:27:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2593, "nodeType": "ExpressionStatement", "src": "746:27:15" } ] }, "documentation": null, "id": 2595, "implemented": true, "kind": "function", "modifiers": [], "name": "renouncePauser", "nodeType": "FunctionDefinition", "parameters": { "id": 2587, "nodeType": "ParameterList", "parameters": [], "src": "726:2:15" }, "returnParameters": { "id": 2588, "nodeType": "ParameterList", "parameters": [], "src": "736:0:15" }, "scope": 2628, "src": "703:77:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 2610, "nodeType": "Block", "src": "832:73:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2603, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2597, "src": "855:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 2600, "name": "_pausers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2540, "src": "842:8:15", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$2447_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 2602, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 2472, "src": "842:12:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$2447_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$2447_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 2604, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "842:21:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2605, "nodeType": "ExpressionStatement", "src": "842:21:15" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2607, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2597, "src": "890:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2606, "name": "PauserAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2534, "src": "878:11:15", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2608, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "878:20:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2609, "nodeType": "EmitStatement", "src": "873:25:15" } ] }, "documentation": null, "id": 2611, "implemented": true, "kind": "function", "modifiers": [], "name": "_addPauser", "nodeType": "FunctionDefinition", "parameters": { "id": 2598, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2597, "name": "account", "nodeType": "VariableDeclaration", "scope": 2611, "src": "806:15:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2596, "name": "address", "nodeType": "ElementaryTypeName", "src": "806:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "805:17:15" }, "returnParameters": { "id": 2599, "nodeType": "ParameterList", "parameters": [], "src": "832:0:15" }, "scope": 2628, "src": "786:119:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 2626, "nodeType": "Block", "src": "960:78:15", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2619, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2613, "src": "986:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 2616, "name": "_pausers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2540, "src": "970:8:15", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$2447_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 2618, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", "referencedDeclaration": 2496, "src": "970:15:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$2447_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$2447_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 2620, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "970:24:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2621, "nodeType": "ExpressionStatement", "src": "970:24:15" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2623, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2613, "src": "1023:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 2622, "name": "PauserRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2538, "src": "1009:13:15", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 2624, "isConstant": false, "