UNPKG

@netvote/elections-solidity

Version:
1,185 lines (1,184 loc) 53.3 kB
{ "contractName": "Adminable", "abi": [ { "constant": false, "inputs": [ { "name": "addr", "type": "address" } ], "name": "removeAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "addr", "type": "address" } ], "name": "isAdmin", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [], "name": "removeSelf", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "addr", "type": "address" } ], "name": "addAdmin", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" } ], "bytecode": "0x606060405260008054600160a060020a033316600160a060020a0319909116179055610329806100306000396000f3006060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c811461007c57806324d7806c1461009d5780635e898dac146100d057806370480275146100e35780638da5cb5b14610102578063f2fde38b14610131575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610150565b005b34156100a857600080fd5b6100bc600160a060020a036004351661018c565b604051901515815260200160405180910390f35b34156100db57600080fd5b61009b6101db565b34156100ee57600080fd5b61009b600160a060020a0360043516610211565b341561010d57600080fd5b610115610253565b604051600160a060020a03909116815260200160405180910390f35b341561013c57600080fd5b61009b600160a060020a0360043516610262565b60005433600160a060020a0390811691161461016b57600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6000600160a060020a038216158015906101d55750600054600160a060020a03838116911614806101d55750600160a060020a03821660009081526001602052604090205460ff165b92915050565b6101e43361018c565b15156101ef57600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60005433600160a060020a0390811691161461022c57600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461027d57600080fd5b600160a060020a038116151561029257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582017740de2d7ad22597a68fc874b3166a13411e7a82c716c97ca9a3ed40b9ff0370029", "deployedBytecode": "0x6060604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631785f53c811461007c57806324d7806c1461009d5780635e898dac146100d057806370480275146100e35780638da5cb5b14610102578063f2fde38b14610131575b600080fd5b341561008757600080fd5b61009b600160a060020a0360043516610150565b005b34156100a857600080fd5b6100bc600160a060020a036004351661018c565b604051901515815260200160405180910390f35b34156100db57600080fd5b61009b6101db565b34156100ee57600080fd5b61009b600160a060020a0360043516610211565b341561010d57600080fd5b610115610253565b604051600160a060020a03909116815260200160405180910390f35b341561013c57600080fd5b61009b600160a060020a0360043516610262565b60005433600160a060020a0390811691161461016b57600080fd5b600160a060020a03166000908152600160205260409020805460ff19169055565b6000600160a060020a038216158015906101d55750600054600160a060020a03838116911614806101d55750600160a060020a03821660009081526001602052604090205460ff165b92915050565b6101e43361018c565b15156101ef57600080fd5b600160a060020a0333166000908152600160205260409020805460ff19169055565b60005433600160a060020a0390811691161461022c57600080fd5b600160a060020a03166000908152600160208190526040909120805460ff19169091179055565b600054600160a060020a031681565b60005433600160a060020a0390811691161461027d57600080fd5b600160a060020a038116151561029257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a7230582017740de2d7ad22597a68fc874b3166a13411e7a82c716c97ca9a3ed40b9ff0370029", "sourceMap": "1052:595:0:-;;;494:5:21;:18;;-1:-1:-1;;;;;502:10:21;494:18;-1:-1:-1;;;;;;494:18:21;;;;;;1052:595:0;;;;;;", "deployedSourceMap": "1052:595:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1460:95;;;;;;;;;;-1:-1:-1;;;;;1460:95:0;;;;;;;1212:145;;;;;;;;;;-1:-1:-1;;;;;1212:145:0;;;;;;;;;;;;;;;;;;;;;;1561:84;;;;;;;;;;;;1363:91;;;;;;;;;;-1:-1:-1;;;;;1363:91:0;;;;;238:20:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:21;;;;;;;;;;;;;;827:169;;;;;;;;;;-1:-1:-1;;;;;827:169:21;;;;;1460:95:0;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1522:18:0;1543:5;1522:18;;;:12;:18;;;;;:26;;-1:-1:-1;;1522:26:0;;;1460:95::o;1212:145::-;1268:4;-1:-1:-1;;;;;1291:18:0;;;;;;:59;;-1:-1:-1;1322:5:0;;-1:-1:-1;;;;;1314:13:0;;;1322:5;;1314:13;;:35;;-1:-1:-1;;;;;;1331:18:0;;;;;;:12;:18;;;;;;;;1314:35;1284:66;1212:145;-1:-1:-1;;1212:145:0:o;1561:84::-;1168:19;1176:10;1168:7;:19::i;:::-;1160:28;;;;;;;;-1:-1:-1;;;;;1619:10:0;1606:24;1633:5;1606:24;;;:12;:24;;;;;:32;;-1:-1:-1;;1606:32:0;;;1561:84::o;1363:91::-;647:5:21;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;1422:18:0;;;;;1443:4;1422:18;;;;;;;;:25;;-1:-1:-1;;1422:25:0;;;;;;1363:91::o;238:20:21:-;;;-1:-1:-1;;;;;238:20:21;;:::o;827:169::-;647:5;;633:10;-1:-1:-1;;;;;633:19:21;;;647:5;;633:19;625:28;;;;;;-1:-1:-1;;;;;903:22:21;;;;895:31;;;;;;953:5;;-1:-1:-1;;;;;932:37:21;;;;953:5;932:37;;;;;;;;;;975:5;:16;;-1:-1:-1;;975:16:21;-1:-1:-1;;;;;975:16:21;;;;;;;;;;827:169::o", "source": "// ------------------------------------------------------------------------------\n// This file is part of netvote.\n//\n// netvote is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// netvote is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with solidity. If not, see <http://www.gnu.org/licenses/>\n//\n// (c) 2017 netvote contributors.\n//------------------------------------------------------------------------------\n\npragma solidity ^0.4.17;\n\nimport \"zeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title Adminable\n * @dev Allows an owner to specify other admins to delegate actions\n */\ncontract Adminable is Ownable {\n mapping (address => bool) adminAddress;\n\n modifier admin() {\n require(isAdmin(msg.sender));\n _;\n }\n\n function isAdmin(address addr) public constant returns (bool) {\n return addr != address(0) && (addr == owner || adminAddress[addr]);\n }\n\n function addAdmin(address addr) public onlyOwner {\n adminAddress[addr] = true;\n }\n\n function removeAdmin(address addr) public onlyOwner {\n adminAddress[addr] = false;\n }\n\n function removeSelf() public admin {\n adminAddress[msg.sender] = false;\n }\n}", "sourcePath": "/Users/slanders/netvote/elections-solidity/contracts/auth/Adminable.sol", "ast": { "attributes": { "absolutePath": "/Users/slanders/netvote/elections-solidity/contracts/auth/Adminable.sol", "exportedSymbols": { "Adminable": [ 84 ] } }, "children": [ { "attributes": { "literals": [ "solidity", "^", "0.4", ".17" ] }, "id": 1, "name": "PragmaDirective", "src": "868:24:0" }, { "attributes": { "SourceUnit": 2704, "absolutePath": "zeppelin-solidity/contracts/ownership/Ownable.sol", "file": "zeppelin-solidity/contracts/ownership/Ownable.sol", "scope": 85, "symbolAliases": [ null ], "unitAlias": "" }, "id": 2, "name": "ImportDirective", "src": "894:59:0" }, { "attributes": { "contractDependencies": [ 2703 ], "contractKind": "contract", "documentation": "@title Adminable\n@dev Allows an owner to specify other admins to delegate actions", "fullyImplemented": true, "linearizedBaseContracts": [ 84, 2703 ], "name": "Adminable", "scope": 85 }, "children": [ { "attributes": { "arguments": [ null ] }, "children": [ { "attributes": { "contractScope": null, "name": "Ownable", "referencedDeclaration": 2703, "type": "contract Ownable" }, "id": 3, "name": "UserDefinedTypeName", "src": "1074:7:0" } ], "id": 4, "name": "InheritanceSpecifier", "src": "1074:7:0" }, { "attributes": { "constant": false, "name": "adminAddress", "scope": 84, "stateVariable": true, "storageLocation": "default", "type": "mapping(address => bool)", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "type": "mapping(address => bool)" }, "children": [ { "attributes": { "name": "address", "type": "address" }, "id": 5, "name": "ElementaryTypeName", "src": "1097:7:0" }, { "attributes": { "name": "bool", "type": "bool" }, "id": 6, "name": "ElementaryTypeName", "src": "1108:4:0" } ], "id": 7, "name": "Mapping", "src": "1088:25:0" } ], "id": 8, "name": "VariableDeclaration", "src": "1088:38:0" }, { "attributes": { "name": "admin", "visibility": "internal" }, "children": [ { "attributes": { "parameters": [ null ] }, "children": [], "id": 9, "name": "ParameterList", "src": "1147:2:0" }, { "children": [ { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "type": "tuple()", "type_conversion": false }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "overloadedDeclarations": [ null ], "referencedDeclaration": 3241, "type": "function (bool) pure", "value": "require" }, "id": 10, "name": "Identifier", "src": "1160:7:0" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "type": "bool", "type_conversion": false }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "overloadedDeclarations": [ null ], "referencedDeclaration": 42, "type": "function (address) view returns (bool)", "value": "isAdmin" }, "id": 11, "name": "Identifier", "src": "1168:7:0" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "member_name": "sender", "referencedDeclaration": null, "type": "address" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 3238, "type": "msg", "value": "msg" }, "id": 12, "name": "Identifier", "src": "1176:3:0" } ], "id": 13, "name": "MemberAccess", "src": "1176:10:0" } ], "id": 14, "name": "FunctionCall", "src": "1168:19:0" } ], "id": 15, "name": "FunctionCall", "src": "1160:28:0" } ], "id": 16, "name": "ExpressionStatement", "src": "1160:28:0" }, { "id": 17, "name": "PlaceholderStatement", "src": "1198:1:0" } ], "id": 18, "name": "Block", "src": "1150:56:0" } ], "id": 19, "name": "ModifierDefinition", "src": "1133:73:0" }, { "attributes": { "constant": true, "implemented": true, "isConstructor": false, "modifiers": [ null ], "name": "isAdmin", "payable": false, "scope": 84, "stateMutability": "view", "superFunction": null, "visibility": "public" }, "children": [ { "children": [ { "attributes": { "constant": false, "name": "addr", "scope": 42, "stateVariable": false, "storageLocation": "default", "type": "address", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "type": "address" }, "id": 20, "name": "ElementaryTypeName", "src": "1229:7:0" } ], "id": 21, "name": "VariableDeclaration", "src": "1229:12:0" } ], "id": 22, "name": "ParameterList", "src": "1228:14:0" }, { "children": [ { "attributes": { "constant": false, "name": "", "scope": 42, "stateVariable": false, "storageLocation": "default", "type": "bool", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "bool", "type": "bool" }, "id": 23, "name": "ElementaryTypeName", "src": "1268:4:0" } ], "id": 24, "name": "VariableDeclaration", "src": "1268:4:0" } ], "id": 25, "name": "ParameterList", "src": "1267:6:0" }, { "children": [ { "attributes": { "functionReturnParameters": 25 }, "children": [ { "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "&&", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "!=", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 21, "type": "address", "value": "addr" }, "id": 26, "name": "Identifier", "src": "1291:4:0" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "type": "address", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "type": "type(address)", "value": "address" }, "id": 27, "name": "ElementaryTypeNameExpression", "src": "1299:7:0" }, { "attributes": { "argumentTypes": null, "hexvalue": "30", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", "type": "int_const 0", "value": "0" }, "id": 28, "name": "Literal", "src": "1307:1:0" } ], "id": 29, "name": "FunctionCall", "src": "1299:10:0" } ], "id": 30, "name": "BinaryOperation", "src": "1291:18:0" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "||", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "==", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 21, "type": "address", "value": "addr" }, "id": 31, "name": "Identifier", "src": "1314:4:0" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 2651, "type": "address", "value": "owner" }, "id": 32, "name": "Identifier", "src": "1322:5:0" } ], "id": 33, "name": "BinaryOperation", "src": "1314:13:0" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 8, "type": "mapping(address => bool)", "value": "adminAddress" }, "id": 34, "name": "Identifier", "src": "1331:12:0" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 21, "type": "address", "value": "addr" }, "id": 35, "name": "Identifier", "src": "1344:4:0" } ], "id": 36, "name": "IndexAccess", "src": "1331:18:0" } ], "id": 37, "name": "BinaryOperation", "src": "1314:35:0" } ], "id": 38, "name": "TupleExpression", "src": "1313:37:0" } ], "id": 39, "name": "BinaryOperation", "src": "1291:59:0" } ], "id": 40, "name": "Return", "src": "1284:66:0" } ], "id": 41, "name": "Block", "src": "1274:83:0" } ], "id": 42, "name": "FunctionDefinition", "src": "1212:145:0" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, "name": "addAdmin", "payable": false, "scope": 84, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, "children": [ { "children": [ { "attributes": { "constant": false, "name": "addr", "scope": 56, "stateVariable": false, "storageLocation": "default", "type": "address", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "type": "address" }, "id": 43, "name": "ElementaryTypeName", "src": "1381:7:0" } ], "id": 44, "name": "VariableDeclaration", "src": "1381:12:0" } ], "id": 45, "name": "ParameterList", "src": "1380:14:0" }, { "attributes": { "parameters": [ null ] }, "children": [], "id": 48, "name": "ParameterList", "src": "1412:0:0" }, { "attributes": { "arguments": [ null ] }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 2677, "type": "modifier ()", "value": "onlyOwner" }, "id": 46, "name": "Identifier", "src": "1402:9:0" } ], "id": 47, "name": "ModifierInvocation", "src": "1402:9:0" }, { "children": [ { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "=", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 8, "type": "mapping(address => bool)", "value": "adminAddress" }, "id": 49, "name": "Identifier", "src": "1422:12:0" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 44, "type": "address", "value": "addr" }, "id": 50, "name": "Identifier", "src": "1435:4:0" } ], "id": 51, "name": "IndexAccess", "src": "1422:18:0" }, { "attributes": { "argumentTypes": null, "hexvalue": "74727565", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "bool", "type": "bool", "value": "true" }, "id": 52, "name": "Literal", "src": "1443:4:0" } ], "id": 53, "name": "Assignment", "src": "1422:25:0" } ], "id": 54, "name": "ExpressionStatement", "src": "1422:25:0" } ], "id": 55, "name": "Block", "src": "1412:42:0" } ], "id": 56, "name": "FunctionDefinition", "src": "1363:91:0" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, "name": "removeAdmin", "payable": false, "scope": 84, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, "children": [ { "children": [ { "attributes": { "constant": false, "name": "addr", "scope": 70, "stateVariable": false, "storageLocation": "default", "type": "address", "value": null, "visibility": "internal" }, "children": [ { "attributes": { "name": "address", "type": "address" }, "id": 57, "name": "ElementaryTypeName", "src": "1481:7:0" } ], "id": 58, "name": "VariableDeclaration", "src": "1481:12:0" } ], "id": 59, "name": "ParameterList", "src": "1480:14:0" }, { "attributes": { "parameters": [ null ] }, "children": [], "id": 62, "name": "ParameterList", "src": "1512:0:0" }, { "attributes": { "arguments": [ null ] }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 2677, "type": "modifier ()", "value": "onlyOwner" }, "id": 60, "name": "Identifier", "src": "1502:9:0" } ], "id": 61, "name": "ModifierInvocation", "src": "1502:9:0" }, { "children": [ { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "=", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 8, "type": "mapping(address => bool)", "value": "adminAddress" }, "id": 63, "name": "Identifier", "src": "1522:12:0" }, { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 58, "type": "address", "value": "addr" }, "id": 64, "name": "Identifier", "src": "1535:4:0" } ], "id": 65, "name": "IndexAccess", "src": "1522:18:0" }, { "attributes": { "argumentTypes": null, "hexvalue": "66616c7365", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "bool", "type": "bool", "value": "false" }, "id": 66, "name": "Literal", "src": "1543:5:0" } ], "id": 67, "name": "Assignment", "src": "1522:26:0" } ], "id": 68, "name": "ExpressionStatement", "src": "1522:26:0" } ], "id": 69, "name": "Block", "src": "1512:43:0" } ], "id": 70, "name": "FunctionDefinition", "src": "1460:95:0" }, { "attributes": { "constant": false, "implemented": true, "isConstructor": false, "name": "removeSelf", "payable": false, "scope": 84, "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, "children": [ { "attributes": { "parameters": [ null ] }, "children": [], "id": 71, "name": "ParameterList", "src": "1580:2:0" }, { "attributes": { "parameters": [ null ] }, "children": [], "id": 74, "name": "ParameterList", "src": "1596:0:0" }, { "attributes": { "arguments": [ null ] }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 19, "type": "modifier ()", "value": "admin" }, "id": 72, "name": "Identifier", "src": "1590:5:0" } ], "id": 73, "name": "ModifierInvocation", "src": "1590:5:0" }, { "children": [ { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "operator": "=", "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "type": "bool" }, "children": [ { "attributes": { "argumentTypes": null, "overloadedDeclarations": [ null ], "referencedDeclaration": 8, "type": "mapping(address => bool)", "value": "adminAddress" }, "id": 75, "name": "Identifier", "src": "1606:12:0" }, { "attributes": { "argumentTypes": null, "isConstant": false,