@gooddollar/goodcontracts
Version:
GoodDollar Contracts
1,301 lines • 94.8 kB
JSON
{
"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-solidity/contracts/access/roles/PauserRole.sol\":\"PauserRole\"},\"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/PauserRole.sol\":{\"keccak256\":\"0x6506133e295a7199df2ac5dfc52853d9d767f68450b6d0193e9d8056b164ce86\",\"urls\":[\"bzz-raw://9c03592a9e6b1377e401b74eccf175a250232b5a341347d3fc5cb50e9bc86ba2\",\"dweb:/ipfs/QmYAr1yXT89hNUMJ37aiBpD9HtYfBDqmueVCzphRuuU7oZ\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity ^0.5.0;\n\nimport \"../Roles.sol\";\n\ncontract PauserRole {\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(msg.sender);\n }\n\n modifier onlyPauser() {\n require(isPauser(msg.sender));\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(msg.sender);\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-solidity/contracts/access/roles/PauserRole.sol",
"ast": {
"absolutePath": "openzeppelin-solidity/contracts/access/roles/PauserRole.sol",
"exportedSymbols": {
"PauserRole": [
20947
]
},
"id": 20948,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 20846,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:72"
},
{
"absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol",
"file": "../Roles.sol",
"id": 20847,
"nodeType": "ImportDirective",
"scope": 20948,
"sourceUnit": 20742,
"src": "25:22:72",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 20947,
"linearizedBaseContracts": [
20947
],
"name": "PauserRole",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 20850,
"libraryName": {
"contractScope": null,
"id": 20848,
"name": "Roles",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 20741,
"src": "81:5:72",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Roles_$20741",
"typeString": "library Roles"
}
},
"nodeType": "UsingForDirective",
"src": "75:27:72",
"typeName": {
"contractScope": null,
"id": 20849,
"name": "Roles.Role",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 20654,
"src": "91:10:72",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Role_$20654_storage_ptr",
"typeString": "struct Roles.Role"
}
}
},
{
"anonymous": false,
"documentation": null,
"id": 20854,
"name": "PauserAdded",
"nodeType": "EventDefinition",
"parameters": {
"id": 20853,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20852,
"indexed": true,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 20854,
"src": "126:23:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20851,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "126:7:72",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "125:25:72"
},
"src": "108:43:72"
},
{
"anonymous": false,
"documentation": null,
"id": 20858,
"name": "PauserRemoved",
"nodeType": "EventDefinition",
"parameters": {
"id": 20857,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20856,
"indexed": true,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 20858,
"src": "176:23:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20855,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "176:7:72",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "175:25:72"
},
"src": "156:45:72"
},
{
"constant": false,
"id": 20860,
"name": "_pausers",
"nodeType": "VariableDeclaration",
"scope": 20947,
"src": "207:27:72",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Role_$20654_storage",
"typeString": "struct Roles.Role"
},
"typeName": {
"contractScope": null,
"id": 20859,
"name": "Roles.Role",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 20654,
"src": "207:10:72",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Role_$20654_storage_ptr",
"typeString": "struct Roles.Role"
}
},
"value": null,
"visibility": "private"
},
{
"body": {
"id": 20868,
"nodeType": "Block",
"src": "265:39:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 20864,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 22171,
"src": "286:3:72",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 20865,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "286:10:72",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 20863,
"name": "_addPauser",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20930,
"src": "275:10:72",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 20866,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "275:22:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20867,
"nodeType": "ExpressionStatement",
"src": "275:22:72"
}
]
},
"documentation": null,
"id": 20869,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20861,
"nodeType": "ParameterList",
"parameters": [],
"src": "253:2:72"
},
"returnParameters": {
"id": 20862,
"nodeType": "ParameterList",
"parameters": [],
"src": "265:0:72"
},
"scope": 20947,
"src": "241:63:72",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 20879,
"nodeType": "Block",
"src": "332:57:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 20873,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 22171,
"src": "359:3:72",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 20874,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "359:10:72",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 20872,
"name": "isPauser",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20893,
"src": "350:8:72",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
"typeString": "function (address) view returns (bool)"
}
},
"id": 20875,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "350:20:72",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 20871,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
22174,
22175
],
"referencedDeclaration": 22174,
"src": "342:7:72",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 20876,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "342:29:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20877,
"nodeType": "ExpressionStatement",
"src": "342:29:72"
},
{
"id": 20878,
"nodeType": "PlaceholderStatement",
"src": "381:1:72"
}
]
},
"documentation": null,
"id": 20880,
"name": "onlyPauser",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 20870,
"nodeType": "ParameterList",
"parameters": [],
"src": "329:2:72"
},
"src": "310:79:72",
"visibility": "internal"
},
{
"body": {
"id": 20892,
"nodeType": "Block",
"src": "457:45:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 20889,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20882,
"src": "487:7:72",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 20887,
"name": "_pausers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20860,
"src": "474:8:72",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Role_$20654_storage",
"typeString": "struct Roles.Role storage ref"
}
},
"id": 20888,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "has",
"nodeType": "MemberAccess",
"referencedDeclaration": 20740,
"src": "474:12:72",
"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": 20890,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "474:21:72",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 20886,
"id": 20891,
"nodeType": "Return",
"src": "467:28:72"
}
]
},
"documentation": null,
"id": 20893,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "isPauser",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20883,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20882,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 20893,
"src": "413:15:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20881,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "413:7:72",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "412:17:72"
},
"returnParameters": {
"id": 20886,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20885,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 20893,
"src": "451:4:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 20884,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "451:4:72",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "450:6:72"
},
"scope": 20947,
"src": "395:107:72",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 20904,
"nodeType": "Block",
"src": "562:36:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 20901,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20895,
"src": "583:7:72",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 20900,
"name": "_addPauser",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20930,
"src": "572:10:72",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 20902,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "572:19:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20903,
"nodeType": "ExpressionStatement",
"src": "572:19:72"
}
]
},
"documentation": null,
"id": 20905,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 20898,
"modifierName": {
"argumentTypes": null,
"id": 20897,
"name": "onlyPauser",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20880,
"src": "551:10:72",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "551:10:72"
}
],
"name": "addPauser",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20896,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20895,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 20905,
"src": "527:15:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20894,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "527:7:72",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "526:17:72"
},
"returnParameters": {
"id": 20899,
"nodeType": "ParameterList",
"parameters": [],
"src": "562:0:72"
},
"scope": 20947,
"src": "508:90:72",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 20913,
"nodeType": "Block",
"src": "637:42:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 20909,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 22171,
"src": "661:3:72",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 20910,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "661:10:72",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"id": 20908,
"name": "_removePauser",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20946,
"src": "647:13:72",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 20911,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "647:25:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20912,
"nodeType": "ExpressionStatement",
"src": "647:25:72"
}
]
},
"documentation": null,
"id": 20914,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "renouncePauser",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20906,
"nodeType": "ParameterList",
"parameters": [],
"src": "627:2:72"
},
"returnParameters": {
"id": 20907,
"nodeType": "ParameterList",
"parameters": [],
"src": "637:0:72"
},
"scope": 20947,
"src": "604:75:72",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 20929,
"nodeType": "Block",
"src": "731:73:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 20922,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20916,
"src": "754:7:72",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 20919,
"name": "_pausers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20860,
"src": "741:8:72",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Role_$20654_storage",
"typeString": "struct Roles.Role storage ref"
}
},
"id": 20921,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "add",
"nodeType": "MemberAccess",
"referencedDeclaration": 20686,
"src": "741:12:72",
"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": 20923,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "741:21:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20924,
"nodeType": "ExpressionStatement",
"src": "741:21:72"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 20926,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20916,
"src": "789:7:72",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 20925,
"name": "PauserAdded",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20854,
"src": "777:11:72",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 20927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "777:20:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20928,
"nodeType": "EmitStatement",
"src": "772:25:72"
}
]
},
"documentation": null,
"id": 20930,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_addPauser",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20917,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20916,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 20930,
"src": "705:15:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20915,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "705:7:72",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "704:17:72"
},
"returnParameters": {
"id": 20918,
"nodeType": "ParameterList",
"parameters": [],
"src": "731:0:72"
},
"scope": 20947,
"src": "685:119:72",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 20945,
"nodeType": "Block",
"src": "859:78:72",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 20938,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20932,
"src": "885:7:72",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"argumentTypes": null,
"id": 20935,
"name": "_pausers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20860,
"src": "869:8:72",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Role_$20654_storage",
"typeString": "struct Roles.Role storage ref"
}
},
"id": 20937,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "remove",
"nodeType": "MemberAccess",
"referencedDeclaration": 20717,
"src": "869:15:72",
"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": 20939,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "869:24:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20940,
"nodeType": "ExpressionStatement",
"src": "869:24:72"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 20942,
"name": "account",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20932,
"src": "922:7:72",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 20941,
"name": "PauserRemoved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20858,
"src": "908:13:72",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 20943,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "908:22:72",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20944,
"nodeType": "EmitStatement",
"src": "903:27:72"
}
]
},
"documentation": null,
"id": 20946,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_removePauser",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20933,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20932,
"name": "account",
"nodeType": "VariableDeclaration",
"scope": 20946,
"src": "833:15:72",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20931,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "833:7:72",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "832:17:72"
},
"returnParameters": {
"id": 20934,
"nodeType": "ParameterList",
"parameters": [],
"src": "859:0:72"
},
"scope": 20947,
"src": "810:127:72",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 20948,
"src": "49:890:72"
}
],
"src": "0:940:72"
},
"legacyAST": {
"absolutePath": "openzeppelin-solidity/contracts/access/roles/PauserRole.sol",
"exportedSymbols": {
"PauserRole": [
20947
]
},
"id": 20948,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 20846,
"liter