UNPKG

cc-zos-vouching

Version:

Vouching logic for the EVM packages of the ZeppelinOS smart contract platform

1,162 lines 114 kB
{ "contractName": "PauserRole", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "PauserAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" } ], "name": "PauserRemoved", "type": "event" }, { "constant": false, "inputs": [ { "name": "sender", "type": "address" } ], "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "account", "type": "address" } ], "name": "isPauser", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "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" } ], "bytecode": "0x608060405234801561001057600080fd5b506105af806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806346fbf68e146100675780636ef8d66d146100c257806382dc1ec4146100d9578063c4d66de81461011c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015f565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100d761017c565b005b3480156100e557600080fd5b5061011a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610187565b005b34801561012857600080fd5b5061015d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101a7565b005b60006101758260336102f690919063ffffffff16565b9050919050565b6101853361038a565b565b6101903361015f565b151561019b57600080fd5b6101a4816103e4565b50565b60008060019054906101000a900460ff16806101c757506101c661043e565b5b806101de57506000809054906101000a900460ff16155b1515610278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506102c88261015f565b15156102d8576102d7826103e4565b5b80600060016101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561033357600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61039e81603361044f90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6103f88160336104e990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600080303b90506000811491505090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561048b57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561052557600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505600a165627a7a72305820e94a0396342d02647f3f5573790dff9df77a9c47eb3d3aed4de876bd679d073c0029", "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806346fbf68e146100675780636ef8d66d146100c257806382dc1ec4146100d9578063c4d66de81461011c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061015f565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100d761017c565b005b3480156100e557600080fd5b5061011a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610187565b005b34801561012857600080fd5b5061015d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101a7565b005b60006101758260336102f690919063ffffffff16565b9050919050565b6101853361038a565b565b6101903361015f565b151561019b57600080fd5b6101a4816103e4565b50565b60008060019054906101000a900460ff16806101c757506101c661043e565b5b806101de57506000809054906101000a900460ff16155b1515610278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506102c88261015f565b15156102d8576102d7826103e4565b5b80600060016101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561033357600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61039e81603361044f90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b6103f88160336104e990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600080303b90506000811491505090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561048b57600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561052557600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505600a165627a7a72305820e94a0396342d02647f3f5573790dff9df77a9c47eb3d3aed4de876bd679d073c0029", "sourceMap": "97:925:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;97:925:4;;;;;;;", "deployedSourceMap": "97:925:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;493:100:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;685:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;685:69:4;;;;;;597:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;597:84:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;295:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;295:121:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:100;549:4;568:20;580:7;568;:11;;:20;;;;:::i;:::-;561:27;;493:100;;;:::o;685:69::-;724:25;738:10;724:13;:25::i;:::-;685:69::o;597:84::-;456:20;465:10;456:8;:20::i;:::-;448:29;;;;;;;;657:19;668:7;657:10;:19::i;:::-;597:84;:::o;295:121::-;1121:20:16;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;361:16:4;370:6;361:8;:16::i;:::-;360:17;356:56;;;387:18;398:6;387:10;:18::i;:::-;356:56;1235:15:16;1220:12;;:30;;;;;;;;;;;;;;;;;;295:121:4;;:::o;657:166:3:-;741:4;782:1;763:21;;:7;:21;;;;755:30;;;;;;;;798:4;:11;;:20;810:7;798:20;;;;;;;;;;;;;;;;;;;;;;;;;791:27;;657:166;;;;:::o;870:116:4:-;925:23;940:7;925;:14;;:23;;;;:::i;:::-;973:7;959:22;;;;;;;;;;;;870:116;:::o;758:108::-;810:20;822:7;810;:11;;:20;;;;:::i;:::-;853:7;841:20;;;;;;;;;;;;758:108;:::o;1341:467:16:-;1388:4;1729:10;1774:7;1762:20;1756:26;;1802:1;1796:2;:7;1789:14;;1341:467;;:::o;443:136:3:-;537:1;518:21;;:7;:21;;;;510:30;;;;;;;;569:5;546:4;:11;;:20;558:7;546:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;443:136;;:::o;245:132::-;336:1;317:21;;:7;:21;;;;309:30;;;;;;;;368:4;345;:11;;:20;357:7;345:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;245:132;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"../Roles.sol\";\n\n\ncontract PauserRole is Initializable {\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 function initialize(address sender) public initializer {\n if (!isPauser(sender)) {\n _addPauser(sender);\n }\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 uint256[50] private ______gap;\n}\n", "sourcePath": "openzeppelin-eth/contracts/access/roles/PauserRole.sol", "ast": { "absolutePath": "openzeppelin-eth/contracts/access/roles/PauserRole.sol", "exportedSymbols": { "PauserRole": [ 685 ] }, "id": 686, "nodeType": "SourceUnit", "nodes": [ { "id": 568, "literals": [ "solidity", "^", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:24:4" }, { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", "id": 569, "nodeType": "ImportDirective", "scope": 686, "sourceUnit": 1919, "src": "26:45:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-eth/contracts/access/Roles.sol", "file": "../Roles.sol", "id": 570, "nodeType": "ImportDirective", "scope": 686, "sourceUnit": 567, "src": "72:22:4", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 571, "name": "Initializable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1918, "src": "120:13:4", "typeDescriptions": { "typeIdentifier": "t_contract$_Initializable_$1918", "typeString": "contract Initializable" } }, "id": 572, "nodeType": "InheritanceSpecifier", "src": "120:13:4" } ], "contractDependencies": [ 1918 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 685, "linearizedBaseContracts": [ 685, 1918 ], "name": "PauserRole", "nodeType": "ContractDefinition", "nodes": [ { "id": 575, "libraryName": { "contractScope": null, "id": 573, "name": "Roles", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 566, "src": "144:5:4", "typeDescriptions": { "typeIdentifier": "t_contract$_Roles_$566", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", "src": "138:27:4", "typeName": { "contractScope": null, "id": 574, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 494, "src": "154:10:4", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$494_storage_ptr", "typeString": "struct Roles.Role" } } }, { "anonymous": false, "documentation": null, "id": 579, "name": "PauserAdded", "nodeType": "EventDefinition", "parameters": { "id": 578, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 577, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 579, "src": "187:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 576, "name": "address", "nodeType": "ElementaryTypeName", "src": "187:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "186:25:4" }, "src": "169:43:4" }, { "anonymous": false, "documentation": null, "id": 583, "name": "PauserRemoved", "nodeType": "EventDefinition", "parameters": { "id": 582, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 581, "indexed": true, "name": "account", "nodeType": "VariableDeclaration", "scope": 583, "src": "235:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 580, "name": "address", "nodeType": "ElementaryTypeName", "src": "235:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "234:25:4" }, "src": "215:45:4" }, { "constant": false, "id": 585, "name": "pausers", "nodeType": "VariableDeclaration", "scope": 685, "src": "264:26:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$494_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, "id": 584, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 494, "src": "264:10:4", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$494_storage_ptr", "typeString": "struct Roles.Role" } }, "value": null, "visibility": "private" }, { "body": { "id": 602, "nodeType": "Block", "src": "350:66:4", "statements": [ { "condition": { "argumentTypes": null, "id": 595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "360:17:4", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 593, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 587, "src": "370:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 592, "name": "isPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 627, "src": "361:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "361:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 601, "nodeType": "IfStatement", "src": "356:56:4", "trueBody": { "id": 600, "nodeType": "Block", "src": "379:33:4", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 597, "name": "sender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 587, "src": "398:6:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 596, "name": "_addPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, "src": "387:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "387:18:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 599, "nodeType": "ExpressionStatement", "src": "387:18:4" } ] } } ] }, "documentation": null, "id": 603, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 590, "modifierName": { "argumentTypes": null, "id": 589, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1899, "src": "338:11:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "338:11:4" } ], "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { "id": 588, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 587, "name": "sender", "nodeType": "VariableDeclaration", "scope": 603, "src": "315:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 586, "name": "address", "nodeType": "ElementaryTypeName", "src": "315:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "314:16:4" }, "payable": false, "returnParameters": { "id": 591, "nodeType": "ParameterList", "parameters": [], "src": "350:0:4" }, "scope": 685, "src": "295:121:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 613, "nodeType": "Block", "src": "442:47:4", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 607, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1933, "src": "465:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 608, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "465:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 606, "name": "isPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 627, "src": "456:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, "id": 609, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "456:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 605, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 1936, 1937 ], "referencedDeclaration": 1936, "src": "448:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "448:29:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 611, "nodeType": "ExpressionStatement", "src": "448:29:4" }, { "id": 612, "nodeType": "PlaceholderStatement", "src": "483:1:4" } ] }, "documentation": null, "id": 614, "name": "onlyPauser", "nodeType": "ModifierDefinition", "parameters": { "id": 604, "nodeType": "ParameterList", "parameters": [], "src": "439:2:4" }, "src": "420:69:4", "visibility": "internal" }, { "body": { "id": 626, "nodeType": "Block", "src": "555:38:4", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 623, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 616, "src": "580:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 621, "name": "pausers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "568:7:4", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$494_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 622, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", "referencedDeclaration": 565, "src": "568:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$494_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$494_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, "id": 624, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "568:20:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 620, "id": 625, "nodeType": "Return", "src": "561:27:4" } ] }, "documentation": null, "id": 627, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], "name": "isPauser", "nodeType": "FunctionDefinition", "parameters": { "id": 617, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 616, "name": "account", "nodeType": "VariableDeclaration", "scope": 627, "src": "511:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 615, "name": "address", "nodeType": "ElementaryTypeName", "src": "511:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "510:17:4" }, "payable": false, "returnParameters": { "id": 620, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 619, "name": "", "nodeType": "VariableDeclaration", "scope": 627, "src": "549:4:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 618, "name": "bool", "nodeType": "ElementaryTypeName", "src": "549:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "548:6:4" }, "scope": 685, "src": "493:100:4", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { "id": 638, "nodeType": "Block", "src": "651:30:4", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 635, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 629, "src": "668:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 634, "name": "_addPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 664, "src": "657:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 636, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "657:19:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 637, "nodeType": "ExpressionStatement", "src": "657:19:4" } ] }, "documentation": null, "id": 639, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, "id": 632, "modifierName": { "argumentTypes": null, "id": 631, "name": "onlyPauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 614, "src": "640:10:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "640:10:4" } ], "name": "addPauser", "nodeType": "FunctionDefinition", "parameters": { "id": 630, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 629, "name": "account", "nodeType": "VariableDeclaration", "scope": 639, "src": "616:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 628, "name": "address", "nodeType": "ElementaryTypeName", "src": "616:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "615:17:4" }, "payable": false, "returnParameters": { "id": 633, "nodeType": "ParameterList", "parameters": [], "src": "651:0:4" }, "scope": 685, "src": "597:84:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 647, "nodeType": "Block", "src": "718:36:4", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 643, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1933, "src": "738:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "738:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 642, "name": "_removePauser", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 680, "src": "724:13:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 645, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "724:25:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 646, "nodeType": "ExpressionStatement", "src": "724:25:4" } ] }, "documentation": null, "id": 648, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "renouncePauser", "nodeType": "FunctionDefinition", "parameters": { "id": 640, "nodeType": "ParameterList", "parameters": [], "src": "708:2:4" }, "payable": false, "returnParameters": { "id": 641, "nodeType": "ParameterList", "parameters": [], "src": "718:0:4" }, "scope": 685, "src": "685:69:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 663, "nodeType": "Block", "src": "804:62:4", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 656, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 650, "src": "822:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "argumentTypes": null, "id": 653, "name": "pausers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 585, "src": "810:7:4", "typeDescriptions": { "typeIdentifier": "t_struct$_Role_$494_storage", "typeString": "struct Roles.Role storage ref" } }, "id": 655, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", "referencedDeclaration": 518, "src": "810:11:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$494_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$494_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "810:20:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 658, "nodeType": "ExpressionStatement", "src": "810:20:4" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 660, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 650, "src": "853:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 659, "name": "PauserA